基于关键点匹配的烟包标签错误检测算法
2021-11-25王家寿袁湘云王保云
王家寿,李 达*,袁湘云,葛 文,王保云
(1.红云红河烟草(集团)有限责任公司,中国 昆明,650231;2.云南师范大学数学学院,中国 昆明,650500)
在烟盒包装过程中,标签粘贴错误是一种常见的系统问题。此类错误的产生具有偶发性、突发性、间断性等特点,包装机操作工人无法控制,包装设备又不能杜绝该类不合格烟包的产生。为了找到不合格烟包,需耗费大量的人力物力,降低了设备效率。该类有外包质量缺陷的不合格烟包最终有可能直接进入市场,这将严重影响企业的产品质量和声誉。因此,如何实现错误标签的自动识别成为亟待解决的问题。
沈涛等[1]运用多光谱分析对烟包外观进行检测,实现了包装纸和透明纸的同步检测。颜西斌[2]从视觉感知的角度提出了一种新的特征提取算法,可以实现条烟中小包缺失与破损、烟支缺失与错排等问题检测。赵众等[3]结合边缘检测和Radon变换了实现烟包封条的缺陷检测。冯玉[4]认为视觉系统在不合格烟包的发现与剔除过程中,起到了重要的作用。沈宇航[5]、陈海需[6]、常灿[7]等人对烟盒内衬纸缺陷、烟包封条、烟包外观的错误检测进行了较为深入的讨论。以上这些方法运用视觉系统、传感系统等对卷烟流水线上错误进行针对性的检测与识别,能够有效降低生产线的废品率,在生产过程中实现提质降耗。但是对于标签粘贴错误这一常见问题,却鲜见针对性研究。
本文在尺度不变特征变化(Scale-invariant feature transform,SIFT)算法[8]的基础上,设计了一种基于关键点匹配的烟包标签错误检测算法,能够较为精确地识别标签倾斜、折角、位移等粘贴错误。
1 烟包标签错误类型
由于包装机的高速运转经常受到设备工况、物料质量的影响,产生标签粘贴错误。常见错误类型包括标签偏移、倾斜、折角等,如图1所示。
图1 烟包标签错误类型
标签向上和向下偏移是比较常见错误,如图1中(a)和(b)。倾斜和折角(严重的翘边)也是较为明显的标签错误,图1(c)为标签倾斜,图1(d)和(e)为折角。在包装机上,烟包移动方向为恒定的,所以标签的倾斜和折角也只偏向一个方向。
在图1的错误图像中,可以看到除了前面所述的明显错误之外,还存在褶皱、轻微翘边和撕破等问题。由于这些错误较为轻微,且均与上下偏移、倾斜和折角等错误相伴出现,所以本文重点探讨标签的垂直位移、水平位移、倾斜和折角这4类错误问题。
2 基于SIFT算法的烟包标签关键点匹配
SIFT算法是David Lowe于1999年提出并进一步改进的关键点匹配算法[8-10]。SIFT算法对旋转、尺度缩放、亮度变化不敏感,在角点检测、物体识别、图像配准等领域得到了广泛的应用。
2.1 关键点检测
在SIFT算法中,首先定义图像的尺度空间[11]为
L(x,y,σ)=G(x,y,kσ)*I(x,y),
式中k为尺度变化量,σ为尺度参数,I(x,y)为原始图像,G(x,y,kσ)为尺度可变高斯函数,L(x,y,σ)为I(x,y)在尺度σ下的表示。
为保证后续特征点检测的稳定性,一般采用不同高斯差分核(Difference of Gaussian, DoG)与图像卷积生成高斯差分空间:
D(x,y,σ)=L(x,y,kσ)-L(x,y,σ)。
在高斯差分空间中,寻找局部极大值和极小值点,并对这些点坐标和尺度通过精确定位,得到局部关键点,形成关键点集
2.2 关键点特征提取
对于关键点,计算其所在高斯金字塔图像3σ邻域内的梯度与方向分布。将相同梯度方向的梯度幅值进行累计,得到关键点的梯度统计函数c(grad)。对c(grad)求极值,即可得到当前关键点的3σ邻域内的梯度方向dmax和幅值。
对所得到的关键点,将相应尺度的16×16邻域旋转角度dmax,使其与该点主方向一致。然后将其分成4×4的子块,共有16个子块。对每一个子块,计算其8个方向的导数。这样,就可以形成关键点的16×8=128维描述特征。
2.3 关键点匹配
2.4 匹配结果分析
由于参考图像与待匹配图像中标签部分较为相似,关键点匹配过程也是粗定位过程。直接应用SIFT进行关键点匹配,效果并不理想,如图2所示。在图2中,第(i)行为标签参考图像及其分区示意图,(ii)行为SIFT检测结果,(iii)行为改进算法的检测效果(算法详见第4节)。第(ii)和(iii)行中的五幅图像,分别与图1(a)~(e)对应。为方便显示,在图2(ii)和(iii)行中均将标签参考图像移到待匹配图像的上中部。
图2 关键点匹配情况
从图中可以看出,SIFT算法的失配点较多,图1(b)和(c)的失配率均超过80%。匹配错误的点对所占比例也较高,图1(b)和(d)的错配率都超过25%。详细的统计信息见表1。
另一方面,由于只考虑局部梯度,导致参考图像和待匹配图像中存在大量的相似点对,如图3所示。在图3中,参考图像中的点之间的相似性超过0.9,待匹配图像中的点亦如此。图3(a)和(b)中标有“o”的点为最佳匹配点,相似度高达0.963 2。同时,图3(a)中标“o”的点与图3(b)中其它点的相似度最高可达0.928 8。根据匹配规则,二者失配。可见,由于点之间的相似性,会导致本来应该正确匹配点对出现失配的情况。同样的问题也出现在图3(c)和(d)中,最佳匹配点相似度为0.946 1,因为次佳匹配点相似性为0.930 2,多个点过于相似,只能判定为失配。
图3(e)和(f)、图3(g)和(h)展示了类似情况,只不过最佳匹配点对是错误的。在图3(e)和(f)中,标有“o”的一对点,虽然并非匹配点,但相似性高达0.958 2,在图3(g)和(h)中的相似度为0.932 3。
图3 关键点自相似点簇与失配情况
由于SIFT算子不适用于此类场景,导致失配率、错配率比例很高,无法进一步计算标签错误类型。
3 基于关键点匹配的烟包标签错误类型检测算法
烟包的成像环境较为稳定,整个成像过程中光照和设备工况基本不变,这使得图像的色彩、明暗、成像角度和成像距离的变化都不大。所以,关键点的颜色空间、显著度信息可以作为新的特征。本文提出基于多特征联合的烟包标签错误识别算法,算法流程如图4所示。
图4 标签错误识别流程
首先对参考图像和待匹配图像都运用SIFT算法进行关键点提取,并在此基础上提取关键点的色彩、显著度等扩展特征;接着进行相似点簇聚类,同时进行对应关系评估;然后依据关键点匹配结果进行标签参数计算;最终根据标签参数得到错误类型。
3.1 基于SIFT关键点提取的扩展特征描述子
根据前述分析可知,对于同一类型烟包,外观颜色、形状、图案均相同。再加上成像设备与实物距离不变,成像光照环境较为稳定,使得图像数据的光照、对比度差异较小,故而所得烟包图像具有以下特征:
(1)烟包图像之间的空间分辨率不变;
(2)烟包图像之间的颜色差异很小;
(3)烟包图像在整幅图中的位置较为固定。
关键点和局部显著度特征[12]采用如下公式计算:
结合上述二者,得到扩展特征
3.2 相似点簇聚类与对应关系评估
对应关系评估包括相似点簇匹配校正和基于聚类的错误匹配去除。
对类别特征向量进行K-means聚类,得到不同点对类别集。因为正确匹配的点对较为集中,所以点对数目最多的类别即为正确匹配的类别,其它类别为错误匹配的类别。
通过上述步骤,可以大幅提升配准率,同时降低错配率,如图2中(c)行所示。表1中给出了图1(a)~(e)的关键点匹配情况。表中失配率和配准率表示失配点数和配准点数占参考图像关键点总数的比例,错配率表示已配对的点对中匹配错误的比例。可以看出改进前的匹配率较低,最为主要的是错配率过高,导致无法计算标签参数,也就难以判断标签的错误类型。而改进之后的算法,在提高配准率的同时,大大降低了错配率,错配点接近为0,匹配效果较好,在此基础上可以很方便地计算标签的错误类型。
表1 关键点匹配情况统计
3.3 标签参数计算
图5 标签参数计算
标签参数计算分为位置判断、倾斜角计算和折角计算。位移计算主要是计算参考图像的A,B,C和D共4个区域的关键点匹配情况,判断标签是否出现垂直方向和水平方向的位移。倾斜角计算是标签的倾斜程度。折角计算主要是计算4个区域被折叠的程度,折角大多发生在D区域。
式中,m0和mref分别为参考图像的中心点和待匹配图像中标签的中心位置。ΔS的第一分量为水平位移,第二分量为垂直位移,正数为右移和下移,负数为左移和上移。
4 结果与分析
4.1 标签错误参数计算
对图1中5幅具有代表性的标签错误图像进行参数计算,得到结果如表2。
表2 错误标签的参数值
从表中可以看出改进的算法能够大幅提高参数值的精度。在图1(a)中,其错误类型为标签下移,移动幅度为16像素,SIFT算法计算结果为18像素,而本文算法与真实值一致。图1(b)中,标签发生了严重的上移,移动幅度为35像素,导致区域A和B没有成功匹配点。这时用SIFT算法的话,由于错配点较多,使得计算误差较大。其它图1(c)-(e)也是类似的情况。
4.2 错误类别判断
实验共使用了3 000张图像进行测试,其中标签倾斜480张、折角455张、垂直位移546张和水平位移426张,其余1 093张为标签粘贴正确的图像。为方便比较不同类型错误的严重程度,以下列3组公式来归一化错误参数:
d垂直移动率=垂直位移值/垂直位移最大值,
d水平移动率=水平位移值/水平位移最大值,
d左倾率=左倾值/左倾最大值,
在垂直移动中,上移情况较为严重,最高可达70像素,因此垂直移动最大值取70像素。标签的水平移动方向都是向左(顺着烟包移动方向),一般移动像素不超过80像素,因此水平移动最大值取80像素。同样地,左倾最大值取45像素。
对于烟包进行检测时,检测垂直位移、水平位移、左倾和折角的比率,以最大值对应的类型来判定图像的错误。识别率计算公式为
p识别率=正确识别张数/该错误类型张数×100%,
漏检率计算公式为
虚警率计算公式为
检测结果如表3所示,可以看出本文算法对于常见的标签错误识别率均超过99%,且虚警率和漏警率均低于5%。
表3 错误类型判断
5 结论
针对烟包标签参数计算与错误类型识别问题,提出了基于关键点匹配的烟包标签错误检测算法。首先改进了SIFT算法,运用扩展特征、相似点簇聚类与对应关系评估等提高了关键点的配准率。在此基础上,计算标签的参数,并据此计算标签的错误类型。算法主要的贡献为:
(1)运用扩展特征、相似点簇聚类和配准关系评估等方法,改进了关键点匹配算法。
(2)实现了烟包标签错误的准确检测。
在本文实验中,成像环境较为稳定,图像中除标签外的背景部分也较为一致,这为本算法的实现便利之处。同时,这也是本算法的局限性所在。当图像中背景部分变化较大时,需要对标签部分和背景部分进行更为复杂的识别,这是以后工作的方向。