什么是计算机视觉?

利用机器学习和神经网络来训练计算机,使计算机能够及时检测到缺陷和问题,以免影响正常工作

3D rendering of a scientific technology data binary code network. computer binary code blue with depth of field

什么是计算机视觉?

计算机视觉是人工智能 (AI) 的一个领域,是指让计算机和系统能够从图像、视频和其他视觉输入中获取有意义的信息,并根据该信息采取行动或提供建议。 如果说人工智能赋予计算机思考的能力,那么计算机视觉就是赋予发现、观察和理解的能力。

计算机视觉的工作原理与人类视觉类似,只不过人类起步较早。 人类视觉系统的优势是终身可以在适当的环境下训练分辨物体、物体距离、物体动静与否以及图像是否存在问题等能力。

计算机视觉训练机器来执行这些功能,但必须依靠摄像头、数据和算法用更短的时间完成,而不是依靠视网膜、视神经和视皮质。 经过训练用于检验产品或监控生产资产的系统每分钟能够分析数千个产品或流程,并且会发现极其细微的缺陷或问题,因此计算机视觉的能力迅速超越人类。

计算机视觉广泛用于许多行业,从能源和公用事业到制造业和汽车行业等等,并且市场仍在继续拓展。 预计到 2022 年,市值将达到 486 亿美元。1


计算机视觉的工作原理

计算机视觉需要大量数据。 它一遍又一遍地运行数据分析,直到能够辨别差异并最终识别图像为止。 例如,要训练一台计算机识别汽车轮胎,需要为其输入大量的轮胎图像和轮胎相关数据,供其学习轮胎差异和识别轮胎,尤其是没有缺陷的轮胎。

这个过程会用到两种关键技术:一种是机器学习,叫做 深度学习,另一种是卷积神经网络 (CNN)。

机器学习使用算法模型,让计算机能够自行了解视觉数据的上下文。 如果通过模型馈入足够多的数据,计算机就能"查看"数据并通过自学掌握分辨图像的能力。 算法赋予机器自学的能力,而无需人类编程来使计算机能够识别图像。

CNN 将图像分解为像素,并为像素指定标记或标签,从而帮助机器学习或深度学习模型"查看"。 它使用标签来执行卷积运算(用两个函数产生第三个函数的数学运算)并预测它"看到"的东西。 该神经网络运行卷积运算,并通过一系列迭代检验预测准确度,直到预测开始接近事实。 然后它以类似于人类的方式识别或查看图像。

就像人类辨别远距离的图像一样,CNN 首先辨别硬边和简单的形状,然后一边运行预测迭代,一边填充信息。 CNN 用于理解单个图像。 循环神经网络 (RNN) 以类似的方式在视频应用程序中帮助计算机理解一连串帧中的图片关系。


计算机视觉的历史

60 多年来,科学家和工程师一直在尝试开发各种方法,让机器能够看到和理解视觉数据。 在 1959 年的第一次实验中,神经生理学家向一只猫展示一组图像,试图唤起猫大脑的反应。 他们发现猫会先对硬边或线条做出反应,从科学角度来说,这意味着图像处理从简单的形状开始,例如直边。(2)

大约在同一时期,第一个计算机图像扫描技术成功地开发出来,使计算机能够将图像数字化并获取图像。 1963 年,计算机能够将二维图像转换为三维形式,标志着第二个里程碑的实现。 在 20 世纪 60 年代,人工智能作为一个学术域研究诞生了,同时也标志着人们开始探求依靠人工智能解决人类视觉问题的方法。

1974 年,光学字符识别 (OCR) 技术走向市场,它能够识别以任何字体或字型打印的文字。(3)同样,智能字符识别 (ICR) 能够使用神经网络辨认手写文字。(4)此后,OCR 和 ICR 广泛地运用到文件和发票处理、车牌识别、移动支付、机器翻译和其他常见领域。

1982 年,神经系统科学家 David Marr 证实了视觉分层工作原理,并推出了使机器能够检测边缘、角落、曲线和类似的基本形状的算法。 与此同时,计算机科学家 Kunihiko Fukushima 开发了一个能够识别模式的细胞网络。 这个网络称为 Neocognitron,它在一个神经网络中包含了多个卷积层。

到 2000 年,物体识别成为研究重点,2001 年,第一个实时人脸识别应用诞生。 在 21 世纪初,逐渐形成了视觉数据集标记和注释的标准化实践。 2010 年,ImageNet 数据集公开可用。 该数据集包含上千种物体的数百万张标记的图像,为如今使用的 CNN 和深度学习模型奠定了基础。 2012 年,来自多伦多大学的团队带着一个 CNN 模型参加了图像识别竞赛。 这个名为 AlexNet 的模型显着降低了图像识别的错误率。 在这一次突破后,错误率已经下降到仅仅百分之几的水平。(5)


计算机视觉应用

计算机视觉领域充斥着大量研究,但它不仅仅只是一项研究。 现实世界的应用展示了计算机视觉对商业、娱乐、运输、医疗保健和日常生活的重要性。 推动这些应用增长的一个关键因素是智能手机、安全系统、交通摄像头和其他视觉检测装置源源不断地输出大量视觉信息。 这些数据对各行各业的运营影响重大,但目前没有得到充分利用。 这些信息为训练计算机视觉应用打造了试验台,同时也是助力这些应用融入广泛的人类活动的发射台:

  • IBM 利用计算机视觉为 2018 年美国高尔夫名人赛创造了"我的高光时刻"(My Moments)。 IBM 沃森超级计算机观看了数百小时的名人赛视频,并能够识别出重要镜头的景象(和声音)。 它精心挑选了这些关键时刻,作为量身定制的精彩回放回馈给爱好者们。
  • Google Translate 支持将智能手机摄像头对准以另一个语言显示的指示牌,并立即输出以用户首选语言显示的指示牌翻译。(6)
  • 计算机视觉促进了自动驾驶汽车的发展,它能够解读汽车摄像头和其他传感器提供的视觉输入。 这一点非常重要,这样才能识别其他车辆、交通标志、地面标志、行人、自行车和道路上的所有其他视觉信息。
  • IBM 正在携手 Verizon 等合作伙伴应用计算机视觉技术,为边缘带来更智能的人工智能技术,帮助汽车制造商在车辆出厂前识别质量缺陷。

计算机视觉示例

许多组织没有资源资助计算机视觉实验室以及创建深度学习模型和神经网络。 他们可能还缺乏处理海量视觉数据所需的算力。 IBM 等公司正在通过提供计算机视觉软件开发服务,助他们一臂之力。 这些服务交付预先构建的学习模型,可以从云端获取,因此还可以缓解对计算资源的需求。 用户通过应用程序编程接口 (API) 连接到服务,并使用它们来开发计算机视觉应用程序。

IBM 还推出了一个计算机视觉平台,解决开发和计算资源这两大问题。 IBM Maximo Visual Inspection 中的工具使主题专家能够标记、训练和部署深度学习视觉模型,而不必编写代码或掌握深度学习的专业知识。 视觉模型可以部署在本地数据中心、云和边缘设备中。

虽然现在更容易获得开发计算机视觉应用所需的资源,但首先仍需要思考一个重要问题:这些应用究竟用来干什么? 理解和定义具体的计算机视觉任务可以确定项目和应用的重点并加以验证,从而更轻松地开始开发工作。

以下示例展示了一些常见的计算机视觉任务:

  • 图像分类 观察图像并进行分类(狗、苹果、人脸)。 更准确地说,它能够准确地预测给定图像属于某个类别。 例如,社交媒体公司可能希望利用该技术自动识别和隔离用户上传的容易引起反感的图像。
  • 物体检测可以使用图像分类来识别一类特定图像,然后检测图像或视频中出现的这类图像并制成表格。 例如,检测装配线上的损坏,或者识别需要维护的机械装置。
  • 目标跟踪追踪或跟踪检测到的对象。 此任务通常对按顺序捕获或在实时视频源中捕获的图像执行。 例如,自主汽车不仅需要对行人、其他车辆、道路基础设施等对象进行分类和检测,还需要能够在行驶过程中跟踪它们以避免发生碰撞和遵守交通规则。(7)
  • 基于内容的图像检索 利用计算机视觉,根据图像内容从大型数据存储中浏览、搜索和检索图像,而不是根据与图像关联的元数据标记。 这个任务可以包含自动图像注解,以取代手动图像标记。 这些任务可用于数字资产管理系统,可以提高搜索和检索的准确性。

IBM 解决方案

IBM Maximo Visual Inspection

无需深度学习专业知识,即可迅速释放用于检查自动化的计算机视觉处理的力量。


IBM Maximo Visual Inspection Mobile

利用 iOS 移动设备上的计算机视觉增强质量保证能力,并快速发现生产线上的缺陷。