一种基于目标二维轮廓模型的识别与空间定位方法与流程

文档序号:13519280阅读:460来源:国知局

本发明属于图像处理领域,主要用于从图像中搜索识别出指定形状的目标,并计算出该目标相对于相机的空间位姿,该技术可用于机器人的定位引导、工件分拣等场景。



背景技术:

模板匹配是从图像中识别并定位出指定目标最常用的技术,即给定一个目标的模板,然后从图像中搜索与模板最相似的对象。最简单的模板匹配技术为从图像中寻找大小、方向与模板完全一致的对象,仅需要将模板沿图像像素坐标系逐一平移,并分别计算相似度,直到相似度大于接受阈值,则认为搜索到目标;然而实际应用中图像中的目标与模板的大小由于拍摄距离的不同而不同,同时目标绕面法线可能会有旋转,上述方法已不再适用,但这种情况下目标并未发生变形,即圆形还是圆形,矩形仍是矩形,仅仅是被等比例缩放了,现有的方法是将缩放比与旋转角进行离散化,按照一定的步长将原模板进行仿射变换,生成多个不同大小、不同角度的模板,然后再分别进行上述的模板匹配操作;上述技术在生产线上对工件的自动识别与定位已经能满足需求,因为相机与生产线平台的高度、角度是固定的,物体通常只会有绕法线的旋转变化,然而,当机械臂、机器人需要对空间目标进行识别和定位时,图像中目标不仅大小、法线旋转角可能有变化,还有可能发生投影变形,因为拍摄角度是任意的,此时圆形可能投影为椭圆,矩形变为平行四边形,由多条直线、弧线组成的不规则目标则会呈现出更加难以识别的形态,上述的模板匹配方法都不再适用。投影变形匹配是图像识别的难题,因为它不仅需要从变形的图像中识别出目标,还需要计算出目标当前的空间位置(相对于相机),因此本发明针对投影变形目标,设计了一种基于目标二维轮廓模型的识别与空间定位方法。



技术实现要素:

本发明针对的对象为具有二维平面轮廓的物体,识别目标即为该物体的某个感兴趣平面上的轮廓特征,识别目标由一定数量的直线段和/或弧线段和/或圆形连接成闭合的轮廓,图像可从任意角度、高度拍摄目标及其所处背景,但须保证目标的所有轮廓可见且清晰,然后根据目标的二维模型轮廓信息,从图像中识别目标,并计算出目标相对于相机的空间位置。

本发明的目的是通过以下技术方案实现的:

一种基于目标二维轮廓模型的识别与空间定位方法,其特征在于,包括如下步骤:

步骤1,准备目标的二维模型,在制图软件中绘制目标的真实二维模型,长度单位为毫米,并将图纸导出为包含有图像轮廓信息的文件,二维模型轮廓线条必须闭合,轮廓由直线段、弧线段或圆组成;

步骤2,读取上述包含有图像轮廓信息的文件,解析出几何基元,查找并描述出闭合轮廓,并判断区分其中的歧义轮廓和非歧义轮廓,描述闭合轮廓中直线与弧线的连接顺次关系,建立目标二维轮廓几何基元拓扑关系;

步骤3,采集目标图像,使用canny边缘检测算子检测图像的边缘,遍历每一条轮廓,排除非闭合轮廓,对闭合轮廓进行单通、多通边缘点检查;选择检查出的单通、多通边缘点进行相交轮廓分离;使多边形逼近闭合轮廓,采用ramer算法对每一个闭合轮廓进行递归细分,直至得到的全部线段到各自对应的闭合轮廓的最大距离小于阈值dmax;再对直线段和/或弧线段进行拟合与合并,根据拟合出的直线方程和/或椭圆弧方程计算相邻线段的交点坐标,该交点对应了步骤2中的目标二维轮廓;

步骤4,指定搜索轮廓,检索在步骤3中产生的所有闭合轮廓确认与目标模板轮廓相同线段组成的待定轮廓,对待定轮廓进行姿态运算并完成确认,在图像中标记识别成功的目标,输出目标位置及投影矩阵。

所述步骤2中,所述歧义轮廓即该轮廓的顺次描述中,存在相同的顺次描述;建立目标二维轮廓几何基元拓扑关系的具体方法为

从包含有图像轮廓信息的文件的entities段中解析出图元信息,包括nl条直线的起止坐标,na条圆弧的圆心、半径、起止坐标,nc个圆的中心坐标、半径,保存所有直线、圆弧和圆的信息;

查找闭合轮廓,从任意一条直线或圆弧的起点开始,查找与该直线终点重合的下一个连接线段的起点,并重复这一过程,直至回到最开始的起点,即查找到一个闭合轮廓;

将已查找到的闭合轮廓中包含的线段从原数据中剔除,重复查找闭合轮廓的步骤,直至将所有线段查找完毕,计n个闭合轮廓,加上目标轮廓中本就是自闭合轮廓的圆形nc个,目标二维模型中共计有n+nc个闭合轮廓,统计每一个闭合轮廓中直线数nli、圆弧数nai、圆数nci,其中角标i表示闭合轮廓的编号;

描述闭合轮廓中非圆形闭合轮廓的直线与弧线的连接顺次关系,描述规则为从任意线段开始,沿固定顺时针或逆时针方向遍历轮廓的所有线段回到起点,若为直线则记为0,弧线记为1;对于每个非圆形闭合轮廓,其顺次关系共有(nli+nai)种,即以每一个线段作为起点,得到一种连接顺次,完成拓扑关系的建立。

所述步骤2中,还包括对闭合轮廓为歧义轮廓还是非歧义轮廓的检查步骤;歧义轮廓即该轮廓的顺次描述中,存在相同的顺次描述。

所述步骤3中,排除非闭合轮廓的方法为:遍历所有边缘点,若某个边缘点在其三邻域中,其他边缘点的数量仅为1,则该边缘点属于“未闭合点”,删除该边缘点后,重新检查与“未闭合点”相邻的边缘点,在其三邻域中是否也仅有一个其他边缘点,以此类推即可删除一条未闭合的轮廓;重复上述过程,处理完所有边缘点后,剩下的轮廓则全为闭合轮廓。

所述步骤3中,对闭合轮廓单通、多通边缘点检查的方法为某一边缘的五邻域最外围一圈中,检查非邻接边缘点的数量,对于每一处非邻接边缘点检查是否可以沿其三邻域到达中心边缘点,若能则表明该处为中心边缘点的一个通道,若不能则该处与中心边缘点无关,直接排除,最终,若该中心边缘点的通道数量大于2,则为多通道边缘点,否则为单通道边缘点

所述步骤3中,相交轮廓分离方法为对检查出的单通、多通边缘点,从任意边缘点开始,若该边缘点为单通边缘点,则任选一个通道搜索下一个边缘点,若为多通边缘点,则分别沿各个通道搜索下一个边缘点;若搜索过程中回到了已搜索过的边缘点,则将该路线删除,直到搜索回到起点,比较所有成功回到起点的路径,取最短的一个作为最小闭合轮廓,重复上述过程,完成对所有相交轮廓的分离。

所述步骤3中,对直线段和/或弧线段进行拟合与合并具体方法如下:

椭圆弧段拟合,检查逼近闭合轮廓的多边形的相邻两边,使用椭圆拟合两边所在的边缘点,计算椭圆拟合误差,若误差小于两边与对应轮廓的逼近误差,则使用椭圆弧代替两条直线边,沿相邻两条边重复上述过程,直至无法使用椭圆弧进行更好的拟合;

椭圆弧段合并,若在使用ramer算法对每一个闭合轮廓进行递归细分中出现连续多段采用椭圆弧进行拟合的轮廓,计算两个相邻椭圆弧的中心间距,若小于阈值dcmax则表示可以合并,合并为一条椭圆弧后,再重复与相邻的下一个椭圆弧进行同样的操作,直至相邻椭圆弧处理完毕;

直线拟合与合并,使用ramer算法对每一个闭合轮廓进行递归细分中无法使用椭圆弧进行拟合的轮廓则直接使用直线进行拟合,并对相邻的直线段进行判断合并;

求相邻线段的交点坐标,根据直线方程y=kx+b和椭圆弧方程为ax2+bxy+cy2+dx+ey+1=0解得相邻线段的交点坐标(x,y),该交点对应目标模板的结点;式中k、b为拟合计算出的系数,表征唯一条直线,而(a,b,c,d,e)为椭圆拟合计算出的参数,每一组参数表征唯一椭圆。

所述步骤4中,指定搜索轮廓的方法为,若目标轮廓中存在多个闭合轮廓,则优选非歧义轮廓作为模板轮廓,若全为歧义轮廓,则将线段数最多的轮廓作为模板轮廓,从线段数最多的轮廓沿角点匹,全部计算相似度,选择最相似的一组。

所述步骤4中,确认与目标模板轮廓相同线段组成的待定轮廓的具体方法为检索在步骤3中产生的所有闭合轮廓,剔除组成线段数与模板轮廓线段不同的轮廓;在剩余轮廓中,任意选择该轮廓中的一个结点,按顺时针方向排列该轮廓的连接顺次,若该顺次能够在模板轮廓的(nli+nai)中连接顺次中找到,则该搜索轮廓为待定轮廓,否则直接排除。

所述步骤4中,待定轮廓进行姿态运算并完成确认的方法为如下步骤:

根据待定轮廓与模板轮廓的顺次关系,确定结点间物理坐板和像素坐标的对应关系,模板轮廓给出结点的物理坐标,待定轮廓的结点为像素坐标,首先建立姿态计算方程

其中为相机的内参矩阵,可由相机标定获得;

在模板轮廓中任选三个不共线的结点,将其物理坐标[xwyw0]it及在待定轮廓中检测出的像素坐标[u0v0]it带入上述姿态计算方程,得到计算得到投影变换矩阵

将投影变换矩阵带入上述姿态计算方程,将模板轮廓所有结点物理坐标[xwyw0]it分别带入上述姿态计算方程,计算每个结点的投影像素坐标[uv]it

计算投影相似度f,根据结点像素坐标(uv)i与待定轮廓中检测出的对应节点的像素坐标(u0v0)i计算相似度f,计算公式如下

其中n代表模板轮廓中结点数总和;

对于非歧义轮廓,若相似度超过设定阈值,则认为该待定轮廓为正确的目标,并返回到投影变换矩阵,该矩阵则描述了目标相对相机的空间平移位置及其绕各个轴的旋转角;

对于歧义轮廓,若多种结点对应关系下的相似度均超过设定阈值,将得到多个的姿态矩阵,则将该待定轮廓置为多态轮廓,若目标仅有此一个歧义轮廓,则直接返回符合要求的多个姿态矩阵;

若多个多态轮廓间存在唯一共同的姿态矩阵,则该姿态矩阵为歧义轮廓的正确姿态;若仍然有多个相同的姿态矩阵,则说明目标的多个歧义轮廓的分布是完全对称的,则直接返回多个姿态矩阵,并在图像中标记识别成功的目标。

本发明的有益效果如下:

一、本发明提供的一种基于目标二维轮廓模型的识别与空间定位方法,目标的二维轮廓虽然目标在投影变形后,几何基元(直线段、弧线段)的长度,半径、夹角、比例关系等均可能发生了变化,但保持不变的是几何基元间的拓扑关系;拓扑关系即为该目标轮廓包含的直线段数量、弧线段数量、圆数量、直线段与弧线段的连接顺次关系;根据给定目标的轮廓模型,建立其几何基元的拓扑关系,然后对待搜索图像进行边缘检测,再进行几何基元的分割拟合,将所有轮廓分割为直线、椭圆、椭圆弧,根据目标模型的拓扑关系,到图像中搜索匹配,直至符合目标的拓扑关系为止。

二、本发明提供的一种基于目标二维轮廓模型的识别与空间定位方法,采用的canny是业界公认的最好的像素级边缘检测算法,ramer算法同理。

三、本发明提供的一种基于目标二维轮廓模型的识别与空间定位方法,识别目标即为该物体的某个感兴趣平面上的轮廓特征。识别目标由一定数量的直线段和(或)弧线段和(或)圆形连接成闭合的轮廓。图像可从任意角度、高度拍摄目标及其所处背景,但须保证目标的所有轮廓可见且清晰,然后根据目标的二维模型轮廓信息,从图像中识别目标,并计算出目标相对于相机的空间位置。

附图说明

图1是本发明目标图像内轮廓描述示意图;

图2是本发明三领域的示意图;

图3是本发明五领域的示意图;

图4是本发明相交轮廓最短路径搜索与分离策略示意图;

图5是本发明的逻辑结构示意图。

具体实施方式

以下通过几个具体实施例来进一步说明为实现本发明目的的技术方案,需要说明的是,本发明所要求保护的技术方案包括但不限于以下实施例。

实施例1

如图1至5,一种基于目标二维轮廓模型的识别与空间定位方法,其特征在于,包括如下步骤:

步骤1,准备目标的二维模型,在制图软件中绘制目标的真实二维模型,长度单位为毫米,并将图纸导出为包含有图像轮廓信息的文件,二维模型轮廓线条必须闭合,轮廓由直线段、弧线段或圆组成;

步骤2,读取上述包含有图像轮廓信息的文件,解析出几何基元,查找并描述出闭合轮廓,并判断区分其中的歧义轮廓和非歧义轮廓,描述闭合轮廓中直线与弧线的连接顺次关系,建立目标二维轮廓几何基元拓扑关系;

步骤3,采集目标图像,使用canny边缘检测算子检测图像的边缘,遍历每一条轮廓,排除非闭合轮廓,对闭合轮廓进行单通、多通边缘点检查;选择检查出的单通、多通边缘点进行相交轮廓分离;使多边形逼近闭合轮廓,采用ramer算法对每一个闭合轮廓进行递归细分,直至得到的全部线段到各自对应的闭合轮廓的最大距离小于阈值dmax;再对直线段和/或弧线段进行拟合与合并,根据拟合出的直线方程和/或椭圆弧方程计算相邻线段的交点坐标,该交点对应了步骤2中的目标二维轮廓;

步骤4,指定搜索轮廓,检索在步骤3中产生的所有闭合轮廓确认与目标模板轮廓相同线段组成的待定轮廓,对待定轮廓进行姿态运算并完成确认,在图像中标记识别成功的目标,输出目标位置及投影矩阵。

这是本发明一种最基本的实施方案。目标的二维轮廓虽然目标在投影变形后,几何基元(直线段、弧线段)的长度,半径、夹角、比例关系等均可能发生了变化,但保持不变的是几何基元间的拓扑关系;拓扑关系即为该目标轮廓包含的直线段数量、弧线段数量、圆数量、直线段与弧线段的连接顺次关系;根据给定目标的轮廓模型,建立其几何基元的拓扑关系,然后对待搜索图像进行边缘检测,再进行几何基元的分割拟合,将所有轮廓分割为直线、椭圆、椭圆弧,根据目标模型的拓扑关系,到图像中搜索匹配,直至符合目标的拓扑关系为止;采用的canny是业界公认的最好的像素级边缘检测算法,ramer算法同理。

实施例2

一种基于目标二维轮廓模型的识别与空间定位方法,其特征在于,包括如下步骤

步骤1,准备目标的二维模型,在autocad中绘制目标的真实二维模型,长度单位为毫米,并导出为dxf格式文件,二维模型轮廓线条必须闭合,轮廓由直线段、弧线段或圆组成;

步骤2,读取包含有图像轮廓信息的文件,解析出几何基元,建立目标二维轮廓几何基元拓扑关系,查找并描述出闭合轮廓,并判断是否为歧义轮廓;

步骤3,采集目标图像,使用canny边缘检测算子检测图像中边缘,排除非闭合轮廓,对闭合轮廓进行单通、多通边缘点检查,选择检查出的单通、多通边缘点进行相交轮廓分离,使用ramer算法对每一个闭合轮廓进行递归细分,直至得到的全部线段到各自对应的轮廓段的最大距离小于某一阈值dmax为止;再对直线段和/或弧线段进行拟合与合并,根据拟合出的直线方程和/或椭圆弧方程计算相邻线段的交点坐标,该交点对应了目标模板的结点;

步骤4,指定搜索轮廓,检索在步骤3中产生的所有闭合轮廓确认与目标模板轮廓相同线段组成的待定轮廓,对待定轮廓进行姿态运算并完成确认,在图像中标记识别成功的目标,输出目标位置及投影矩阵。

所述步骤2中,所述歧义轮廓即该轮廓的顺次描述中,存在相同的顺次描述;建立目标二维轮廓几何基元拓扑关系的具体方法为

从包含有图像轮廓信息的文件的entities段中解析出图元信息,包括nl条直线的起止坐标,na条圆弧的圆心、半径、起止坐标,nc个圆的中心坐标、半径,保存所有直线、圆弧和圆的信息;

查找闭合轮廓,从任意一条直线或圆弧的起点开始,查找与该直线终点重合的下一个连接线段的起点,并重复这一过程,直至回到最开始的起点,即查找到一个闭合轮廓;由于目标模板的闭合轮廓不存在相交情况,因此能回到起点的搜索路径仅一条。特别说明,在后文中,从实际图像中查找闭合轮廓时,可能存在相交闭合轮廓,此时需要按最短路径搜索闭合轮廓,详见后述。

将已查找到的闭合轮廓中包含的线段从原数据中剔除,重复查找闭合轮廓的步骤,直至将所有线段查找完毕,计n个闭合轮廓,加上目标轮廓中的圆形nc,本就是自闭合轮廓,因此目标二维模型中共计有(n+nc)个闭合轮廓,统计每一个闭合轮廓中直线数nli、圆弧数nai、圆数nci,其中角标i表示闭合轮廓的编号;

描述闭合轮廓中直线与弧线的连接顺次关系,描述规则为从任意线段开始,沿固定顺时针或逆时针方向遍历轮廓的所有线段回到起点,若为直线则记为0,弧线记为1;对于非圆形轮廓,其顺次关系共有(nli+nai)种,即以每一个线段作为起点,得到一种连接顺次。例如图1示例中,外轮廓的连接顺次可表示为1-0-0-0,0-1-0-0,0-0-1-0,0-0-0-1四种。

检查是否为“歧义轮廓”;“歧义轮廓”即该轮廓的(nli+nai)种顺次描述中,存在相同的顺次描述,如图1示例中,内轮廓的四种连接顺次为1-0-1-0,0-1-0-1,1-0-1-0,0-1-0-1;在匹配过程中“歧义轮廓”无法获得唯一匹配结果。

从“非歧义”的闭合轮廓开始搜索,若全为“有歧义”闭合轮廓,则从角点数最多的闭合轮廓开始沿角点匹配,共有x种对应关系,全部计算相似度,选择最相似的一组;

所述步骤3中,排除非闭合轮廓的方法为遍历所有边缘点,若某个边缘点在其三邻域中,其他边缘点的数量仅为1,则该边缘点属于“未闭合点”,删除该边缘点后,重新检查与“未闭合点”相邻的边缘点,在其三邻域中是否也仅有一个其他边缘点,以此类推即可删除一条未闭合的轮廓;重复上述过程,处理完所有边缘点后,剩下的轮廓则全为闭合轮廓。

所述步骤3中,对闭合轮廓单通、多通边缘点检查的方法为某一边缘的五邻域最外围一圈中,检查非邻接边缘点的数量,对于每一处非邻接边缘点检查是否可以沿其三邻域到达中心边缘点,若能则表明该处为中心边缘点的一个通道,若不能则该处与中心边缘点无关,直接排除,最终,若该中心边缘点的通道大于2,则为多通道边缘点,否则为单通道边缘点

所述步骤3中,相交轮廓分离方法为对检查出的单通、多通边缘点,从任意边缘点开始,若该边缘点为单通,则任选一个通道搜索下一个边缘点,若为多通道边缘点,则分别沿各个通道搜索下一个边缘点;若搜索过程中回到了已搜索过的边缘点,则将该路线删除,直到搜索回到起点,比较所有成功回到期待你的路径,取最短的一个作为最小闭合轮廓,重复上述过程,完成对所有相交轮廓的分离。

所述步骤3中,对直线段和/或弧线段进行拟合与合并具体方法如下

椭圆弧段拟合,检查逼近多边形的相邻两边,使用椭圆拟合两边所在的边缘点,计算椭圆拟合误差,若误差小于两边与对应轮廓的逼近误差,则使用椭圆弧代替两条直线边。沿相邻两条边重复上述过程,直至无法使用椭圆弧进行更好的拟合。

椭圆弧段合并,若在步骤f中出现连续多段采用椭圆弧进行拟合的轮廓,则考虑是否可以合并为一个椭圆弧来拟合。具体方法为:计算两个相邻椭圆弧的中心间距,若小于阈值dcmax则表示可以合并,合并为一条椭圆弧后,再重复与相邻的下一个椭圆弧进行同样的操作,直至相邻椭圆弧处理完毕。

直线拟合与合并,无法使用椭圆弧进行拟合的轮廓则直接使用直线进行拟合,并对相邻的直线段进行判断合并。

求相邻线段的交点坐标,根据上述拟合出的直线方程、椭圆弧方程计算相邻线段的交点坐标,该交点对应了目标模板的结点。

所述步骤4中,指定搜索轮廓的方法为,若目标轮廓中存在多个闭合轮廓,则优选“非歧义”轮廓作为模板轮廓,若不存在“非歧义”轮廓,则将线段数最多的轮廓作为模板轮廓。

所述步骤4中,确认与目标模板轮廓相同线段组成的待定轮廓的具体方法为检索在步骤3中产生的所有闭合轮廓,剔除组成线段数与模板轮廓线段不同的轮廓;在剩余轮廓中,任意选择该轮廓中的一个结点(相邻线段的交点),按顺时针(与步骤2e中的方向一致)方向排列该轮廓的连接顺次,若该顺次能够在模板轮廓的(nli+nai)中连接顺次中找到,则该搜索轮廓为待定轮廓,否则直接排除。

所述步骤4中,待定轮廓进行姿态运算并完成确认的方法为如下步骤

根据待定轮廓与模板轮廓的顺次关系,确定结点间“物理—像素”的对应关系,模板轮廓给出结点的物理坐标,待定轮廓的结点为像素坐标,若模板轮廓为“歧义轮廓”则有两种或更多种符合的对应关系,应同等对待,完成下述计算

首先建立姿态计算方程:

其中为相机的内参矩阵,可由相机标定获得;

在模板轮廓中任选三个不共线的结点,将其物理坐标[xwyw0]it及在待定轮廓中检测出的像素坐标[u0v0]it带入上述姿态计算方程,得到计算得到投影变换矩阵

将投影变换矩阵带入上述姿态计算方程,将模板轮廓所有结点物理坐标[xwyw0]it分别带入上述姿态计算方程,计算每个结点的投影像素坐标[uv]it

计算投影相似度f,根据结点像素坐标(uv)i与待定轮廓中检测出的对应节点的像素坐标(u0v0)i计算相似度f,计算公式如下

其中n代表模板轮廓中结点数总和;

对于“非歧义轮廓”,若相似度超过设定阈值,则认为该待定轮廓为正确的目标,并返回到投影变换矩阵该矩阵则描述了目标相对相机的空间平移位置及其绕各个轴的旋转角;

对于“歧义轮廓”,若多种结点对应关系下的相似度均超过设定阈值,将得到多个的姿态矩阵,无法唯一确定,则将该待定轮廓置为“多态轮廓”,若目标仅有此一个“歧义轮廓”,则直接返回符合要求的多个姿态矩阵;

若目标还存在其他“歧义轮廓”,则设定其他轮廓为新的模板轮廓,在“多态轮廓”附近重复上述步骤得到新的“多态轮廓”;

若多个“多态轮廓”间存在唯一共同的姿态矩阵,则该姿态矩阵为“歧义轮廓”的正确姿态;若仍然有多个相同的姿态矩阵,则说明目标的多个“歧义轮廓”的分布是完全对称的,则直接返回多个姿态矩阵,并在图像中标记识别成功的目标。

实施例3

一种基于目标二维轮廓模型的识别与空间定位方法,包括如下步骤

步骤1,准备目标的二维模型,在制图软件中绘制目标的真实二维模型,长度单位为毫米,并将图纸导出为dxf格式文件,二维模型轮廓线条必须闭合,轮廓由直线段、弧线段或圆组成;

步骤2,读取上述包含有图像轮廓信息的文件,解析出几何基元,查找并描述出闭合轮廓,并判断区分其中的歧义轮廓和非歧义轮廓,描述闭合轮廓中直线与弧线的连接顺次关系,建立目标二维轮廓几何基元拓扑关系;

步骤3,采集目标图像,使用canny边缘检测算子检测图像的边缘,遍历每一条轮廓,排除非闭合轮廓,对闭合轮廓进行单通、多通边缘点检查,图像的边缘即边缘上的像素点组成一系列的轮廓,边缘点是指步骤3中用canny边缘检测算子检测图像的边缘上的像素点,也就是轮廓上的像素点;选择检查出的单通、多通边缘点进行相交轮廓分离;使多边形逼近闭合轮廓,采用ramer算法对每一个闭合轮廓进行递归细分,直至得到的全部线段到各自对应的闭合轮廓的最大距离小于阈值dmax;再对直线段和/或弧线段进行拟合与合并,根据拟合出的直线方程和/或椭圆弧方程计算相邻线段的交点坐标,该交点对应了步骤2中的目标二维轮廓,也是由直线段和弧线段等几何基元组成的,结点就是目标二维轮廓中直线段和/或椭圆弧线段的交点;canny是业界公认的最好的像素级边缘检测算法,ramer算法同理;阈值dmax建议取2,依据为ramer算法作者在论文中建议;“单通、多通边缘点”用于描述任一边缘像素点与周边边缘点相邻的关系,用于判断轮廓是否相交;

步骤4,指定搜索轮廓,检索在步骤3中产生的所有闭合轮廓确认与目标模板轮廓相同线段组成的待定轮廓,对待定轮廓进行姿态运算并完成确认,在图像中标记识别成功的目标,输出目标位置及投影矩阵。

所述步骤2中,所述歧义轮廓即该轮廓的顺次描述中,存在相同的顺次描述;建立目标二维轮廓几何基元拓扑关系的具体方法为

从包含有图像轮廓信息的文件的entities段中解析出图元信息,包括nl条直线的起止坐标,na条圆弧的圆心、半径、起止坐标,nc个圆的中心坐标、半径,保存所有直线、圆弧和圆的信息;

查找闭合轮廓,从任意一条直线或圆弧的起点开始,查找与该直线终点重合的下一个连接线段的起点,并重复这一过程,直至回到最开始的起点,即查找到一个闭合轮廓;

将已查找到的闭合轮廓中包含的线段从原数据中剔除,重复查找闭合轮廓的步骤,直至将所有线段查找完毕,计n个闭合轮廓,加上目标轮廓中本就是自闭合轮廓的圆形nc个,目标二维模型中共计有n+nc个闭合轮廓,统计每一个闭合轮廓中直线数nli、圆弧数nai、圆数nci,其中角标i表示闭合轮廓的编号;

描述闭合轮廓中非圆形闭合轮廓的直线与弧线的连接顺次关系,描述规则为从任意线段开始,沿固定顺时针或逆时针方向遍历轮廓的所有线段回到起点,若为直线则记为0,弧线记为1;对于每个非圆形闭合轮廓,其顺次关系共有(nli+nai)种,即以每一个线段作为起点,得到一种连接顺次,完成拓扑关系的建立。

所述步骤2中,还包括对闭合轮廓为歧义轮廓还是非歧义轮廓的检查步骤;歧义轮廓即该轮廓的顺次描述中,存在相同的顺次描述,如图1示例中,内轮廓的四种连接顺次为1-0-1-0,0-1-0-1,1-0-1-0,0-1-0-1;歧义轮廓不存在唯一的对应关系,因此后续无法得到唯一解,需要进一步进行排除,增加了计算工作量,因此若有非歧义轮廓则优先使用非歧义轮廓进行匹配计算,若全为歧义轮廓,再按照另一种方法进行匹配计算,两者需要的计算过程是有差别的,需要进行区分;

所述步骤3中,排除非闭合轮廓的方法为:遍历所有边缘点,若某个边缘点在其三邻域中,其他边缘点的数量仅为1,则该边缘点属于“未闭合点”,删除该边缘点后,重新检查与“未闭合点”相邻的边缘点,在其三邻域中是否也仅有一个其他边缘点,以此类推即可删除一条未闭合的轮廓;重复上述过程,处理完所有边缘点后,剩下的轮廓则全为闭合轮廓。

三邻域指以待计算边缘点为中心,3乘3的像素窗口,如图2,同理“五邻域”指以待计算边缘点为中心,5乘5的像素窗口,如图3;“其三邻域中,其他边缘点的数量仅为1”是指在三邻域中的除自身外的八个像素点中有且仅有一个像素点是属于遍历的当前轮廓的边缘点,如图2所示,黑色代表边缘点,白色为非边缘点的像素点;如图3,“非邻接边缘点”指在五邻域最外围一圈中,此时不考虑五邻域内部的3x3的像素,将最外围一圈像素中相邻的若干个像素点看作是一个边缘点,但如果存在某个像素点本身就是孤立的,不与任何其他像素点相邻,则直接记作一个边缘点。统称上述两种情况的边缘点为“非邻接边缘点”,如在下图左图中,标记为1、2的边缘点,在最外围一圈里本身就是孤立的,因此分别记为“非邻接边缘点”,而标记为3的地方,有两个边缘点是相邻的,因此将其看作“一个边缘点”,这样左图中总共有三个“非邻接边缘点”;“中心边缘点的通道”指如果上述“非邻接边缘点”能够沿相邻边缘点搜索到中心边缘点,即“非邻接边缘点”与中心边缘点是相通的,记为一个通道。

所述步骤3中,对闭合轮廓单通、多通边缘点检查的方法为某一边缘的五邻域最外围一圈中,检查非邻接边缘点的数量,对于每一处非邻接边缘点检查是否可以沿其三邻域到达中心边缘点,若能则表明该处为中心边缘点的一个通道,若不能则该处与中心边缘点无关,直接排除,最终,若该中心边缘点的通道数量大于2,则为多通道边缘点,否则为单通道边缘点

所述步骤3中,相交轮廓分离方法为对检查出的单通、多通边缘点,从任意边缘点开始,若该边缘点为单通边缘点,则任选一个通道搜索下一个边缘点,若为多通边缘点,则分别沿各个通道搜索下一个边缘点;若搜索过程中回到了已搜索过的边缘点,则将该路线删除,直到搜索回到起点,比较所有成功回到起点的路径,路径为沿着边缘点搜索能形成闭合的轮廓,取最短的一个作为最小闭合轮廓,重复上述过程,完成对所有相交轮廓的分离。

所述步骤3中,对直线段和/或弧线段进行拟合与合并具体方法如下

椭圆弧段拟合,检查逼近闭合轮廓的多边形的相邻两边,使用椭圆拟合两边所在的边缘点,计算椭圆拟合误差,若误差小于两边与对应轮廓的逼近误差,则使用椭圆弧代替两条直线边,沿相邻两条边重复上述过程,直至无法使用椭圆弧进行更好的拟合;

椭圆弧段合并,若在使用ramer算法对每一个闭合轮廓进行递归细分中出现连续多段采用椭圆弧进行拟合的轮廓,计算两个相邻椭圆弧的中心间距,若小于阈值dcmax则表示可以合并,合并为一条椭圆弧后,再重复与相邻的下一个椭圆弧进行同样的操作,直至相邻椭圆弧处理完毕;

这里的阈值dcmax根据经验值可以曲子的范围为0.5~2。

直线拟合与合并,使用ramer算法对每一个闭合轮廓进行递归细分中无法使用椭圆弧进行拟合的轮廓则直接使用直线进行拟合,并对相邻的直线段进行判断合并;

求相邻线段的交点坐标,根据直线方程y=kx+b和椭圆弧方程为ax2+bxy+cy2+dx+ey+1=0解得相邻线段的交点坐标(x,y),该交点对应目标模板的结点;式中k、b为拟合计算出的系数,表征唯一条直线,而(a,b,c,d,e)为椭圆拟合计算出的参数,每一组参数表征唯一椭圆。

所述步骤4中,指定搜索轮廓的方法为,若目标轮廓中存在多个闭合轮廓,则优选非歧义轮廓作为模板轮廓,若全为歧义轮廓,则将线段数最多的轮廓作为模板轮廓,从线段数最多的轮廓沿角点匹,全部计算相似度,选择最相似的一组。

所述步骤4中,确认与目标模板轮廓相同线段组成的待定轮廓的具体方法为检索在步骤3中产生的所有闭合轮廓,剔除组成线段数与模板轮廓线段不同的轮廓;在剩余轮廓中,任意选择该轮廓中的一个结点,按顺时针方向排列该轮廓的连接顺次,若该顺次能够在模板轮廓的(nli+nai)中连接顺次中找到,则该搜索轮廓为待定轮廓,否则直接排除。

所述步骤4中,待定轮廓进行姿态运算并完成确认的方法为如下步骤:

根据待定轮廓与模板轮廓的顺次关系,确定结点间“物理—像素”的对应关系,模板轮廓给出结点的物理坐标,待定轮廓的结点为像素坐标,若模板轮廓为歧义轮廓则有两种或更多种符合的对应关系,应同等对待,完成下述计算

首先建立姿态计算方程

其中为相机的内参矩阵,可由相机标定获得;

在模板轮廓中任选三个不共线的结点,将其物理坐标[xwyw0]it及在待定轮廓中检测出的像素坐标[u0v0]it带入上述姿态计算方程,得到计算得到投影变换矩阵

将投影变换矩阵带入上述姿态计算方程,将模板轮廓所有结点物理坐标[xwyw0]it分别带入上述姿态计算方程,计算每个结点的投影像素坐标[uv]it

计算投影相似度f,根据结点像素坐标(uv)i与待定轮廓中检测出的对应节点的像素坐标(u0v0)i计算相似度f,计算公式如下

其中n代表模板轮廓中结点数总和;

对于非歧义轮廓,若相似度超过设定阈值,则认为该待定轮廓为正确的目标,并返回到投影变换矩阵,该矩阵则描述了目标相对相机的空间平移位置及其绕各个轴的旋转角;

对于歧义轮廓,若多种结点对应关系下的相似度均超过设定阈值,将得到多个的姿态矩阵,则将该待定轮廓置为多态轮廓,若目标仅有此一个歧义轮廓,则直接返回符合要求的多个姿态矩阵;

设定阈值表述了计算结点与理论结点的平均像素容许偏差,建议取1至5,若匹配要求严格则阈值应更小,反之更大。

若目标还存在其他歧义轮廓,则设定其他轮廓为新的模板轮廓,在多态轮廓附近重复上述步骤得到新的多态轮廓;

第一次进行多态轮廓搜索是从图像全局进行搜索的,计算量相对较大,因此在后续其他多态轮廓搜索时,为了减少计算量,可以从上一个多态轮廓的位置附近开始搜索。多态轮廓附近即以上一个多态轮廓的中心为圆心,逐渐增大搜索半径,向外扩散搜索其他可能的闭合轮廓,搜索计算过程中的参数与上一次的完全相同。

若多个多态轮廓间存在唯一共同的姿态矩阵,则该姿态矩阵为歧义轮廓的正确姿态;若仍然有多个相同的姿态矩阵,则说明目标的多个歧义轮廓的分布是完全对称的,则直接返回多个姿态矩阵,并在图像中标记识别成功的目标。

实施例4

如图1至图5,一种基于目标二维轮廓模型的识别与空间定位方法,其特征在于,包括如下步骤:

1.准备目标的二维模型。在autocad中绘制目标的真实二维模型,长度单位为毫米,并导出为dxf格式文件,要求目标轮廓必须闭合,轮廓由直线段、弧线段或圆组成。如图例1所示,该目标具有四个闭合轮廓,由直线段、圆和圆弧组成。

2.读取dxf文件,解析出几何基元,并建立目标二维轮廓几何基元拓扑关系。

a)从dxf文件的entities段中解析出图元信息,主要包括直线(记nl条)的起止坐标,圆弧(记na条)的圆心、半径、起止坐标,圆(记nc个)的中心坐标、半径,保存所有直线、圆弧、圆信息。

b)查找闭合轮廓。从任意一条直线(或圆弧)的起点开始,查找与该直线终点重合的下一个连接线段的起点,重复上一过程,直至回到最开始的起点,即成功查找到一个闭合轮廓。(由于目标模板的闭合轮廓不存在相交情况,因此能回到起点的搜索路径仅一条。特别说明,在后文中,从实际图像中查找闭合轮廓时,可能存在相交闭合轮廓,此时需要按最短路径搜索闭合轮廓,详见后。)

c)将已查找到的闭合轮廓中包含的线段从原数据中剔除,重复步骤b,直至将所有线段查找完毕,计n个闭合轮廓。加上目标轮廓中的圆形nc,本就是自闭合轮廓,因此目标二维模型中共计有(n+nc)个闭合轮廓。

d)统计每一个闭合轮廓中直线数nli、圆弧数nai、圆数nci,其中角标i表示闭合轮廓的编号。

e)描述闭合轮廓中直线与弧线的连接顺次关系。描述规则为从任意线段开始,沿固定顺时针(或逆时针)方向遍历轮廓的所有线段回到起点,若为直线则记为0,弧线记为1。对于非圆形轮廓,其顺次关系共有(nli+nai)种,即以每一个线段作为起点,得到一种连接顺次。例如图1示例中,外轮廓的连接顺次可表示为1-0-0-0,0-1-0-0,0-0-1-0,0-0-0-1四种。

f)检查是否为“歧义轮廓”。“歧义轮廓”即该轮廓的(nli+nai)种顺次描述中,存在相同的顺次描述,如图1示例中,内轮廓的四种连接顺次为1-0-1-0,0-1-0-1,1-0-1-0,0-1-0-1。在后文的匹配过程中“歧义轮廓”无法获得唯一匹配结果。

3.图像采集和处理、建立几何拓扑关系。

a)采集目标图像,待识别特征须完整清晰,特征的真实物理尺寸须尽可能符合其二维模型的设计尺寸。

b)使用canny边缘检测算子检测图像中边缘,根据图像实际情况,适当降低强边缘阈值,保证应该被检测到的目标边缘不出现漏检,尽可能使边缘连续,额外增加的短弱边缘在下一步进行排除。

c)排除非闭合轮廓。排除非闭合轮廓的方法为:

遍历所有边缘点,若某个边缘点在其三邻域中,其他边缘点的数量仅为1,则该边缘点属于“未闭合点”,删除该边缘点后,重新检查与“未闭合点”相邻的边缘点,在其三邻域中是否也仅有一个其他边缘点,以此类推即可删除一条未闭合的轮廓。重复上述过程,处理完所有边缘点后,剩下的轮廓则全为闭合轮廓。

d)单通、多通边缘点检查。经过步骤c的排除后,图像中剩余的轮廓均为闭合轮廓,从轮廓间相邻关系看,可分为相交、相离。对于相离闭合轮廓,轮廓中均存在单通的结点,而对于相交的轮廓,其中存在多通边缘点(结点),单通边缘点和多通边缘点的判断方法:在某一边缘的五邻域最外围一圈中,检查非邻接边缘点有几处,对于每一处,再检查是否可以沿其三邻域到达中心边缘点,若能则表明该处为中心边缘点的一个通道,若不能则该处与中心边缘点无关,直接排除。最终,若该中心边缘点的通道大于2,则为多通道边缘点,否则为单通道边缘点,如图2所示。

e)相交轮廓分离。根据步骤d中判断出的单通边缘点(结点)及多通边缘点(结点),从任意边缘点开始,若该边缘点为单通,则任选一个通道搜索下一个边缘点,若为多通道边缘点,则分别沿各个通道搜索下一个边缘点;若搜索过程中回到了已搜索过的边缘点,则将该路线删除,直到搜索回到起点,比较所有成功回到期待你的路径,取最短的一个作为最小闭合轮廓,重复上述过程,完成对所有相交轮廓的分离,如图3示。

f)多边形逼近闭合轮廓。使用ramer算法对每一个闭合轮廓进行递归细分,直至得到的全部线段到各自对应的轮廓段的最大距离小于某一阈值dmax为止。

g)椭圆弧段拟合。检查逼近多边形的相邻两边,使用椭圆拟合两边所在的边缘点,计算椭圆拟合误差,若误差小于两边与对应轮廓的逼近误差,则使用椭圆弧代替两条直线边。沿相邻两条边重复上述过程,直至无法使用椭圆弧进行更好的拟合。

h)椭圆弧段合并。若在步骤f中出现连续多段采用椭圆弧进行拟合的轮廓,则考虑是否可以合并为一个椭圆弧来拟合。具体方法为:计算两个相邻椭圆弧的中心间距,若小于阈值dcmax则表示可以合并,合并为一条椭圆弧后,再重复与相邻的下一个椭圆弧进行同样的操作,直至相邻椭圆弧处理完毕。

i)直线拟合与合并。在步骤f中,无法使用椭圆弧进行拟合的轮廓则直接使用直线进行拟合,具体拟合方法不在本发明范畴。并对相邻的直线段进行判断合并。

j)求相邻线段的交点坐标。根据上述拟合出的直线方程、椭圆弧方程计算相邻线段的交点坐标,该交点对应了目标模板的结点。

4.从“非歧义”的闭合轮廓开始搜索。若全为“有歧义”闭合轮廓,则从角点数最多的闭合轮廓开始沿角点匹配,共有x种对应关系,全部计算相似度,选择最相似的一组。

a)指定搜索轮廓。若目标轮廓中存在多个闭合轮廓,则优选“非歧义”轮廓作为模板轮廓,若不存在“非歧义”轮廓,则将线段数最多的轮廓作为模板轮廓。

b)检索在步骤3中产生的所有闭合轮廓,剔除组成线段数与模板轮廓线段不同的轮廓。在剩余轮廓中,任意选择该轮廓中的某一个结点(相邻线段的交点),按顺时针(与步骤2e中的方向一致)方向排列该轮廓的连接顺次,若该顺次能够在模板轮廓的(nli+nai)中连接顺次中找到,则该搜索轮廓为待定轮廓,否则直接排除。待定轮廓目前仅具备了与模板轮廓相同的线段组成,但并不一定完全符合目标的真实形状,因此还需要进行相似度计算。

c)根据待定轮廓与模板轮廓的顺次关系,确定结点间“物理—像素”的对应关系,模板轮廓给出结点的物理坐标,待定轮廓的结点为像素坐标。若模板轮廓为“歧义轮廓”则有两种或更多种符合的对应关系,应同等对待,完成下述计算。首先建立如下姿态计算方程:

其中为相机的内参矩阵,可由相机标定获得。在模板轮廓中任选三个不共线的结点,将其物理坐标[xwyw0]it及在待定轮廓中检测出的像素坐标[u0v0]it带入式2,得到计算得到投影变换矩阵

d)将步骤c中得到的投影变换矩阵带入式1,将模板轮廓所有结点物理坐标[xwyw0]it分别带入式1,计算每个结点的投影像素坐标[uv]it

e)计算投影相似度f。根据步骤d中计算出的结点像素坐标(uv)i与待定轮廓中检测出的对应节点的像素坐标(u0v0)i计算相似度f,计算公式如式3所示。

其中n代表模板轮廓中结点数总和

f)对于“非歧义轮廓”,若相似度超过设定阈值,则认为该待定轮廓为正确的目标,并返回其在步骤c中计算得到的投影变换矩阵该矩阵则描述了目标相对相机的空间平移位置及其绕各个轴的旋转角。

g)对于“歧义轮廓”,若多种结点对应关系下的相似度均超过设定阈值,将得到多个的姿态矩阵,无法唯一确定,则将该待定轮廓置为“多态轮廓”。若目标仅有此一个“歧义轮廓”,则直接返回符合要求的多个姿态矩阵。

h)若目标还存在其他“歧义轮廓”,则设定其他轮廓为新的模板轮廓,在“多态轮廓”附近重复步骤b~e。将得到新的“多态轮廓”。

i)若多个“多态轮廓”间存在唯一共同的姿态矩阵,则该姿态矩阵为“歧义轮廓”的正确姿态;若仍然有多个相同的姿态矩阵,则说明目标的多个“歧义轮廓”的分布是完全对称的,则直接返回多个姿态矩阵,并在图像中标记识别成功的目标。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1