基于Opencv的图像多目标模板匹配算法 计算机论文

王丛政 李启光

摘 要 在箱体的图像采集与分割过程中,由于角度、光线的影响,使得模板图像与待匹配图像中相同目标图像因为角度变化和色差等原因影响,使得匹配成功率并不理想,存在无法匹配到目标箱体或者匹配偏差较大的问题。这里创新性的采用了一种新的图像预处理方法,使用边缘检测算子与膨胀的组合方法,对模板与待匹配图像进行处理,使用处理后的图像进行匹配。通过与传统方法的实验对比,实验结果表明,新的方法在图像在存在色差和一定旋转角度时,仍然具有较高的匹配率。

【关键词】边缘检测 模板匹配 膨胀 角度 匹配率

随着京东天猫自营仓库的发展,大型的仓库应运而生,人力取货装箱的运作方式越来越不能满足公司运作的要求,企业迫切的需要一种高效的取货方式代替人工取货。

随着视觉与机器人技术的发展,采用视觉结合机器人取货的方式变成了一种可能,国内外各大网商纷纷开始了机器人取货的尝试,亚马逊在研究和实践上走在了前沿,采用托盘机器人将放置货物的货架运送到装箱人员的工位,员工取货后,物流小车将货架再运回货架原来所在的地方。但是此种方法在货物较小,货架较小,货架数量不多的情况下可以运行良好,但是对于货物体积过大,数量较多,货架体积较大,层数过多的情况下,采用物流车运送货架移动的方式显然不够优秀。所以采用货架固定,机械手在货架上上下左右移动取货的方式被提出并得到尝试。

箱体分割方法最常用的方法是边缘检测的方法,采用canny算子等边缘检测算法检测采集来的箱体边缘,使用矩形边缘检测算子,将单独箱体的轮廓找到进而实现独立箱体的分割。此种方法在箱体图案较为简单,箱体之间的边缘较为清晰的时候,可以取得较好的效果,但是当箱体图案较为复杂,箱体显色较重,箱体之间靠的过于紧密,箱体之间缝隙过窄,将会造成边缘检测时无法检测出轮廓,或者检测出过多错误边缘的情况存在。对于独立箱体分割,本文提出了一种全新的独立箱体搜索提取方法。

1 实现过程

模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标。以模板匹配为基础,结合一定的循环算法,便可实现多模板多目标的检测和分割。模板匹配实现函数为:

matchTemplate( g_srcImage, g_templateImage, g_resultImage1, g_nMatchMethod );

2 图像预处理算法

2.1 边缘检测算法

图像的边缘是指图像局部区域亮度变化显著的部分, 该区域的灰度剖面一般可以看作是一个阶跃,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。 图像的边缘部分集中了图像的大部分信息, 图像边缘的确定与提取对于整个图像场景的识别与理解是非常重要的,同时也是图像分割所依赖的重要特征,边缘检测主要是图像的灰度变化的度量、检测和定位。实现代码为:

void Canny(InputArray image, OutputArray edges,double threshold1, double threshold2,int aper- ture Size = 3, bool L2gradient = false);

模板匹配过程中,影响模板匹配准确率的因素很多,光线,拍摄角度,箱体颜色氧化等原因会导致模板与待匹配图片中的相同特征存在一定的色差,为了排除色差所带来的匹配误差,需要将色差因素排除掉,使用的方法就是使用邊缘检测算法,将边缘特征作为模板匹配的唯一依据,虽然图像会之间会存在色差,但是不会影响他们的边缘特征,将模板和待检测图片的边缘特征提取出来,消除了色差所带来的影响,大大增加了匹配的成功率。

相同的图片经过处理变成了色差较大的两幅图片,在模板匹配中,因为颜色差异较大,会出现匹配失败的情形,但是将两幅图片使用边缘检测后,发现他们的边缘图像完全一样,边缘特征没有因为颜色的改变收到影响,所以使用边缘特征作为模板匹配的依据,可以大大的增加模板匹配的抗干扰性和成功率。

2.2 图像膨胀算法

形态学是图像处理的一种重要数学工具,已广泛应用到计算机视觉、模式识别、遥感监测和生物医学影像等领域。在图像处理中,通过膨胀形态学基本操作,可以对图像进行相关处理。模板匹配中,角度造成的匹配失败也是不可忽略的问题,因为待匹配图像在采集的过程中,因为货物摆放的问题或者摄像头的旋转问题,导致模板图像和待匹配图像存在一定的角度旋转误差,对于图像中一些字符和较细的线条,微小的旋转角度就可能导致特征重合率较大的降低,所以提高旋转角度引起的匹配失误也是必须解决的问题。

采用图像膨胀算法,将图像中的边缘间隙较小较密的的特征膨胀成较大的块状区域,较细的边缘特征膨胀成较粗的区域,当边缘特征增粗面积增大后,即使有一定角度的旋转变化,也会有较大区域的特征重合,大大增强了模板匹配的成功率,实现代码为:

Mat element = getStructuringElement ( MORPH_ RECT , Size (3, 3) );

dilate(src,src, element);

3 循环算法

待匹配图像如下图,图中有多个与模板图片相同的箱体,而模板匹配算法是逐点扫描全图,找出匹配值最佳的位置,所以一次扫描只能找到一个箱体的位置,而且图中箱体的位置因为摆法的问题,出现了四种不同的形式,同一个模板无法满足搜索到所有箱体的需要,要想既能把每种摆法的箱体全部搜索到,又能把所有摆放形式也搜索到,需要采用一定的搜索算法。循环搜索算法由模板旋转算法,掩膜覆盖算法,特征点匹配算法三部分组成,保证待匹配每一个不同摆法的箱体都可以被搜索到。实现代码为:

3.1 模板旋转操作

首先加入模板旋转算法,每次循环结束,使用图像旋转算法将模板旋转90度,然后进入下一次循环,每一次新循环的开始,都在上一次循环使用的模板基础上旋转90度,这样就可以使每种摆放形式的箱体都可以被搜索到。实现代码为:

Mat rotate_90(Mat img)

{

transpose(img, img);

flip(img, img, 0);

return img;

}

3.2 特征点检测

其次是确保每种摆放形式的循环中,可以将此种摆法的所有箱体全部搜索到,因为模板匹配算法是基于匹配最佳值来确定匹配位置的,所以即使相应摆法的所有箱体都已经找到,也还是会找到一个最佳匹配点,而这个匹配点是错误的,所以需要一定的条件来结束循环。使用SUFT 算法与FLANN 算法相结合的图像匹配方法来判断模板匹配的正确与否,根据匹配成功的特征点的数量判断两幅图是否匹配成功。SURF 是在 SIFT 算法的基础上提出的一种快速鲁棒特征提取的配准算法。SURF 算法不仅对于图像旋转、平移、缩放和噪声影响具有较好的鲁棒性。每次模板匹配后,判断匹配区域与模板图的相似度,达到要求繼续搜索,不满足条件则结束循环,此次摆放形式的搜索完成。

3.3 掩膜覆盖

对于搜索成功的区域,下次搜索肯定还会搜索到这个区域,所以搜索过的地方需要排除,使下次搜索的时候不会搜索到这片区域。这里采取了一种掩膜覆盖的方法,当待匹配一块区域与模板图片匹配成功,我们将此区域使用黑色或白色掩膜进行覆盖,在新一轮搜索中此区域特征便不会干扰搜索,模板匹配算法会找出新的最佳匹配点。实现函数为:

cv::Mat image = cv:: Mat:: zeros ( temp_Image.rows , temp_Image.cols, CV_8UC3);

image.setTo(cv::Scalar(0, 0, 0));

cv::Rect roi_rect = cv:: Rect (matchLocation.x , matchLocation.y, temp_Image.cols, temp_Image.rows);

image.copyTo(srcImage(roi_rect));

rectangle( srcImage, matchLocation, Point( matchLocation.x + temp_Image.cols , matchLocation.y + temp_Image.rows ), Scalar(0,0,255), 2, 8, 0 );

4 实验结果分析

本文在单模板匹配算法之前加入了图像预处理算法,增强了模板匹配在色差和角度干扰的匹配率,通过加入循环算法实现了多摆放形式的多模板匹配任务。实验中我们选择了如图1与2所示的模板图与待匹配图片,经过边缘检测算法和图像膨胀算法生成了图3、4,使用图3、4作为模板匹配的图像,结合特征点检测算法、掩膜覆盖算法、循环算法实现了箱体分离的任务,实验结果如图5。

5 结论

通过合理的使用图像的预处理算法,对图像进行处理,消除了模板匹配时色差所带来的影响,大大增强了角度变化对模板匹配的干扰,提高了模板匹配的正确率,使模板匹配算法更具实用性。

参考文献

[1]郑亚红.物流中心仓储搬运设备信息管理与系统设计.西南交通大学硕士论文,2008.

[2]程娟,唐岫等.现代企业仓储物流的发展模式与对策[J].物流工程与管理,2013(06):34-35.

[3]田娟,郑郁正.模板匹配技术在图像识别中的应用[J].2008,27(01):112-114.

[4]John Canny.A Computational Approach to Edge Detection[J].IEEE Trans Pattern Analysis and Machine Intelligence,1986,10(12):679-697.

[5]GONZALEZ R C,WOODS R E.Digital Image Processing [M].3rd Edition, Beijing:Publishing House of Electrnics Industry,2006:429-468.

[6]王树文,闫成新,张天序等.数学形态学在图像处理中的应用[J/OL].计算机工程与应用,2004,40(32):89-92.

[7]郭鲁,魏颖.SUFT算法与改进的Harris 算法相结合的图像匹配方法[J].黑龙江科技信息,2014(36):98.

作者简介

王丛政(1991-),男,山东省人。硕士研究生,主要从事机器人视觉相关的研究工作。

作者单位

北京信息科技大学机电工程学院 北京市 100192

分享: