什么是计算机视觉?
计算机视觉是人工智能(AI)的一个领域,它使计算机和系统能够从数字图像、视频和其他视觉输入中提取有意义的信息,并根据该信息采取行动或提出建议。如果AI使计算机能够思考,那么计算机视觉使它们能够看、观察和理解。
计算机视觉的工作方式与人类视觉类似,只是人类具有先天优势。人类的视觉具有一生的语境训练优势,可以学会如何区分物体、确定它们的距离、判断它们是否在移动以及图像中是否有问题。
计算机视觉训练机器来执行这些功能,但它必须在更短的时间内使用摄像机、数据和算法而不是视网膜、视神经和视觉皮层。因为一个专门检查产品或监控生产资产的系统可以每分钟分析数千种产品或过程,注意到不可察觉的缺陷或问题,因此它可以很快超越人类的能力。
计算机视觉从能源和公共事业到制造汽车等各个行业中都得到了使用,而且市场还在不断增长。
计算机视觉是如何工作的?
计算机视觉需要大量的数据。它反复分析数据,直到它辨别出差异并最终识别图像。例如,为了训练计算机识别汽车轮胎,它需要获得大量的轮胎图像和与轮胎有关的物品,以学习差异并识别轮胎,特别是没有缺陷的轮胎。
实现这一点需要使用两种基本技术:一种叫做深度学习,是机器学习的一种。另一种是卷积神经网络(CNN)。
机器学习使用算法模型,使计算机可以了解视觉数据的背景。如果对模型提供了足够的数据,计算机将“查看”数据,并教会自己将一个图像与另一个图像区分开来。算法使机器可以自主学习,而不是被人编程以识别图像。
CNN 通过将图像分解为带有标签的像素来帮助机器学习或深度学习模型“查看”。 它使用标签执行卷积(对两个函数进行数学运算以产生第三个函数),并对它“看到”的内容进行预测。 神经网络进行卷积并在一系列迭代中检查其预测的准确性,直到预测结果为真。 然后它以类似于人类的方式识别或查看图像。
就像人类在远处制作图像一样,CNN 首先辨别边缘和简单形状,然后在重复预测时填充信息。 CNN 用于理解单个图像。 循环神经网络 (RNN) 以类似的方式用于视频应用程序,以帮助计算机理解一系列帧中的图片如何相互关联。
计算机视觉的历史
科学家和工程师们已经试图开发机器识别和理解视觉数据的方法大约60年。实验始于1959年,当时神经生理学家向猫展示了一系列图像,试图关联它大脑的反应。他们发现它首先对边缘或线条做出反应,从科学上讲,这意味着图像处理从简单的形状(如直线边缘)开始。
大约在同一时间,第一个计算机图像扫描技术被开发出来,使计算机能够数字化和获取图像。另一个里程碑是在1963年,计算机能够将二维图像转换为三维形式。在1960年代,人工智能作为一个学术领域开始兴起,也标志着人工智能解决人类视觉问题的开始。
1974年出现了光学字符识别(OCR)技术,它可以识别任何字体或字形的印刷文本。同样,智能字符识别(ICR)可以使用神经网络解读手写文本。自那时以来,OCR和ICR已经成为文件和发票处理、车牌识别、移动支付、机器翻译和其他常见应用的一部分。
1982年,神经学家David Marr证明视觉是分层工作的,并引入了机器检测边缘、角落、曲线和类似基本形状的算法。同时,计算机科学家Kunihiko Fukushima开发了一个能识别图案的细胞网络。这个网络称为Neocognitron,包含了神经网络中的卷积层。
到2000年,研究的重点是物体识别,到2001年,第一个实时人脸识别应用程序出现了。2000年代,视觉数据集的标记和注释标准化。2010年,ImageNet数据集可用。它包含了数百万个被标记的图像,涵盖了一千个对象类别,为今天使用的CNNs和深度学习模型提供了基础。2012年,多伦多大学的一个团队将一个CNN参加了一个图像识别比赛。这个模型叫做AlexNet,显著降低了图像识别的误差率。此后,误差率已降至仅几个百分点。
计算机视觉应用
在计算机视觉领域正在进行大量的研究,但这不仅仅是研究。现实世界的应用演示了计算机视觉对商业、娱乐、交通、卫生保健和日常生活事业重要性的体现。这些应用的增长的关键驱动力是智能手机、安全系统、交通摄像头和其他视觉仪器设备流向的大量视觉信息。这些数据本来可以在各个行业的操作中发挥重要作用,但是目前仍然未被使用。这些信息为训练计算机视觉应用提供了一个试验平台,并且为它们成为人类活动的一部分提供了起跳点:
IBM在2018年的高尔夫大师赛中使用了计算机视觉技术创建了“我的高光时刻”(My Moments)。IBM Watson观看了数百小时的大师赛录像,并能识别重要投篮的声音和画面。它对这些关键时刻进行了筛选,并将它们作为个性化的亮点回放向粉丝们提供。
Google翻译允许用户将智能手机摄像头对准另一种语言的标志,并几乎立即得到他们首选语言的标志翻译。
自动驾驶汽车的开发依赖于计算机视觉来理解汽车摄像头和其他传感器的视觉输入。识别其他汽车、交通标志、车道标识、行人、自行车和道路上遇到的所有其他视觉信息是至关重要的。
IBM正在与Verizon等合作伙伴应用计算机视觉技术,将智能AI带到边缘,并帮助汽车制造商在汽车离开工厂之前识别质量缺陷。
计算机视觉例子
许多组织缺乏资金来资助计算机视觉实验室和创建深度学习模型和神经网络的资源。它们也可能缺乏处理巨量视觉数据所需的计算能力。像IBM这样的公司通过提供计算机视觉软件开发服务帮助了这一问题。这些服务通过云提供预先构建的学习模型,并减轻了对计算资源的需求。用户通过应用程序编程接口(API)连接到这些服务,并使用它们开发计算机视觉应用程序。
IBM还推出了一个计算机视觉平台,解决了开发和计算资源方面的问题。IBM Maximo Visual Inspection包括工具,使专业人员能够标记、培训和部署深度学习视觉模型——无需编码或深度学习专业知识。视觉模型可以部署在本地数据中心、云和边缘设备上。
随着开发计算机视觉应用程序获取资源的变得更加容易,一个重要的问题是:这些应用程序究竟要做什么?理解和定义具体的计算机视觉任务可以集中和验证项目和应用程序,并使其变得更容易开始。
这里是一些已经成熟的计算机视觉任务的例子:
图像分类是指看到一张图片并能将其分类(狗,苹果,人脸)。更精确地说,它能够准确预测一张给定图片属于某个类别。例如,社交媒体公司可能希望使用它来自动识别和隔离用户上传的不适当图片。
目标检测可以使用图像分类来识别某一类图像,然后检测并计算它们在图像或视频中的出现次数。例如,检测生产线上的损坏或识别需要维护的机器。
目标跟踪是在检测到目标后跟踪该目标。该任务通常使用连续捕获的图像或实时视频进行执行。例如,自动驾驶汽车不仅需要对行人、其他汽车和道路基础设施等对象进行分类和检测,还需要跟踪它们的动态,以避免碰撞并遵守交通法规。
基于内容的图像检索使用计算机视觉从大型数据存储中浏览、搜索和检索图像,基于图像内容而不是与它们相关联的元数据标签。该任务可以包含自动图像注释,取代手动图像标记。这些任务可用于数字资产管理系统,可以提高搜寻和检索的准确性。
[1]: https://www.ibm.com/in-en/topics/computer-vision