一种三角形特征的二进制描述方法与流程

文档序号:11177792阅读:642来源:国知局
一种三角形特征的二进制描述方法与流程

本发明涉及计算机视觉领域,特别是涉及一种对三角形特征的二进制描述方法。



背景技术:

图像匹配是计算机视觉领域的重要技术之一,已经被广泛应用在目标定位、视觉导航、三维重建、立体视觉测距等众多领域中。在现有图像匹配算法中,基于局部特征点(如斑点、角点)的方法具有鲁棒性好的明显优势,所以得到了重点研究和应用。随着研究的深入,人们逐渐注意到图像的结构信息和几何信息在提高图像匹配精度方面起着重要作用,于是将几何约束引入图像匹配算法中,并主要利用了三角形约束。例如,有的算法在特征描述阶段应用了三角形约束,有的算法在特征匹配阶段利用了三角形约束。

考虑到大部分三角形约束算法只是利用了三角形的边角关系,而没有利用图像的灰度信息,一种快速三角形匹配(rapidtrianglematching,rtm)算法被提出(曹建超,“基于新型特征描述的快速图像匹配算法”,大连理工大学硕士学位论文,2015;林秋华,曹建超,田敏,“一种浮点型三角形特征描述方法”,中国发明专利cn201510542180.0,已公开)。rtm算法综合利用了三角形的边角信息和图像的灰度信息。其主要过程为:首先,构建三角形特征单元,其中包含特征点检测、三角剖分、三角形选择;然后,基于浮点型(float)数据对每个三角形进行描述,描述子tridesc_f=[shapedesc_f,blockdesc_f]由6维浮点型形状描述子shapedesc_f和32维浮点型区域描述子blockdesc_f构成,其中6维形状描述子由三角形的三边三角构成,32维区域描述子则基于sift描述方法对三角形质心邻域构建而成;接着,进行特征匹配,将最近邻欧氏距离与次近邻欧氏距离的比值作为衡量匹配关系的标准,得到匹配三角形;最后,提取匹配三角形的三个顶点所对应的特征点对作为匹配点对,利用ransac(randomsampleconsensus)算法进行错误匹配的消除,得到正确匹配的特征点。

rtm算法的形状描述子具有一定的平移、尺度和旋转不变性,区域描述子的位置具有完全的仿射不变性,因此,rtm算法既能显著降低特征描述的复杂度、提升匹配速度,也能提高特征描述的鲁棒性,其中匹配速度大约是sift算法的14倍。然而,在有些情况下,现有rtm算法仍然存在三个问题。第一,在视觉导航等对速度要求非常高的应用中,难于实现实时性。主要原因在于采用了浮点型描述子(sift描述子属于浮点描述子)。第二,在图像条件较差的情况下,算法的精度受限。主要原因是32维区域描述子的维数较低。第三,在内存有限(如手机)的条件下,占用了较大内存。rtm算法的描述子为浮点型数据,每个三角形描述子需占用152个字节。



技术实现要素:

本发明提供了一种基于二进制(binary)描述的rtm改进算法,提高原rtm算法的速度和精度,同时降低算法对内存的要求,从而解决上述三个问题。

本发明的技术方案是,改进原rtm算法中对三角形特征的浮点描述方法,采用二进制数表示原rtm的三角形形状描述子;采用orb算法(e.rublee,v.rabaud,k.konolige,g.bradski.orb:anefficientalternativetosiftorsurf.ieeeinternationalconferenceoncomputervision,pp.2564-2571,2011)中的rbrief二进制描述方法重建原rtm的三角形区域描述子。改进算法的具体步骤如下:

第一步:采用cn201510542180.0方法对每个三角形构建6维浮点型形状描述子:

式中,α=1448,β=461;l1为三角形最长边,l2和l3为按逆时针顺序排列的其他两个边,l=l1+l2+l3;θ1、θ2、θ3分别为与三条边l1,l2和l3相对的角,如图1(a)所示。l′1_f,l′2_f,l′3_f和θ′1_f,θ′2_f,θ′3_f分别表示6维浮点型形状描述子所包含的三个边和三个角信息。

第二步:构建192bits二进制形状描述子。应用4字节二进制数表示第一步获取的浮点型形状描述子的每一维,重新得到总计24字节共192bits的二进制形状描述子:shapedesc_b=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b]

式中,l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b分别表示6维浮点型形状描述子l′1_f,l′2_f,l′3_f,θ′1_f,θ′2_f,θ′3_f的二进制形式。

第三步:构建256bits二进制区域描述子。如图1(b)所示,取三角形的质心为描述中心,描述主方向取为逆时针顺序的三角形最长边方向。描述区域为以三角形质心为中心划定的大小为wp×wp的正方形邻域,wp=31,使正方形的两条对边与描述子主方向平行。在该正方形邻域内,按照orb算法提供的模板,选取256对大小为ws×ws,ws=5,相关性较小的子窗口。对于每对子窗口,采用公式(1)生成1bit描述子:

式中,x和y表示子窗口对,p(x)和p(y)表示子窗口x和子窗口y的平均灰度值。那么对于256对子窗口,共生成256bits二进制数,作为最终的二进制区域描述子blockdesc_b=[b1,b2,...,b256]。

第四步:将第二步获取的192bits二进制形状描述子shapedesc_b和第三步获取的256bits二进制区域描述子blockdesc_b进行拼接,构成三角形特征的448bits二进制描述子:

tridesc_b=[shapedesc_b,blockdesc_b]

=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b,b1,b2,…,b256]

本发明所达到的效果和益处是,将原rtm算法的浮点型描述子改进为二进制描述子,显著提高原rtm算法的速度,同时降低对内存的要求。另外,由于增加二进制描述子的维数到448bits,改进rtm算法的精度也得到显著提高。具体而言,在速度方面,改进算法的速度大约是原rtm算法速度的3倍;在内存方面,原rtm算法中每个三角形描述子占用152字节(1216bits)的内存,而本发明改进后的rtm算法每个三角形的描述子占用内存量降为56字节(448bits),内存占用量降为原rtm算法的36.8%。

在精度方面,改进算法的正确率和匹配分数均高于原rtm算法,在结构场景中能匹配上原rtm算法不能匹配的特征点。例如,图2是mikolajczyk图像库(mikolajczykk,schmidc.aperformanceevaluationoflocaldescriptors,ieeetransactionsonpatternanalysisandmachineintelligence,vol.27,no10,pp.1615-1630,2005)中bike图像组的一种匹配结果,图中比较了sift算法、原rtm算法,以及应用本发明二进制描述子的改进rtm算法。由图可见,三种算法的匹配特征点差异较大。对于图2(a)方框内区域,共有12对对应特征点真值(见图2(c)),sift算法正确匹配了3对(见图2(d)),原rtm算法正确匹配了7对(见图2(e)),而改进rtm算法正确匹配了9对(见图2(f)),多于原rtm算法以及sift算法。此外,由于orb算法256对子窗口模板的优选性,改进rtm算法也具有较好的鲁棒性,不但优于原rtm算法,并且与sift算法的鲁棒性保持一致。

附图说明

图1(a)是三角形特征的二进制形状描述子构建示意图。

图1(b)是三角形特征的二进制区域描述子构建示意图。

图2是mikolajczyk图像库bike图像组的一种匹配结果。

图中:(a)bike1和bike2中检测到的特征点;(b)图(a)方框区域的放大图像;(c)bike1和bike2的对应特征点(图像库提供的真值);(d)sift算法正确匹配的特征点;(e)原rtm算法正确匹配的特征点;(f)应用本发明改进的rtm算法正确匹配的特征点。

图3是改进rtm算法的图像匹配流程图。

具体实施方式

下面结合技术方案和附图,详细叙述本发明的一个具体实施例。

现有两幅待匹配图像,取自mikolajczyk图像库bike图像组的第一幅bike1和第二幅bike2,分辨率均为1000×700。采用本发明进行图像匹配的流程如图3所示。

步骤1:输入待匹配图像bike1和bike2,分别作为参考图像和目标图像。

步骤2:特征点提取。对参考图像和目标图像进行harris角点检测,根据特征点的响应强度限定角点的数目为200个。

步骤3:三角剖分。利用delaunay算法分别对两幅图像所提取的角点进行三角剖分,得到两幅图像的三角形网络。

步骤4:三角形选择。剔除三角形网络中三角形最长边小于4个像素或大于25个像素的三角形,分别得到两幅图像的三角形集合。

步骤5:对于每幅图像,为其三角形集合中的所有三角形构建二进制描述子。下面以图1中三角形abc为例,说明每个三角形的二进制描述子构建过程:

step1:采用cn201510542180.0方法对三角形abc构建6维浮点型形状描述子

其中α=1448,β=461;l1为三角形abc的最长边,l2和l3为按逆时针顺序排列的其他两个边,l=l1+l2+l3;θ1、θ2、θ3分别为与三条边l1,l2和l3相对的角,如图1(a)所示。

step2:构建192bits二进制形状描述子。对于step1获取的浮点型形状描述子中的6个浮点数l′1_f,l′2_f,l′3_f,θ′1_f,θ′2_f,θ′3_f,分别应用4字节二进制数进行表示,得到总计24字节共192bits的二进制形状描述子shapedesc_b=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b]。

step3:构建256bits二进制区域描述子。如图1(b)所示,取三角形的质心d为描述中心,描述主方向取为逆时针顺序的三角形最长边方向描述区域为以三角形质心d为中心划定的大小为31×31的正方形邻域,使正方形的两条对边与描述子主方向平行。在该正方形邻域内,按照orb算法提供的模板,选取256对大小为5×5、相关性较小的子窗口。对于每对子窗口,例如子窗口x和子窗口y,采用公式(1)生成1bit描述子,共生成256bits二进制数,形成二进制区域描述子blockdesc_b=[b1,b2,...,b256]。

step4:将step2获取的192bits二进制形状描述子shapedesc_b和step3获取的256bits二进制区域描述子blockdesc_b进行拼接,构成三角形特征的448bits二进制描述子tridesc_b=[l′1_b,l′2_b,l′3_b,θ′1_b,θ′2_b,θ′3_b,b1,b2,…,b256]。

对目标图像和参考图像的所有三角形构建二进制描述子之后,得到两幅图像的三角形特征描述子向量集合。

步骤6:三角形匹配。通过扫描遍历的方法进行匹配判断。对于目标图像中的每个三角形特征描述子向量,计算其到参考图像三角形特征描述子向量集合的最近邻汉明距离与次近汉明距离的比值,如果该比值小于阈值0.8,则认为具有最近邻距离的两个三角形之间存在匹配关系。

步骤7:剔除错误匹配。提取所有匹配三角形中三个顶点所对应的harris角点对,使用ransac算法对这些角点对进行正确性验证,剔除错误匹配角点,最终得到正确匹配的角点集合。

步骤8:输出正确匹配的角点集合。

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