作者:Jody Muelaner
机器视觉是一系列技术的融合,可使工业或其他的自动化设备从图像中获得对当时环境的高级理解。如果没有机器视觉软件,具有不同色彩值和色调强度的数字图像对于此类设备来说只不过是简单的、无任何联系的像素集合。机器视觉让计算机(通常与机器控制器相连)检测这类图像中的边缘和形状,以使更高级别的处理程序识别出预先定义的目标物体。这种意义上的图像并不局限于可见光谱中的摄影图像;这类图像也可以包括使用红外、激光、X 射线和超声波信号获得的图像。
图 1:机器视觉正越来越多地用于更复杂的机器人应用。(图片来源:John6863373 | Dreamstime.com)
在工业环境中,相当常见的机器视觉应用从物料箱中杂乱放置的许多零件中识别出特定的零件。在这里,机器视觉有助于拾放机器人自动拾取正确的零件。当然,如果这些零件都以相同的方向整齐地排列在托盘上,那么用成像反馈来识别这些零件就相对简单了。然而,功能强大的机器视觉算法可识别与摄像机有不同距离的物体(因此在成像传感器上显示为不同大小的图像)以及与相机不同向的物体。
最复杂的机器视觉系统已经实现了远比从物料箱拣选零件更复杂的新兴设计,例如,可能没有比自动驾驶汽车更复杂的识别了。
图 2:机器视觉使工业或其他系统能通过图像对环境获得高级了解。(图片来源:Wikimedia)
与机器视觉有关的技术
机器视觉这一术语有时被保留下来,以便参考那些能从图像中提取信息的更成熟、更有效的数学方法。相比之下,计算机视觉一词通常描述的是更现代、计算要求更高的系统——包括使用机器学习或人工智能 (AI) 的黑箱方法。然而,机器视觉也可作为一个包罗万象的术语,包括从图像中提取高级信息的所有方法;在这种情况下,计算机视觉描述了其基本的运行理论。
能从图像中提取高级含义的技术比比皆是。在研究界,此类技术通常被认为不同于机器视觉。然而实际上,所有这些都是实现机器视觉的不同方式...而且他们在许多情况下是重叠的。
数字图像处理是数字信号处理的一种形式,涉及图像增强、修复、编码和压缩。相比模拟图像处理,其优点是最大限度地减小噪音和失真以及有众多算法可用。最初的一种图像增强是用来校正第一批月球表面的近距离图像的。在此过程中,使用了摄影测量制图以及噪声滤波器,并针对成像摄像机对准月球表面所产生的几何失真进行了修正。
图 3:DLPC350 集成电路 (IC) 控制器提供输入和输出触发信号,使所显示的模式与摄像机同步。该控制器与数字微镜设备 (DMD) 配套使用,旨在为工业、医疗和安全设备提供 3D 机器视觉。事实上,其应用包括 3D 扫描以及计量系统。(图片来源:Texas Instruments)
数字图像增强通常涉及增大对比度,还可能针对视角和镜头失真进行几何校正。压缩通常是通过将复杂信号近似为余弦函数组合来实现的——一种被称为离散余弦变换 (DCT) 的傅里叶变换。JPEG 文件格式是 DCT 最常见的应用。图像修复也可以使用傅里叶变换来消除噪音和模糊。
摄影测量学采用某种特征识别来从图像中提取测量结果。当从不同位置获得同一场景的多幅图像时,这些测量结果可以包括 3D 信息。最简单的摄影测量系统采用比例尺测量图像中两点之间的距离。为此,通常需要在图像中包含一个已知的参考比例。
特征检测让计算机识别图像中的边缘、拐角或点。这是摄影测量以及识别物体和运动所需的第一步。Blob 检测可以识别出边缘过于光滑而无法进行边缘或拐角检测的区域。
模式识别用于识别特定对象。在最简单的情况下,这可能意味着需要在传送带上找到一个定义明确的特定机械部件。
3D 重构确定来自 2D 图像物体的 3D 形态。这种功能可通过摄影测量方法来实现。其中,共同特征的高度(在不同观测点的图像中确定)采用三角测量来确定。单纯使用 2D 图像进行 3D 重构也是可能的;在此,软件也解释了边缘或阴影区域之间的几何关系。
图 4:3D 扫描仪捕捉物体的 2D 图像以构建其 3D 模型。在某些情况下,数字模型随后会用于 3D 打印副本。(图片来源:深圳创想三维科技股份有限公司)
人类可以在大脑中利用线描画法加工简单地重构出立方体——利用阴影圆重构出球体。阴影显示了表面的坡度。然而,这种推导过程远比想象中复杂的多,因为阴影是一维参数,而坡度则发生在二维情况下。这可能导致模棱两可的情况——这是由描绘物理上不可能的物体的艺术验证了的事实。
图 5:用计算机根据 2D 图像确定工件的 3D 形状充满了挑战。
机器视觉任务是如何排序的
通过从低级操作开始,然后逐步推进到高级操作,许多机器视觉系统都逐步地结合了上述技术。在最低级别下,图像的所有像素都作为高带宽数据保存。然后,序列中的每个操作都能识别图像特征,并以相对较少的数据量来表示所关注的信息。
首先是图像增强和修复的低级操作,其次是特征检测。因此在使用多传感器的情况下,可由专门针对单独传感器的分布式进程来执行低级操作。一旦在单独图像中检测到特征,就可进行更高级的摄影测量——正如任何物体识别或其他依靠来自多个图像和传感器的组合数据的任务一样。
直接计算和学习算法
在机器视觉情况下,直接计算是一组由程序员定义的数学函数。这些函数接受诸如图像像素值之类的输入,产生诸如物体边缘坐标之类的输出。相比之下,学习算法不是由人类直接编写的,而是通过将输入与期望的输出相关联的实例数据集进行训练的。因此,学习算法作为黑盒子使用。现在大多数此类机器学习都采用了基于人工神经网络的深度学习来进行计算。
图 6:iVu 系列的图像传感器可以通过类型、尺寸、位置、方向和颜色来识别工件。机器视觉组件可以接受配置,并通过集成屏幕、远程 HMI 或 PC 进行监控。摄像机、控制器、镜头和灯都是预先集成的。(图片来源:Banner Engineering Corp.)
如果基于直接计算,工业应用的简单机器学习往往更可靠,计算要求也更低。当然,通过直接计算所能达到的效果是有限的。例如,永远不要希望执行人脸来识别所需的高级识别模式,特别是不要希望从拥挤公共空间的视频资料中进行识别。相比之下,机器学习能巧妙地处理此类应用。因此,机器学习越来越多地被部署到低级机器视觉操作中就不足为奇了,具体包括图像增强、修复和特征检测。
改进教学方法(不是算法)
深度学习技术的日趋成熟让人发现,需要改进的不是学习算法本身,而是算法的训练方式。一种经过改进的训练程序被称为以数据为中心的计算机视觉。在这里,深度学习系统接受由数千、数百万、甚至数十亿张图像组成的非常强大的训练集——然后保存通过其算法从每张图像中提取的合成信息。这些算法通过工作实例联系来实现有效学习,然后参考“答案书”来验证是否得出了正确数值。
有一个关于数字模式识别的老故事具有警醒作用。美国军方曾经打算利用机器视觉进行目标识别,国防承包商的演示可靠地识别出了美制和俄制坦克。各种不同的坦克都能从供应商的航拍照片中一辆接一辆地正确区分出来。但是,当用五角大楼自己的图片库再次测试时,该系统却不断地给出错误的答案。问题是,国防承包商的图片都描绘了沙漠中的美国坦克和绿地上的俄罗斯坦克。该系统没有识别出不同的坦克,反而识别出了不同颜色的背景。识别标准是什么呢?学习算法需要有精心策划的训练数据才能发挥作用。
结论:机器人工作单元的安全愿景
机器视觉不再是一项利基技术。在目前开来,工业领域是机器视觉部署增长最大的领域。在该领域,最引人注目的发展是目前机器视觉如何完善工业工厂的安全系统,即当工人在没有佩戴安全帽、防护面具或其他合适的防护用品的情况下进入工作区时,该系统会发出警报或发出语音通知。机器视觉还可用于当叉车等移动机械离人员太近时发出警示的系统。
这些和类似的机器视觉系统有时可以取代工业机器人周围的硬防护措施,以使操作更有效。机器视觉系统还可以取代或加强基于灯光防护的安全系统,这些安全系统只要发现工人进入工作单元就会停止机械运行。当机器视觉监测到工作单元周围的工厂地面时,该单元中的机器人有可能在人员靠近时逐渐减速。
随着工业环境设计的发展,以适应协作机器人和其他工作单元设备,使工厂人员可以安全地走动(甚至在设备运行时),这些和其他基于机器视觉的系统会成为工厂流程中更常见的一部分。