“传统图像算法在过去几十年的发展中已经形成了非常成熟的方法论,但近些年发展的深度学习技术,随着理论的可实践性越来越高,可落地场景也越来越多,不断冲击着传统图像算法在视觉应用中的地位。”
在如今的工业视觉应用中,当我们想要通过视觉来解决生产中的识别、测量、引导和检测等问题时,我们可以有传统图像算法和深度学习两种技术方向的选择,这两种技术分别代表的是计算机图像技术的经验总结和大数据时代下的计算方法。虽然深度学习的应用越来越多,但是也不能忽视传统图像算法的作用。
1.传统图像算法
图像在计算机中存储通常分为图像尺寸和颜色信息。
图像尺寸:表示图像的横向和纵向的像素个数,如:图像横向2500个像素,纵向2000个像素,就构成了500万的像素精度,那么在计算机中就需要存储至少500万个数值才能表示所有像素点
图像颜色:基于图像是否为彩色图像,彩色图像会包含色光三原色红绿蓝,但对于黑白图像就只有一个灰度值。因此,彩色图的每一个像素需要存储3个数值表示每个颜色的分量,而黑白图像只需要存储1个数值表示灰阶的大小。
传统图像算法就是基于上述尺寸和颜色的信息进行高效计算分析的一种方式。
以缺陷检测场景为例,当我们需要对产品缺陷进行检测时,根据工艺质检的要求通常会对尺寸、深浅达到一定程度的缺陷进行检出。传统图像算法的处理方式是将拍摄到的缺陷图片进行一个像素值的遍历,通过比对每个像素和周边像素的颜色的差值,判断表面是否存在不平滑的区域,如果颜色差值过大,则表示此处位置可能存在不平滑,也就是缺陷。同时还可以对差值过大的像素点进行个数统计和像素位置记录,从而得到缺陷的面积大小和位置。这就是传统图像算法在进行检测应用时的基本核心思想。
所以当我们在使用传统图像算法处理视觉应用时,通过特征工程对尺寸位置和颜色的组合来设计不同的特征,如:位置距离、形状长宽比、颜色梯度、颜色像素统计等,再通过不同的判定规则,可以应对多种多样的检测对象和检测要求。
传统图像算法的处理手段比较简单,判定规则清晰,但是也存在一定的不足:
· 特征设计依赖工程师的经验和检测内容要求,难以实现整体算法复用。
· 特征设计面对复杂对象需要设计的参数过多,规则逻辑复杂度超出人工设计能力。
· 算法对颜色灰阶差值敏感,对成像环境的光学稳定有很高的要求
· 算法对空间位置没有关联性,需要固定区域来降低全图像素遍历的计算量和减少背景噪点的干扰。
2.深度学习
如果我们看到了一只猫和一只狗的图片,想要正确的分辨他们,人的大脑会快速地分析他们之间的特征差别:眼睛、鼻子、耳朵、毛色、尾巴等,我们的思考与经验会对眼睛看到的多种特征进行一个分类,当所有的特征都符合一个你曾经见过为猫的印象时,这时候我们就可以大概率地认为,这是一只猫了。
深度学习就像人的大脑一样,当看到一个复杂特征的物体的时候,可以一层层地解析出每一个特征,并进行相应的量化,当然这个是依靠不断尝试的经验来构建的多层神经网络实现的。
当把所有的特征从一张图片中分解量化出来时,就可以通过相应的数理统计方式,对特征分布进行一个回归分类,经过多次回归计算,拟合出能够较好区分这些特征的分界线。
在这之后,再有相近的物体输入进来分析时,按照这个分界线的分布,就可以计算出所有特征分布在不同区域的一个比例,从而计算出该物体为某一个分类的概率。
所以,采用深度学习技术进行视觉应用的时候,可以通过一套的网络结构来对检测目标进行特征解析,量化和特征分布的概率计算,然后基于概率统计来判断是否为需要检测的目标,从而实现算法层面的复用。同时由于多种特征的提取,对背景有比较强的抗干扰性。
但是深度学习也存在比较明显的缺点:
· 依靠经验构建的特征提取网络结构以及概率性的计算方式,对视觉识别存在一定程度的不可解释性,不容易确定调整方向。如存在差异明显的特征识别不出来,相似的特征能够识别的情况。
· 需要有可预知的样本特征标记与分布,也就是我们通常所说的需要标注数据和学习。数据往往受限于获取难度,因此也容易造成深度学习技术难以形成一个评判标准。
· 计算量偏大,对设备算力要求较高,不适用高速的检测的场景。
3.工业视觉应用该如何选择
传统图像算法适用于目标单一、特征稳定的场景,在工业应用中可以通过工装来规避背景环境干扰和降低规则设计的复杂度,可以满足高速检测的要求,这也是目前绝大部分视觉厂商所采用的技术手段。
深度学习在传统图像算法应用的基础上,可以更好地应对目标的多样性,对背景的抗干扰性也使得采用深度学习技术不需要太多考虑工装设计,可以有效地降低结构设计的复杂度,使得整个视觉应用方案更好适应柔性生产。
传统图像算法不会因为深度学习的发展而淘汰,深度学习也需要传统图像算法的辅助,为其概率性的结果增加规则性的结论。
传统图像算法和深度学习相辅相成,取长补短,才能构建高性能、高可用、高柔性的工业视觉解决方案。