CN113627548A - 一种平面工件模板匹配方法、装置、介质及计算机设备 - Google Patents

一种平面工件模板匹配方法、装置、介质及计算机设备 Download PDF

Info

Publication number
CN113627548A
CN113627548A CN202110940900.4A CN202110940900A CN113627548A CN 113627548 A CN113627548 A CN 113627548A CN 202110940900 A CN202110940900 A CN 202110940900A CN 113627548 A CN113627548 A CN 113627548A
Authority
CN
China
Prior art keywords
point
point cloud
matching
template
workpiece
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110940900.4A
Other languages
English (en)
Inventor
田希文
高磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seizet Technology Shenzhen Co Ltd
Original Assignee
Seizet Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seizet Technology Shenzhen Co Ltd filed Critical Seizet Technology Shenzhen Co Ltd
Priority to CN202110940900.4A priority Critical patent/CN113627548A/zh
Publication of CN113627548A publication Critical patent/CN113627548A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Numerical Control (AREA)

Abstract

本发明提供一种平面工件模板匹配方法,包括:S1获取实际工件轮廓点云Cs与工件模板轮廓点云Ct;S2分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css;S3对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);获取多个模板轮廓点云Sc;S4对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,输出最优匹配结果的变换矩阵Tb,可有效提高匹配精度和计算效率。

Description

一种平面工件模板匹配方法、装置、介质及计算机设备
技术领域
本发明属于图像识别领域,尤其涉及一种平面工件模板匹配方法、装置、存储介质及计算机设备。
背景技术
在计算机视觉和机器人感知领域,3D点云模板匹配是物体识别和定位的常用手段。诸如机器人搬运、切割、打磨等场景,3D点云模板匹配可准确获取实际物体的位置和姿态,为后续作业任务的机器人轨迹生成提供计算基础。目前,3D点云模板匹配一般分为粗匹配和精匹配两个阶段,粗匹配常用PPF方法对于物体进行全局定位,精匹配常用ICP方法对粗匹配的结果做进一步优化。传统PPF方法对点云的法向量特征依赖程度高,对于平面物体,由于法向量差异性较低,易导致错误匹配,难以起到全局定位的作用;另外,由于原始点云的数据量较大,直接采用PPF+ICP方法会导致计算时间冗长。精度不足和计算效率低下,使得传统PPF+ICP方法难以适用于平面物体的模板匹配。
发明内容
本发明提供了一种平面物体模板匹配方法,用于解决上述问题。
本发明所示的一种平面工件模板匹配方法,包括如下步骤:
S1获取实际工件轮廓点云Cs与工件模板轮廓点云Ct
S2分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css
S3对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc
S4对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb
本发明还提供了一种平面工件模板匹配装置,包括:
点云获取模块,用于获取实际工件轮廓点云Cs与工件模板轮廓点云Ct
采样模块,用于分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css
粗匹配模块,用于对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc
精匹配模块,用于对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb
本发明还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本发明所示的一种平面工件模板匹配方法、装置、存储介质及计算机设备,基于特征法向量对原始实际工件轮廓点云Cs与工件模板轮廓点云CC做采样处理,数据量降低且保留点云关键特征,从而提高匹配精度和计算效率。此外,本发明所示的一种平面工件模板匹配方法、装置、存储介质及计算机设备中,通过自定义特征法向量,可有效描述平面物体轮廓点云的特征,以进一步提高匹配精度和计算效率。同时,在获取实际工件轮廓点云Cs时,本发明所示的一种平面工件模板匹配方法、装置、存储介质及计算机设备,将原始的离散点云转换为具有拓扑结构的四角网格,利用四角网格的拓扑关系找到处于整个网格边缘的点,即为物体的轮廓,其不依赖于点云的法向量差异性,只需借助四角网格的特殊拓扑结构,轮廓提取效率高、精度高。
附图说明
图1为本发明所示的模板匹配方法一实施例的工作流程图;
图2数据结构line中线偏移线计算结构示意图;
图3数据结构arc中圆弧偏移计算结构示意图;
图4数据结构circle中圆偏移计算结构示意图;
图5为生成实际工件轮廓点云实施例的工作流程图;
图6为成实际工件轮廓点云另一实施例的的工作流程图;
图7为本发明所示的模板匹配装置一实施例的结构示意图;
图8为是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,而非以任何方式限制本发明的保护范围。
在说明书的全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列相目中的一个或多个的任何和全部组合。在附图中,为了便于说明,已稍微夸大了物体的厚度、尺寸和形状。附图仅为示例而非严格按比例绘制。
还应理解的是,用语“包括”、“包括有”、“具有”、“包含”和/或“包含有”,当在本说明书中使用时表示存在所陈述的特征、步骤、整体、操作、元件和/或部件,但不排除存在或附加有一个或多个其它特征、步骤、整体、操作、元件、部件和/或它们的组合。
如在说明书中使用的用语“基本上”、“大约”以及类似的用于用作表示近似的用语,而不用作表示程度的用语,并且旨在说明将由本领域普通技术人员认识到的、测量值或计算值中的固有偏差。
除非另有限定,否则本文中使用的所有用语(包括技术用语和科学用语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,用语(例如在常用词典中定义的用语)应被解释为具有与它们在相关技术的上下文中的含义一致的含义,并且将不被以理想化或过度正式意义解释,除非本文中明确如此限定。
实施例一
如图1所示,本发明公开了一种模板匹配方法,包括如下步骤:
S1获取实际工件轮廓点云Cs与工件模板轮廓点云Ct
S2分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css
S3对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K),将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc
S4对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb,作为本次匹配结果。
本发明所示的一种模板匹配方法,基于特征法向量对原始实际工件轮廓点云Cs与工件模板轮廓点云Ct做采样处理,数据量降低且保留点云关键特征,从而提高匹配精度和计算效率。
作为一优选方案,步骤S1中,可基于如下步骤获取工件模板轮廓点云Ct
S11A解析工件模板的2D图纸,将所述2D图纸的直线实体、圆弧实体、圆实体分别依照预设规则转换为line数据结构、arc数据结构以及circle数据结构,以获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
S12A将解析到的所有line数据结构、arc数据结构和circle数据结构,根据给定分辨率l0分别生成对应的参考线点云;
S13A合并所有的模板点云以获取工件模板点云。
进一步的,步骤S11A中,获取工件模板的2D图纸,依据所述2D图纸文件的线条属性,将所述工件模板中的直线、圆弧、圆实体预设规则分别解析为line、arc和circle的数据结构,其中解析后的所述line、所述arc和所述circle均为坡口参考线,集合所述坡口参考线生成模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数。
本实施例中,对于特定的工件模板,2D图纸文件可为DXF或DWG格式,可使用开源库dxfrw识别2D图纸文件的线条属性。获取各线条属性后,依据预设规则将识别出的直线、圆弧、圆实体分别解析为line、arc和circle的数据结构,即形成各个坡口参考线。
所述line的成员变量包含所述直线起点3D坐标和含所述直线终点的3D坐标,line的成员函数包括线偏移计算函数、直线中点计算函数、直线近点计算函数、直线远点计算函数以及直线近点替换函数、直线远点替换函数、直线起点终点互换函数中一种或多种的组合;
所述arc的成员变量包含圆弧起点3D坐标、圆弧终点3D坐标和圆弧圆心3D坐标、圆弧半径以及优劣弧中一种或多种的组合,所述arc的成员函数包括圆弧偏移计算函数、圆弧中点计算函数、圆弧近点计算函数、圆弧远点计算函数以及圆弧近点替换函数、圆弧远点替换函数、圆弧起点终点互换函数等功能函数中一种或多种的组合;
所述circle的成员变量包含圆实体圆心3D坐标和圆实体半径,所述circle的成员函数包括圆偏移计算函数。
(一)数据结构line
本实施例中,数据结构line的成员变量包含起点和终点的3D坐标,line的成员函数包括偏移线计算函数、中点计算函数、近点计算函数、远点计算函数以及近点替换函数、远点替函数换、起点终点互换函数。
(a)对于2D图纸中的直线实体,line的起点坐标Ps=(xs,ys,zs)T对应直线实体的基准点坐标(xb,yb),其中xs=xb,ys=yb,zs=0,line的终点坐标Pe=(xe,ye,ze)T对应直线实体的终点坐标(x2,y2),其中xe=x2,ys=y2,zs=0。
(b)line的线偏移计算函数包含2个输入和1个输出,输入1为指定偏移量,输入2为偏移方向,输出为偏移后的line。如图2所示,line的起点和终点具有相同的坐标系,其x轴方向沿起点指向终点,z轴方向垂直于工件表面向下,x-y-z轴构成右手坐标系。给定偏移量dy后,若偏移方向为正则起点和终点向y轴正方向偏移dy;若偏移方向为负则起点和终点向y轴负方向偏移dy。
(c)line的中点计算函数用于确认line的中点,line的中点是指直线的中点,中点的3D坐标(xm,ym,zm)与起点和终点的3D坐标满足
xm=(xs+xe)/2,ym=(ys+ye)/2,zm=(zs+ze)/2
(d)line的近点计算函数与远点计算函数是用于针对任意的一个指定点P确定其近点和远点,其中,若line的起点到指定点P的距离大于等于终点到指定点P的距离,则对指定点P而言,起点为近点,终点为远点;反之,若起点到点P的距离小于终点到点P的距离,则起点为远点,终点为近点。其中,可依据欧式距离分别计算指定点P到起点及终点的距离。
(e)line的近点替换函数,是针对指定点P,用于将近点替换为点P;远点替换函数是用于将远点替换为点P;起点终点互换函数,是用于将起点和终点互换。
(二)数据结构arc
数据结构arc的成员变量包含起点、终点和圆心的3D坐标、数据结构arc的成员函数包含半径以及优劣弧属性,以及计算偏移圆弧、中点、近点、远点以及近点替换、远点替换、起点终点互换功能函数。
(a)对于2D图纸中的圆弧实体,arc的起点坐标Ps=(xs,ys,zs)T对应圆弧实体的起始角度θs,arc的终点坐标Pe=(xe,ye,ze)T对应圆弧实体的终止角度θe,arc的圆心坐标Pc=(xc,yc,zc)T对应圆弧实体的基准点坐标(xb,yb),arc的半径ra对应圆弧实体的半径rb,arc的优劣弧属性Na对应圆弧实体终止角度θe与起始角度θs的差值,关系式如下:
xc=xb,yc=yb,zc=0,ra=rb
xs=xc+ra cosθs,ys=yx+ra sinθs,zs=zc
xe=xc+ra cosθe,ye=yc+ra sinθe,ze=zc
Figure BDA0003214900460000061
(b)arc的圆弧偏移计算函数用于确认偏移后的arc,其包含2个输入和1个输出,输入1为指定偏移量,输入2为偏移方向,输出为偏移后的arc。如图3所示,给定偏移量dr后,若偏移方向为正则起点和终点向半径增大的方向偏移dr;若偏移方向为负则起点和终点向半径减小的方向偏移dr。
(c)arc的中点计算函数用于确定arc的中点,本实施例中,arc的中点是指圆弧的中点,中点的3D坐标Pm=(xm,ym,zm)T与起点(xs,ys,zs)和)xe,ye,ze)终点满足如下关系式:
xcs=xc-xs,ycs=yc-ys,zcs=zc-zs
xce=xc-xe,yce=yc-ye,zce=zc-ze
θ1=atan2(ycs,xcs),θ2=atan2(yce,xce),Δθ=θ21
Figure BDA0003214900460000062
Pm=Pc+Rzm)(Pc-Ps);
其中,Rzm)为绕z轴旋转θm的旋转矩阵。
(d)arc近点计算函数和远点计算函数用于确定指定点P的近点和远点,其中,若起点到点P的距离大于等于终点到点P的距离,则起点为指定点P的近点,终点为指定点P远点;反之,若起点到点P的距离小于终点到点P的距离,则起点为点P的远点,终点为点P的近点,其中,可通过欧式距离计算起点到点P的距离
(e)arc的近点替换函数用于将近点替换为点P;远点替换函数用于将远点替换为点P;起点终点互换函数用于当解析完毕后中出现起点、终点位置错换的情况下,根据实际需要将起点和终点互换。
(三)数据结构circle
circle包含圆心的3D坐标和半径,以及计算偏移圆功能函数。
(a)对于2D图纸中的圆实体,circle的圆心坐标Pc=(xc,yc,zc)T对应圆弧实体的基准点坐标(xb,yb),circle的半径rc对应圆实体的半径rb,关系式如下:
xc=xb,yc=yb,zc=0,rc=rb
(b)circle的圆偏移计算函数用于确认偏移后的circle,其包含2个输入和1个输出,输入1为指定偏移量,输入2为偏移方向,输出为偏移后的circle。如图4所示,给定偏移量dr后,若偏移方向为正则整个圆向半径增大的方向偏移dr;若偏移方向为负则整个圆向半径减小的方向偏移dr。
将2D图纸文件中属性为直线、圆弧、圆的实体分别解析为特定的数据结构line、arc和circle后,获取工件模板的模板坡口线;在此基础之上,转入步骤S12 A,将所述工件模板的line、arc和circle,根据给定分辨率l0分别生成对应的参考线点云Mi,合并所有的点云Mi以获取工件模板点云Ct
步骤S12A中,对于任一一个line数据结构,可依据如下方法生成对应的点云Mi:从0开始每间隔l0向点云M中添加点Pi,且若l0不能整除l,则将点Pe也添加至所述点云Mi,其中,Pi=Ps+kid,ki=i·l0(0≤ki≤l),其中点云Mi为预先创建的空点云,k表示点云Mi中的数量,d表示line的方向,
Figure BDA0003214900460000071
l表示line的长度,l=||Pe-Ps||。
步骤S12A中,对于任一个arc数据结构,可依据如下方法生成相应的点云:
获取arc的优劣弧属性、旋转角度θ0以及Δθ的大小;其中,读取arc对应的圆心角大小,若圆心角不小于180°则为优弧,若圆心角小于180°为劣弧;
若判断arc为优弧且Δθ≥0,则从0开始每间隔θ0,向点云M中添加点Pi
Pi=Pc+Rzi),θi=i·θ0(0≤θi≤2π-Δθ);
若判断arc为优弧且Δθ<0,则从0开始每间隔-θ0,向点云M中添加点Pi
Pi=Pc+Rzi),θi=-i·θ0(2π+Δθ≤θi≤0);
若判断arc为劣弧且Δθ≥0,则从0开始每间隔θ0,向点云M中添加点Pi
Pi=Pc+Rzi),θi=i·θ0(0≤θi≤Δθ);
若判断arc为劣弧且Δθ<0,则从0开始每间隔-θ0,向点云Mi中添加点Pi
Pi=Pc+Rzi),θi=-i·θ0(Δθ≤θi≤0);
若θ0不能整除Δθ,则将点Pe也添加至点云M。
其中,点云Mi为预先创建的空的点云,旋转角度间隔θ0=l0/ra,Δθ为向量CPs与向量CPe的夹角,向量CPs=Ps-Pc,CPe=Pe-Pc,Δθ取值区间为(-π,π)。
步骤S12A中,对于任一个circle数据结构,可依据如下方法生成相应的点云:获取旋转角度间隔θ0=l0/rc,从0开始每间隔θ0,向点云Mi中添加点Pi,其中,点云Mi为预先创建的空的点云
Pi=Pc+Rzi),θi=i·θ0(0≤θi≤2π)。
将所有line、arc和circle生成的点云合并,所得点云即为工件模板点云Ct
此外作为一优选方案,获取件模板点云Ct后还包括:获取模板点云的转动惯量,得到模板点云的位姿矩阵,并以该位姿矩阵建立模板坐标系Sm,将模板点云平移旋转至坐标系Sm
作为一优选方案,如图5所示,步骤S1中,可基于如下方法获取实际工件轮廓点云Cs
S11B获取实际工件点云C1,基于预设规则将所述实际工件点云C1转换为四角网格SM1,并获取所述SM1中每个顶点的法向量;
S12B基于所述法向量以及预设约束条件分割所述SM1,基于分割结果移除所述SM1的侧面点云,生成移除侧面点云后的四角网格SM2
S13B搜索并获取所述SM2的全部边缘点,所述边缘点组成点云C3即为待提取的工件实际轮廓点云。
进一步的,步骤S11B中,基于3D相机获取待检测物的原始有序点云,其中点云数据为待检测物以点的形式记录,每一个点包含有三维坐标包括颜色信息以及法向量。更具体的,颜色信息通常是通过相机获取彩色影像,然后将对应位置的像素的颜色信息赋予点云中对应的点;有序点云一般是在相机坐标系里的,法线是面向相机的。
步骤S11B中基于预设规则将点云转换为四角网格包括如下步骤:
S111对于所述有序点云中的任意一点Pij,添加所述Pij的3D位置坐标(x,y,z)法向量、颜色信息以获取顶点Vmn,建立所述Pij与所述顶点Vmn之间一一对应索引关系;
本步骤中,建立顶点集合S,遍历所述有序点云的行坐标i和列坐标j,并将Pij以及对应的3D坐标、法向量、颜色信息获取顶点Vmn后,将各顶点Vmn添加至中顶点集合S。其中,顶点集合S为四角网格(SeizetColorMesh)的顶点集合。
S112获取所述点云数据中各点的行列排序;
一帧扫描数据是一副深度图,属于灰度图。像素的灰度值代表的是深度信息,可以通过相机参数把每个像素点变换到世界坐标系,这样每个像素就对应一个三维点,假设深度图的分辨率是ResX*ResY,那么有序点云按照图方阵一行一行的,从左上角到右下角排列。由于有序点云中各点Pij是按顺序排列,本实施例中,遍历所述点云数据,读取有序点云中各点的行坐标i和列坐标j,以获取Vij分别按行排序和按列排序。
S113对所述有序点云中的任意一点Pij,依照所述行列排序的索引规则查找Pij的相邻点Pi,j+1,Pi+1,j+1,Pi+1,j,其中,所述点云数据中第i行j列、第i行j+1列、第i+1行j列、第i+1行j+1列分别对应的Pi,j,Pi,j+1,Pi+1,j+1,Pi+1,j4个点;
由于有序点云按顺序排列,可以很容易的找到它的相邻点信息。本实施例中,作为一优选方案,在寻找任意一点Pij的相邻点时,若Pi,j+1、Pi+1,j+1、Pi+1,j中有三个相邻点有任意一个无法从有序点云数据中找到,则跳过Vij,继续下一点的相邻点查找。有序点云的行坐标和列坐标都是有区间范围的,如(i=0,…,Nr),(j=0,…,Nc),若i<0或i+1>Nr或j<0或j+1>Nc则判断超出边界。若行坐标i+1或列坐标j+1超出边界,则跳过点Pij,继续有序点云中下一点对应三个相邻点的查找。
S114依据所述索引关系,获取Pi,j,Pi,j+1,Pi+1,j+1,Pi+1,j各自分别对应的四个顶点Vmn,Vm,n+1.Vm+1,n,Vm+1,n+1
添加四角面片,并将所述4个顶点Vmn,Vm,n+1.Vm+1,n,Vm+1,n+1添加至对应四角面片的顶点位置处以生成半边四角网格,其中每个顶点Vmn存储点云数据中对应点Pij的3D位置坐标(x,y,z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
S115遍历所述Pij或所述顶点Vmn,获取全部所述Pij或所述顶点Vmn对应的半边四角网格以输出工件点云数据对应的四角网格SM1
由于在拍摄过程中,由于工件自身结构、拍摄角度等因素影响,工件的侧面不可避免会被拍摄到,但是在实际应用时,往往需要基于工件正面点云进行后续操作,如进行工件切坡口进行轨迹生成时,故步骤S11B将工件点云转化对应的四角网格SM1后,转入步骤S12B移除侧面点云(即点云少的一面)。
步骤S12B基于所述法向量以及预设约束条件对所述SM1进行分割,区分出实际工件点云的不同平面,并基于分割结果移除所述工件的侧面点云,最终获得移除侧面点云后四角网格SM2
在其中一个实施例中,可直接基于四角网格SM1进行点云平面分割,获取移除侧面点云的四角网格SM2,具体包括如下步骤:
步骤(A):遍历SM1中的所有点{V1,V2,...Vn},n表示SM1中点的数量,判断点Vm是否已经被处理过,若点Vm未处理过则创建一个空的聚类容器Di,并将Vi添加至Di,同时将点Vm标记为已处理;若点Vm为已处理,则跳过点Vm
对于添加至Di的点Vm,同时执行步骤(a),包括:
在预设距离d0范围内,搜索点Vm的邻居点{Vm1,Vm2,...Vmn},n表示点Vm的邻居点数量,并判断Vm的邻居点Vmn是否满足预设约束条件,所述预设约束条件为邻居点Vmn未处理且Vm与Vmn的法向量夹角不大于预设角度阈值θ0;其中,若Vm的邻居点Vmn满足预设约束条件,则将点Vmn也添加至容器Di中,并将点Vmn也标记为已处理;若所述邻居点Vmn已处理过,则跳过点Vmn,对Vm的下一个邻居点的继续执行步骤(a);若点Vm在预设距离d0范围内无邻居点,则跳过点Vm,对容器Di中的其他点执行步骤(A),直至SM1中全部点执行完毕;
上述已处理是指对应的点已经被加入到聚类容器Di中,重复上述步骤,直至SM1中全部点执行完毕后,可获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的四角网格SM2
在另外一个实施例中,如图6所示,也可基于工件点云C1行点云平面分割,获取移除侧面点云的工件点云C2后,在将工件点云C2依据预设规则转换为四角网格SeizetColorMesh SM2,具体包括如下步骤:
S121依据对应关系,将所述SM1中各顶点的法向量赋值至所述工件点云的对应各点中;
S122基于所述法向量以及预设约束条件分割所述C1,基于分割结果移除所述工件的侧面点云,以生成移除侧面点云后的工件点云C2
S123基于预设规则将工件点云C2转换为四角网格SeizetColorMesh SM2
其中,进一步的,步骤S122具体包括如下:
步骤(B):遍历点云C1中的所有点{P1,P2,...Pn},n表示点云C1中点的数量,判断点Pi是否已经被处理过,若点Pi未处理过则创建一个空的聚类容器Di,并将Pi添加至Di,同时将点Vi标记为已处理;若点Pi为已处理,则跳过点Pi
同时,对于添加至Di的点Pi,执行步骤(b),包括:在预设距离d0范围内搜索点Pi的邻居点{Pi1,Pi2,...Pij},j表示点Pi的邻居点数量,并判断Pi的邻居点Pij是否满足预设约束条件,所述预设约束条件为邻居点Pij未处理且Pi与Pij的法向量夹角不大于角度阈值θ0
其中,若Pi的邻居点Pij满足预设的约束条件,则将点Pij也添加至容器Di中,并将点Pij也标记为已处理;若所述邻居点Pij已处理过,则跳过点Pij,对Pi的下一个邻居点的继续执行步骤(b);若点Pi在距离d0范围内无邻居点,则跳过点Pi,对容器Di中的其他点执行步骤(B),直至点云C1中全部点执行完毕。
获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云,记为C2
上述已处理是指对应的点已经被加入到聚类容器Di中,重复上述步骤,直至C1中全部点执行完毕后,获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云,记为C2
进一步的,本实施例中,对实际工件点云C1生成Kd搜索树,基于所述Kd搜索树,:在预设距离d0范围内,搜索点Pi的邻居点{Pi1,Pi2,...Pij},其中,对于不同的工件,可依据经验设定的距离阈值d0和角度阈值θ0取值。
S123基于预设规则将工件点云C2转换为四角网格SeizetColorMesh SM2。基于点云生成对应的四角网格如步骤S1中所述,可包括如下步骤:
对于点云中C2的任意一点Pij,添加所述Pij的3D位置坐标(x,y,z)法向量、颜色信息以获取顶点Vmn,建立所述Pij与所述顶点Vmn之间一一对应索引关系;
获取所述实际工件点云C2中各点的行列排序;
对所点云中的任意一点Pij,依照所述行列排序的索引规则查找Pij的相邻点Pi,j+1,Pi+1,j+1,Pi+1,j,其中,所述点云数据中第i行j列、第i行j+1列、第i+1行j列、第i+1行j+1列分别对应的Pi,j,Pi,j+1,Pi+1,j+1,Pi+1,j4个点;
依据所述索引关系,获取Pi,j,Pi,j+1,Pi+1,j+1,Pi+1,j各自分别对应的四个顶点Vmn,Vm,n+1.Vm+1,n,Vm+1,n+1
添加四角面片,并将所述4个顶点Vmn,Vm,n+1.Vm+1,n,Vm+1,n+1添加至对应四角面片的顶点位置处以生成半边四角网格,其中每个顶点Vmn存储点云数据中对应点Pij的3D位置坐标(x,y,z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引;
遍历所述Pij或所述顶点Vmn,获取全部所述Pij或所述顶点Vmn对应的半边四角网格以输出所述点云数据对应的四角网格SM2
获取四角网格SM2后,转入步骤S13B,搜索并获取所述SM2的全部边缘点,将所有的边缘点组成点云C3,C3即为待提取的工件实际轮廓。
本实施例中,遍历四角网格SM2的所有顶点,对于四角网格SM2的顶点Vi(i0,...,n2),如果Vi满足条件如下条件之一,则判断Vi为SM2的边缘点:
(Ⅰ)顶点Vi的出半边Ej是无效的;
(Ⅱ)半边Ej对应的面片Qk是无效的;
(Ⅲ)顶点Vi的出半边Ej是有效的,但Ej是SM2的边缘边,其中,若Ej符合条件(b)时,判断Ej是SM2的边缘边。
当然毫无疑问的,本实施例中,实际工件轮廓点云Cs与工件模板轮廓点云Ct;获取可由其他方法替代,不限于基于四角网格的方法,如基于直接点云的轮廓提取方法也可。
基于步骤S1分别实际工件轮廓点云Cs与工件模板轮廓点云Ct后,转入步骤S2,分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css,包括:
S21获取点云Ct和点云Cs的特征法向量;
S22移除点云Ct和点云Cs中非正常的点;
S23基于特征法向量(对移除非正常点后)的点云Ct和点云Cs进行采样,获取采样后的点云Cts和点云Css
本实施例中,作为一优选方案,步骤S21中,实际工件轮廓点云Cs与工件模板轮廓点云Ct的特征法向量获取包括如下步骤:获取点云C的几何中心点Pcenter,遍历点云C的每个点Pi,对于每个点Pi,其特征法向量
Figure BDA0003214900460000121
非正常点指的是数值为NaN(not a NO.)的点,由于NaN与任何数做二元计算(加减乘除),结果都是NaN如果不移除非正常点,而参与到后续计算中,会影响计算结果,故步骤S22中分别移除点云Ct和点云Cs中非正常的点,作为一优选方案,本实施例中,当点云Ct和点云Cs中的点Pi满足如下任一条件时,则认为为非正常的点,将其从对应点云中移除;
(a)若点Pi的三维坐标(x,y,z)中,x或y或z为NaN(not a NO.),则点Pi为非正常点;
(b)若点Pi的特征法向量Ni=(nix,niy,niz)中,nix或niy或niz为NaN,则点Pi为非正常点;
由于点云数量众多,为了更快更准确的找到特征点以进行后续匹配步骤,故本实施例中,步骤23基于特征法向量对点云Ct和点云Cs进行采样。作为一优选方案,可基于如下方法分别对点云Ct和点云Cs进行采样:
步骤(C):遍历点云C中的所有点{V1,V2,...Vn},n表示点云C中点的数量,判断点Vi是否已经被处理过,若未处理过则将Vi添加至点云Co,并将点Vi标记为已处理,其中Co为预先创建的空的点云;若点Vi已处理,则跳过点Vi
对添加至Co中的点Vi同步执行步骤(c),包括:在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,...Vim},m表示点Vi的邻居点数量,并判断Vi的邻居点Vij是否满足预设约束条件,所述预设条件为:邻居点Vij未处理且Vi与Vij的各自对应的特征法向量夹角不大于预设角度阈值θ0
若Vi的其邻居点Vij已处理过,则跳过点Vij,判断Vi的其他邻居点是否满足约束条件;
若Vi的其邻居点Vij未处理过,判断点Vij是否满足约束条件,若点Vi与其邻居点Vij满足预设的约束条件,则将点Vij也添加至点云Co,并将点Vij也标记为已处理;
若点Vi在距离d0范围内无邻居点,则跳过点Vi,对点云Co的其他点执行步骤(C)。
进一步的,所述步骤(c)中,根据点云C生成Kd搜索树,使用Kd搜索树在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,...Vim}。
通过步骤S2对点云Ct和点云Cs进行采样,分别得到采样后的点云Cts和点云Css后,考虑到工件模板点云与实际工件点云在摆放姿态上存在一定偏转角度,若直接以采样后的点云Cts和点云Css进行匹配,匹配成功的概率很低,故需要本发明所示的方案中,首先经由粗匹配获取一定数量的变换角度的点云,然后在经由精确匹配,输出匹配比例最高的模板轮廓点云作为本次匹配结果。
作为一优选方案,本实施例中,步骤S3使用PPF(Point Pair Features)配准方法对点云Cts和点云Css进行粗匹配定位,包括:
S31获取采样前的工件模板Ct的最大工件半径rmax=‖Pmax-Pmin‖/2,其中,Pmin和Pmax为工件模板轮廓点云Ct的最小点Pmin和最大点Pmax
S32以采样后的工件模板轮廓点云Cts作为PPF特征估计器的输入点云、点云Css作为目标点云,以2rmax作为PPF哈希图搜索器的距离阈值,使用利用PPF配准方法,获取若干粗匹配结果,即变换矩阵;Ti(i=0,...,K);
S33使用每个变换矩阵Ti,对点云Ct进行旋转平移,得到K个变换后的点云Cti(i=0,...,K);
S34将点云Cti依条件绕x轴翻转以及z轴旋转;或将点云Cti依条件绕y轴翻转以及z轴旋转,以分别获取多个模板轮廓点云集合Sc
由于实际工件摆放位置和姿态往往不一,甚至可能出现与工件模板完全相反的情况,故步骤S34中,将点云Cti依条件绕变换矩阵Ti的x轴翻转以及z轴旋转,获取多个模板轮廓点云集合Sc,包括:
S341根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi
zi=Ti(0,2,3,1)
其中,Ti(0,2,3,1)表示从Ti的第0行第2列开始取3个数,构成1列;
S342将点云Cti依条件绕x轴翻转,若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该x轴为变换矩阵Ti的旋转x轴xi,即
xi=Ti(0,0,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S343将点云Cti依条件绕z轴旋转:将点云Cti(i=0,...,K)绕所述旋转z轴z旋转nz次,每次旋转角度为
Figure BDA0003214900460000141
得到nzK个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中;
或,将点云Cti依条件绕y轴翻转以及z轴旋转,获取多个模板轮廓点云包括如下步骤:
S341’根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi
zi=Ti(0,0,1,1);
其中,Ti(0,2,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S342’将点云Cti依条件绕y轴翻转:若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该y轴为变换矩阵Ti的旋转x轴yi,即
yi=Ti(0,1,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第1列开始取3个数,构成1列。
S343’将点云Cti依条件绕z轴旋转,包括:将点云Cti(i=0,...,K)绕所述旋转z轴z旋转nz次,每次旋转角度为
Figure BDA0003214900460000142
得到nzK个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中。
经过步骤S341-S343或步骤S341’-S343’处理后,可得到(nz+1)K个模板轮廓点云,此时转入步骤S4,对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb,作为本次匹配结果。
作为一优选方案,本实施例中,使用ICP对集合Sc中的模板点云和工件轮廓点云Cs进行精匹配定位,包括:
S41遍历集合Sc中的模板点云Cj,并分别与点云Cs进行ICP配准,若配准收敛且匹配度小于预设值、匹配比例大于预设值,则认为点云Cj与点云Cs匹配成功;得到若干匹配成功的匹配结果,包括变换矩阵Tj、匹配度、匹配比例;若无匹配成功的匹配结果,则认为3D模板匹配失败。
S42根据匹配比例,对步骤S41中的匹配结果进行排序,输出最优匹配结果的变换矩阵记为Tb,则Tb为本次3D平面工件模板匹配最优结果。
实施例二
如图7所示,本发明还公开了一种模板匹配装置10,包括:
点云获取模块11,用于获取实际工件轮廓点云Cs与工件模板轮廓点云Ct
采样模块12,用于分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css
粗匹配模块13,用于对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc
精匹配模块14,用于对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb
优选的,所述点云获取模块11包括实际工件轮廓点云Cs获取子模块,所述实际工件轮廓点云Cs获取子模块用于获取实际工件点云C1,基于预设规则将所述实际工件点云C1转换为四角网格SM1,并获取所述SM1中每个顶点的法向量;基于所述法向量以及预设约束条件分割所述SM1,基于分割结果移除所述SM1的侧面点云,生成移除侧面点云后的四角网格SM2;搜索并获取所述SM2的全部边缘点,所述边缘点组成点云C3即为待提取的工件实际轮廓点云。
优选的,所述点云获取模块11包括工件模板轮廓点云Ct获取子模块,所述工件模板轮廓点云Ct获取子模块用于解析工件模板的2D图纸,将所述2D图纸的直线实体、圆弧实体、圆实体分别依照预设规则转换为line数据结构、arc数据结构以及circle数据结构,以获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;将解析到的所有line数据结构、arc数据结构和circle数据结构,根据给定分辨率l0分别进行离散,以生成对应的参考线点云;合并所有的参考线点云以获取工件模板点云。
优选的,所述采样模块12包括特征法向量获取子模块,所述特征法向量获取子模块用于获取点云C的几何中心点Pcenter,遍历点云C的每个点Pi,对于每个点Pi,其特征法向量
Figure BDA0003214900460000161
优选的,所述采样模块12包括非正常点获取子模块,所述非正常点获取子模块用于昂点云Ct和点云Cs中的点Pi满足如下任一条件时则认为非正常的点;
(a)若点Pi的三维坐标(x,y,z)中,x或y或z为NaN,则点Pi为非正常点;
(b)若点Pi的特征法向量Ni=(nix,niy,niz)中,nix或niy或niz为NaN,则点Pi为非正常点。
优选的,所述采样模块12包括采样子模块,所述采样子模块用于基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,包括如下步骤:
步骤(C):遍历点云C中的所有点{V1,V2,...Vn},n表示点云C中点的数量,判断点Vi是否已经被处理过,若未处理过则将Vi添加至点云Co,并将点Vi标记为已处理,其中Co为预先创建的空的点云;若点Vi已处理,则跳过点Vi
对添加至Co中的点Vi同步执行步骤(c),包括:在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,...Vim},m表示点Vi的邻居点数量,并判断Vi的邻居点Vij是否满足预设约束条件,所述预设条件为:邻居点Vij未处理且Vi与Vij的各自对应的特征法向量夹角不大于预设角度阈值θ0
若Vi的其邻居点Vij已处理过,则跳过点Vij,判断Vi的其他邻居点是否满足约束条件;
若Vi的其邻居点Vij未处理过,判断点Vij是否满足约束条件,若点Vi与其邻居点Vij满足预设的约束条件,则将点Vij也添加至点云Co,并将点Vij也标记为已处理;
若点Vi在距离d0范围内无邻居点,则跳过点Vi,对点云Co的其他点执行步骤(C)。
进一步的,所述步骤(c)中,根据点云C生成Kd搜索树,使用Kd搜索树在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,...Vim}。
优选的,所述粗匹配模块13包括:
最大工件半径获取子模块,用于获取采样前的工件模板Ct的最大工件半径rmax=‖Pmax-Pmin‖/2,其中,Pmin和Pmax为工件模板轮廓点云Ct的最小点Pmin和最大点Pmax
PPF配准子模块,用于以采样后的工件模板轮廓点云Cts作为PPF特征估计器的输入点云、点云Css作为目标点云,以2rmax作为PPF哈希图搜索器的距离阈值,使用利用PPF配准方法,获取若干粗匹配结果,即变换矩阵;Ti(i=0,...,K);
旋转平移子模块,用于使用每个变换矩阵Ti,对点云Ct进行旋转平移,得到K个变换后的点云Cti(i=0,...,K);
模板轮廓点云集合获取子模块,用于将点云Cti依条件绕x轴翻转以及z轴旋转;或将点云Cti依条件绕y轴翻转以及z轴旋转,以分别获取多个模板轮廓点云集合Sc
进一步的,所述模板轮廓点云集合获取子模块中,将点云Cti依条件绕x轴翻转以及z轴旋转,获取多个模板轮廓点云集合Sc包括:
S341根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi
zi=Ti(0,2,3,1)
其中,Ti(0,2,3,1)表示从Ti的第0行第2列开始取3个数,构成1列;
S342将点云Cti依条件绕x轴翻转,若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该x轴为变换矩阵Ti的旋转x轴xi,即
xi=Ti(0,0,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S343将点云Cti依条件绕z轴旋转:将点云Cti(i=0,...,K)绕所述旋转z轴z旋转nz次,每次旋转角度为
Figure BDA0003214900460000171
得到nzK个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中;
或,将点云Cti依条件绕y轴翻转以及z轴旋转,获取多个模板轮廓点云包括如下步骤:
S341’根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi
zi=Ti(0,0,1,1);
其中,Ti(0,2,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S342’将点云Cti依条件绕y轴翻转:若旋转z轴zi与竖直向下方向相反,则将点云Ct绕x轴旋转180°,该y轴为变换矩阵Ti的旋转x轴yi,即
yi=Ti(0,1,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第1列开始取3个数,构成1列。
S343’将点云Cti依条件绕z轴旋转,包括:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为
Figure BDA0003214900460000181
得到nzK个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中。
优选的,所述精匹配模块14包括:
匹配结果获取子模块,用于遍历集合Sc中的模板点云Cj,并分别与点云Cs进行ICP配准,若配准收敛且匹配度小于预设值、匹配比例大于预设值,则认为点云Cj与点云Cs匹配成功;得到若干匹配成功的匹配结果,包括变换矩阵Tj、匹配度、匹配比例;若无匹配成功的匹配结果,则认为3D模板匹配失败。
匹配结果排序模块,用于根据匹配比例,对多个所述匹配结果进行排序,输出最优匹配结果的变换矩阵记为Tb
实施例三
图8所示是本发明实施例提供的一种计算机设备的结构示意图,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过***总线相互通信连接的存储器21、处理器22,如图8所示。需要指出的是,图8仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM),存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作***和各类应用软件,例如方法实施例中的模板匹配装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行模板匹配装置11,以实现方法实施例中的模板匹配方法。
实施例四
本申请还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储模板匹配装置的程序代码,被处理器执行时实现方法实施例中的模板匹配方法。
需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (11)

1.一种平面工件模板匹配方法,其特征在于,包括如下步骤:
S1获取实际工件轮廓点云Cs与工件模板轮廓点云Ct
S2分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css
S3对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc
S4对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb
2.根据权利要求1所述的一种平面工件模板匹配方法,其特征在于,所述步骤S2中,所述特征法向量获取包括如下步骤:获取点云C的几何中心点Pcentex,遍历点云C的每个点Pi,对于每个点Pi,其特征法向量
Figure FDA0003214900450000011
3.根据权利要求1所述的一种平面工件模板匹配方法,其特征在于,所述步骤S2中,所述点云Ct和点云Cs中的点Pi满足如下任一条件时则认为非正常的点;
(a)若点Pi的三维坐标(x,y,z)中,x或y或z为NaN,则点Pi为非正常点;
(b)若点Pi的特征法向量Ni=(nix,niy,niz)中,nix或niy或niz为NaN,则点Pi为非正常点。
4.根据权利要求1所述的一种平面工件模板匹配方法,其特征在于,所述步骤S2中,基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样包括如下步骤:
步骤(C):遍历点云C中的所有点{V1,V2,...Vn},n表示点云C中点的数量,判断点Vi是否已经被处理过,若未处理过则将Vi添加至点云Co,并将点Vi标记为已处理,其中Co为预先创建的空的点云;若点Vi已处理,则跳过点Vi
对添加至Co中的点Vi同步执行步骤(c),包括:在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,...Vim},m表示点Vi的邻居点数量,并判断Vi的邻居点Vij是否满足预设约束条件,所述预设条件为:邻居点Vij未处理且Vi与Vij的各自对应的特征法向量夹角不大于预设角度阈值θ0
若Vi的其邻居点Vii已处理过,则跳过点Vii,判断Vi的其他邻居点是否满足约束条件;
若Vi的其邻居点Vij未处理过,判断点Vij是否满足约束条件,若点Vi与其邻居点Vij满足预设的约束条件,则将点Vij也添加至点云Co,并将点Vij也标记为已处理;
若点Vi在距离d0范围内无邻居点,则跳过点Vi,对点云Co的其他点执行步骤(C)。
5.根据权利要求1所述的一种平面工件模板匹配方法,其特征在于,所述步骤S3中,使用PPF配准方法对点云Cts和点云Css进行粗匹配定位,包括:
S31获取采样前的工件模板Ct的最大工件半径rmax=||Pmax-Pmin||/2,其中,Pmin和Pmax为工件模板轮廓点云Ct的最小点Pmin和最大点Pmax
S32以采样后的工件模板轮廓点云Cts作为PPF特征估计器的输入点云、点云Css作为目标点云,以2rmax作为PPF哈希图搜索器的距离阈值,使用利用PPF配准方法,获取若干粗匹配结果,即变换矩阵;Ti(i=0,...,K);
S33使用每个变换矩阵Ti,对点云Ct进行旋转平移,得到K个变换后的点云Cti(i=0,...,K);
S34将点云Cti依条件绕变换矩阵Ti的x轴翻转以及z轴旋转;或将点云Cti依条件绕y轴翻转以及z轴旋转,以分别获取多个模板轮廓点云集合Sc
6.根据权利要求1或5所述的一种平面工件模板匹配方法,其特征在于,将点云Cti依条件绕x轴翻转以及z轴旋转,获取多个模板轮廓点云集合Sc包括:
S341根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi
zi=Ti(0,2,3,1)
其中,Ti(0,2,3,1)表示从Ti的第0行第2列开始取3个数,构成1列;
S342将点云Cti依条件绕x轴翻转,若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该x轴为变换矩阵Ti的旋转x轴xi,即
xi=Ti(0,0,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S343将点云Cti依条件绕z轴旋转:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为
Figure FDA0003214900450000021
得到nzK个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中;
或,将点云Cti依条件绕变换矩阵Ti的y轴翻转以及z轴旋转,获取多个模板轮廓点云包括如下步骤:
S341’根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi
zi=Ti(0,0,1,1);
其中,Ti(0,2,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S342’将点云Cti依条件绕y轴翻转:若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该y轴为变换矩阵Ti的旋转x轴yi,即
yi=Ti(0,1,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第1列开始取3个数,构成1列;
S343’将点云Cti依条件绕z轴旋转,包括:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为
Figure FDA0003214900450000031
得到nzK个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中。
7.根据权利要求1所述的一种平面工件模板匹配方法,其特征在于,步骤S4中,使用ICP对集合Sc中的模板点云和工件轮廓点云Cs进行精匹配定位,包括:
S41遍历集合Sc中的模板点云Cj,并分别与点云Cs进行ICP配准,若配准收敛且匹配度小于预设值、匹配比例大于预设值,则认为点云Cj与点云Cs匹配成功;得到若干匹配成功的匹配结果,包括变换矩阵Tj、匹配度、匹配比例;若无匹配成功的匹配结果,则认为3D模板匹配失败;
S42根据匹配比例,对步骤S41中的匹配结果进行排序,输出最优匹配结果的变换矩阵记为Tb
8.根据权利要求1所述的一种平面工件模板匹配方法,其特征在于,所述步骤S1中,所述获取实际工件轮廓点云Cs包括如下步骤:
获取实际工件点云C1,基于预设规则将所述实际工件点云C1转换为四角网格SM1,并获取所述SM1中每个顶点的法向量;
基于所述法向量以及预设约束条件分割所述SM1,基于分割结果移除所述SM1的侧面点云,生成移除侧面点云后的四角网格SM2
搜索并获取所述SM2的全部边缘点,所述边缘点组成点云C3即为待提取的工件实际轮廓点云;
和/或,所述工件模板轮廓点云Ct获取包括如下步骤:
解析工件模板的2D图纸,将所述2D图纸的直线实体、圆弧实体、圆实体分别依照预设规则转换为line数据结构、arc数据结构以及circle数据结构,以获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
将解析到的所有line数据结构、arc数据结构和circle数据结构,根据给定分辨率l0分别进行离散,以生成对应的参考线点云;
合并所有的参考线点云以获取工件模板点云。
9.一种平面工件模板匹配装置,其特征在于,包括:
点云获取模块,用于获取实际工件轮廓点云Cs与工件模板轮廓点云Ct
采样模块,用于分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css
粗匹配模块,用于对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc
精匹配模块,用于对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb
10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
CN202110940900.4A 2021-08-17 2021-08-17 一种平面工件模板匹配方法、装置、介质及计算机设备 Pending CN113627548A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110940900.4A CN113627548A (zh) 2021-08-17 2021-08-17 一种平面工件模板匹配方法、装置、介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110940900.4A CN113627548A (zh) 2021-08-17 2021-08-17 一种平面工件模板匹配方法、装置、介质及计算机设备

Publications (1)

Publication Number Publication Date
CN113627548A true CN113627548A (zh) 2021-11-09

Family

ID=78385927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110940900.4A Pending CN113627548A (zh) 2021-08-17 2021-08-17 一种平面工件模板匹配方法、装置、介质及计算机设备

Country Status (1)

Country Link
CN (1) CN113627548A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115082547A (zh) * 2022-07-27 2022-09-20 深圳市华汉伟业科技有限公司 一种基于点云数据的轮廓度测量方法、存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107507167A (zh) * 2017-07-25 2017-12-22 上海交通大学 一种基于点云平面轮廓匹配的货物托盘检测方法及***
DE102017201169A1 (de) * 2017-01-25 2018-07-26 Siemens Aktiengesellschaft Rechnergestütztes Bildverarbeitungsverfahren
CN108564605A (zh) * 2018-04-09 2018-09-21 大连理工大学 一种三维测量点云优化配准方法
CN110202575A (zh) * 2019-06-05 2019-09-06 武汉工程大学 一种用于工业测量的机器人目标轨迹精度补偿方法
CN111325837A (zh) * 2020-01-23 2020-06-23 江西理工大学 一种基于地面三维激光点云的边坡dem生成方法
CN111598946A (zh) * 2020-03-16 2020-08-28 华南理工大学 一种物***姿测量方法、装置及存储介质
CN111932570A (zh) * 2020-09-10 2020-11-13 熵智科技(深圳)有限公司 一种基于网格数据的边缘检测方法、装置、介质及设备
CN112002015A (zh) * 2020-09-10 2020-11-27 熵智科技(深圳)有限公司 无序点云生成网格数据结构的方法、装置、设备及介质
CN112017225A (zh) * 2020-08-04 2020-12-01 华东师范大学 一种基于点云配准的深度图像匹配方法
CN112215101A (zh) * 2020-09-27 2021-01-12 武汉科技大学 一种基于注意力机制的三维目标识别方法及***
CN112581457A (zh) * 2020-12-23 2021-03-30 武汉理工大学 一种基于三维点云的管道内表面检测方法及装置
CN112669359A (zh) * 2021-01-14 2021-04-16 武汉理工大学 一种三维点云配准方法、装置、设备及存储介质
CN113034593A (zh) * 2021-03-09 2021-06-25 深圳市广宁股份有限公司 6d位姿标注方法、***及存储介质
CN113649668A (zh) * 2021-08-17 2021-11-16 熵智科技(深圳)有限公司 一种工件模板点云生成方法、装置、计算机及存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017201169A1 (de) * 2017-01-25 2018-07-26 Siemens Aktiengesellschaft Rechnergestütztes Bildverarbeitungsverfahren
CN107507167A (zh) * 2017-07-25 2017-12-22 上海交通大学 一种基于点云平面轮廓匹配的货物托盘检测方法及***
CN108564605A (zh) * 2018-04-09 2018-09-21 大连理工大学 一种三维测量点云优化配准方法
CN110202575A (zh) * 2019-06-05 2019-09-06 武汉工程大学 一种用于工业测量的机器人目标轨迹精度补偿方法
CN111325837A (zh) * 2020-01-23 2020-06-23 江西理工大学 一种基于地面三维激光点云的边坡dem生成方法
CN111598946A (zh) * 2020-03-16 2020-08-28 华南理工大学 一种物***姿测量方法、装置及存储介质
CN112017225A (zh) * 2020-08-04 2020-12-01 华东师范大学 一种基于点云配准的深度图像匹配方法
CN111932570A (zh) * 2020-09-10 2020-11-13 熵智科技(深圳)有限公司 一种基于网格数据的边缘检测方法、装置、介质及设备
CN112002015A (zh) * 2020-09-10 2020-11-27 熵智科技(深圳)有限公司 无序点云生成网格数据结构的方法、装置、设备及介质
CN112215101A (zh) * 2020-09-27 2021-01-12 武汉科技大学 一种基于注意力机制的三维目标识别方法及***
CN112581457A (zh) * 2020-12-23 2021-03-30 武汉理工大学 一种基于三维点云的管道内表面检测方法及装置
CN112669359A (zh) * 2021-01-14 2021-04-16 武汉理工大学 一种三维点云配准方法、装置、设备及存储介质
CN113034593A (zh) * 2021-03-09 2021-06-25 深圳市广宁股份有限公司 6d位姿标注方法、***及存储介质
CN113649668A (zh) * 2021-08-17 2021-11-16 熵智科技(深圳)有限公司 一种工件模板点云生成方法、装置、计算机及存储介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
刘嘉敏等: "DWG图纸中零件轮廓线提取方法的研究与实现", 沈阳工业大学学报, vol. 28, no. 15, pages 553 - 556 *
崔水军等: "基于法向量特征的点云配准方法", 科技创新导报, vol. 14, no. 03, pages 134 - 137 *
张学昌等: "基于球面特征的点云配准方法研究", 机械科学与技术, vol. 34, no. 12, pages 1851 - 1856 *
张琮毅等: "尺度可变的快速全局点云配准方法", 计算机学报, vol. 42, no. 9, pages 1939 - 1952 *
李仁忠等: "基于方法库的点云去噪与精简算法", 激光与光电子学进展, vol. 55, no. 1, pages 251 - 257 *
潘博阳等: "基于SIFT和Affinity Propagation的遥感图像配准算法", 信息技术, no. 12, pages 25 - 32 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115082547A (zh) * 2022-07-27 2022-09-20 深圳市华汉伟业科技有限公司 一种基于点云数据的轮廓度测量方法、存储介质
CN115082547B (zh) * 2022-07-27 2022-11-15 深圳市华汉伟业科技有限公司 一种基于点云数据的轮廓度测量方法、存储介质

Similar Documents

Publication Publication Date Title
CN113751824B (zh) 一种切坡口轨迹自动生成方法、装置、计算机设备及介质
CN107633192B (zh) 一种基于机器视觉的复杂背景下条形码分割与识读方法
US8590794B2 (en) Barcode recognion method and computer product thereof
CN110738273B (zh) 图像特征点的匹配方法、装置、设备及存储介质
CN111598946B (zh) 一种物***姿测量方法、装置及存储介质
CN109559346B (zh) 一种3d点云测量中的待测部位的定位及分割方法、扫描仪
CN111400830B (zh) 一种三维毛坯工件的加工校准方法及装置
CN112686950B (zh) 位姿估计方法、装置、终端设备及计算机可读存储介质
CN111815706A (zh) 面向单品类拆垛的视觉识别方法、装置、设备及介质
CN111179433A (zh) 目标物体的三维建模方法及装置、电子设备、存储介质
CN113487633A (zh) 一种点云轮廓提取方法、装置、计算机设备及存储介质
CN112257721A (zh) 一种基于Fast ICP的图像目标区域匹配方法
CN105405122A (zh) 一种基于数据平稳性的圆检测方法
CN111832634A (zh) 异物检测方法、***、终端设备及存储介质
CN107895166B (zh) 基于特征描述子的几何哈希法实现目标鲁棒识别的方法
CN116091727A (zh) 一种基于多尺度特征描述的复杂曲面点云配准方法、电子设备及存储介质
CN113627548A (zh) 一种平面工件模板匹配方法、装置、介质及计算机设备
CN115147433A (zh) 点云配准方法
CN113159103A (zh) 图像匹配方法、装置、电子设备以及存储介质
CN113111741B (zh) 一种基于三维特征点的装配状态识别方法
CN111260723B (zh) 棒材的质心定位方法及终端设备
CN114453981A (zh) 工件找正方法及装置
Guo et al. Automatic shape-based target extraction for close-range photogrammetry
CN113649668A (zh) 一种工件模板点云生成方法、装置、计算机及存储介质
CN111191759A (zh) 一种二维码的生成方法和基于gpu的定位、解码方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination