计算机视觉:机器如何解释视觉世界

已发表: 2021-05-05

计算机视觉是使机器能够“看到”的人工智能领域。

人类有视觉的天赋,而使之成为可能的器官是复杂的。 虽然它的远距离视力无法与鹰的远距离视力或蓝纹蝶的眼睛相比,后者可以在紫外线光谱中看到,但它仍然做得非常出色。

看的一部分是理解你所看到的。 否则,它只是接收从您面前的物体反射的光。 如果您有一双眼睛,但没有枕叶内的视觉皮层(大脑中负责视觉处理的部分),就会发生这种情况。

对于计算机来说,相机就是它们的眼睛。 计算机视觉充当枕叶并处理图像上的数千个像素。 简而言之,计算机视觉使机器能够理解他们所看到的。

计算机视觉对于自动驾驶汽车、面部识别和增强现实等多项技术创新至关重要。 我们生成的图像数据量不断增加是这一领域的原因之一  人工智能  呈指数增长。 这种增加也使数据科学家更容易训练算法。

简而言之,计算机视觉的两个主要任务是识别图像的对象并理解它们整体的含义。

人类认为虚拟感知是数百万年进化的产物,这是理所当然的。 一个 5 岁的孩子可以很容易地为放在桌子上的物品命名,并理解整个设置是一张餐桌。 对于机器来说,这是一项艰巨的任务,而这正是计算机视觉试图解决的问题。

486 亿美元

预计到 2022 年将达到计算机视觉市场的价值。

资料来源:BitRefine

如果可能的话,如果没有计算机视觉,人工智能将无法实现。 那是因为准确识别我们周围的物体并做出反应是我们智力的显着特征之一。 换句话说,要教机器思考,你必须赋予它们看的能力。

随着可用数字照片和视频数量的指数级增长,深度学习和人工神经网络的进步也为当前计算机视觉的辉煌做出了贡献。

计算机视觉简史

在一些早期形式的人工神经网络的帮助下,计算机视觉领域的第一次实验始于 1950 年代。 它们用于检测物体的边缘,并可以对圆形和正方形等简单物体进行分类。

计算机视觉被视为通向人工智能的垫脚石,因为模仿人类视觉系统是获得人类智能的先决条件。 因此,在 1960 年代,探索 AI 的大学也涉足计算机视觉领域。

1963 年,被认为是互联网之父的拉里·罗伯茨 (Larry Roberts) 描述了从 2D 照片中获取有关固体物体的 3D 信息的过程。 他的论文《三维立体的机器感知》至今仍被公认为计算机视觉领域的基础著作之一。

1966 年晚些时候,人工智能的创始人之一马文·明斯基认为,计算机视觉可以通过一个暑期项目来实现。 但我们都知道发生了什么。 快进到 1970 年代,计算机视觉技术被用于商业应用,例如光学字符识别 (OCR),它可以识别图像中的手写文本或印刷字符。

互联网在 1990 年代成为主流,在计算机视觉的快速发展中发挥了至关重要的作用。 大量图像变得容易访问,这使得算法的训练更容易。

廉价而丰富的计算能力也增加了训练算法的易用性。 这也是计算机图形和计算机视觉之间的交互增加的时候。

以下是计算机视觉领域的一些显着里程碑,这些里程碑使其成为今天的强大技术。

1959:发明了第一台数字图像扫描仪,将图像转换为数字网格。

1963 年: Larry Roberts 描述了从 2D 图片中获取实体对象的 3D 信息的过程。

1966 年:马文·明斯基(Marvin Minsky)指示一名研究生将相机连接到计算机并描述它所看到的内容。

1980 年: Kunihiko Fukushima 创建了  新认知。 它被认为是现代卷积神经网络 (CNN) 的先驱。

2001 年:麻省理工学院的两名研究人员 Paul Viola 和 Michael Jones 创建了第一个实时工作的人脸检测框架。

2009 年:谷歌启动了自动驾驶汽车项目。

2010 年: Google 发布了 Google Goggles,这是一款图像识别应用程序,可用于基于移动设备捕获的图片进行搜索。 同年,Facebook 开始使用面部识别来有效地在照片上标记人物。

2011年:人脸识别技术被用于确认  奥萨马·本·拉登的身份  在他被杀之后。

2012 年: Google Brain 创建了一个由 16,000 个计算机处理器组成的神经网络,可以借助深度学习算法识别猫的图片。 同年,卷积神经网络 AlexNet 在 ImageNet 2012 Challenge 中获得了 15.3% 的 top-5 错误。

2014 年:特斯拉在其 Model S 电动汽车中引入了 Autopilot。 自动驾驶系统不仅可以离线工作,而且可以精确停车。

2015 年:谷歌推出  TensorFlow,这是一个用于机器学习的开源和免费软件库。 同年,谷歌推出 FaceNet 用于面部识别。

2016 年:推出著名的 AR 手机游戏 Pokemon GO。

2017 年: Apple 发布了具有人脸识别功能的 iPhone X。

2019 年:英国 HighCourt 允许使用自动面部识别技术在人群中搜索人。

计算机视觉是如何工作的?

计算机视觉从小开始,以大结束。

它遵循分层处理技术,首先识别和分析像素和颜色等低级特征。 逐渐地,它可以分析更高级别的特征,例如线条和对象。

假设您看到有人在奔跑的图像。 尽管它是静止图像,但在大多数情况下,您将能够理解上下文; 人们在逃避某事,向某事奔跑,或悠闲地奔跑。 这是并行处理计算如何实时发生的典型示例。

我们很容易理解图像的情感和背景。 计算机仍在学习交易,但它们的速度对于非生物实体来说令人印象深刻。

有没有想过计算机如何能够为天气预报等提供准确的数据? 这就是计算机视觉以并行处理的形式工作的地方,即一次处理多个复杂的数据源。

对于机器来说,图像只是像素的集合。 与人类不同,它们无法理解图像的语义,只能检测像素。 计算机视觉的目标是缩小语义鸿沟

当光线照射到我们眼睛的视网膜上时,称为光感受器的特殊细胞会将光线转化为电信号。 然后这些电信号通过视神经发送到大脑。 然后大脑将这些信号转换成我们看到的图像。

这个过程直到到达大脑的电信号看起来很简单。 大脑究竟如何处理这些信号并将它们转换成图像尚不完全清楚。 更准确地说,大脑是一个黑匣子。 计算机视觉也是如此。

有神经网络等  机器学习  试图模仿人脑的算法。 它们使计算机视觉变得可行,并帮助理解图像的含义。 即使在算法的情况下,ML 研究人员也并不完全了解它们是如何工作的。 但是,由于他们的结果是可以量化的,我们可以判断每个算法的准确性。

计算机视觉作为一个过程是可以解释的,就像人类视觉一样。 但是没有人很确定神经网络是如何理解图像的,或者它们是否与人类处理视觉信息的方式非常接近。

也就是说,简单来说,计算机视觉就是模式识别。 使用机器学习技术,如  无监督学习,算法被训练来识别视觉数据中的模式。 如果您正在考虑所需的图像数量,那么至少是数百万或数千。

假设您希望算法识别图像中的狗。 如果您遵循无监督学习技术,则不必将任何图像标记为狗。 相反,在分析了数千或数百万张图像后,机器会学习狗的具体特征。

简而言之,计算机可以感知使动物(或物体)成为狗的特定特征。 它仍然不知道特定的动物被称为“狗”。 但它将有足够的信息和经验来确定未标记的图像是否包含狗。

如果你想让学习过程更快,你可以去  监督学习。 在监督学习中,图像被标记,这使得算法的工作更容易。

在像素级别检查图像

在谈论分析图像的算法时,他们并没有像人类一样检查整个图片。 相反,他们查看单个像素,这是光栅图像中最小的可寻址元素。

为了简单起见,让我们考虑一个灰度图像。 每个像素的亮度,称为像素值,由一个 8 位整数表示,其可能值范围为 0 到 255。零被认为是黑色,255 是白色。 如果我们正在研究彩色图像,事情会变得更加复杂。

当我们说算法分析和学习时,它实际上是在学习这些像素值。 换句话说,计算机根据这些数值来查看和识别图像。 这也意味着算法通过查看图像的数值来找到图像中的模式,并以类似的方式比较图片。

简而言之,对于机器而言,理解图像是一个涉及整数数组的数学过程。

然后是卷积神经网络

卷积神经网络(CNN 或 ConvNet)是一种  深度学习  可以从图像数据集中提取特征的算法。 它们是一类神经网络,具有令人印象深刻的图像识别和分类能力。 几乎所有计算机视觉算法都使用卷积神经网络。

尽管 CNN 早在 1980 年代就发明了,但直到引入图形处理单元 (GPU) 才完全可行。 GPU 可以显着加速卷积神经网络和其他神经网络。 2004 年,CNN 的 GPU 实现比同等 CPU 实现快 20 倍。

CNN 是如何做到的?

ConvNets 从输入图像中学习并调整它们的参数(权重和偏差)以做出更好的预测。 CNN 将图像视为矩阵并从中提取空间信息,例如边缘、深度和纹理。 ConvNets 通过使用  卷积层   汇集。

CNN 的架构类似于我们大脑中神经元的连接模式。 CNN 是从视觉皮层的组织中获得灵感而创建的,视觉皮层是大脑中接收和处理视觉信息的区域。

CNN 由称为感知器的多层人工神经元组成,它们是我们大脑生物神经元的数学对应物。 感知器也大致模仿其生物学对应物的工作方式。

卷积神经网络包括一个输入层、多个隐藏层和一个输出层

隐藏层包含:

  • 卷积层
  • 整流线性激活函数 (ReLU) 层
  • 归一化层
  • 池化层
  • 全连接层

以下是对他们所做工作的简单解释。

当 CNN 处理图像时,它的每一层都从图像像素中提取不同的特征。 第一层负责检测水平和垂直边缘等基本特征。

随着您深入神经网络,这些层开始检测复杂的特征,例如形状和角。 卷积神经网络的最后一层能够检测特定的特征,例如人脸、建筑物和地点。

卷积神经网络的输出层提供了一个包含数字信息的表格。 该表表示在图像中识别出特定对象的概率。

计算机视觉任务示例

计算机视觉是计算机科学和人工智能的一个领域,它使计算机能够看到。 计算机可以通过多种方法利用这一领域。 这些在图像中识别对象或活动的尝试称为计算机视觉任务。

以下是一些常见的计算机视觉任务。

  • 对象检测:一种用于检测图像中特定对象的技术。 其高级版本可以识别单个图像中的多个对象,例如繁忙街道图片中的建筑物、汽车、人、交通信号灯等。
  • 图像分类:将图像分组到类别中。 它也可以称为为图像分配标签的过程。
  • 面部识别:一种先进的物体识别形式,可以识别图像中的人并识别面部。
  • 图像分割:将图像分割成多个部分以分别检查。
  • 模式检测:识别视觉数据中的模式和规律的过程。
  • 边缘检测:检测对象边缘以更好地识别图像成分的过程。
  • 特征匹配:一种模式检测,它匹配图像中的相似性以对它们进行分类。

图像识别软件  应用程序可能只使用其中一种计算机视觉技术。 自动驾驶汽车等高级应用将同时使用多种技术。

真实世界的计算机视觉应用

计算机视觉已经融合到我们今天使用的许多产品中。 Facebook 会使用 CV 自动标记人们。 Google Photos 使用它来对图像进行分组,Adobe Lightroom 等软件应用程序使用它来增强缩放图像的细节。 它还广泛用于依赖自动化的制造过程中的质量控制。

以下是您可能遇到的一些更真实的计算机视觉应用。

面部识别

计算机视觉的最佳用例之一是面部识别领域。 它在 2017 年随 Apple 的 iPhone X 机型成为主流,现在已成为大多数智能手机的标准功能。

面部识别技术在多个场合被用作身份验证功能。 否则,它会被用来识别这个人,就像 Facebook 的情况一样。 众所周知,执法机构使用面部识别技术来识别视频中的违法者。

自动驾驶汽车

自动驾驶汽车严重依赖计算机视觉进行实时图像分析。 它可以帮助自动驾驶汽车了解周围环境。 然而,此类汽车背后的技术仍处于起步阶段,需要进一步发展才能自信地部署在交通繁忙的道路上。

如果没有计算机视觉,自动驾驶汽车几乎是不可能的。 该技术可帮助自动驾驶汽车实时处理视觉数据。 其应用的一个例子是创建 3D 地图。 除了物体识别和分类,计算机视觉还可以帮助创建 3D 地图,让车辆了解周围环境。

车辆和车道线检测是另外两个重要的用例。 然后是自由空间检测,这在自动驾驶汽车领域相当有名。 顾名思义,它用于确定车辆周围的无障碍空间。 当自动驾驶车辆接近慢速行驶的车辆并需要改变车道时,自由空间检测非常有用。

医学影像

计算机视觉用于医疗保健行业,以做出更快、更准确的诊断并监测疾病的进展。 使用模式识别,医生可以发现癌症等疾病的早期症状,这些症状可能是肉眼看不到的。

医学成像是另一个具有众多好处的关键应用。 医学成像分析减少了医学专业人员分析图像所需的时间。 内窥镜检查、X 射线照相术、超声波和磁共振成像 (MRI) 是一些使用计算机视觉的医学成像学科。

通过将 CNN 与医学成像相结合,医疗专业人员可以观察内脏器官、检测异常情况并了解特定疾病的原因和影响。 它还可以帮助医生监测疾病的发展和治疗的进展。

内容审核

像 Facebook 这样的社交媒体网络每天必须审查数百万条新帖子。 拥有一个内容审核团队来检查每个发布的图像或视频是不切实际的,因此,计算机视觉系统用于自动化该过程。

3.5亿

照片每天都会上传到 Facebook。

资料来源:社会报告

计算机视觉可以帮助此类社交媒体平台分析上传的内容并标记那些包含禁止内容的内容。 公司还可以使用深度学习算法进行文本分析,以识别和阻止攻击性内容。

监视

监控视频源是一种可靠的证据。 它们可以帮助发现违法者,还可以帮助安全专业人员在小问题成为灾难之前采取行动。

人类几乎不可能密切关注来自多个来源的监控录像。 但是有了计算机视觉,这个任务就被简化了。 CV 驱动的监控系统可以扫描实时画面并检测行为可疑的人。

面部识别可用于识别通缉犯,从而预防犯罪。 图像识别技术可用于检测在拥挤区域携带危险物品的个人。 这也用于确定商场中可用的免费停车位数量。

计算机视觉的挑战

帮助计算机看东西比我们想象的更具挑战性。

Marvin Minsky 相信可以通过将相机连接到计算机来解决计算机视觉问题。 即使经过几十年的研究,我们离解决问题还很遥远。 对于人类来说,视觉是如此轻松。 这就是为什么计算机视觉被视为一个微不足道的简单问题并且应该在一个夏天解决的原因。

我们的知识有限

我们无法完全解决计算机视觉问题的一个原因是我们对自己的了解有限。 我们对人类视觉系统的工作原理没有完全了解。 当然,生物视觉的研究取得了长足的进步,但还有很长的路要走。

视觉世界很复杂

CV 领域的一个具有挑战性的问题是视觉世界的自然复杂性。 可以从任何角度、在任何照明条件下以及从不同的距离观察物体。 人类的光学系统通常能够观察和理解所有这些无限变化的物体,但机器的能力仍然非常有限。

另一个限制是缺乏常识。 即使经过多年的研究,我们还没有在人工智能系统中重建常识。 人类可以应用有关特定对象的常识和背景知识来理解它们。 这也使我们能够轻松地理解图像的不同实体之间的关系。

人类擅长猜测,至少与计算机相比是这样。 即使我们以前没有遇到过具体问题,我们也更容易做出不那么糟糕的决定。 但对于机器来说,情况并非如此。 如果他们遇到与他们的训练示例不同的情况,他们很容易做出非理性的行为。

如果你用更新的视觉数据集训练计算机视觉算法,它们会变得更好。 但在他们的核心,他们试图匹配像素模式。 换句话说,除了像素的知识,他们并不完全了解图像中发生了什么。 但想想 CV 动力系统在自动驾驶汽车中所创造的奇迹,还是很有趣的。

CV 受硬件约束

在计算机视觉中,延迟是邪恶的。

在自动驾驶汽车等现实世界的应用中,图像处理和分析必须几乎是即时发生的。 例如,如果一辆以 30 英里/小时的速度行驶的自动驾驶汽车检测到一百米外的障碍物,它只有几秒钟的时间来安全地停车或转弯。

为了让汽车按时行动,人工智能系统必须了解周围环境并在几毫秒内做出决定。 由于计算机视觉系统严重依赖于摄像头等硬件组件,因此数据传输或计算中哪怕只有几分之一秒的延迟都可能导致灾难性事故。

狭隘的人工智能是不够的

一些 AI 研究人员认为,只有解锁通用人工智能 (AGI),才能实现20/20的计算机视觉。 那是因为意识似乎在人类视觉系统中起着至关重要的作用。 正如我们看到和观察到的一样,我们想象着。 我们的想象力增强了我们所看到的视觉效果,并为它们带来了更好的意义。

此外,视觉智能也离不开智能。 处理复杂思想的能力确实补充了我们观察和理解周围环境的能力。

根据许多研究人员的说法,从互联网下载的数百万张图像或视频中学习对获得真正的计算机视觉没有太大帮助。 相反,人工智能实体将不得不像人类一样体验它。 换句话说,   狭隘的人工智能,我们目前拥有的人工智能水平,是不够的。

我们实现通用智能的时间范围仍有待商榷。 有人认为,AGI 可以在几十年内实现。 其他人则认为这是下个世纪的事情。 但大多数研究人员认为 AGI 是高不可攀的,只会存在于科幻小说类型中。

不管能否实现,我们可以尝试许多其他方法来解锁真正的计算机视觉。 提供高质量和多样化的数据是一种方法。 这将确保依赖计算机视觉技术的系统避免偏见。

寻找更好的方法来放大人工神经网络的优势,创建强大的 GPU 和其他所需的硬件组件,以及了解人类视觉系统是迈向真正的计算机视觉的一些方法。

赋予机器视觉

图像识别模型的错误率正在急剧下降。 从仅检测印刷字母到精确识别人脸,我们已经走了很长一段路。 但是还有很长的路要走,还有许多新的里程碑要征服。 实现真正的计算机视觉很可能是创造像人类一样复杂和智能的机器人的关键之一。

如果一个过程可以数字化执行,机器学习最终将成为其中的一部分。 如果您不完全相信,这里有 51 个机器学习统计数据,它们暗示相同的技术正在席卷几乎所有行业。