主页
topics
计算机视觉
计算机视觉是人工智能 (AI) 的其中一个领域,计算机视觉使用机器学习和神经网络来训练计算机和系统,以便从数字图像、视频和其他视觉输入中获取有意义的信息,并在发现缺陷或问题时提出建议或采取行动。
如果说 AI 让计算机能够思考,计算机视觉则让计算机能够看见、观察和理解。
计算机视觉的工作原理与人类视觉大致相同,只是人类更胜一筹。人类视觉的优势在于能终身学习各种情境,从而训练如何区分物体、判断与它们的距离、它们是否在移动或某一图像是否存在问题。
计算机视觉可训练机器来执行这些功能,但计算机视觉必须在更短时间内使用摄像头、数据和算法而不是视网膜、视神经和视觉皮层来完成这些操作。由于经训练可检查产品或监视生产资产的系统每分钟可分析数千种产品或流程,从而发现难以察觉的缺陷或问题,因此计算机视觉可以迅速超越人类的能力。
计算机视觉已用于从能源与公用事业到制造与汽车等各个行业,且该市场的规模还在持续增长。预计到 2022 年,其市场价值将达 486 亿美元。1
有些公司最早将于 2025 年开始披露 ESG 信息,因此请务必根据我们的指南做好准备。
计算机视觉需要大量数据。 它一遍又一遍地运行数据分析,直到能够辨别差异并最终识别图像为止。 例如,要训练一台计算机识别汽车轮胎,计算机视觉需要为其输入大量的轮胎图像和轮胎相关数据,供其学习轮胎差异和识别轮胎,尤其是没有缺陷的轮胎。
这个过程会用到两种关键技术:一种是机器学习,叫做 深度学习,另一种是卷积神经网络 (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. https://www.forbes.com/sites/bernardmarr/2019/04/08/7-amazing-examples-of-computer-and-machine-vision-in-practice/#3dbb3f751018 (ibm.com 外部链接)
2. https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3(ibm.com 外部链接)
3. 光学字符识别,维基百科(ibm.com 外部链接)
4. 智能字符识别,Wikipedia(ibm.com 外部链接)
5. 计算机视觉(和卷积神经网络)简史,Rostyslav Demush,Hacker Noon,2019 年 2 月 27 日(ibm.com 外部链接)
6. 7 项令人赞叹的计算机与机器视觉实践示例,Bernard Marr,Forbes,2019 年 4 月 8 日(ibm.com 外部链接)
7. 改变您看待世界方式的 5 种计算机视觉技术,James Le,Heartbeat,2018 年 4 月 12 日(ibm.com 外部链接)