应用图像矩进行工件识别时,对于随机放置或重叠的工件,由于手眼相机拍摄的原始图像中不可避免地存在各类噪声和灰度值相同但不属于同一工件的情况,因而无法直接计算目标工件的图像矩。针对这类问题,本文提出了一种基于分水岭分割和强度分层算法的视觉认知方法。该方法首先通过手眼相机获取实时图像,由专用的分水岭算法分割工件图像;将分割后的图像转换为灰度图像;然后根据不同的灰度值,将分割出来的工件图像进行强度分层,得到不同强度的切片,即各个工件的二值图像。最后使用基于边界的方法计算其中一个工件的图像矩。实验结果表明,该方法能够满足特定的视觉伺服作业。 When the image moment is applied for workpiece recognition, for the randomly placed or overlapping workpiece, because of the unavoidable existence of all kinds of noise and gray value in the original image taken by the hand-eye camera, but not the same workpiece, therefore, the image moments of the target workpiece cannot be calculated directly. In this paper, a visual cognitive method based on watershed segmentation and intensity delamination is proposed. Firstly, the real-time image is obtained by hand-eye camera, and the workpiece image is segmented by a special watershed algorithm; the segmented image is converted into gray image; then, according to different gray values, the segmented workpiece image is stratified with intensity. Different strength slices are obtained, that is, binary images of each workpiece. Finally, an example is given to calculate the image moments of one of the workpieces. Experimental results show that the proposed method can meet specific visual servo operations.
王天琪*,贺乃宝,高倩,赵俊杰
江苏理工学院,江苏 常州
收稿日期:2019年8月1日;录用日期:2019年8月16日;发布日期:2019年8月23日
应用图像矩进行工件识别时,对于随机放置或重叠的工件,由于手眼相机拍摄的原始图像中不可避免地存在各类噪声和灰度值相同但不属于同一工件的情况,因而无法直接计算目标工件的图像矩。针对这类问题,本文提出了一种基于分水岭分割和强度分层算法的视觉认知方法。该方法首先通过手眼相机获取实时图像,由专用的分水岭算法分割工件图像;将分割后的图像转换为灰度图像;然后根据不同的灰度值,将分割出来的工件图像进行强度分层,得到不同强度的切片,即各个工件的二值图像。最后使用基于边界的方法计算其中一个工件的图像矩。实验结果表明,该方法能够满足特定的视觉伺服作业。
关键词 :视觉伺服,分水岭,强度分层,图像矩
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
Hutchinson [
为了将基于图像矩的视觉伺服技术广泛地应用于各种作业环境下,必须寻找一种适用于复杂环境的图像分割算法,从而有效地计算图像矩。为此,本文针对堆叠工件图像特点,给出了一种图像信息提取算法。利用基于Canny边缘检测为梯度函数的分水岭算法分割出目标的区域,然后利用强度分层算法,以切片的形式得到各个工件的二值图像。最后举例计算工件的相关特征矩,提取目标工件数量、位姿信息。该方法能够为堆叠目标下的图像矩提供参考,不同于单个的目标检测,能够提高视觉信息的获取效率。
S. Beucher [
Canny边缘检测算子对于不同类型的边缘,均具有良好的性噪比,优异的定位性能、对单一边缘产生多个相应的低概率性和对虚假边缘相应的最大抑制能力。这些性能对具有重叠工件的工件堆图像的边缘提取有很好的效果。其流程图如图1所示。
图1. Canny算子流程图
针对工件堆图像中出现的重叠边缘,Canny算法具有较高的性噪比,
S N R = | ∫ − ω + ω G ( − x ) f ( x ) d x | n 0 ∫ − ω + ω f 2 ( x ) d x (1)
其中 f ( x ) 是区间为 [ − ω , + ω ] 的滤波脉冲相应, G ( − x ) 为边缘函数, n 0 为高斯噪声均方根。由此可知,信噪比越大,提取边缘的精度越大。Canny算子不但能够准确检测出图像真实边缘,而且不会检测出非边缘点。
为了便于提取工件的位姿信息,需要准确定位工件的边缘信息, L o c a l i z a t i o n 数值越大,定位精度将越高。Canny算子检测出的边缘点能够极大程度接近实际边缘的中心越大。
L o c a l i z a t i o n = | ∫ − ω + ω G ′ ( − x ) f ′ ( x ) d x | n 0 ∫ − ω + ω f ′ 2 ( x ) d x (2)
因为工件是堆叠放置的,所以会形成遮挡、阴影等不利于边缘检测的因素,进而导致相关工件的边缘距离较小,Canny对单个边缘的检测出现多个响应的概率很低,使得其能够很好地抑制虚假边缘响应对边缘检测的影响。检测算子的脉冲响应导数的零交叉点平均距离 D ( f ′ ) 满足公式(3),就能够保证单边缘只有一个响应。
D ( f ′ ) = π [ ∫ − ∞ + ∞ f 1 / 2 ( x ) d x ∫ − ∞ + ∞ f ( x ) d x ] 1 2 (3)
输入的图像经过二维高斯函数 G ( x , y ) = 1 2 π σ 2 exp [ − x 2 + y 2 2 σ 2 ] 平滑处理后,会变得更加平滑,噪声也能够得到较好的抑制。式中 σ 是平滑参数,当其较小时,虽然对噪声的鲁棒性能、对图像的平滑能力都较低,但是却有较高的边缘定位精度;当 σ 较大时,高斯平滑模板也会随其增大,随之而来的就是运算量的大幅度增加和边缘位置的大幅度偏移,进而 σ 的值应该在1.0和2.0之间。梯度计算,能够完成对平滑后数据阵列的梯度方向 H ( x , y ) 和梯度幅值 M ( x , y ) 的计算。可以采用2 × 2领域一阶偏导的有限差分计算,如式(4)、(5)所示:
M ( x , y ) = E x ( x , y ) + E y ( x , y ) (4)
H ( x , y ) = arctan E y ( x , y ) E x ( x , y ) (5)
其中 E x 和 E y 分别是原图像被滤波器 f x = [ − 0.5 0.5 − 0.5 0.5 ] 和 f y = [ 0.5 0.5 − 0.5 − 0.5 ] 沿行、列作用的结果。
图2. 四种边缘检测算法的效果比较
将使用Canny算子处理后的工件堆图像与Sobel算子、Roberts算子、Prewitt算子分割的图像进行效果对比分析。图2所示为上述3种边缘检测算子和Canny算子处理后的工件堆边缘检测效果图。Sobel算子、Roberts算子和Prewitt算子对工件的边缘检测效果都很差,几乎没有封闭的区域;Canny边缘检测各工件区域边缘效果非常好,不但精准检测出了各个工件的边缘,而且形成了连续封闭的区域,为下一步分水岭分割提供了有效的分割函数。
传统H-minima技术 [
开闭操作可以去除较小的非目标结构的特定图像细节,同时保证用于描述工件信息的全局不失真。基于开闭的重建操作是腐蚀后再进行形态学重建。设原始图像 Q ( i , j ) 及模板图像
q ¯ k + 1 ( i , j ) = min { Q ( i , j ) , q ¯ k ( i , j ) Θ B } (6)
结果如图3所示,左图为局部极大值检测的结果,右图是将其叠加在原始图像上的效果。
图3. 局部极大值标记结果
基于上述处理,使用MATLAB软件中的watershed函数对图像进行基于分水岭的图像分割,结果如图4所示。右图中位于顶端的工件均被检测出来,并且背景也被很好的分离出来。左图为灰度化图像,是下一步强度分层的输入图像。
图4. 分水岭分割结果
强度分层是由Papakostas等人 [
f ( x , y ) = ∑ k = 1 L − 1 k f k ( x , y ) (7)
其中L是灰度级(通常L = 256)并且切片 f k ( x , y ) 只包含灰度级为k的像素,即
f k ( x , y ) = { 1 ( f ( x , y ) = k ) 0 ( f ( x , y ) ≠ k ) (8)
通过这一方法,把计算灰度图像矩这一问题转换为二值图像矩的计算。每一个切片是一个二值图像,并且可以确定每一个切片 f ( x , y ) 的矩:
m p q ( f ) = ∑ k = 1 L − 1 k m p q ( f k ) (9)
把分割好的图像分解成切片如图5所示,根据 是灰度图像的第K个强度切片,计算出最适合机器人抓取的工件的深度及中心坐标。
图5. 工件二值图像及特征参数
在离散域,对边界的离散化和线积分的计算的不同会使每一种方法各不相同。Philips [
∮ ∂ Ω h ( x , y ) d x + g ( x , y ) d y = ∯ Ω ( ∂ g ∂ x − ∂ h ∂ y ) d x d y (10)
其中, g ( x , y ) 和 h ( x , y ) 是具有连续偏导数的任意函数。按照该定理的离散化形式,Philips证明了离散矩可以由边界像素表示如下:
m ¯ p , q Ω = ∑ ( x , y ) ∈ ∂ Ω + y p ∑ i = 1 x i p − ∑ ( x , y ) ∈ ∂ Ω − y p ∑ i = 1 x i p (11)
其中 ∂ Ω + 和 ∂ Ω − 分别是右手边和左手边边界。它们定义如下:
{ ∂ Ω + = { ( x , y ) | ( x , y ) ∈ Ω , ( x + 1 , y ) ∉ Ω } ∂ Ω − = { ( x , y ) | ( x , y ) ∉ Ω , ( x + 1 , y ) ∈ Ω }
式(12)定义了区域的形心。该坐标用于唯一地检测目标工件在图像平面上的位置。
x ¯ = m 1 , 0 m 0 , 0 , y ¯ = m 0 , 1 m 0 , 0 (12)
式(11)中矩 m ¯ p , q Ω 的值取决于目标工件在图像平面中的位置。因此常常要用到所谓中心距,其定义为
μ i , j = ∑ X I , Y I ∈ R ( X I − x ¯ ) i ( Y I − y ¯ ) j (13)
若区域是不对称的,可以用对应于最大矩的主轴和轴X之间的夹角 α 的形式来表示R的方向。该角度可用以下方程计算
α = 1 2 arctan ( 2 μ 1 , 1 μ 2 , 0 − μ 0 , 2 ) (14)
以参考文献 [
{ 形 心 坐 标 ( x ¯ , y ¯ ) = ( 231.28 , 195.74 ) 面 积 m 00 = 171390 夹 角 α = 47.55 ∘
1) 通过对比Canny算子和3种经典边缘检测算子的边缘检测效果,发现Canny算子边缘检测效果最好,可以作为分水岭分割的分割函数。
2) 利用基于重建的开闭操作得到最佳的种子区域,并进行分水岭分割。结果表明,该方法可进行有效的图像分割。
对分水岭分割后的工件图像进行强度分层,计算其图像矩特征集,获得用于四自由度机器人的抓取任务的视觉信息。
江苏省研究生科研与实践创新计划项目(SJCX18_1052),国家自然基金(61803186)。
王天琪,贺乃宝,高 倩,赵俊杰. 基于分水岭和强度分层的机器人视觉认知方法Robot Visual Cognition Method Based on Watershed and Intensity Stratification[J]. 计算机科学与应用, 2019, 09(08): 1576-1583. https://doi.org/10.12677/CSA.2019.98177