如果说 AI 让计算机能够思考,计算机视觉则让计算机能够看见、观察和理解。
计算机视觉的工作原理与人类视觉大致相同,只是人类更胜一筹。人类视觉的优势在于能终身学习各种情境,从而训练如何区分物体、判断与它们的距离、它们是否在移动或某一图像是否存在问题。
计算机视觉可训练机器执行这些功能,但必须使用摄像头、数据和算法取代视网膜、视神经和视觉皮层,在更短的时间内完成这项工作。由于经过训练可以检查产品或观察生产资产的系统每分钟可以分析数千种产品或流程,并发现难以察觉的缺陷或问题,因此它可以迅速超越人类的能力。
计算机视觉已用于从能源与公用事业到制造与汽车等各个行业,且该市场的规模还在持续增长。根据行业分析机构 Gartner 的预测,到 2031 年,全球计算机视觉软件、硬件和服务市场的产值将从 2022 年的 1,260 亿美元增至 3,860 亿美元。1
计算机视觉需要大量数据。计算机视觉会一遍又一遍地运行数据分析,直到辨别出差异并最终识别出图像。例如,为了训练计算机来识别汽车轮胎,需要向其提供大量轮胎图像和轮胎相关物品,以了解其中的差异并识别轮胎,尤其是没有缺陷的轮胎。
有两种基本技术被用于实现此目标:一种是被称为深度学习的机器学习技术,另一种是卷积神经网络 (CNN)。
机器学习会使用算法模型,以便计算机自行了解产生视觉数据的情境。如已向模型输入足够多的数据,计算机便会“查看”这些数据,并自行学习如何分辨不同的图像。算法可帮助计算机自行学习,而不是由某人对其进行编程来识别图像。
CNN 可通过将图像分解为附带标记或标签的像素来帮助机器学习模型或深度学习模型进行“查看”。它使用标签来执行卷积操作(对两个函数进行数学运算以生成第三个函数),并就其“看到”的内容做出预测。神经网络则会运行卷积操作并在一系列迭代中检查其预测结果的准确性,直到这些预测开始成真。然后,它会以类似人类的方式识别或查看图像。
如同人类在远处看清图像一样,CNN 首先会识别硬边缘和简单的形状,然后在运行预测迭代时填充信息。CNN 可用于理解单个图像。循环神经网络 (RNN) 会以类似的方式用于视频应用程序,从而帮助计算机了解一系列帧中的图片如何相互关联。
约 60 年来,广大科学家和工程师一直在努力开发能让计算机查看和理解视觉数据的方法。相关实验始于 1959 年。当时,神经生理学家向一只猫展示了一系列图像,以期将其大脑中产生的反应关联起来。他们发现,猫首先会对硬边缘或线条做出反应;从科学层面来说,这意味着图像处理始于直边等简单形状。2
大约在同一时间,第一项计算机图像扫描技术已被开发出来,从而可让计算机对图像进行数字化并获取输出。到了 1963 年,该技术实现了另一里程碑;当时,计算机可将二维图像转换为三维形式。进入 1960 年代,AI 作为一个学术研究领域应运而生,它也标志着 AI 寻求解决人类视觉问题的开始。
1974 年,光学字符识别 (OCR) 技术面世,该技术可识别以任意字体或字型打印的文本。3同样,智能字符识别 (ICR) 可解读使用神经网络的手写文本。4从那时起,OCR 和 ICR 便已进入文件与发票处理、车牌识别、移动支付、机器转换和其他常见应用领域。
1982 年,神经科学家 David Marr 确立了视觉会分层工作的理论,并为计算机引入了一系列算法来检测边缘、拐角、曲线和类似的基本形状。与此同时,计算机科学家 Kunihiko Fukushima 开发出一种可识别不同模式的蜂窝网络。该网络被称为“神经认知机”(Neocognitron),并被包含在神经网络的卷积层中。
到了 2000 年,研究的重点转到了对象识别上;到了 2001 年,首个实时人脸识别应用程序诞生了。视觉数据集的标记和注释方式的标准化出现于 2000 年代。2010 年,ImageNet 数据集问世。它包含涉及一千个对象类的数百万张标记图像,并为当下使用的 CNN 和深度学习模型打下了基础。2012 年,多伦多大学的一个团队使用 CNN 参加了某一图像识别竞赛。这一名为 AlexNet 的模型可大幅降低图像识别的错误率。实现此突破后,错误率更是继续下降到仅有几个百分点的水平。5
眼下,计算机视觉领域正在开展大量研究,但其发展步伐却未止步于此。各种现实应用展示了计算机视觉对商业、娱乐、交通、医疗保健和日常生活领域中各项尝试的重要性。这些应用实现增长的一大关键驱动力源自智能手机、安全系统、交通摄像头和其他视觉仪表设备的大量视觉信息。这些数据可能会在各行各业的运营中发挥重要作用,但如今却未得到利用。这些信息可形成一个测试平台来训练计算机视觉应用,并为这些应用创建一个启动板从而融入到一系列人类活动中:
很多组织没有资源来资助计算机视觉实验室以及创建深度学习模型和神经网络。此外,它们还可能缺乏处理大量视觉数据所需的计算能力。IBM 等公司正通过提供计算机视觉软件开发服务来提供帮助。这些服务提供可从云端获取的预构建学习模型,同时还可缓解对计算资源的需求。用户可通过应用程序编程接口 (API) 连接到这些服务,并使用它们来开发计算机视觉应用程序。
IBM 还推出了一个计算机视觉平台,以解决开发与计算资源方面的问题。IBM Maximo Visual Inspection 中包含的工具有助于主题专家标记、训练和部署深度学习视觉模型,而无需编码或深度学习方面的专业知识。视觉模型可部署在本地数据中心、云端和边缘设备中。
虽然获取资源来开发计算机视觉应用程序变得愈发容易,但有一个重要问题仍需早期解答:这些应用程序到底能做些什么?了解和定义特定的计算机视觉任务有助于聚焦和验证项目和应用程序,并使其更易上手。
既定的部分计算机视觉任务示例如下:
1. 新兴技术:计算机视觉的收入机会预测:成长型市场,Gartner,2024 年 4 月 19 日。
2. https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3
5. 计算机视觉(和卷积神经网络)简史,Rostyslav Demush,Hacker Noon,2019 年 2 月 27 日
6. 计算机和机器视觉在实践中的 7 个惊人例子,Bernard Marr,Forbes,2019 年 4 月 8 日
7. 将改变你看待世界方式的 5 种计算机视觉技术,James Le,Heartbeat,2018 年 4 月 12 日