李思聪,朱枫,吴清潇
1.中国科学院光电信息处理重点实验室,沈阳 110016;2.中国科学院沈阳自动化研究所,沈阳 110016;3.中国科学院机器人与智能制造创新研究院,沈阳 110169;4.中国科学院大学,北京 100049
在工业机器人视觉定位领域中,对目标检测技术的研究偏重于快速、精准与可靠。然而,当在高精度定位应用中面对形变目标时,一些常见的检测算法通常会出现定位精度不足或鲁棒性不强的问题,无法满足实际需求。
工业零部件由于组装、拼接等工艺问题有时会导致目标出现一定程度的形变,主要表现为结构性错位或扭曲形变。如图1 所示,图1(a)为电视背板模组局部图像,在机器人视觉液晶电视自动贴合应用中,背板右部的地侧塑胶条由于模块化拼装工艺会出现结构性错位,视觉系统需要精准定位背板直角顶点坐标,再经过多相机融合计算,最后将位姿结果发送给机器人,引导实现背板与液晶的精确贴合。图1(b)为电视塑料后壳螺丝孔图像,图中3 个同心圆的“套孔”现象由多层叠板导致。
图1 工业形变目标实例Fig.1 Examples of industrial weak flexibility targets
在机器人自动锁螺丝应用中,为了保证机器人假手电批杆顺滑地穿过3 个孔,视觉系统需要定位最内层的圆心坐标。此类情况可以描述为,如图2所示,对视觉系统而言,能够用来精准可靠定位的图像特征仅是目标的稀疏特征,在全局检测范围内存在大量假阳性目标。
图2 特征简单导致出现大量假阳性目标Fig.2 Simple features lead to a large number of false-positives
目前工业视觉定位领域中,模板匹配依然是应用广泛的经典算法。在对刚性工件的检测应用中,其表现出的高效、鲁棒与精准的特点,特别适用于工业机器人视觉定位(刘磊,2019;刘正琼,2018)与分拣(张韦昱,2020)、液晶半导体定位(鲁沛昕 等,2021)、视觉检测(周唯,2020)等领域。德国的HALCON(MVTec,2020)机器视觉软件、日本的基恩士和美国的康耐视视觉系统均提供了大量的相关算法,且近些年仍然持续提升与丰富算法性能和功能。基于形状的模板匹配算法SBM(shape-based matchig)(Steger,2002)以梯度方向向量内积为相似度度量模型,借助边缘信息检测目标位置,可以获得较高的定位精度,与其同源的LIND2D(linearizing the memory 2D)(Hinterstoisser 等,2012;闫明 等,2022)算法为了将SBM 算法从工业环境扩展到适应自然场景,以牺牲精度为代价采用梯度扩散的方式提升形变条件下的目标检测能力,并针对运算速度做了底层实现上的优化。一种基于直线段描述子的稀疏形状模板匹配方法(He 等,2020)利用改进的LSD(line segment detector)(Gioi 等,2012)检测目标完整直线段,然后通过改进的BOLD(bunch of lines descriptor)算子(Tombari 等,2013)实现工件目标高层特征提取,最后使用EPnP(efficient perspectivenpoint)(Lepetit等,2009)估算目标位姿。基于归一化互相关的匹配算法NCC(normalized cross correlation)(韩冰 等,2018),利用模板内部灰度相对变化信息检测目标最佳匹配位置,在保证定位精度的同时获得较高的鲁棒性,模板匹配算法的不足在于过多的模式设计,在应对形变目标时经常出现漏检和精度不良的情况;基于机器学习的方法如霍夫森林(Dong 等,2021)、可变形部件模型DPM(deformal part model)算法(Sadeghi 和Forsyth,2014)以及基于深度学习的RetinaNet(Lin 等,2020)、YOLO(you only look once)(Bochkovskiy 等,2020;Zhu 等,2021)等方法,在应对形变问题时的表现明显优于模板匹配算法,但这类方法精度一般不高,在工业定位应用中无法与基于边缘一类的传统匹配方法相比(Ulrich等,2019)。此外,这类方法对于目标潜在特征模式的学习是在训练集中挖掘获得,在算法设计阶段相对较少地引入先验信息。因此,为了获得良好的检测效果,需要大量的训练图像作为保障,而在工件批量生产之前就获得相当数量的训练图像在工业环境中通常难以保证。综上所述,一种仅利用1 幅或少量训练图像就能获得同时兼顾形变与精准定位能力的视觉检测算法是非常必要的。
针对上述问题,提出融合边缘与灰度特征的形变工件精准定位方法,利用多归一化互相关MNCC(multi normalized cross correlation)的匹配方法实现目标形变下的灰度特征检测,利用改进的形状匹配方法T-SBM(truncated shape-based matching)实现目标精准定位,通过二维高斯条件密度函数将灰度特征、形状特征和形变量结合,估算理想位置,实现二阶段检测。
使用基于稠密特征的灰度模板作为算法的第1阶段检测形变目标,为第2 阶段精准定位特征简单的边缘形状构建辅助支撑,增加复杂场景下的鲁棒性。形状模板使用边缘的梯度方向,定位精度取决于目标边缘,检出位置为图像对应坐标下梯度向量内积累加和的局部极值点。为了寻找真实的全局最优点,方法将形状特征与形变条件下的灰度特征进行合理加权,作为目标的最优推断。
方法对于待检测目标特征的综合评价为形变条件下的灰度评价与形状评价的综合加权。具体为
式中,fshape表示目标位置x=(x,y)处的形状评价,fgray表示附近灰度特征评价,λ为两者的加权比例,k(x)为高斯条件,表示形变评价。
SBM算法将边缘特征用于检测可以获得很好的定位精度,使用单位化后的梯度方向进行向量内积累加的计算方式可以抵抗非线性光照和目标遮挡的影响,因此适合用来检测以边缘为主要特征的一类目标,相似度的评价为
式中,n为模板点数量,θi和分别代表了模板点和图像中对应点的梯度方向。
在某些情况下,如目标部分背景发生梯度反转时,从式(2)可知,此时,内积是负值,这部分特征会降低目标的整体评分。
针对这种情况,提出一种改进的评价方法T-SBM。具体为
如图3 所示,改进后的方法在矩形两条边发生梯度反转时仍能够获得50%的相似性评分。在某些工业定位场景下,目标的整体背景难以稳定控制,可能会出现部分极性反转的情况,通过对负极性梯度方向进行截断,使得局部点不会出现负贡献影响目标的整体评价,增加检测鲁棒性。
图3 两种评价方法对比Fig.3 Comparison of the two evaluation methods
图4 是使用两种评价方法的对比图像,模板右上角部分在匹配时出现了梯度方向反转。其中,图4(a)使用了工业机器视觉软件HALCON 提供的SBM 方法的评价方式,在梯度反转处会出现负向贡献,从而降低真实位置下的整体评价,导致检出位置出现偏差;图4(b)使用T-SBM 方法一定程度地抑制了局部梯度反转处的评分衰减,使得真实位置仍然保持较高的相似度评价。
图4 铝板外角局部梯度方向反转时两种方法对比Fig.4 Comparison of the two methods when the direction of the local gradient in the outer corner is reversed((a)detection result of SBM method;(b)detection result of T-SBM method)
NCC 匹配本质上也是基于向量内积的度量模型,首先分别将待匹配的模板向量通过归一化去除整体亮度影响,再将内部各维特征以均方差为基准进行幅度拉伸,最后使用向量内积评价相似度。这种基于稠密的灰度特征比基于稀疏的边缘特征具备更好的辨识度,适合第1 阶段检测目标的粗略位置。在运算效率上,目前的NCC 匹配算法借助快速傅里叶变换(王黄铭,2019)、积分图法(韩冰 等,2018)已经可以高效实现。当目标发生形变即灰度向量发生非线性变化时,匹配算法的鲁棒性有待提升。一种有效的解决思路是采用多模板的方式应对目标变化,但对模板集进行逐一遍历的效率普遍较低。针对此问题,提出一种MNCC 的匹配方法用于评价形状周围的灰度特征,评价函数为
式中,tj和i表示模板灰度向量和检测图像灰度向量,μj和μ(r,c)分别为模板j和图像的灰度均值,sj和s(r,c)分别表示模板和图像的均方差。
由于是形变目标,多个灰度模板之间存在一定的差距,但类内模板之间的主分量是相似的。如果采用遍历的方式进行匹配,这些相似信息会被重复计算。如图5 所示,基于这一特点,利用聚类算法归纳模板集,将遍历查找转化为由粗到细的检出过程。对模板进行聚类,使用均值模板替代同一类模板的匹配,先进行模板的类间搜索,再进行类内搜索,减少重复计算。
图5 MNCC模板空间搜索示意Fig.5 MNCC template space search
聚类过程如图6所示。步骤如下:
图6 MNCC模板集聚类流程Fig.6 MNCC template set clustering process
1)设模板 样本集 为I={i1,i2,…,iM},im(1 ≤m≤M),离线制备模板时将模板进行配准,获得一组位姿P={p1,p2,…,pM},训练模板时将原始模板样本进行仿射变换,得到T={t1,t2,…,tM}。
2)首先在模板集T中找到距离最大的一组向量,采样余弦距离度量。具体为
如果距离小于余弦距离阈值(τscore),说明T中各模板差异过大,聚类直接结束;如果大于τscore则将这组向量聚为一类得到新类的初始均值;此后在模板集T中继续查找与类均值距离最大的向量,大于τscore则聚类,直到整个T找不到满足τscore的向量则此类聚类结束,包含nj个模板成员的类j均值为
3)重复步骤2)的聚类过程,待找不到任何一组向量距离大于τscore时,将剩余向量模板各自作为一类,聚类结束。
将模板集中的所有向量分类完毕之后,对整个模板集,包括类均值模板建立2 × 2 大小的均值金字塔。
式中,w和h为类均值模板的宽和高。
在线细匹配,分别对每个类别的候选集Xj在半径rj的范围内,使用所有类内模板遍历搜索,得到类内的最佳实例匹配,每个半径rj范围内只检出一个最佳目标,得到细匹配的候选集Xfine。
对细匹配目标集Xfine进行类间的非极大值抑制fNMS,得到最佳匹配位置xgray,即
至此,MNCC 的匹配过程结束,整个过程如图7所示。
所提方法主要针对具备精确形状特征的形变目标。一般情况下,形状特征与周围的灰度特征存在一定的相对位置关系;在没有引入其他先验信息的情况下,可认为目标形状与其相关联的灰度特征的位置变化服从二维独立正态分布,如图8 所示,形状特征在这个矩形范围内存在的概率满足
图8 目标形状特征位置在灰度特征范围内的概率分布Fig.8 The probability distribution of the target shape feature location within the grayscale feature range
如果令ε等于0.002 7,认为由于相对形变导致形状特征在灰度矩形范围内的概率满足3σ原则;分布的均值即是基准位置(x0,y0),已知矩形的长和宽分别为a和b,则有
式中,f(xobject,xgray)为灰度特征检出位置在xgray时,目标的真实位置在xobject的概率密度,f(xgray)是全局范围内灰度特征的概率密度,f(xobject|xgray)是一个条件密度,它表示在灰度特征位置已经确定的条件下xobject在矩形范围内各处的密度,这里认为符合一个高斯函数且在均值(x0,y0)处概率最高,偏离越远概率越低,而超出矩形的概率应当低于ε。式(14)中条件密度就是式(1)中高斯条件加权k(x)的设计来源,具体为
当形状特征与灰度特征都在基准位置时,形变评价为100%,距离越远评价的衰减越多,如图9所示。
图9 目标形变的高斯条件加权Fig.9 Gaussian condition weighting of target deformation
如图10 所示,首先在图像的全局范围内进行MNCC 多模板的目标检测,找到所有候选位置。在灰度特征的矩形范围内检测所有可能存在的目标形状,在高斯条件加权下,计算每种组合下的综合评分,筛选出评分最高的组合为目标的最佳检出位置。
图10 二阶段序贯检测流程Fig.10 The two-stage sequential detecting process
该方法能够仅用1 幅训练图像制备特征进行目标检测,并且能于在线过程中根据目标变化逐渐增加训练图像以适应目标形变,适合于工业流水线批量生产下的工业零部件高精度定位需求。
提出的方法主要面向工业目标检测定位,而来自于真实工业场景的测试集图像集很难找到,因此本次实验中用来测试的图像均为自行采集,且全部来源于真实机器人视觉应用场景,视觉计算机采用研华UNO-2484G,配置双核2.1 GHz-CPU,4 GB 内存。在背板、液晶、铝板和托盘定位场景中机器人使用了新松六轴工业机器人;在锁螺丝定位场景中使用了新松水平关节机器人。如图11 所示,图11(a)为生产线上液晶电视自动化高精度贴合应用场景,视觉通过3部工业相机拍摄背板模组和液晶玻璃的3个直角进行精确定位,并将相对位姿数据发送给机器人引导实现液晶与背板的高精度贴合;图11(b)为生产线上机器人视觉自动锁螺丝应用场景,视觉通过拍摄塑料后壳上的螺丝孔进行精确定位,并将定位数据发送给机器人引导实现自动锁螺丝的功能。
图11 测试图像场景Fig.11 Test images scenarios((a)robot vision TV automatic lamination;(b)robot vision automatic screw locking)
测试图像集包含5 类目标,共472 幅,正负样本数量基本接近,其中背板和液晶图像的采集使用Basler-aca2440-20 gm 搭配VS-35 mm 镜头,铝板和托盘图像采集使用Basler-aca2500-14 gm 搭配VS-8 mm镜头,螺孔图像采集使用Basler-aca1300-60 gm 搭配VS-6 mm镜头。具体数据信息如表1所示。
表1 测试图像集说明Table1 Test image set specification
在流水线批量生产之前就获得大量训练图像在实际应用中难以实现,故本次实验仅针对少训练样本的方法进行对比研究。参与测试的方法为SBM算法、NCC 算法、LINE2D 算法和YOLOv5s 算法,其中SBM 和NCC 算法为德国MvTec 公司的工业机器视觉软件HALCON 提供,LINE2D 算法为OpenCV 提供,YOLOv5s 算法为在github 下载的开源项目YOLOv5-v7.0版本。为了适应工业场景样本稀少的特点,实验对每种类别目标分别仅使用4 幅原始训练图像,经过数据增强的训练样本数目约为400 幅,在无GPU的条件下训练时间约为5 h。
从图12 可以看到,NCC 算法由于使用了整个图像块内的所有灰度特征,包含信息丰富,检测目标位置基本正确,但位置精度不高,如NCC 背板图像所示,由于右边塑胶条的向左移动导致检测位置出现轻微左偏;而SBM 算法使用的是边缘特征,位置精度最好,但由于使用的特征较为稀疏,算法抗干扰弱,尤其当形状约束弱、目标发生形变或场景出现大量相似干扰时,极容易出现误检。LINE2D使用梯度扩散法相比SBM 增加了柔性,但不同于自然场景,较强的柔性检测能力会大大降低在工业目标中的位置检测精度,因此这里梯度扩散参数设置为T=1,即便如此,在大量相似形状干扰下,算法检测效果依然不够理想。此外,在铝框检测中,SBM算法的圆弧形边缘偶尔会误检到其他位置,因为其他位置的干扰恰巧出现梯度方向和模板一致的情况;而提出的算法在高斯柔性的作用下,偏离模板基准位置越远惩罚越大,因此误检率大大降低。
在工业视觉目标检测中,往往可以通过调节相似度阈值Score控制不同类型目标检测任务中的正、负例判别。一般来说,较低的阈值会带来较高的召回率,而较高的阈值会带来较高的精确度,Score 在0.5~0.8 是最常用的阈值区间,对于大部分算法而言,它在召回率和精确度上是相对平衡的。
5种算法的召回率测试如图13所示,其中NCC和提出的算法在数据上表现明显优于其他两种算法,且在Score大于0.8之后逐渐优于NCC算法。一般来讲,严格的阈值对基于边缘一类稀疏但精确的特征较为有利;宽松的阈值对基于灰度一类稠密特征更为有利,特征面积越大包含不可控的特征点越多,整体评价一致的概率就越低,从而导致Score 大概率降低。从图13 中可以发现,在低阈值部分,SBM 和LINE2D下滑明显,而NCC相对缓慢,随着评分限制逐渐严格,NCC召回率下滑明显;而提出的算法综合了这两类算法的优点,在低阈值部分灰度特征没有受到抑制,而高阈值部分形状特征发挥作用使得整体表现均衡,只有阈值在0.95以上特别严格的时候才下滑显著。
图13 不同相似度阈值下的召回率曲线Fig.13 Recall curves at different score thresholds
召回率与精确度是相互制约的一对指标,F1-Score 评价为两者加权平均,可以综合评价算法表现。如图14 所示,提出的算法在Score 为0.5~0.8的4 组数据上均获得最佳表现,其中,在Score=0.6时获得了0.95的最高评价。
图14 在不同相似度阈值下F1-Score对比Fig.14 F1-Score comparison at different score thresholds
对于视觉检测任务,准确率也是一项关键指标,它预示着算法在保证位置精度的前提下多大概率能将正、负样本正确判别出来。实验分别对几种算法在各类目标上进行了对比测试,在严格满足定位精度,即交并比(intersection over union,IoU)大于0.9的条件下进行准确率的对比,相似度阈值score 分别取常用的0.6 与0.8,测试结果如表2 所示,提出的算法在液晶、铝板和螺丝孔3种目标上表现最优,只有在背板上表现稍微欠佳,如图15 所示,这是因为在测试集中负样本存在较多的近似直角特征,在保证召回率的前提下,为了获得最佳的像素定位精度,模板形状仅仅选择直角上一个局部特征;而在SBM 和LINE2D 算法的对比测试中发现选择小尺寸局部特征会大幅降低召回率和检测精确度,为了获得更佳的综合表现,只能适当增加模板边缘点的数量。综合来看,提出的算法表现更优。
表2 不同算法的检测准确率对比Table 2 Comparison of detection accuracy among different algorithms
图15 所提方法在背板检测时的情况举例Fig.15 An example of the proposed method detecting backplane((a)true positive detected;(b)false positive detected)
如图16 所示,在与YOLOv5s 的对比测试中发现,当检测金属托盘出现镜像对称目标以及负样本中出现外观相似的螺丝孔时,算法均作为阳性检出,这一方面体现出YOLOv5s 即使在稀少样本条件下依然具备不错的泛化能力;另一方面,在工件型号确定且目标类内特征变化不强的工业场景下,这种泛化性会增加一定程度的误检发生,从而降低算法的准确率。
图16 稀少样本下YOLOv5s出现的误检情况Fig.16 False detection of YOLOv5s under rare training samples((a)mirroring symmetrical target of metal tray;(b)similar screw hole target)
提出的方法并未实现如多项式插值或最小二乘拟合的方式获得亚像素精度,仅返回像素的定位结果。SBM 和NCC 算法由于是HALCON 提供,均会返回亚像素的检测结果,OpenCV 提供的LINE2D 算法也只是获得像素级检测结果。一般的工业应用往往会通过增加相机感光元件像素数量或增加物理分辨率的方式获得满足需求的系统精度,这样待检测目标的边缘往往可以获得几个像素的宽度,一般在理想检测位置附近的几个像素甚至十几个像素内即可满足需求,因此亚像素的结果在本次实验中影响很小。本次测试中,在IoU 为0.6 以下的检测结果偏离基准值过远,会为整个定位系统带来较大的影响,可以认定为误检,无法满足定位需求,而IoU 大于0.9 时属于表现优秀,因此实验在IoU 为0.6~0.9 的阈值区间内进行对比测试。测试图像的基准位置数据采用人工标注方法得到。检测目标的相对标准位置距离为
式中,wbox和hbox分别为包围框的宽和高。如果结果为真正例,则计算当前检测位置(u1,v1)与标注位置(u0,v0)的欧氏距离;当结果为假负例时,则计算刚好不满足阈值τIoU时检测位置相对标注位置的欧氏距离。
如图17所示,5种算法的整体定位精度随着IoU阈值的增加而提高,提出的算法在IoU为0.9时的平均定位偏差为2.44 像素。其实基于形状的检测方法在理论上的定位精度应该是最高的,但在测试集里反而明显低于基于灰度的方法,这是因为形状边缘属稀疏特征,导致假阳率较高,增加了式(16)对平均距离的评价,在真正例的部分中定位精度依然优于基于灰度的方法。一个优秀的目标检测算法不仅要获得较高的定位精度还应具备较高的真阳率和较低的假阳率。从表3 可知,提出的算法在假阳率方面表现最佳,在真阳率方面虽然不如NCC 算法,但依然表现差距不大。
表3 不同IoU阈值下检测的真阳率和假阳率Table 3 True positive rates and false positive rates under different IoU thresholds
图17 不同IoU阈值下目标定位的平均像素距离Fig.17 Average pixel distance at different IoU thresholds
此外,提出的方法在工业机器人视觉液晶电视精确贴合系统中得到了应用,在背板模组形变幅度2 mm的情况下实现了0.05 mm的精准定位,满足了对于工业机器人完成电视液晶与背板高精度贴合的要求。
NCC 和SBM 方法本质上都是基于向量的卷积运算,时间复杂度较高,为O(n2);而使用积分图法改进的NCC 的时间消耗与模板窗口大小无关,具备线性复杂度;SBM 方法的实现通常会与金字塔下采样方法相结合,通过自顶向下、由粗到精的搜索方式达到提升效率的目的(Steger,2002)。本文方法是一种改进方法,理论上与NCC 和SBM 运算效率接近。然而,HALCON作为一款优秀的工业视觉软件在算法并行化和CPU指令级运算上进行了大量的优化,使得最终的运行效率大幅领先其他3种方法,如表4所示,基于HALCON软件平台的NCC和SBM两种算法在500万像素图像上的运行时间均在0.05 s以内;理论上,当梯度扩散参数T=1时,LINE2D与SBM的算法原理相似,复杂度接近,然而OpenCV_Contrib 模块提供的LINE2D代码运行时间达到了0.67 s,为5种测试算法中效率最低。YOLOv5-v7.0总共提供了5个版本的参数模型,其中YOLOv5s属于最轻量化的一款;此外,它在正向推理过程中统一将图像采样为640 × 480像素进行计算,使得在无GPU的计算机上运行时间达到了0.2 s左右,具备较高的运算效率。从表4中可知,测试的5种方法均可以达到在线检测的目的。
表4 不同算法的平均运行时间Table 4 Average runtime of different methods
本文提出一种融合边缘与灰度特征的形变工件精准定位方法,在检测的两个阶段中,分别提出了MNCC 方法和T-SBM 方法,其中MNCC 方法利用多模板的灰度特征负责在复杂场景中检出形变目标,T-SBM 方法通过截断局部反转梯度,削弱负向贡献,提升形状模板的定位精度与鲁棒性,最后通过高斯密度评价将两种特征相结合,使得算法同时具备两类方法的优点。实验部分将本文提出的方法与其他4 种方法进行了对比测试,在由真实工业图像制成的测试集上的对比实验表明,提出的方法在检测准确率、召回率和F1-Score 指标上的平均表现优于其他几种方法,在平均像素定位精度上也表现最佳。该方法在检测由拼装、冲压或贴合等工艺造成的形变工件目标时具备较好的鲁棒性和定位精度,在工业视觉定位领域具备一定的应用价值。