Print

发布时间: 2022-08-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.210088
2022 | Volume 27 | Number 8




    图像分析和识别    




  <<上一篇 




  下一篇>> 





面向工业零件分拣系统的低纹理目标检测
expand article info 闫明, 陶大鹏, 普园媛
云南大学信息学院,昆明 650500

摘要

目的 随着工业领域智能分拣业务的兴起,目标检测引起越来越多的关注。然而为了适应工业现场快速部署和应用的需求,算法只能在获得少量目标样本的情况下调整参数;另外工控机运算资源有限,工业零件表面光滑、缺乏显著的纹理信息,都不利于基于深度学习的目标检测方法。目前普遍认为Line2D可以很好地用于小样本情况的低纹理目标快速匹配,但Line2D不能正确匹配形状相同而颜色不同的两个零件。对此,提出一种更为鲁棒的低纹理目标快速匹配框架CL2D(color Line2D)。方法 首先使用梯度方向特征作为物体形状的描述在输入图像快速匹配,获取粗匹配结果;然后通过非极大值抑制和颜色直方图比对完成精细匹配。最后根据工业分拣的特点,由坐标变换完成对目标的抓取点定位。结果 为了对算法性能进行测试,本文根据工业分拣的实际环境,提出了YNU-BBD 2020(YNU-building blocks datasets 2020)数据集。在YNU-BBD 2020数据集上的测试结果表明,CL2D可以在CPU平台上以平均2.15 s/幅的速度处理高分辨率图像,在精度上相比于经典算法和深度学习算法,mAP(mean average precision)分别提升了10%和7%。结论 本文针对工业零件分拣系统的特点,提出了一种快速低纹理目标检测方法,能够在CPU平台上高效完成目标检测任务,并且相较于现有方法具有显著优势。

关键词

模板匹配; 低纹理目标检测; 颜色直方图; 智能制造; 随机分拣

Texture-less object detection method for industrial components picking system
expand article info Yan Ming, Tao Dapeng, Pu Yuanyuan
School of Information and Engineering, Yunnan University, Kunming 650500, China
Supported by: National Natural Science Foundation of China (61772455, U1713213, 62172354); Yunnan Provincial Major Science and Technology Special Plan Projects (202002AD080001, 202202AD080003)

Abstract

Objective Texture-less object detection is crucial for industrial components picking systems, where multiple components are assigned to a feeder in random, and the objects is to use a vision-guided robot arm grasps each into a packing box. To improve deployment ability in industrial sites, the algorithm is required to adjust parameters with few samples and run in limited computing resources. The traditional detection methods can be achieved by key-point match quickly. However, industrial components are not textured to extract patch descriptors and build key-point correspondence sufficiently. The appearance of industrial components is dominated by their shape, and leads to template matching methods based on object contours. One classical work is Line2D, which only needs a few samples to build template and running in the CPU platform efficiently. However, it produces false-positive results when two components have a similar silhouette. Method We demonstrate a new method called color Line2D (CL2D). CL2D uses object images to extract template information, then running a sliding window template process on the input image to complete object detection. It covers the object shape and color both. We use the gradient direction feature as the shape descriptors, which can be extracted from discrete points on the object contour. Specifically, we compute the oriented gradient of these points on the object image and sliding window, and calculate the cosine value of the angle between each point pair and sum it to sort similarity out. We use the HSV color histogram to represent the appearance of object color as complementary to shape features. We use cosine similarity to compare the histogram between object image and sliding window. The overall framework of CL2D can be categorized into two parts of offline and online. In the offline part, we will build a template database to store the data that may be used in the online matching process in order to speed up the online process. The template database is constructed by the following two steps as mentioned below: first, we annotate relevant information on the object image for extracting template data related to object contour points, foreground area and grasp point. Second, we compute histogram in the context of the foreground area, rotation object image; contour points based gradient orientation to get templates for multi poses of rotation of the object. The online part can be summarized as three steps mentioned below: coarse matching, fine matching, and grasp point localization. First, we use gradient direction templates of different rotation pose, matching on the input image to obtain coarse detection results. The matching process is optimized through gradient direction quantization and pre-computed response maps to achieve a faster matching speed. Second, we use the non-maximum suppression to filter redundant matching results and then compare the color histogram to determine the detection result. Finally, we localize the object grasp point on the input image by a coordinate transformation method. In order to evaluate the performance of texture-less object detection methods, we illustrate YNU-building blocks datasets 2020 (YNU-BBD 2020) to simulate a real industrial scena-rio. Result Our experimental results demonstrate that the algorithm can process 1 920×1 200 resolution images at an average speed of 2.15 s per frame on a CPU platform. In the case of using only one or two samples per object, CL2D can achieve 67.7% mAP on the YNU-BBD 2020 dataset, which is about 10% relative improvement compared to Lind2D, and 7% to deep learning methods based on the synthetic training data. The qualitative results of comparison with classic texture-less object detection methods show that the CL2D algorithm has its priorities in multi-instance object detection. Conclusion We propose a texture-less object detection method in terms of the integration of color and shape representation. Our method can be applied in a CPU platform with few samples. It has significant advantages compare to deep learning methods or classical texture-less object detection methods. The proposed method has the potential to be used in industrial components picking systems.

Key words

template match; texture-less object detection; color histogram; smart manufacturing; random bin-picking

0 引言

现代工业零件分拣系统大多先依赖视觉检测器对混杂目标进行检测定位,然后引导机械臂抓取期望目标完成分拣。该任务在机器人学中称为随机分拣(random bin picking),目前有大量研究者对此研究,并提出不同的解决方案(Blank等,2019)。图 1所示的SCARA(selective compliance assembly robot arm)分拣系统是一种已经运用于实际生产的方案,由SCARA、相机、工控机和震盘组成。这种系统通过相机拍摄目标的图像,然后依赖视觉检测器对平面上的目标进行识别定位,引导机械臂完成分拣。由于该系统采用了2D相机和SCARA机械臂作为主要硬件,并且使用震盘辅助识别和分拣,在成本和效率上都有显著优势,极具应用价值。

图 1 SCARA分拣系统
Fig. 1 SCARA picking system

近年来,针对自然场景的目标检测算法有了长足发展,然而应用在上述SCARA零件分拣系统时却难以获得理想结果,这是由于该系统的特殊需求造成的,主要包括:1)工业现场需要快速部署,算法需要在少量样本情况下快速调整参数;2)待检测目标的表面通常色彩单一,没有丰富的纹理细节,称之为低纹理目标(texture-less objects);3)工控机计算能力有限,难以部署流行的深度学习算法。以上特性给目标检测算法在分拣系统的应用带来了特殊的挑战。

基于卷积神经网络的方法, 如YOLO(you only look once)(Redmon等,2016)和Faster-RCNN(faster region-based convolutional neural network)(Ren等,2017)在自然场景的目标检测中取得了很好的效果。然而,这类方法一方面需要大量数据进行训练(Zhao等,2019),昂贵的数据收集和标注成本限制了其在工业分拣中的应用;另一方面往往依赖GPU(graphics processing unit)完成推理过程(赵永强等,2020),难以在运算能力有限的工控机上部署。当物体的表面具有足够的纹理信息时,使用传统的特征点构造方法(Collet等,2011),如SIFT(scale-invariant feature transform)(Lowe,2004)或ORB(oriented fast and rotated brief)(Rublee等,2011),可以有效地提取纹理特征构造特征点,完成目标匹配识别。然而上述方法在面对低纹理目标时往往无法奏效,这是因为此类物体的外观通常由物体形状而不是纹理决定(Hodan等,2017)。基于模板匹配的检测器(Chan等,2017)充分利用目标形状特征对目标进行检测,并且具有较高的检测速度。然而当输入图像中存在其他与目标形状相似的模式时,单纯的形状匹配将导致错误的匹配结果。因此针对工业环境的特殊需求,开发一种能对低纹理目标进行有效检测,并且不太依赖数据标注的算法,仍然是一个开放性问题。

在SCARA抓取系统中,震盘停止震动后,目标将会有一个或多个稳定朝上的面(可为平面、斜面、组合面或曲面),在相机拍摄的图像中,目标外观大多近似为这几个面的投影的旋转及平移。对于没有稳定朝上面的不规则零件,或稳定面的投影在不同位置差异较大的零件,即使能检测也难以通过SCARA进行有效抓取,不在考虑范围。由于相机高度固定,待检测目标不会出现较大尺度变化,同时由于震盘可将混叠的目标分开,目标也不会出现遮挡。分拣任务中SCARA机械臂动作时间一般为1~2 s,如能在上一次机械臂的动作周期内完成图像分析,可保证机械臂连续运转。针对SCARA抓取系统的特性,本文提出一种新的低纹理目标检测方法CL2D(color Line2D),使用梯度方向特征和颜色直方图特征作为对目标的形状和颜色的表示,可以对不同角度的低纹理目标进行有效检测。同时,该方法基于模板匹配的原理,无需繁琐的数据标注过程,适用于工业现场的快速部署。除此之外,针对抓取系统的需求,算法能够定位出事先标注好的抓取点,引导机械臂完成抓取。

本文主要工作如下:1)通过建模工业零件的形状和颜色两方面特征,提出一种面向工业零件分拣的低纹理目标检测算法;2)通过建立模板数据库提升了算法速度;3)依照实际工业环境,提出YNU-BBD 2020(YNU-building blocks datasets 2020)数据集,可对低纹理目标检测算法的性能进行测试和验证。

1 相关工作

检测器可分为基于学习方法的检测器、基于关键点匹配的检测器和基于模板匹配的检测器。

基于学习方法的检测器早期使用局部特征配合机器学习方法对目标进行检测。如使用方向梯度直方图(histogram of oriented gradient,HOG)特征加支持向量机(support vector machine,SVM)的分类器(Dalal和Triggs,2005)及其后续改进(Felzenszwalb,2010)。最近基于卷积神经网络(convolutional neural network,CNN)的检测器如YOLO(Redmon等,2016)和SSD(single shot multibox detector)(Liu等,2016)通过在规模庞大的数据集上进行训练,在通用目标检测领域取得极大成功。然而,工业分拣应用中目标更新频繁,需要在少量样本情况下调整参数,使得此类检测器无法适用。此外,这类检测器需要消耗较多计算资源,特别是基于卷积神经网络的检测器通常需要GPU进行推理,而现有工控机设备计算资源有限,因而难以在工业现场部署。

基于关键点匹配的检测器使用特定算法提取场景图像和参考图像关键点周围特征,构造关键点描述子,然后通过建立参考图像与场景图像对应关键点的关联完成目标检测。如基于SIFT特征点(Zhao和Ngo,2013)和基于SURF(speeded up robust features)特征点(Li和Zhang,2013)的方法。得益于关键点描述子对多种变换的鲁棒性,此类检测器具有优良性能。然而,此类检测器的特征点构造算法过于依赖目标的纹理特征,在面对低纹理目标时往往无法构造有效的特征点描述子。此外,工业分拣应用中存在大量外观几乎一致的实例,检测器在实际应用时必须解决多个实例之间匹配互相干扰的问题(Piccinini等,2012)。

基于模板匹配的检测器通过计算目标模板与输入图像上部分区域的相似度完成目标检测。早期工作如倒角距离匹配(Borgefors,1988)主要基于目标的边缘特征,通过距离变换的方法完成输入图像与模板之间的相似度度量。然而这些工作对噪声和物体遮挡非常敏感,后续大量工作对此进行了改进。如基于霍夫距离的方法(Rucklidge,1997)、基于梯度方向的方法(Steger,2002)和基于线段特征的方法(Tombari等,2013)等。典型的工作如BIND(binary integrated net descripto)(Chan等,2017)使用二进制集成网络描述子对目标的边缘特征进行描述,由于使用了二进制编码方式,匹配过程得以高效进行。这些方法中,Line2D(Hinterstoisser等,2012)是一种比较快速高效的方法,该方法选取目标轮廓上离散点的梯度方向作为特征,配合梯度方向编码等措施优化匹配流程,达到了不错的检测效果。相比于纹理特征,轮廓点的梯度方向能够更为有效地表述低纹理目标,但这种特征本质上描述的是目标形状,当检测目标与背景或其他目标具有相似形状时,这种方法容易失败。

2 本文算法

CL2D基于模板匹配原理,在离线运行时拍摄目标图像$\boldsymbol{D}$获取模板数据,然后在线运行时,使用模板数据在输入图像$\boldsymbol{I}$上匹配,获取检测结果。算法总体工作流程如图 2所示,主要分为粗匹配、精细匹配和抓取点定位3个步骤:1)通过对比检测目标形状进行粗匹配,从而获取候选匹配结果;2)剔除重复候选匹配结果后,采用检测目标的颜色特征进行精细匹配;3)根据精细匹配结果包含的位置和角度信息,定位目标的抓取点。此外,为了进一步对算法进行加速,建立了模板数据库,存储匹配过程用到的数据。

图 2 CL2D整体流程
Fig. 2 The overall process of CL2D

2.1 粗匹配

通过对比目标形状进行粗匹配是快速有效的方法,而轮廓点的梯度方向又能有效表示目标形状,所以使用梯度方向特征模板完成粗匹配过程。为了使匹配对目标的旋转变换具有鲁棒性,使用$\boldsymbol{D}$生成不同旋转角度的参考图像,然后在这些参考图像上提取不同角度模板完成匹配。如图 3,对于其中某个参考图像$\boldsymbol{O}$,希望获取其在输入图像$\boldsymbol{I}$上的匹配结果,具体做法如下:

图 3 滑窗匹配示意
Fig. 3 Sliding window template match

使用一个滑动窗口遍历输入图像,并在滑动窗口经过的每个位置计算当前窗口与参考图像的模板$\boldsymbol{T}$的相似度。当相似度大于阈值$\boldsymbol{\tau}_{1}$时,将滑动窗口位置、模板编号及相似度作为一个匹配结果输出。模板$\boldsymbol{T}$$\boldsymbol{I}$中位置$\boldsymbol{c}$(滑动窗口左上角)的相似度$\varepsilon$计算为

$ \begin{gathered} \varepsilon(\boldsymbol{I}, \boldsymbol{T}, \boldsymbol{c})= \\ \sum\limits_{\boldsymbol{r} \in \boldsymbol{P}} \max _{\boldsymbol{t} \in \boldsymbol{R}(\boldsymbol{c}+\boldsymbol{r})}|\cos ({ori}(\boldsymbol{O}, \boldsymbol{r})-{ori}(\boldsymbol{I}, \boldsymbol{t}))| \end{gathered} $ (1)

式中,$\boldsymbol{P}$表示轮廓点位置的集合,${ori}(\boldsymbol{O}, \boldsymbol{r})$表示参考图像$\boldsymbol{O}$在位置$\boldsymbol{r}$的梯度方向,${ori}(\boldsymbol{I}, \boldsymbol{r})$表示输入图像$\boldsymbol{I}$在位置$\boldsymbol{t}$的梯度方向,$\boldsymbol{R}(\boldsymbol{c}+\boldsymbol{r})$$\boldsymbol{I}$上以$\boldsymbol{c}+\boldsymbol{r}$为中心的一块区域,区域范围为$[\boldsymbol{c}+\boldsymbol{r}-\boldsymbol{T}/2, \boldsymbol{c}+\boldsymbol{r}+\boldsymbol{T}/2]×[\boldsymbol{c}+\boldsymbol{r}-\boldsymbol{T}/2, \boldsymbol{c}+\boldsymbol{r}+\boldsymbol{T}/2]$,其中$T$表示区域尺寸,是一个手动设置的参数。对于参考图像与输入图像上的一对点,通过计算两个点梯度方向的差的余弦值,再求绝对值,作为该点的相似度。这里参考图像上轮廓点集$\boldsymbol{P}$中每一个位置$\boldsymbol{r}$都对应输入图像上的一块区域$\boldsymbol{R}(\boldsymbol{c}+\boldsymbol{r})$,本文取其与$\boldsymbol{R}(\boldsymbol{c}+\boldsymbol{r})$内所有点相似度的最大值作为该点的相似度。最终,对$\boldsymbol{P}$中所有点的相似度求和计算总的相似度$\varepsilon$。相似度的概率形式为$\varepsilon_{p}=\varepsilon / n$,其中$n$$\boldsymbol{P}$中选取位置的数量,匹配结果需满足$\varepsilon_{p}>\tau_{1}$

需要说明的是,虽然上述匹配方法涉及的模板及需要遍历的窗口数量巨大,但可以用梯度方向量化及响应图预计算(Hinterstoisser等,2012)的方法对其进行优化,提高处理速度。

2.2 精细匹配

精细匹配包含非极大值抑制和颜色直方图比对两个步骤:1)使用一个非极大值抑制方法对重复匹配的候选结果进行剔除,减小后续过程的计算量;2)使用颜色直方图比对对候选结果进行更准确的匹配。

2.2.1 非极大值抑制

在粗匹配过程中,由于使用了一个目标在密集旋转角度下的模板,同时计算相似度时设置了区域$\boldsymbol{R}(\boldsymbol{c}+\boldsymbol{r})$,匹配产生的结果中会存在大量对同一个目标在邻近位置、相近角度的重复匹配。所以使用一个非极大值抑制算法剔除重复识别的结果。与一般的非极大值抑制方法相同,先按照相似度对匹配结果进行排序,然后在重叠的结果中剔除相似度较小的结果,抑制非极大值。

为了防止算法在目标密集出现时错误剔除候选结果(如图 4所示,两个边界框重叠区域较大,可能导致其中一个候选结果被剔除),本文对判断重叠规则进行改进,替代使用边界框交并比(intersection over union,IoU)计算重叠的方法。1)设置一个阈值$\tau_{2}$,当匹配结果的角度相差在$\tau_{2}$以内时认为其角度相近;2)将颜色直方图提取的前景区域作为目标的mask估计,当mask在几何上有交点时,认为其位置相近;3)两个匹配结果角度和位置都相近时认为其是重叠的结果。

图 4 边界框重叠区域
Fig. 4 Overlap area of bounding box

2.2.2 颜色直方图比对

颜色直方图比对主要针对粗匹配产生的错误结果。直方图的提取在HSV色彩空间中完成。这里将每个通道的直方图划分为10个区间,然后将10个区间的取值按照区间顺序排列看做一个向量,即

$ \left\{\begin{array}{l} \boldsymbol{h i s t}_{\mathrm{H}}=\left[H_{1}, H_{2}, \cdots, H_{10}\right] \\ \boldsymbol{h i s t}_{\mathrm{S}}=\left[S_{1}, S_{2}, \cdots, S_{10}\right] \\ \boldsymbol{h i s t}_{\mathrm{V}}=\left[V_{1}, V_{2}, \cdots, V_{10}\right] \end{array}\right. $ (2)

对应的颜色直方图模板为$\boldsymbol{h i s t}_{\mathrm{H}}^{\mathrm{T}}$$\boldsymbol{h i s t}_{\mathrm{S}}^{\mathrm{T}}$$\boldsymbol{h i s t}_{\mathrm{V}}^{\mathrm{T}}$。这里使用余弦相似度进行比对,通道$\mathcal{C}(\mathcal{C} \in\{\mathrm{H}, \mathrm{S}, \mathrm{V}\})$的相似度为

$ {sim}_{\mathcal{C}}=\frac{\boldsymbol{h i s t}_{\mathcal{C}} \cdot \boldsymbol{h i s t}_{\mathcal{C}}^{\mathrm{T}}}{\left|\boldsymbol{h i s t}_{\mathcal{C}}\right|\left|\boldsymbol{h i s t}_{\mathcal{C}}^{\mathrm{T}}\right|} $ (3)

当某一通道的余弦相似度小于设定的阈值$\tau_{3}$时,将匹配结果过滤。实际比对前,会在目标图像上标注前景区域,仅统计该区域内的像素,避免背景干扰。前景区域实际是目标图像上的一个多边形,记录下这个多边形顶点的坐标后,利用匹配结果包含的角度和位置信息,对其进行旋转及平移变换,即可以确定输入图像上对应的区域。

2.3 抓取点定位

为了顺利实现机械臂抓取操作,需要给出抓取点位置。针对每种零件,可以根据经验在目标图像上手工标注固定的抓取点。当完成精细匹配过程后,可根据匹配结果对标注的抓取点进行旋转和平移变换,定位出输入图像上抓取点的位置。

图 5所示,假设目标图像的宽和高为$w$$h$,在目标图像上标注的抓取点位置为$\left(x^{G}, y^{G}\right)$,匹配结果中模板对应的参考图像旋转角度为$\theta$,匹配的位置为$\boldsymbol{c}=\left(x_{c}, y_{c}\right)$。这里以目标图像的中心点为旋转中心进行旋转获取参考图像,假设其坐标为$\left(x_{\rm{o}}, y_{\rm{o}}\right)$, 那么旋转使用的仿射矩阵为

$ \boldsymbol{W}_{\theta}=\left[\begin{array}{ccc} \cos \theta & \sin \theta & x_{\mathrm{o}}(1-\cos \theta)-y_{\mathrm{o}} \sin \theta \\ -\sin \theta & \cos \theta & y_{\mathrm{o}}(1-\cos \theta)+x_{\mathrm{o}} \sin \theta \\ 0 & 0 & 1 \end{array}\right] $ (4)

图 5 抓取点定位
Fig. 5 Grasp point localize

为了使旋转后得到的参考图像包含目标图像的所有内容,需要增加图像的宽和高,使其变为$w_{\mathrm{r}}$$h_{\mathrm{r}}$,具体为

$ \left\{\begin{array}{l} w_{\mathrm{r}}=h \sin \theta+w \cos \theta \\ h_{\mathrm{r}}=w \sin \theta+h \cos \theta \end{array}\right. $ (5)

此时,参考图像中心点坐标为$\left(x_{\rm{o}}^{r}, y_{\rm{o}}^{r}\right)$,仿射矩阵变为

$ \boldsymbol{W}_{\theta}=\left[\begin{array}{ccc} \cos \theta & \sin \theta & x_{o}^{r}-x_{o} \cos \theta-y_{o} \sin \theta \\ -\sin \theta & \cos \theta & y_{o}^{r}-y_{o} \cos \theta+x_{o} \sin \theta \\ 0 & 0 & 1 \end{array}\right] $ (6)

然后,使用$\boldsymbol{W}_{\theta}$计算抓取点在参考图像上的齐次坐标。具体为

$ \left(x_{\theta}^{G}, y_{\theta}^{G}, 1\right)^{\mathrm{T}}=\boldsymbol{W}_{\theta}\left(x^{G}, y^{G}, 1\right)^{\mathrm{T}} $ (7)

最终,使用参考图像上的坐标加上模板的匹配位置$\boldsymbol{c}$,求出输入图像上对应的抓取点坐标。具体为

$ \left(x_{t}^{G}, y_{t}^{G}\right)=\left(x_{\theta}^{G}+x_{c}, y_{\theta}^{G}+y_{c}\right) $ (8)

经过以上的旋转和平移操作,便可以根据检测结果和标注信息,定位出输入图像上的抓取点位置。

2.4 模板数据库

上述检测过程中某些数据可以在检测前计算完成,为此建立了一个模板数据库存储这些数据,在检测时调用,加快检测速度。考虑到工业分拣的实际环境,在采集目标图像时仅选择目标的几个稳定朝上面,然后在采集的目标图像上标注并提取数据,建立模板数据库。整个过程可以看做是一个对目标的建模过程,而数据库内存储的数据可以看做是目标的识别模型,如图 6所示。具体步骤如下:

图 6 目标识别模型
Fig. 6 Object detection model

1) 以人工标注的方法确定梯度特征提取位置、直方图提取区域和抓取点位置。假设选取的$k$个稳定面为$\boldsymbol{F}_{1}, \boldsymbol{F}_{2}, \cdots, \boldsymbol{F}_{k}$,每一面的目标图像为$\boldsymbol{D}_{1}, \boldsymbol{D}_{2}, \cdots, \boldsymbol{D}_{k}$。对于每一面,首先标注轮廓点的位置$\boldsymbol{P}_{i}(i \in\{1, \cdots, k\})$$\boldsymbol{P}_{i}$实际上是一组图像上坐标点的集合,即$\boldsymbol{P}_{i}=\left\{\left(x_{1}^{P}, y_{1}^{P}\right), \left(x_{2}^{P}, y_{2}^{P}\right), \cdots\right\}$,后续使用的梯度方向特征将在这些位置提取。然后,标注用于提取颜色直方图特征的前景区域$\boldsymbol{A}_{i}$$\boldsymbol{A}_{i}$为一个多边形,可以用多边形顶点坐标的集合表示:$\boldsymbol{A}_{i}=\left\{\left(x_{1}^{A}, y_{1}^{A}\right), \left(x_{2}^{A}, y_{2}^{A}\right), \cdots\right\}$。最后标注目标的抓取点位置$\boldsymbol{G}_{i}=\left\{\left(x_{1}^{G}, y_{1}^{G}\right), \left(x_{2}^{G}, y_{2}^{G}\right)\right\}$,代表分拣时的目标抓取点。

2) 对采集到的目标图像以图像中心点进行2维旋转变换,获取目标在不同旋转姿态下的参考图像。假设旋转度数为$\theta$,所有旋转度数的集合为$\mathit{\pmb{\Theta}}$,用于旋转的仿射变换的矩阵为$\boldsymbol{W}_{\theta}$。这里将使用$\boldsymbol{W}_{\theta}$完成图像旋转,并利用线性插值获取旋转后的图像$\boldsymbol{O}_{i}^{\theta}$

3) 在参考图像上进行特征提取。首先在参考图像的区域$\boldsymbol{A}_{i}$内统计像素,提取目标的颜色直方图特征$\boldsymbol{H}_{i}$。由于颜色直方图特征具有旋转不变性,这里仅提取一个角度的颜色直方图。然后提取梯度方向特征。对于每一幅旋转后的参考图像$\boldsymbol{O}_{i}^{\theta}$,以同样的旋转变换$\boldsymbol{W}_{\theta}$获得对应的梯度方向特征提取位置$\boldsymbol{P}_{i}^{\theta}=\boldsymbol{W}_{\theta}\left(\boldsymbol{P}_{i}\right)$,并在所有变换后的位置上获取梯度方向$\left\{{ori}\left(\boldsymbol{O}_{i}^{\theta}, \left(x^{P}, y^{P}\right)\right) \mid\left(x^{P}, y^{P}\right) \in \boldsymbol{P}_{i}^{\theta}\right\}$。最后将这些梯度方向和对应的位置$\boldsymbol{P}_{i}^{\theta}$作为模板$\boldsymbol{T}_{i}^{\theta}$存入模板数据库。此外,为了加快颜色直方图提取区域和抓取点定位的速度,对颜色直方图提取区域和抓取点位置进行同样的旋转处理,获取对应的$\boldsymbol{A}_{i}^{\theta}$$\boldsymbol{G}_{i}^{\theta}$

通过以上步骤,将待检测目标建立成了识别模型。目标的识别模型用$\boldsymbol{M}$表示,每个识别模型包含选取的几个稳定面$\boldsymbol{M}=\left\{\boldsymbol{F}_{1}, \boldsymbol{F}_{2}, \cdots, \boldsymbol{F}_{k}\right\}$,每个面包含颜色直方图特征和不同旋转角度的梯度方向模板、有效区域和抓取点位置,即

$ \boldsymbol{F}_{i}=\left\{\boldsymbol{H}_{i}, \left\{\boldsymbol{A}_{i}^{\theta}, \boldsymbol{G}_{i}^{\theta}, \boldsymbol{T}_{i}^{\theta} \mid \theta \in \mathit{\Theta}\right\}\right\} $ (9)

模板数据库中每个模板$\boldsymbol{T}_{i}^{\theta}$都有一个对应的ID,即$I D\left(\boldsymbol{T}_{i}^{\theta}\right)$。使用数据库内的键值表$\mathrm{Table}_{F}$,即可用通过$\boldsymbol{T}_{i}^{\theta}$的ID查询到目标所属的面$\boldsymbol{F}_{i}$及目标对应的旋转角度$\theta$。同理,可以使用$\boldsymbol{F}_{i}$的ID(即$I D\left(\boldsymbol{F}_{i}\right)$)和$\theta$查询到相应的有效区域和抓取点位置。

建立好模板数据库后,算法可以根据目标的识别模型,调出目标所有的梯度方向模板,完成粗匹配。由于粗匹配的结果$\boldsymbol{res}$包含模板ID、匹配位置和相似度,即$\boldsymbol{res}=\left\{I D\left(\boldsymbol{T}_{i}^{\theta}\right), c, \varepsilon_{p}\right\}$, 这样,对于粗匹配的每个结果,可根据键值表$\mathrm{Table}_{\theta}$获得旋转角度,再根据键值表$\text { Table }_{A}$找到对应的颜色直方图提取区域,完成精细匹配。最后,可以根据键值表$\text { Table }_{G}$获取参考图像上目标的抓取点位置,然后加上$\boldsymbol{c}$定位出输入图像上的抓取点位置。各个键值表的查询关系可归纳为

$ \left\{\begin{array}{l} { Table }_{F}\left[I D\left(\boldsymbol{T}_{i}^{\theta}\right)\right]=\boldsymbol{F}_{i} \\ { Table }_{\theta}\left[I D\left(\boldsymbol{T}_{i}^{\theta}\right)\right]=\theta \\ { Table }_{A}\left[I D\left(\boldsymbol{F}_{i}\right), \theta\right]=\boldsymbol{A}_{i}^{\theta} \\ { Table }_{G}\left[I D\left(\boldsymbol{F}_{i}\right), \theta\right]=\boldsymbol{G}_{i}^{\theta} \end{array}\right. $ (10)

3 实验

3.1 数据集

目前,在低纹理目标检测领域缺乏针对工业零件分拣应用的数据集。对此,本文提出了YNU-BBD 2020(YNU-building blocks datasets 2020)对低纹理目标检测算法进行评测。YNU-BBD 2020的所有数据都在一个接近实际工业环境的数据采集平台上采集。如图 7所示,平台选用单色平面放置目标,并将工业相机垂直固定于平面上方。采集图像时使用工业面光源和遮光幕布控制光照条件,同时固定相机高度并选取相同的相机参数保证拍摄图像的一致性。

图 7 数据集采集平台
Fig. 7 Data collection platform

YNU-BBD 2020使用16种低纹理的玩具零件作为目标,由训练集和测试集构成。如图 8(d),训练集共有32幅图像,通过单独拍摄每个零件制作,每幅图像包含一个零件的一个面,整个训练集涵盖了所有零件在测试集中出现的所有面。测试集包含30幅图像,通过拍摄随机混合的零件制作(如图 9)。图像的分辨率统一为1 920×1 200像素,对测试集的每幅图像本文标注实例级别的目标mask作为基准真值(ground truth),整个测试集共计618个目标。

图 8 目标检测结果和训练集
Fig. 8 Object detection results and training set
((a) ground truth; (b) coarse match results; (c) precise match results; (d) training set)
图 9 测试集样例及基准真值
Fig. 9 Samples from test set and ground truth
((a)samples from test set; (b)ground truth)

3.2 旋转角采样间隔

本文算法通过对目标图像进行旋转获取不同姿态的模板,因而在构建模板数据库前需要确定旋转角$\theta$的采样间隔。通过实验的方法寻找合适的采样间隔。首先选取不同的采样间隔在整个数据集上提取模板,然后使用不同模板进行匹配并统计所有目标的召回率。

图 10展示的是使用采样间隔从1°~90°的模板时,粗匹配过程对所有目标的平均召回率。本文将相似度阈值$\tau_{1}$分别设为0.5、0.7和0.9进行测试。从测试结果可见,为了保证目标稳定面模板的全面性,获得较高的目标检测召回率,须使用较小的采样间隔来完成建模,本文采用的间隔为1°。

图 10 不同采样间隔下的召回率
Fig. 10 Recall rate in different sample step

3.3 速度和精度测试

建立模板数据库后,在测试集上测试算法的精度和速度。测试使用Intel CORE I5 9400 CPU运行算法,对比的深度学习算法借助额外的GTX2080ti GPU运行。测试时,根据经验将算法的参数设置为$T=4, \tau_{1}=0.6, \tau_{2}=10^{\circ}, \tau_{3}=0.95$

1) 速度。对于模板数据库构建过程,每一幅目标图像需要1~2 min的时间完成人工标注,然后耗费约10 s的时间提取模板数据。对于检测过程,30幅图像最短处理时间1.38 s,最长处理时间2.68 s,平均处理时间2.15 s。其中粗匹配过程平均耗时0.69 s,占比32%,精细匹配过程平均耗时1.46 s,占比68%,基本满足SCARA抓取系统需求。

2) 精度。将目标的颜色直方图提取区域作为目标的mask估计,将该区域的外接矩形作为目标的边界框估计。然后,使用COCO(common objects in context)数据集(Lin等,2014)的标准,计算算法在整个测试集上的mAP(mean average precision),包含边界框精度和mask精度,如表 1表 2所示,表中AP50和AP75表示IoU为50%和75%时的平均精度。计算mAP时,设置不同的$\tau_{1}$$\tau_{3}$获得PR曲线,再统计mAP。本文对比了仅使用梯度方向特征的算法Line2D(Hinterstoisser等,2012)、使用RGB颜色直方图算法CL2D-RGB以及两个基于深度学习的方法YOLO-V4(Bochkovskiy等,2020)和Mask-RCNN(He等,2017)。对于深度学习方法,通过随机选取训练集内的图像,执行前景分离和随机旋转操作,合成2 000幅训练图像扩充数据集训练检测模型。CL2D算法匹配结果可视化如图 8(b)(c),抓取点定位结果可视化如图 11。而如图 12所示为错误示例。

表 1 不同方法的边界框精度对比
Table 1 Comparison of bounding box accuracy among different methods

下载CSV
方法 mAP AP50 AP75
Line2D 0.573 0.632 0.616
CL2D-RGB 0.663 0.731 0.710
YOLO-V4 0.608 0.689 0.683
Mask-RCNN 0.447 0.610 0.514
CL2D-HSV 0.677 0.748 0.726
注:加粗字体表示各列最优结果。

表 2 不同方法的mask精度对比
Table 2 Comparison of mask accuracy among different methods

下载CSV
方法 mAP AP50 AP75
Line2D 0.523 0.624 0.593
CL2D-RGB 0.602 0.721 0.687
CL2D-HSV 0.614 0.739 0.701
注:加粗字体表示各列最优结果。
图 11 抓取点定位结果
Fig. 11 Grasp point localize results
((a) template; (b) results in scene image)
图 12 错误示例
Fig. 12 Failure cases
((a) wrong detection when object have similar appearance; (b) wrong angle)

3.4 与经典方法对比

本文算法与经典的低纹理目标检测算法BLOD(bunch of lines descriptor)(Tombari等,2013)和BIND(Chan等,2017)的对比结果如图 13所示。可以看出,当同一个目标在输入图像上存在多个实例时,BLOD算法和BIND算法仅能匹配到1个实例。当图像上存在与目标图像非常相似的模式时,3个算法都出现了错误匹配(第1行、第2行)。但本文算法正确的目标图像匹配的相似度明显较高(第1行右1、第2行右1)。各算法的运行速度如表 3所示。可以看出,BIND算法在YNU-BBD 2020数据集上的速度较慢,CL2D平均运行时间多于Line2D和BLOD,但明显优于BIND算法。

图 13 本文方法与经典方法的检测结果对比
Fig. 13 Compare with classical methods
((a) template; (b) BLOD (green rectangle); (c) BIND (green and yellow area); (d) CL2D (cyan rectangle))

表 3 不同算法的平均运行时间
Table 3 Average runtime of different methods

下载CSV
方法 平均运行时间/s
Line2D 0.69
CL2D(本文) 2.15
BIND 129.5
BLOD 1.02
注:加粗字体表示最优结果。

4 结论

本文提出一种面向工业零件分拣系统的低纹理目标检测方法CL2D。该方法基于模板匹配原理设计,主要分为3个部分:1)通过梯度方向特征建模工业零件的形状,完成粗匹配过程;2)通过颜色直方图建模工业零件的颜色,完成精细匹配过程;3)通过坐标变换定位目标的抓取点位置。此外,本文通过建立模板数据库的方法对算法进行加速。在YNU-BBD 2020数据集上的实验结果显示,CL2D能够在CPU平台上高效完成目标检测任务,并达到可观的检测精度,并且无需使用大量数据进行训练。无论相较于基于深度的目标检测算法还是经典的低纹理目标检测算法,CL2D都具有显著优势。但是,由于仅使用形状和轮廓特征,CL2D在目标相似时仍然会出现错误,在后续工作中,可融合更多特征对算法进行改进。另外,由于未使用任何优化方法,算法中精细匹配过程速度较慢,考虑到其占比,未来的工作将对算法的精准匹配过程进一步优化,提高运行速度。

参考文献

  • Blank A, Hiller M, Zhang S Y, Leser A, Metzner M, Lieret M, Thielecke J and Franke J. 2019. 6DoF pose-estimation pipeline for texture-less industrial components in bin picking applications//Proceedings of 2019 European Conference on Mobile Robots. Prague, Czech Republic: IEEE: 1-7[DOI: 10.1109/ECMR.2019.8870920]
  • Bochkovskiy A, Wang C Y and Liao H Y M. 2020. YOLOv4: optimal speed and accuracy of object detection[EB/OL]. [2020-04-23]. https://arxiv.org/pdf/2004.10934.pdf
  • Borgefors G. 1988. Hierarchical chamfer matching: a parametric edge matching algorithm. IEEE Transactions on Pattern Analysis and Machine Intelligence, 10(6): 849-865 [DOI:10.1109/34.9107]
  • Chan J, Lee J A and Kemao Q. 2017. BIND: binary integrated net descriptors for texture-less object recognition//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, USA: IEEE: 3020-3028[DOI: 10.1109/CVPR.2017.322]
  • Collet A, Martinez M, Srinivasa S S. 2011. The MOPED framework: object recognition and pose estimation for manipulation. The International Journal of Robotics Research, 30(10): 1284-1306 [DOI:10.1177/0278364911401765]
  • Dalal N and Triggs B. 2005. Histograms of oriented gradients for human detection//Proceedings of 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego, USA: IEEE: 886-893[DOI: 10.1109/CVPR.2005.177]
  • Felzenszwalb P F, Girshick R B, McAllester D, Ramanan D. 2010. Object detection with discriminatively trained part-based models. IEEE Transactions on Pattern Analysis and Machine Intelligence, 32(9): 1627-1645 [DOI:10.1109/TPAMI.2009.167]
  • He K M, Gkioxari G, Dollár P and Girshick R. 2017. Mask R-CNN//Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy: IEEE: 2980-2988[DOI: 10.1109/ICCV.2017.322]
  • Hinterstoisser S, Cagniart C, Ilic S, Sturm P, Navab N, Fua P, Lepetit V. 2012. Gradient response maps for real-time detection of textureless objects. IEEE Transactions on Pattern Analysis and Machine Intelligence, 34(5): 876-888 [DOI:10.1109/TPAMI.2011.206]
  • Hodan T, Haluza P, Obdržálek Š, Matas J, Lourakis M and Zabulis X. 2017. T-LESS: an RGB-D dataset for 6D pose estimation of texture-less objects//Proceedings of 2017 IEEE Winter Conference on Applications of Computer Vision. Santa Rosa, USA: IEEE: 880-888[DOI: 10.1109/wacv.2017.103]
  • Li J G and Zhang Y M. 2013. Learning SURF cascade for fast and accurate object detection//Proceedings of 2013 IEEE Conference on Computer Vision and Pattern Recognition. Portland, USA: IEEE: 3468-3475[DOI: 10.1109/CVPR.2013.445]
  • Lin T Y, Maire M, Belongie S, Hays J, Perona P, Ramanan D, Dollár P and Zitnick C L. 2014. Microsoft COCO: common objects in context//Proceedings of the 13th European Conference on Computer Vision. Zurich, Switzerland: Springer: 740-755[DOI: 10.1007/978-3-319-10602-1_48]
  • Liu W, Anguelov D, Erhan D, Szegedy C, Reed S, Fu C Y and Berg A C. 2016. SSD: single shot multibox detector//Proceedings of the 14th European Conference on Computer Vision. Amsterdam, the Netherlands: Springer: 21-37[DOI: 10.1007/978-3-319-46448-0_2]
  • Lowe D G. 2004. Distinctive image features from scale-invariant keypoints. International Journal of Computer Vision, 60(2): 91-110 [DOI:10.1023/B:VISI.0000029664.99615.94]
  • Piccinini P, Prati A, Cucchiara R. 2012. Real-time object detection and localization with SIFT-based clustering. Image and Vision Computing, 30(8): 573-587 [DOI:10.1016/j.imavis.2012.06.004]
  • Redmon J, Divvala S, Girshick R and Farhadi A. 2016. You only look once: unified, real-time object detection//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE: 779-788[DOI: 10.1109/CVPR.2016.91]
  • Ren S Q, He K M, Girshick R, Sun J. 2017. Faster R-CNN: towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 39(6): 1137-1149 [DOI:10.1109/TPAMI.2016.2577031]
  • Rublee E, Rabaud V, Konolige K and Bradski G. 2011. ORB: an efficient alternative to SIFT or SURF//Proceedings of 2011 International Conference on Computer Vision. Barcelona, Spain: IEEE: 2564-2571[DOI: 10.1109/ICCV.2011.6126544]
  • Rucklidge W J. 1997. Efficiently locating objects using the hausdorff distance. International Journal of Computer Vision, 24(3): 251-270 [DOI:10.1023/A:1007975324482]
  • Steger C. 2002. Occlusion, clutter, and illumination invariant object recognition. International Archives of Photogrammetry and Remote Sensing, XXXIV(3A): 345-350
  • Tombari F, Franchi A and Di L. 2013. BOLD features to detect texture-less objects//Proceedings of 2013 IEEE International Conference on Computer Vision. Sydney, Australia: IEEE: 1265-1272[DOI: 10.1109/ICCV.2013.160]
  • Zhao W L, Ngo C W. 2013. Flip-invariant SIFT for copy and object detection. IEEE Transactions on Image Processing, 22(3): 980-991 [DOI:10.1109/TIP.2012.2226043]
  • Zhao Y Q, Rao Y, Dong S P, Zhang J Y. 2020. Survey on deep learning object detection. Journal of Image and Graphics, 25(4): 629-654 (赵永强, 饶元, 董世鹏, 张君毅. 2020. 深度学习目标检测方法综述. 中国图象图形学报, 25(4): 629-654) [DOI:10.11834/jig.190307]
  • Zhao Z Q, Zheng P, Xu S T, Wu X D. 2019. Object detection with deep learning: a review. IEEE Transactions on Neural Networks and Learning Systems, 30(11): 3212-3232 [DOI:10.1109/TNNLS.2018.2876865]