机器视觉或称计算机视觉是用一个可以代替人眼的光学装置和传感器来对客观世界三维场景进行感知,即获取物体的数字图像,利用计算机或者芯片,结合专门应用软件来模拟人脑的判断准则而对所获取的数字图像进行测量和判断。该技术已广泛用于实际的测量、控制和检测中,随着芯片技术发展,在人工智能各个领域应用也逐步展开。
一个典型的工业机器视觉系统包括:光源、镜头、相机 (包括CCD相机和COMS相机)、图像处理单元 (或机器视觉芯片)、图像处理软件、监视器、通讯、输入输出单元等。系统可再分为主端电脑、影像采集与影像处理器、影像摄影机、CCTV镜头、显微镜头、照明设备、Halogen光源、LED光源、高周波萤光灯源、闪光灯源、其他特殊光源、影像显示器、LCD、机构及控制系统、控制器、精密桌台、伺服运动机台。
机器视觉之于人工智能的意义等同于视觉之于人类的意义,而决定着机器视觉的就是图像处理技术。不同的应用领域需要不同的图像处理算法来实现机器视觉。常用的机器视觉领域图像算法有运动目标检测算法、基于深度学习的人脸算法等。
下面介绍下机器视觉中的运动目标检测图像算法,该方法是运动物体识别和跟踪的基础。移动物体的检测依据视频图像中背景环境的不同可以分为静态背景检测和动态背景检测。由于篇幅有限,我们这里只介绍静态背景检测算法。常见的静态背景目标的检测算法包括帧间差分法、背景减除法、光流法等。这些背景不变算法的优缺点描述如下图。
在上述检测算法中,帧间差分法和背景减除法更加适用于如视频监控、智能交通系统等图像背景静止的环境中。光流法则更加适用于背景不断变化的动态环境中。下面我们来介绍以上三种常用算法的基本原理。
帧间差分法
适应环境能力强、计算量小、且稳定性好,是目前应用广泛的一类运动检测方法。其原理是将相帧或者三帧序列图像像素点的对应灰度值进行相减,如果灰度差值大于阈值则说明此处物体发生了变化,它是运动的;如果像素的灰度差值小于给定阈值说明此处物体没有发生变化,认为它是静止的。将像素灰度值发生变化的部分标记出来,这些被标记的点就组成了运动目标区域。进一步对灰度图像进行二值化分析,提取目标运动信息,区分出前景和背景图像,进而分割出运动目标。
背景减除法
其实是一种特别的帧间差分法,背景减除法根据将当前帧图像与背景模型做差来实现对运动目标的检测。这种方法首先获取背景模型,并将其保存起来,当对某一帧图像进行检测时,用实时获取的帧图像与背景模型做差分运算,得到要检测的运动目标。
光流法
当运动目标在监控场景中产生运动的时候,物体表面会形成位移矢量场,根据其变化可以得到运动目标。光流是指移动物体在其对应的灰度图像上的表面运动,在光流场中,运动目标的速度矢量形成的平面投影构成了目标的运动信息。运动目标在投影上形成的速度矢量是比较均匀,运动目标速度不同形成的速度矢量也不相同,通过光流的计算结果就可以区分出速度不同的运动目标。
图像处理算法
一开始应用应该是采用服务器的软件算法来完成,随着互联网技术的不断成熟,会扩展到云端计算来完成,但是这样对于网络带宽要求非常大,对于云服务器的计量量要求也非常高。笔者估计,视频图像处理技术算法的大规模产业化应用,必然是需要专业的芯片来完成,该芯片就是机器视觉 (CV) 芯片。芯片方式一定是能够降低成本,同时提高运算能力。从近年的整个行业情况来看,计算机视觉作为人工智能领域最重要的方向之一,由于机器视觉芯片诞生和深度学习算法不断发展,近几年获得了巨大的发展,各项应用在不同的行业里开始落地生根。