基于模板匹配的无纹理平面结构工业零件识别和6d位姿估计方法
技术领域
1.本发明涉及机器视觉、图像处理技术领域,尤其涉及基于模板匹配的无纹理平面结构工业零件识别和6d位姿估计方法。
背景技术:2.在机器人自动化应用中,利用机器人实现工业零件的自动化上下料作业是一个非常重要的应用场景。
3.现有的自动化上下料广泛采用的是示教
‑
在线模式,机器人通过示教编程对固定工位上的物体进行抓取等操作,这样方式的适用范围小柔性化程度低,无法实现无序堆叠工件的上下料。
技术实现要素:4.本发明的目的是为了解决现有的方式的适用范围小柔性化程度低,无法实现无序堆叠工件的上下料的缺点,而提出的基于模板匹配的无纹理平面结构工业零件识别和6d位姿估计方法。
5.为了实现上述目的,本发明采用了如下技术方案:
6.基于模板匹配的无纹理平面结构工业零件识别和6d位姿估计方法,基于2d模板匹配对rgb图像进行工件识别分类和2d图像定位;结合图像多分辨率表达和分层模板库的模板匹配提升算法的运算速度;基于3d点云平面特征和模板匹配结果实现工件的6d位姿估计;
7.上述方法具体包括以下步骤:
8.s1:利用双目结构光相机和工业机械臂搭建机器人手眼系统,通过双目结构光相机采集堆叠零件rgb图像和点云图像;
9.s2:构建待匹配rgb图像的高斯金字塔多分辨率表达,同时构建模板图像的分层模板库,结合多分辨率空间搜索策略和分层模板搜索策略对rgb图像进行模板匹配,进行工件类型识别和2d图像定位;
10.s3:对模板匹配结果进行2d
‑
icp优化,得到精确的工件中心2d 定位;
11.s4:对3d点云进行滤波处理,并通过欧式聚类分割获得单个工件实例点云;
12.s5:对单个实例点云进行ransac平面拟合,得到工件的拟合平面方程;
13.s6:利用拟合平面的法向量、相机内参矩阵计算工业零件的6d 位姿估计。
14.优选的,所述s2中多分辨率空间搜索策略,多分辨率图像空间构建:
15.将待检测的原图像i(x,y)作为多分辨率空间的第0层,使用高斯滤波器(式2)对其进行滤波得到平滑图像i
s
(x,y)((式1),然后进行降采样操作,使得图像分辨率将为原来的1/4,得到多分辨率空间的下一层图像,迭代进行高斯滤波和降采样操作,即得到图像的多分辨率表达(图1)。
16.i
s
(x,y)=g(x,y,σ)*i(x,y)
ꢀꢀꢀ
(1)
[0017][0018]
优选的,所述s2中分层模板搜索策略,分层模板库构建:
[0019]
第一,利用sobel卷积核(式1)分别计算零件模板图像三通道的梯度幅值,选取三通道中最大梯度值作为像素点梯度,将梯度幅值超过一定阈值的像素点作为有效特征点;进一步计算这些特征点梯度方向,得到梯度方向特征图i
g
(x);再对模板的梯度方向特征图进行非极大值抑制操作,使特征点均匀分布,获得最终的模板;
[0020][0021]
图像梯度幅值梯度方向
[0022]
第二,2d模板匹配中,模板和原图像中的待检测物体之间的变换关系为2d图像仿射变换
[0023][0024]
为了能在待检测图像中匹配到仿射变换后的物体,需要在2d 仿射空间进行采样得到所有可能的仿射变换组合,并生成所有仿射变换下的模板;为了解决大量模板匹配带来的算法运行时间增长,本发明提出了基于分层模板搜索的匹配策略,首先需要构建分层模板库; 2d仿射空间的分层模板库构建步骤如下,首先生成l=0模板库,对限定范围后的仿射空间σ
min
≤s≤σ
max
,θ
min
≤θ≤θ
max
,以采样步长δs和δθ进行细分,得到所有可能的2d仿射变换组合:
[0025]
a(s
min
+mδs,θ
min
+nδθ),m∈[0,(σ
max
‑
σ
min
)/δs],n∈[0,(θ
max
‑
θ
min
)/δθ]
[0026]
第三,对原始模板图像进行2d仿射变换并提取梯度方向特征。在l=1层,采用2δs和2δθ对参数空间进行细分,该层的模板数量减少为l=0层的1/4;同理,对于l=k层,采样步长将增加至2
k
δs和2
k
δθ,生成该层的模板库,重复上述步骤生成分层模板库(图2)。
[0027]
优选的,所述结合图像多分辨率表达和分层模板库的模板匹配策略(图3):
[0028]
第一,首先从图像多分辨率金字塔的最高层开始进行匹配。利用滑窗法依次将模板库中的模板和待检测图像进行匹配并计算相似性得分(式4),保留相似度大于设定阈值的匹配结果;对高尺度空间的匹配结果在下一层尺度空间进行精匹配,同样保留相似度最高的匹配结果,重复进行这一步骤直到搜索到达图像金字塔最低层,得到最终的精细匹配结果。
[0029]
待匹配的模板定义为t={(x1,d1),(x2,d2),l,(x
m
,d
m
)},其中x
i
是特征点像素点坐标,d
i
是特征点的梯度方向,对待检测图像提取梯度方向特征图,以i={(p1,e1),(p2,e2),
…
,(p
n
,e
n
)}集合表示,其中p
i
像素点坐标, e
i
是该点的梯度方向,i和模板t在图像匹配点c处的相似性得分可以用它们梯度方向的向量点积之和表达:
[0030][0031]
式中,r(i+c,t)定义为以i上的像素点p
i+c
为中心,大小为 t
×
t的邻域,ori()代表梯度方向;
[0032]
第二,在滑窗法进行图像空间搜索的过程中,利用分层搜索的匹配策略进一步对匹配过程进行加速;
[0033]
首先在分层模板库l
max
开始,将该层所有模板和待检测图像进行匹配,并计算相似性得分,保留得分大于阈值的模板,同时采用非极大值抑制剔除重复匹配,得到在l
max
层的待检索模板集合;完成l
max
层匹配后,将得到的待检索模板集合在l
max
‑
1层进行匹配;步骤如下:设l
max
层匹配得到待检索模板参数为(s0,θ0),该组合表示为2d仿射变换空间中的一个点,将l
max
‑
1层以该点为中心的一个邻域内的所有模板和待检测图像重新匹配,该邻域可以表示为直积:
[0034]
[s0‑
m
·2l
‑1δs,s0+m
·2l
‑1δs]
×
[θ0‑
m
·2l
‑1δθ,θ0+m
·2l
‑1δθ]
[0035]2l
‑1δs和2
l
‑1δθ为l
max
‑
1层采样步长,m为控制邻域大小的参数;同样计算相似度得分,并保留得分最高的模板,得到在l
max
‑
1层的待检索模板集合;由于l
max
‑
1层的采样步长更小,所以匹配结果更为精确;迭代进行上述分层搜索操作,直到所有l
max
层待检索模板均回溯到分层模板库的的最底层,即得到最终的精细匹配结果。
[0036]
优选的,所述s3中模板匹配结果进行2d
‑
icp优化:
[0037]
通过模板匹配得到待检测图像中工件中心的像素坐标t=[t
x
,t
y
]
t
和其2d仿射变换矩阵a;利用2d
‑
icp对匹配结果进行优化得到更为精确的结果;对模板t任一特征点x
i
,在待检测图像i中搜索欧氏距离最近的点q
i
作为其对应点;最优化的目标即使得模板特征点到图像对应点所在边缘切线的距离平方和损失函数最小,图像点q
i
切线方程可以表示为:(q
i
‑
x)
t
·
e
i
=0,则待优化的损失函数为:
[0038][0039]
精确的位姿利用基于lm算法迭代求解上述非线性最小二乘问题,得到最终2d模板匹配结果。
[0040]
优选的,所述s6中工件6d位姿估计:
[0041]
第一,首先对场景3d点云进行直通滤波和降采样操作,剔除背景点云干扰并降低点云密度,进一步进行统计滤波剔除噪声点云;
[0042]
第二,基于欧式聚类分割获取单个工件实例点云;
[0043]
第三,基于ransac方法拟合点云平面方程n
t
·
x+d=0;
[0044]
第四,通过2d模板匹配得到工件中心点像素坐标t=[t
x
,t
y
]
t
,齐次坐标为p=[t
x
,t
y
.1]
t
,设工件中心在相机坐标系下的坐标为 p
c
=[x
c
,y
c
,z
c
]
t
,根据相机模型,已知内参矩阵k,有:z
c
p=k
·
p
c
;
[0045]
第五,p
c
满足平面方程:n
t
·
p
c
+d=0,联立4)中等式可以求解z
c
=
‑
d/n
t
·
k
‑1·
p,进一步可以求得p
c
=z
c
·
k
‑1·
p,根据2d姿态角θ,计算出工件长轴(x轴)在相机坐标系下的方向向量r
x
,工件平面z 轴方向向量r
z
=n/||n||,y轴方向向量为r
y
=r
z
×
r
x
,则工件坐标系
相对于相机坐标系的旋转矩阵r=[r
x
,r
y
,r
z
],由此确定工件的6d位姿参数为: [0046]
与现有技术相比,本发明的优点在于:
[0047]
本方案,将视觉传感器引入机器人上下料任务中,和机器人构建手眼系统,通过基于视觉的物体识别和位姿估计算法,可以识别场景中目标物体的类别并估计物体相对于相机的6d位姿,从而引导机器人完成无序堆叠工件的抓取,分拣等更加智能自动化的操作,有效解决传统示教
‑
在线方法存在的问题;
[0048]
本发明采用结合图像多分辨率空间和分层模板空间的模板匹配策略,有效提升了传统模板匹配方法的匹配速度;通过2d
‑
icp优化使2d图像定位精度更高;最后结合3d平面特征的位姿估计算法能实现对平面结构工业零件准确的6d位姿估计。
附图说明
[0049]
图1为图像高斯金字塔多分辨率表达原理图;
[0050]
图2为分层模板库生成原理图;
[0051]
图3为结合图像多分辨率表达和分成模板库搜索的快速模板匹配策略原理图;
[0052]
图4为基于模板匹配的无纹理平面结构工业零件识别和6d位姿估计方法流程图。
具体实施方式
[0053]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0054]
参照图1
‑
4,基于模板匹配的无纹理平面结构工业零件识别和6d 位姿估计方法,基于2d模板匹配对rgb图像进行工件识别分类和2d 图像定位;结合图像多分辨率表达和分层模板库的模板匹配提升算法的运算速度;基于3d点云平面特征和模板匹配结果实现工件的6d位姿估计;
[0055]
上述方法具体包括以下步骤:
[0056]
s1:利用双目结构光相机和工业机械臂搭建机器人手眼系统,通过双目结构光相机采集堆叠零件rgb图像和点云图像;
[0057]
s2:构建待匹配rgb图像的高斯金字塔多分辨率表达,同时构建模板图像的分层模板库,结合多分辨率空间搜索策略和分层模板搜索策略对rgb图像进行模板匹配,进行工件类型识别和2d图像定位;
[0058]
s3:对模板匹配结果进行2d
‑
icp优化,得到精确的工件中心2d 定位;
[0059]
s4:对3d点云进行滤波处理,并通过欧式聚类分割获得单个工件实例点云;
[0060]
s5:对单个实例点云进行ransac平面拟合,得到工件的拟合平面方程;
[0061]
s6:利用拟合平面的法向量、相机内参矩阵计算工业零件的6d 位姿估计。
[0062]
本实施例中,s2中多分辨率空间搜索策略,多分辨率图像空间构建:
[0063]
将待检测的原图像i(x,y)作为多分辨率空间的第0层,使用高斯滤波器(式2)对其进行滤波得到平滑图像i
s
(x,y)((式1),然后进行降采样操作,使得图像分辨率将为原来的1/4,得到多分辨率空间的下一层图像,迭代进行高斯滤波和降采样操作,即得到图像的多
分辨率表达(图1)。
[0064]
i
s
(x,y)=g(x,y,σ)*i(x,y)
ꢀꢀꢀ
(1)
[0065][0066]
本实施例中,s2中分层模板搜索策略,分层模板库构建:
[0067]
第一,利用sobel卷积核(式1)分别计算零件模板图像三通道的梯度幅值,选取三通道中最大梯度值作为像素点梯度,将梯度幅值超过一定阈值的像素点作为有效特征点;进一步计算这些特征点梯度方向,得到梯度方向特征图i
g
(x);再对模板的梯度方向特征图进行非极大值抑制操作,使特征点均匀分布,获得最终的模板;
[0068][0069]
图像梯度幅值梯度方向
[0070]
第二,2d模板匹配中,模板和原图像中的待检测物体之间的变换关系为2d图像仿射变换
[0071][0072]
为了能在待检测图像中匹配到仿射变换后的物体,需要在2d仿射空间进行采样得到所有可能的仿射变换组合,并生成所有仿射变换下的模板;为了解决大量模板匹配带来的算法运行时间增长,本发明提出了基于分层模板搜索的匹配策略,首先需要构建分层模板库;2d 仿射空间的分层模板库构建步骤如下,首先生成l=0模板库,对限定范围后的仿射空间σ
min
≤s≤σ
max
,θ
min
≤θ≤θ
max
,以采样步长δs和δθ进行细分,得到所有可能的2d仿射变换组合:
[0073]
a(s
min
+mδs,θ
min
+nδθ),m∈[0,(σ
max
‑
σ
min
)/δs],n∈[0,(θ
max
‑
θ
min
)/δθ]
[0074]
第三,对原始模板图像进行2d仿射变换并提取梯度方向特征。在l=1层,采用2δs和2δθ对参数空间进行细分,该层的模板数量减少为l=0层的1/4;同理,对于l=k层,采样步长将增加至2
k
δs和2
k
δθ,生成该层的模板库,重复上述步骤生成分层模板库(图2)。
[0075]
本实施例中,结合图像多分辨率表达和分层模板库的模板匹配策略(图3):
[0076]
第一,首先从图像多分辨率金字塔的最高层开始进行匹配。利用滑窗法依次将模板库中的模板和待检测图像进行匹配并计算相似性得分(式4),保留相似度大于设定阈值的匹配结果;对高尺度空间的匹配结果在下一层尺度空间进行精匹配,同样保留相似度最高的匹配结果,重复进行这一步骤直到搜索到达图像金字塔最低层,得到最终的精细匹配结果。
[0077]
待匹配的模板定义为t={(x1,d1),(x2,d2),l,(x
m
,d
m
)},其中x
i
是特征点像素点坐标,d
i
是特征点的梯度方向,对待检测图像提取梯度方向特征图,以i={(p1,e1),(p2,e2),
…
,(p
n
,e
n
)}集合表示,其中p
i
像素点坐标, e
i
是该点的梯度方向,i和模板t在图像匹配
点c处的相似性得分可以用它们梯度方向的向量点积之和表达:
[0078][0079]
式中,r(i+c,t)定义为以i上的像素点p
i+c
为中心,大小为 t
×
t的邻域,ori()代表梯度方向;
[0080]
第二,在滑窗法进行图像空间搜索的过程中,利用分层搜索的匹配策略进一步对匹配过程进行加速;
[0081]
首先在分层模板库l
max
开始,将该层所有模板和待检测图像进行匹配,并计算相似性得分,保留得分大于阈值的模板,同时采用非极大值抑制剔除重复匹配,得到在l
max
层的待检索模板集合;完成l
max
层匹配后,将得到的待检索模板集合在l
max
‑
1层进行匹配;步骤如下:设l
max
层匹配得到待检索模板参数为(s0,θ0),该组合表示为2d仿射变换空间中的一个点,将l
max
‑
1层以该点为中心的一个邻域内的所有模板和待检测图像重新匹配,该邻域可以表示为直积:
[0082]
[s0‑
m
·2l
‑1δs,s0+m
·2l
‑1δs]
×
[θ0‑
m
·2l
‑1δθ,θ0+m
·2l
‑1δθ]
[0083]2l
‑1δs和2
l
‑1δθ为l
max
‑
1层采样步长,m为控制邻域大小的参数;同样计算相似度得分,并保留得分最高的模板,得到在l
max
‑
1层的待检索模板集合;由于l
max
‑
1层的采样步长更小,所以匹配结果更为精确;迭代进行上述分层搜索操作,直到所有l
max
层待检索模板均回溯到分层模板库的的最底层,即得到最终的精细匹配结果。
[0084]
本实施例中,s3中模板匹配结果进行2d
‑
icp优化:
[0085]
通过模板匹配得到待检测图像中工件中心的像素坐标t=[t
x
,t
y
]
t
和其2d仿射变换矩阵a;利用2d
‑
icp对匹配结果进行优化得到更为精确的结果;对模板t任一特征点x
i
,在待检测图像i中搜索欧氏距离最近的点q
i
作为其对应点;最优化的目标即使得模板特征点到图像对应点所在边缘切线的距离平方和损失函数最小,图像点q
i
切线方程可以表示为:(q
i
‑
x)
t
·
e
i
=0,则待优化的损失函数为:
[0086][0087]
精确的位姿利用基于lm算法迭代求解上述非线性最小二乘问题,得到最终2d模板匹配结果。
[0088]
本实施例中,s6中工件6d位姿估计:
[0089]
第一,首先对场景3d点云进行直通滤波和降采样操作,剔除背景点云干扰并降低点云密度,进一步进行统计滤波剔除噪声点云;
[0090]
第二,基于欧式聚类分割获取单个工件实例点云;
[0091]
第三,基于ransac方法拟合点云平面方程n
t
·
x+d=0;
[0092]
第四,通过2d模板匹配得到工件中心点像素坐标t=[t
x
,t
y
]
t
,齐次坐标为p=[t
x
,t
y
.1]
t
,设工件中心在相机坐标系下的坐标为 p
c
=[x
c
,y
c
,z
c
]
t
,根据相机模型,已知内参矩阵k,有:z
c
p=k
·
p
c
;
[0093]
第五,p
c
满足平面方程:n
t
·
p
c
+d=0,联立4)中等式可以求解z
c
=
‑
d/n
t
·
k
‑1·
p,进一步可以求得p
c
=z
c
·
k
‑1·
p,根据2d姿态角θ,计算出工件长轴(x轴)在相机坐标系下的
方向向量r
x
,工件平面z 轴方向向量r
z
=n/||n||,y轴方向向量为r
y
=r
z
×
r
x
,则工件坐标系相对于相机坐标系的旋转矩阵r=[r
x
,r
y
,r
z
],由此确定工件的6d位姿参数为: [0094]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。