一种任意类型点集数据之间的精确豪斯多夫距离计算方法与流程

文档序号:11865075阅读:2368来源:国知局
一种任意类型点集数据之间的精确豪斯多夫距离计算方法与流程

本发明属于模式识别,形状匹配技术领域,涉及一种任意类型点集数据之间的精确豪斯多夫距离(Hausdorff Distance)计算方法,具体涉及一种局部搜索的任意类型点集的精确豪斯多夫距离计算方法。



背景技术:

豪斯多夫距离是非常重要的相似度衡量标准,广泛应用于模式识别,形状匹配等领域。然而,由于豪斯多夫距离计算是同时包含求最大值和最小值问题,因此,豪斯多夫距离的计算是一件非常具有挑战性的工作。豪斯多夫距离得到了学术界和工业界极大的关注并提出了很多有效的算法旨在减少豪斯多夫距离的计算复杂度。一般而言,根据处理的数据类型,豪斯多夫距离计算可以分为三类:多边形模型,点集,网格曲面。同样,豪斯多夫距离算法可以粗略的分为近似算法和精确算法。

给定点集A和点集B,豪斯多夫距离H(A,B)的定义如下:

H(A,B=max(h(A,B,h(B,A))

其中h(A,B)和h(B,A)为单向豪斯多夫距离,且h(A,B)≠h(B,A)单向豪斯多夫距离分别定义为:

<mrow> <mi>h</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>,</mo> <mi>B</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>a</mi> <mo>&Element;</mo> <mi>A</mi> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mi>min</mi> <mrow> <mi>b</mi> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> <mo>(</mo> <mrow> <mi>a</mi> <mo>,</mo> <mi>b</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>h</mi> <mrow> <mo>(</mo> <mi>B</mi> <mo>,</mo> <mi>A</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>b</mi> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mi>min</mi> <mrow> <mi>a</mi> <mo>&Element;</mo> <mi>A</mi> </mrow> </munder> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> <mo>(</mo> <mrow> <mi>b</mi> <mo>,</mo> <mi>a</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

其中dist(.,.)函数为欧式距离函数;

采用暴力方法计算豪斯多夫距离非常困难,特别是处理大规模点集数据的时候。目前,计算点集之间精确豪斯多夫距离的最新方法是EARLYBREAK方法,但是该方法还存在一些不足。第一,当两点集部分重叠的时候,EARLYBREAK方法不能有效的减少任意类型点集的豪斯多夫距离的计算复杂度。第二,当两点集完全重叠的时候是最坏的情况,EARLYBREAK方法退化成了暴力方法计算豪斯多夫距离。第三,EARLYBREAK方法只针对于规则化的点集数据能求得精确豪斯多夫距离,如图像、体素数据,而散乱点云数据只能求得近似解,因为在点云数据上应用EARLYBREAK方法求豪斯多夫距离需要先将点云数据转换成规则化的数据。



技术实现要素:

本发明解决了上述技术问题,针对任意点集之间精确豪斯多夫计算问题,本发明利用数据的空间局部性特性,提出了一种基于局部搜索的任意类型点集的精确豪斯多夫距离计算方法。

本发明所采用的技术方案是:一种任意类型点集数据之间的精确豪斯多夫距离计算方法,其特征在于,包括以下步骤:

步骤1:输入两点集数据A和B,并执行下述判断;

如果点集是规则化数据,则执行下述步骤3;如果点集是散乱无序的点云数据,则执行下述步骤2;

步骤2:采用莫顿曲线预处理散乱无序的点集数据A和B,使点集规则有序且具有很好的空间局部性;

步骤3:使用局部搜索算法分别计算出单向豪斯多夫距离h(A,B)和h(B,A);

步骤4:比较单向豪斯多夫距离h(A,B)和h(B,A),取其中的最大值即为豪斯多夫距离H(A,B)。

作为优选,步骤2中所述采用莫顿曲线预处理散乱无序的点集数据A和B,其具体实现包括以下子步骤:

步骤2.1:对点集中的每一个点进行莫顿编码;对于给定的多维点数据坐标,其莫顿码的计算为交错每一维用二进制表示的坐标值;

步骤2.2:根据莫顿码值使用基数排序方法按大小升序排序,得到莫顿曲线,这时点集按着莫顿曲线的顺序具有很好的空间局部性。

作为优选,步骤3中所述使用局部搜索算法分别计算出单向豪斯多夫距离h(A,B)和h(B,A),其具体实现包括以下子步骤:

步骤3.1:计算单向豪斯多夫距离h(A,B),定义参数preindex初始化为0,用于存储遍历B时中止循环的索引位置,该位置用于作为下一个循环搜索开始的地方;定义参数cmax初始化为0,表示临时的单向豪斯多夫距离;定义参数cmin初始化为无穷大,表示临时的最小值;

步骤3.2:设A中的一个点a,求h(a,B),从preindex位置开始左右遍历B中的点,计算点a与B[preindex+1],B[preindex-1]点的欧式距离dist;

步骤3.3:将dist与cmax比较,如果dist<cmax,则执行下述步骤3.4;如果dist>=cmax,则执行下述步骤3.5;

步骤3.4:如果dist<cmax,那么中止遍历B,跳出循环,将当前索引值赋值给preindex,同时将cmin赋值为0,执行下述步骤3.6;

步骤3.5:如果dist>=cmax,将dist与cmin比较,当dist<cmin时将dist的值更新cmin的值;然后往preindex的左右方向继续遍历B,直到找到小于cmax的点或者所有B中的点都已遍历;

步骤3.6:依次遍历A中的点,当遍历完A中所有的点后,cmax的值即为单向豪斯多夫距离h(A,B),同理求得h(B,A)。

本发明有益效果是:本发明与最新的EAELYBREAK算法结果对比,本发明更具有通用性且高效。本发明能处理任意类型的点集,并且能处理不同重叠度的点集,同时极大的减少了计算的复杂度,易于实现。

附图说明

图1是本发明实施例的算法流程图;

图2是本发明实施例中莫顿曲线(Morton Curve)的示意图;

图3是本发明实施例中点集非重叠情况下,本发明与EAELYBREAK(PAMI2015)算法的性能对比图;

图4是本发明实施例中散乱点集情况下,本发明与EAELYBREAK(PAMI2015)算法的性能对比图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

请见图1,本发明提供的一种基于局部搜索的任意类型点集的精确豪斯多夫距离计算方法,包含以下步骤:

步骤1,输入两点集数据A和B,如果点集是规则化数据,则转到步骤3,如果点集是散乱无序的点云数据,则转到步骤2;

步骤2,采用莫顿曲线(Morton Curve)预处理散乱无序的点集数据A和B,使点集规则有序且具有很好的空间局部性;

请见图2,本实施例使用莫顿曲线预处理点集数据包含以下步骤:

步骤2.1先要对点集中的每一个点进行莫顿编码。给定一个多维点数据坐标,它的莫顿码可以简单的计算为交错每一维用二进制表示的坐标值,编码过程易通过GPU并行实现。

步骤2.2对点集进行莫顿编码以后,根据莫顿码值按大小升序排序,得到莫顿曲线,这时点集按着莫顿曲线的顺序具有很好的空间局部性。排序过程是采用GPU并行实现的基数排序。

步骤3,使用局部搜索算法分别计算出单向豪斯多夫距离h(A,B)和h(B,A);具体实现包含以下步骤:

步骤3.1计算单向豪斯多夫距离h(A,B),定义参数preindex初始化为0,用于保留遍历B时中止循环的索引位置,该位置可以作为下一个循环搜索开始的地方。定义参数cmax初始化为0,表示临时的单向豪斯多夫距离,定义参数cmin初始化为无穷大,表示临时的最小值;

步骤3.2设A中的一个点a,求h(a,B),从preindex位置开始遍历B中的点,计算点a与B[preindex]点的欧式距离dist;

步骤3.3将dist与cmax比较,如果dist<cmax,转到步骤3.4;如果dist<cmax,转到步骤3.5;

步骤3.4如果dist<cmax,那么中止遍历B,跳出循环,将当前索引值赋值给preindex,同时将cmin赋值为0,转到步骤3.6;

步骤3.5如果dist>=cmax,将dist与cmin比较,当dist<cmin时将dist的值更新cmin的值,那么往preindex的左右方向继续遍历B,直到找到小于cmax的点或者所有B中的点都已遍历;

步骤3.6依次遍历A中的点重复步骤3.2和3.3,当遍历完A中所有的点后,cmax的值即为单向豪斯多夫距离h(A,B),同理求得h(B,A)。

步骤4,比较单向豪斯多夫距离h(A,B)和h(B,A),取其中的最大值即为豪斯多夫距离H(A,B)。

请见图3,是点集非重叠情况下,本发明与EAELYBREAK(PAMI2015)算法的性能对比图,如表1所示,本发明在点集部分重叠和点集完全重叠情况下,豪斯多夫距离计算总耗时间都远小于EAELYBREAK(PAMI2015)。

表1

请见图4,是散乱点集情况下,本发明与EAELYBREAK(PAMI2015)算法的性能对比图,如表2所示,本发明处理散乱点集性能优于EAELYBREAK(PAMI2015)。说明本发明在计算任意类型点集的精确豪斯多夫距离问题上优于目前最新的技术。

表2

本发明利用数据的空间局部性特性能够减少遍历内循环中对豪斯多夫距离没有贡献的点,从而极大的减少计算的复杂度,结合莫顿曲线方法,本发明可以处理任意类型的点集数据,更具通用性。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

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