高旭升 陈晓荣 王原野 王子旋 徐挺
关键词:边缘检测;模板匹配;直线拟合;图像金字塔
0 引言(Introduction)
随着铝材需求的增加,铝材的入库和出库频率相应增加,准确统计铝材数量对库存调配愈发重要。传统的统计方法通常依赖人工清点计数,但是人工计数方式不仅效率低下,而且无法确保统计数据的准确性,此外铝材存放环境复杂、堆积量大,在这样的环境下采用人工计数方法统计铝材的入库和出库数据存在巨大的安全隐患。
目前,自动化技术[1-2]在各个领域都有应用。在铝材数量统计方面,采用自动化技术可以提高统计效率和统计结果的准确性,同时降低作业风险。自动化的铝材数量统计方法使用计算机视觉算法和图像处理技术实现对铝材数量的识别和计算,为解决传统人工计数方式存在的效率低、耗时长及无法保证统计结果准确性的问题提供了较好的方案。
1 相关研究(Related research
CHEN等[3]提出了一种基于深度学习的YOLOv4模型,通过无人机采集图像对杨梅树数量进行统计的方法。SOZZI等[4]提出了一种使用YOLO模型对每株葡萄树进行自动化计数,实现对葡萄产量的估算。CHOWDHURY等[5]提出了一种使用无人机捕获图像并结合YOLOv5模型对棕榈树进行计数的方法。上述基于深度学习算法的检测方法需使用大量的图像进行训练且训练结果不能预期。冯书庆等[6]借鉴模板匹配的方法,设计了一种图像分割扫描及特征匹配的模板检测算法,提出了一种基于机器视觉的鱼类目识别算法。杨俊杰等[7]提出了对图像金字塔顶层使用Linemod-2D(基于特征匹配的快速目标识别算法)的快速查表法,并结合Otsu(最大类间方差法)算法和自动双阈值分割法对多目标工件进行快速识别定位及分拣。应捷等[8]运用仿射变换和模板匹配的方法对道路车位进行识别并计数。上述方法虽然不必使用大量图像进行训练,但是在面对复杂图像时,其识别速度较慢、召回率较低。
本文通过基于双阈值的Sobel边缘检测算法提取模板轮廓,针对轮廓可能会出现断续、凹凸不平等问题,采用直线拟合算法求出最优的模板轮廓,提出一种基于图像金字塔裁剪的改进图像金字塔算法,并在此基础上进行模板匹配,实现对铝材的准确计数。
2 模板轮廓提取(Template contour extraction)
本研究检测所用图像均由相机拍摄,采集到的铝材待测图像如图1所示。
检测所需图像处理操作如下:首先进行图像预处理,使用Sobel算法进行边缘提取、直线拟合,其次采用经过改进的图像金字塔算法进行多目标模板匹配等操作。测出图像中每个板材的位置,并将检测结果显示在板材对应位置。图像处理流程图如图2所示。
2.1 图像预处理
为简化图像处理过程,需要将采集到的图像转成灰度图像,减少计算量。采集的图像易受到光照、曝光等因素的影响,容易出现局部模糊、细节丢失等情况,因此需对图像进行细节增强。
为 了增强图像细节,经多组实验对比,采用导向滤波[9]对图像进行增强,平滑图像边缘的同时,图像的整体细节也可以得到很好的控制;实现原理如公式(1)和公式(2)所示:
其中:pi 为输入图像,Ii 为导向图,qi 为滤波后的输出图像,系数ak 和bk 是对导向图Ii 进行线性变换的参数,ni 可以看成为输入图像的纹理和噪声。
原图像如图3(a)所示,预处理后的结果图像如图3(b)所示。通过图3可以观察到,通过导向滤波处理后的图像对比原图像,边缘更加平滑、细节更加清晰。
2.2 模板轮廓预处理
对图像进行预处理后,需要选择合适的模板进行模板匹配,选择的模板通过图像预处理后如图4(a)所示。本文通过Sobel边缘检测算法对预处理后的模板图像进行边缘提取。Sobel边缘检测算法的优点是具有较高的抗噪声和抗干扰能力,但在处理复杂背景的图像时,无法严格区分背景和所需提取的图像,可能导致提取的图像边缘轮廓模糊[10]。因此,本文引入滞后阈值法,用于优化Sobel算法对边缘轮廓的提取[11]。該方法设置高低阈值各一个,并通过遍历像素的方法进行比对。高于高阈值的像素点,认为是强边缘,予以保留;低于低阈值的边缘点,认为是弱边缘,予以舍弃;对于介于高低阈值的像素点,如果该像素点连接强边缘时,予以保留,如果连接到弱边缘时,予以舍弃。对经过预处理后的模板图像,运用Sobel边缘检测算法提取的模板轮廓如图4(b)所示。
使用Sobel边缘检测算法提取的模板轮廓并不适用于直接匹配模板。如图4(b)所示,Sobel边缘检测算法检测到的边缘可能会出现断断续续、凹凸不平的问题,因此如果直接使用该模板轮廓进行匹配,会产生许多错误匹配,并且召回率较低,无法满足实际应用的要求。为了优化模板轮廓,需要对Sobel算子提取的模板轮廓进行直线拟合。
2.3 直线拟合算法
由于最小二乘法[12]对直线拟合是将时间序列中各项数据予以同等对待,直接使用最小二乘法对模板轮廓进行直线拟合,最终得到的结果并不理想。这是因为所要得到的模板轮廓不是一条简单的直线,而是对模板图像最贴合的边缘。基于加权最小二乘法的拟合,通过对临近的像素点赋予较高的权重,对较远的像素点给予较低的权重,因此能得到更真实的模板图像轮廓[13]。加权最小二乘法采用指数权数Wn-1,0
对图4(b)进行直线拟合后,得到的模板轮廓如图5所示。从图5中可以清晰地看到直线拟合后的模板轮廓与真实的模板轮廓非常接近,相比Sobel算法提取的模板轮廓更加准确。图5可以作为模板轮廓进行匹配操作。
3 模板匹配(Template matching)
模板匹配的原理是将一个预定义的模板或样本图像与目标图像进行比较,通过计算它们之间的相似度或差异度确定匹配的位置。传统的模板匹配方法采用遍历的方式,在原图像上从左到右、从上到下以像素为单位采用滑动方式进行匹配。在每个像素位置,将原图像中与模板图像大小相同的区域截取出来,并进行像素值比较运算,找到最佳匹配位置或最高相似度得分[14]。
由于传统模板匹配方法是采用遍历的方式进行搜索,因此存在匹配时间长、内存消耗高等缺陷,不适用于大规模检测计算。本文引入图像金字塔算法对模板匹配进行加速。
3.1 图像金字塔算法
图像金字塔算法[15]是一种多尺度图像处理技术,用于在不同分辨率下对图像进行分析和处理;它以金字塔的形式表示图像的多个尺度,每个尺度对应图像的不同分辨率,通常包括两个主要步骤,通过重复进行向下采样和向上采样,可以构建图像金字塔。每个金字塔级别都对应于原始图像的不同分辨率。常见的图像金字塔算法有高斯金字塔算法和拉普拉斯金字塔算法。
如图6所示,金字塔底部为高分辨率图像,顶部为低分辨率图像,将一层一层的图像比喻成金字塔,层级越高,则图像越小、分辨率越低。
将图像金字塔和传统模板匹配方法相结合,先使用图像金字塔算法生成一系列不同尺度的图像,然后将模板放在金字塔最高级别(即最高层)进行匹配。在当前级别的金字塔中找到一个匹配位置后,可以将该匹配结果传递到较低级别的金字塔中,作为下一级别的初始估计。重复以上步骤,在下一级别的金字塔中继续匹配过程,直到达到金字塔的最低级别。通过这种迭代的方式,可以在不同尺度的图像中搜索匹配,从而提高匹配的效率,有效地解决传统模板匹配效率较低的问题。本文采用高斯金字塔算法对原图像进行连续的下采样生成用于模板匹配的金字塔。
3.2 改进的图像金子塔算法
采用基于圖像金字塔的算法对模板匹配进行加速,虽然在匹配速度上已经有了很大的提高,但是未能满足实际应用的要求。因此,本文提出了一种更高效的图像金字塔算法,具体步骤如下。
(1)创建图像金字塔:使用高斯图像金字塔算法生成不同分辨率的图像金字塔,其中包括多个层级。
(2)确定中间层级:根据匹配需求和图像金字塔的层级数,选择适当的中间层级作为匹配的目标层级。
(3)在中间层级进行搜索:使用图像金字塔裁剪算法,在选定的中间层级上进行匹配搜索。具体步骤如下:①计算金字塔尺寸:根据输入的图像金字塔,由函数确定金字塔的总层数以及每个层级的尺寸。②确定层级范围:根据输入的起始层级和结束层级,确定需要保留的层级范围。③获取指定层级的图像域:由函数根据指定的层级从金字塔中获取对应的图像域。④裁剪图像域:对金字塔中的每个层级的图像域进行裁剪,保留指定层级范围内的图像域。裁剪操作可以调整图像域的尺寸,使其符合指定范围。⑤返回结果:由函数返回一个新的金字塔,其中仅包含在指定层级范围内的图像域。
(4)结果映射回原始图像:根据中间层级的匹配结果,将结果映射回原始图像的坐标系统,这样可以得到原始图像上的匹配结果,包括每个匹配的中心坐标和偏移角度。
4 实验和结果(Experiments and results)
为了对本文提出的改进的图像金字塔算法的实际效率进行验证,使用同一图像数据集对本文提出的算法、传统方法及图像金字塔算法进行多组实验,对各类算法的耗时进行统计,不同算法的耗时结果如表1所示。
根据表1中的数据可以得出以下结论:在相同的实验条件下,传统算法的执行时间较长,而图像金字塔算法极大地提高了传统算法的效率。本文提出的算法在图像金字塔算法的基础上进行了改进,取得了显著的效果。
为了验证本文所提算法的有效性,进行多组实验,部分实验结果展示如图7和图8所示,检测结果用加粗线条表示。
如图7所示,铝材1的实际数量为76个,检测结果为76个;如图8所示,铝材2的实际数量为105个,检测结果为99个。
为了对算法的有效性进行判断,根据实际应用中的几个关键指标进行数据采集,记录的实验数据如表2所示。
根据表2中的数据可以得出以下结论:本文提出的改进算法在匹配耗时及召回率方面均有良好的表现,平均检测准确率达到98.4%,匹配效率相较于传统图像金字塔算法提升了37.0%,漏检率和误检率都在可接受的误差范围内,本文所提算法满足实际应用要求。
5 结论(Conclusion)
本文采用基于双阈值的Sobel边缘检测算法进行模板边缘的提取,结合基于权重的直线拟合方法对模板轮廓进行优化处理,提出改进的图像金字塔算法对入库铝材进行计数检测。实验结果表明,该算法具有召回率高、识别效率高等特点,可满足工业生产的实际检测要求。但是,本文提出的检测方法在面对目标被遮挡或堆叠的情况时存在漏检和误检的情况。为了解决这些问题,希望未来的研究可以利用目标周围的上下文信息辅助检测过程,例如通过对目标与背景之间的关系或目标与其他目标之间的关联进行建模,提高检测的鲁棒性,减少误检和漏检情况。