一种多边形工件检测定位方法
【专利摘要】本发明为一种多边形工件检测定位方法,包括:步骤1、检测工件图像中的边缘图像,获取边缘图像中的每条曲线构成的曲线集合,从所述曲线集合中提取出直线段集合;步骤2、对于所述直线段集合的每条直线段,搜索得到与其具有一定夹角且端点距离最近的边作为其邻边,提取出所有互为邻边的所有直线段,这些直线段组成的图形即为多边形;步骤3、对所述多边形进行六自由度定位。本发明提出的多边形工件检测方法可以应用于视频监控、智能交通、视频检索、机器人导航、人机交互以及军事等众多领域,另外本方法提供了空间平面多边形的六自由度定位,可以应用于工业抓取、装配、对接等领域。
【专利说明】一种多边形工件检测定位方法
【技术领域】
[0001] 本发明属于图像处理【技术领域】,具体涉及一种基于链接模型的多边形工件检测定 位方法。
【背景技术】
[0002] 视觉信息是人类从客观世界获得信息的主要来源之一,随着计算机技术的不断发 展,利用计算机实现人类的视觉功能吸引了众多的研究者。空间平面多边形检测是当前计 算机视觉领域中的热点问题之一,并被广泛地应用到视频监控、智能交通、视频检索、机器 人导航、人机交互以及军事等众多领域中。
[0003] 工业环境中,存在特定一类的物体,它们包含一个或者多个平面,而这些平面又包 括多边形。这一类物体包括半导体集成电路、移动电话、盒子、某些工业零件等等。如果这 类物体所包含的平面里的多边形可以被检测和定位,那么物体本身也可以被定位。包含平 面物体的检测定位一直是一个非常有使用价值的领域,而多边形检测是属于平面物体检测 的一个特例,对于特定的物体能够快速的检测与定位,属于包含平面物体检测里的一个重 要方法。
[0004] 近年来学者们已经提出一些多边形检测的方法,这些方法主要可以分为3类: 1.基于直线段检测的多边形检测方法;2.基于角点检测的多边形检测方法;3.全局多边形 检测方法。
[0005] 第一种方法首先使用直线段检测的方法提取出图像中的直线段,然后在这些直线 段中提取出合适的多边形。([l]Li,Luyuan,et al. Automatic comic page segmentat ion based on polygondetect ion. Mult imedia Tools and Applications (2012) :1-27. [2]Laha A, Sen A, Sinha B P. Parallel algorithms for identifying convex and non-convex basis polygons in an image. Parallel Computing,2005, 31 (3-4) :290-310)。这类方法的优点是 能够快速稳定地找到多边形,即使多边形失去了角点(例如一些圆角矩形)这种方法仍然 能够正常使用。然而这类方法的缺点就是对于不连续直线情况可能会无法检测多边形。
[0006] 第二种方法首先使用一些角点检测算子(例如哈尔角点检测算子)来获 取图像中的角点,然后通过这些角点的方向与相互之间的逻辑关系来估计多边形 的信息° ([3]Manay S,Paglierone D W. Matching flexible polygons tofields of cornersextracted from images. Lecture Notes in Computer Science. Berlin :Springer, 2007. 4474592005. 5566[4]Shi Jun, Xiao Zhi-Heng, Chang Qian. An algor ithm for recognizinggeometrical shapes automatically based on tunable filter. Journal of North University of China(NaturalScience),2009,30(5) :467471)。这类方法的优缺点 与第一类方法刚好相反,基于角点的方法可以很好地克服不连续直线情况的问题,实际上 只需要角点就可以对多边形进行检测,但是对于角点缺失的情况则可能无法检测多边形。
[0007] 第三种方法直接对图像进行一些全局性的操作,或者将图像转换到其他空间, 直接计算得出多边形。这些方法出现时期较早,(Davies ER.Machine Vision :Theory, Algorithms, Practicalities, ThirdEdition. San Francisco :Elsevier, 2005. 387-410 [6] Xudong, Yang, et al. Intelligent Detection of Convex Polygon Based onHough Transformation and Set Classifier. Intelligent Systems andApplications (ISA),2010 2nd International Workshop on. IEEE,2010. [7]Barnes N, Loy G, Shaw D. The regular polygon detector. PatternRecognition,2010,43 (3) :592-602)。它们的优点是步骤简单、 可克服不连续、缺失角点情况。但是这类方法通常计算时间很长所以只适合比较简单的多 边形检测例如三角形,甚至这类的方法只能用于检测正多边形。
[0008] 综上所述,以上三种方法中基于直线段检测和基于角点检测的方法是比较常用 的,但各有优缺点。
【发明内容】
[0009] (一)要解决的技术问题
[0010] 本发明提出了一种基于直线段检测多边形检测方法,其克服现有技术的不足,提 供了一种能够检测圆角的多边形,其相对于其他基于直线段检测的方法具有速度快,稳定 性好,精度高的优点。并且本发明提供了对空间平面多边形进行六自由度定位的方法,可以 应用在工业抓取、装配、对接等领域。
[0011](二)技术方案
[0012] 为达到以上目的,本发明提供了一种多边形工件检测定位方法,包括:
[0013] 步骤1、检测工件图像中的边缘图像,获取边缘图像中的每条曲线构成的曲线集 合,从所述曲线集合中提取出直线段集合;
[0014] 步骤2、对于所述直线段集合的每条直线段,搜索得到与其具有一定夹角且端点距 离最近的边作为其邻边,提取出所有互为邻边的所有直线段,这些直线段组成的图形即为 多边形;
[0015] 步骤3、对所述多边形进行六自由度定位。
[0016] 其中,步骤1包括:
[0017] 步骤101 :从检测工件图像中获取边缘,进而得到边缘图像;
[0018] 步骤102 :根据所获得的边缘图像搜索其中的所有曲线;
[0019] 步骤103 :从搜索得到的所有曲线中提取出直线段。
[0020] 其中,步骤102具体包括:
[0021] 步骤1021 :行列扫描所述边缘图像,若不存在边缘点则结束流程;
[0022] 步骤1022 :若存在边缘点,则判断搜索到的边缘点是否为端点,是则转步骤1023, 否则转步骤1021 ;
[0023] 步骤1023 :若是,则以当前边缘点作为曲线的起始点,并从所述边缘图像删除该 起始点;
[0024] 步骤1024 :从所述当前边缘点的邻域中寻找下一个边缘点,若有下一个边缘点则 转步骤1025,否则该曲线搜索结束,转步骤1021进行下一曲线的搜索;
[0025] 步骤1025 :将所述下一个边缘点作为当前边缘点加入当前曲线,并从边缘图像中 删除该当前边缘点,转步骤1024。
[0026] 其中,步骤1022中利用如下方式判断边缘点是否为端点:
[0027] 判断边缘图像中所述边缘点的左、右、上、下四个邻域方向中是否同时存在两个或 两个以上方向的点为所述边缘点所在曲线上的点,若是,则其不为端点,否则就是端点。
[0028] 其中,步骤103具体包括:
[0029] 步骤1031 :搜索每条曲线,如果所述曲线中某个点的曲率大于预定的折点曲率阈 值,且该点为极值点,则以该点将所述曲线拆分为两条曲线,并重复该步骤,直到所有曲线 都搜索完毕;
[0030] 步骤1032 :对于每条曲线,如果所述曲线中某个点的曲率大于预定的弧段曲率阈 值并且小于所述预定的折点曲率阈值,则将该点从所述曲线中删除,得到直线段集合;
[0031] 步骤1033 :将所述直线段集合中斜率差小于第一预定阈值、且至少分别具有距离 小于第二预定阈值的一个端点的两条直线段融合成一条直线段;
[0032] 步骤1034 :对于所述直线段集合中的每条直线段,如果其长度小于预定值,则删 除该直线段。
[0033] 其中,步骤2具体包括:
[0034] 步骤201 :建立链接模型,其中所述链接模型用于存储直线段、所述直线段的两条 邻边以及连接两条邻边的两个端点,其中所述直线段及其两条邻边互为邻边;
[0035] 步骤202 :遍历所述链接模型,得到构成封闭结构的多边形。
[0036] 其中,步骤201包括:
[0037] 步骤2011 :针对每条直线,找到其邻边,将并所述直线、邻边以及连接所述邻边的 端点的对应关系存储在所述链接模型中;
[0038] 步骤2012 :针对链接模型中的每条直线,保留互为邻边的直线段,删除其他直线 段。
[0039] 其中,所述步骤2011具体包括:
[0040] 选择所有距离小于预定阈值的其他直线段,并将所述其他直线段中斜率差大于第 三预定阈值且距离最近的直线段作为邻边;
[0041] 其中,步骤202包括:
[0042] 步骤2021 :从所述链接模型中选择其中一条直线段作为多边形的第一条边;
[0043] 步骤2022 :找到当前边的其中一条邻边并判断其是否为所述多边形的前一条边, 若否则将该条邻边作为所述多边形的当前边,若是则将另一条邻边作为所述多边形的当前 边;其中所述前一条边为所述多边形的边且为当前边的邻边;
[0044] 步骤2023 :判断所述当前边是否为所述多边形的第一条边,若否则转步骤2022 ; 若是则结束流程。
[0045] 其中,步骤3中对多边形进行六自由度定位具体为:根据透视投影方程和多边形 内部相对几何关系计算得到多边形在相机坐标系中的坐标。
[0046] (三)有益效果:
[0047] 本发明的有益效果在于:(1)本发明中的检测直线算法直接对图像进行像素级操 作,不需要复杂的数学转换,所以检测速度很快。本发明和目前公认的直线检测方法LSD相 t匕,对于同一幅图像(像素为1620x1220),LSD的检测时间为1.03秒,而本方发明在保证直 线段检测效果相当的情况下将检测时间减少到〇. 18秒。(2)链接模型的建立避免了无顺序 的对直线段进行组合-判断是否多边形的操作,等价于启发式搜索,提高了搜索效率,提高 了检测速度;(3)由于链接模型可以容忍多边形相邻边端点保持一定距离,相邻边端点不 一定要在同一个坐标,这种容忍度提高了检测的鲁棒性,特别是针对于圆角多边形。
【专利附图】
【附图说明】
[0048] 图1为本发明所提供的一种多边形工件检测定位方法的流程图。
[0049] 图2为本发明中多边形工件检测定位的一个实例展示图。
【具体实施方式】
[0050] 下面结合附图对本发明的实施例作详细的说明:本实施例在以本发明技术方案为 前提下进行实施,结合详细的实施方式和具体的操作过程,但本发明的保护范围不限于下 述实施例。
[0051] 图1示出了本发明提出一种多边形工件检测定位方法的流程图。如图1所示,该 方法首先提取图像中的直线段,其次从图像中搜索出多边形,最后根据透视投影方程以及 多边形的内部几何关系求出多边形在像极坐标系中的坐标,具体包括以下步骤:
[0052] 第一步:检测图像中的直线段。其中包括边缘检测、搜索曲线以及直搜索线段。
[0053] 第二步:从直线段中搜索多边形。其中包括建立链接模型、过滤孤立直线段以及搜 索多边形等步骤。
[0054] 第三步:对多边形进行六自由度定位。主要是结合透视投影方程和多边形内部相 对几何关系求解多边形的在相机坐标系中的坐标。
[0055] 所述第一步,具体如下:
[0056] 获取边缘:首先对输入图像使用Canny边缘算子,提取出图像边缘,由于Canny算 子的非最大值抑制操作,Canny算子得到的边缘宽度总是为1,每一条连续的边缘定义为曲 线。曲线实际上被定义为若干个点的集合,每一条曲线从起点到终点由点的集合组成。一 条曲线可能是一条直线段,也可能是折线段或者是弧线段。一条曲线有可能含有两个端点, 也有可能只有一个端点,例如形状"6"的曲线,也有可能没有端点,例如形状"0"。
[0057] 搜索曲线:由于Canny算子得到的边缘图像只是一个二值图像,即该二值图像中 边缘点的像素值为255,其他点的像素值均为0。本发明中通过遍历这个二值图像来获取每 一条曲线,并加入自定义的数据结构中。
[0058] 首先我们要确定一个曲线点是否是这条曲线的端点,对于像素点的八邻域,该点 每个方向都有三个相邻点,例如当前像素的右方有右上、右、右下三个相邻点,由于Canny 算子得到的边缘宽度为1,所以如果一个曲线点是端点,那么在它的左、右、上、下方向,不能 同时存在两个或两个以上方向含有曲线点,否则该曲线点不为端点。例如某曲线点左侧三 邻点中和右侧三邻点各自包含一个曲线点,那么当前曲线点就不是端点。
[0059] 有了端点的判据,接下来可以搜索曲线。对于含有一个或者两个端点的曲线,搜 索算法为:行列扫描当前图像,如果当前点的像素值为255 (图像已经二值化),则确定当前 点为边缘点,然后判断该点是否为端点(判断法方法见上文),如果是端点,那么开始准备 子循环:以当前点为起始点,在八邻域中寻找下一个边缘点,八邻域寻找的顺序是(〇, -1), (1,〇),(〇,1),(-1,〇),(-1,-1),(1,-1),(1,1),(-1,1),即先搜索直角 4 邻域,后搜索对角 4邻域,否则会出现搜索链断裂的情况。每搜索到一个曲线点,将曲线点加入当前曲线中,然 后在图像中删除该点,防止重复搜索。搜索曲线过程持续到在某点8邻域找不到边缘点为 止,这个点就是终点,到此为止,寻找一条曲线过程结束,将这条曲线c加入曲线集合C,然 后继续图像行列扫描。
[0060] 对于没有端点的闭合曲线的搜索算法:先进行上文所说的搜索含有一个或者两个 端点的曲线,搜索完毕后这些曲线会被删除,那么剩下的全都是没有端点的曲线。这时候开 始图像行列扫描,判断当前点是否为边缘点,如果是那么以这个点为起始点,按照上文一样 的8邻域搜索方法搜索整条曲线,这样就可以把闭合环状曲线搜索出来。将曲线加入曲线 集合,然后继续图像行列扫描。这样得到的曲线的起始点具有随机性。
[0061] 提取直线段:至此,已经得到图像中的所有曲线,下一步就需要从这些曲线中提取 出直线段。一条曲线可以是一条直线段、弧线段、折线甚至折线和弧线段的结合。首先第一 步,通过最小二乘判断当前曲线是否为直线段,如果是,那么将当前直线段加入直线集合, 如果不是,那么通过曲率的方式来分解曲线,下面具体说明。
[0062] 这里引出曲率概念,曲率用于描述一条边上的某一点的弯曲程度,使用一个点Q 与其左右两侧距离为d的两点
【权利要求】
1. 一种多边形工件检测定位方法,包括: 步骤1、检测工件图像中的边缘图像,获取边缘图像中的每条曲线构成的曲线集合,从 所述曲线集合中提取出直线段集合; 步骤2、对于所述直线段集合的每条直线段,搜索得到与其具有一定夹角且端点距离最 近的边作为其邻边,提取出所有互为邻边的所有直线段,这些直线段组成的图形即为多边 形; 步骤3、对所述多边形进行六自由度定位。
2. 如权利要求1所述的检测定位方法,其中,步骤1包括: 步骤101 :从检测工件图像中获取边缘,进而得到边缘图像; 步骤102 :根据所获得的边缘图像搜索其中的所有曲线; 步骤103 :从搜索得到的所有曲线中提取出直线段。
3. 如权利要求2所述的检测定位方法,其中,步骤102具体包括: 步骤1021 :行列扫描所述边缘图像,若不存在边缘点则结束流程; 步骤1022 :若存在边缘点,则判断搜索到的边缘点是否为端点,是则转步骤1023,否则 转步骤1021 ; 步骤1023 :若是,则以当前边缘点作为曲线的起始点,并从所述边缘图像删除该起始 占 . 步骤1024 :从所述当前边缘点的邻域中寻找下一个边缘点,若有下一个边缘点则转步 骤1025,否则该曲线搜索结束,转步骤1021进行下一曲线的搜索; 步骤1025 :将所述下一个边缘点作为当前边缘点加入当前曲线,并从边缘图像中删除 该当前边缘点,转步骤1024。
4. 如权利要求3所述的检测定位方法,其中,步骤1022中利用如下方式判断边缘点是 否为端点: 判断边缘图像中所述边缘点的左、右、上、下四个邻域方向中是否同时存在两个或两个 以上方向的点为所述边缘点所在曲线上的点,若是,则其不为端点,否则就是端点。
5. 如权利要求2所述的检测定位方法,其中,步骤103具体包括: 步骤1031 :搜索每条曲线,如果所述曲线中某个点的曲率大于预定的折点曲率阈值, 且该点为极值点,则以该点将所述曲线拆分为两条曲线,并重复该步骤,直到所有曲线都搜 索完毕; 步骤1032 :对于每条曲线,如果所述曲线中某个点的曲率大于预定的弧段曲率阈值并 且小于所述预定的折点曲率阈值,则将该点从所述曲线中删除,得到直线段集合; 步骤1033 :将所述直线段集合中斜率差小于第一预定阈值、且至少分别具有距离小于 第二预定阈值的一个端点的两条直线段融合成一条直线段; 步骤1034 :对于所述直线段集合中的每条直线段,如果其长度小于预定值,则删除该 直线段。
6. 如权利要求1所述的检测定位方法,其中,步骤2具体包括: 步骤201 :建立链接模型,其中所述链接模型用于存储直线段、所述直线段的两条邻边 以及连接两条邻边的两个端点,其中所述直线段及其两条邻边互为邻边; 步骤202 :遍历所述链接模型,得到构成封闭结构的多边形。
7. 如权利要求6所述的检测定位方法,其中,步骤201包括: 步骤2011 :针对每条直线,找到其邻边,将并所述直线、邻边以及连接所述邻边的端点 的对应关系存储在所述链接模型中; 步骤2012 :针对链接模型中的每条直线,保留互为邻边的直线段,删除其他直线段。
8. 如权利要求7所述的检测定位方法,其中,所述步骤2011具体包括: 选择所有距离小于预定阈值的其他直线段,并将所述其他直线段中斜率差大于第三预 定阈值且距离最近的直线段作为邻边。
9. 如权利要求6所述的检测定位方法,其中,步骤202包括: 步骤2021 :从所述链接模型中选择其中一条直线段作为多边形的第一条边; 步骤2022 :找到当前边的其中一条邻边并判断其是否为所述多边形的前一条边,若否 则将该条邻边作为所述多边形的当前边,若是则将另一条邻边作为所述多边形的当前边; 其中所述前一条边为所述多边形的边且为当前边的邻边; 步骤2023 :判断所述当前边是否为所述多边形的第一条边,若否则转步骤2022 ;若是 则结束流程。
10. 如权利要求1所述的检测方法,其中,步骤3中对多边形进行六自由度定位具体为: 根据透视投影方程和多边形内部相对几何关系计算得到多边形在相机坐标系中的坐标。
【文档编号】G06T7/00GK104063868SQ201410305198
【公开日】2014年9月24日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】覃政科, 王鹏, 乔红, 孙佳 申请人:中国科学院自动化研究所