论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习

Abstract

(2014 一区)点模式匹配是计算机视觉和模式识别中的一个重要课题,在图像配准、运动检测、目标跟踪和姿态估计等领域有着广泛的应用。本文提出了一种基于平移变换、旋转变换和尺度变换的平面点集间响应判定算法。该算法从集合中随机选取若干点,并提取其相邻点。它将所选的点及其相邻点视为局部点模式,并在另一个集合中找到局部匹配的模式。通过计算具有相同变换参数的局部匹配点模式的唯一点数,最终实现点模式匹配。通过大量的实验验证了该算法的有效性。并与一种著名的点模式匹配算法进行了运行时间比较,结果表明该算法比比较算法具有更快的运行速度。

1. Introduction

点模式匹配就是在两个给定的点集之间找到一个好的对应关系。它是计算机视觉和模式识别中的一个重要课题,广泛应用于图像配准、运动检测、目标跟踪、平面目标的自动匹配视觉检测、自动导航、姿态估计等领域。一般来说,现有的点模式匹配算法根据点的个数大致可以分为两类。一个是完全匹配。这种算法处理具有相同点数的点集。另一种是不完全匹配,也称为部分匹配。这些算法被用来计算不同点数的点集。

研究人员开发了许多点模式匹配的理论和技术。例如,Griffin和Alexopo- ulos[1]计算并对齐了两个模式控制器,构造了一个二分图,通过确定二分图的最大基数匹配实现了完全匹配。Vinod和Ghose[2]将点模式匹配看作是一个0-1整数规划问题,利用人工神经网络来识别平移和旋转变换下的点集。针对噪声点模式匹配问题,Morgera[3]等人提出了一种适应不同维模式的混合迭代算法。该算法利用奇异值分解来估计矩阵的轮数,利用极值分解来寻找排列矩阵。Chang等[4]人利用二维聚类方法设计了一种针对平移、旋转和缩放变换下的点集的有效方法。Wang和Chen[5]利用线段的固有不变性质设计了仿射变换下的点集模式匹配算法。在[6]中,Chui和Rangarajan提出了一种基于软分配和薄板样条的鲁棒不完全匹配方法,该方法可以联合估计对应变换和非刚性变换。在另一项研究中,Zhang等人提出了一种将遗传算法与部分Hausdorff距离相结合的方案。该方案是为了解决仿射变换下的不完全匹配问题。

Van Wamelen等人设计了一个具有 O ( n ( l o g   m ) 3 / 2 ) O(n(log\ m) ^{3/2}) O(n(log m)3/2)时间的平面点匹配高效算法,该算法使用概率双线性和排序的最近邻,其中n和m是两个给定点集的点编号。在[9]中,Li等人引入了一种新的相似度K-d树方法来建立一对一匹配。Bishnu等人[10]提出了一种简单而确定的二维点集平移旋转的方法。该方法在 O ( n 2 l o g   n ) O(n^2 log\ n) O(n2log n)时间内完成匹配,在 O ( m n 4 / 3 l o g   n ) O(mn ^{4/3} log\ n) O(mn4/3log n)时间内完成不匹配。在[11]中,Yin使用粒子群优化来计算两个点集之间的最优变换,其中变换参数被编码为实值向量,称为粒子。在[12]中,Caetano等给出了任意维的欧几里德空间中基于图形模型的点模式匹配算法。该算法在多项式时间内运行,对于无噪声点集之间的完全匹配是最优的。在另一项工作中,McAuley等人提出了一种比[12]性能更好的新图,并利用它寻找匹配点集。Li等人在[14]中提出了一种基于动态分段的分层点匹配算法,用于从稀疏特征点进行关节运动重构的自初始化。

最近,Bhowmick等人设计了一种新的数据结构,称为“角树”,用于点模式匹配。在[16],
Aiger和Kedem提出了一种在平移、旋转和尺度变换下匹配点集的高效算法。该算法以Hausdorff距离为相似度度量。在另一项工作中,Aiger和Kedem[17]设计了一个使用简单对齐方案的匹配算法。该算法运行时间约为 O ( n l o g   n + k m l o g   n ) O(nlog\ n + kmlog\ n) O(nlog n+kmlog n),其中m和n为点编号,k为点集之间匹配的子集个数。Wang和Zhang[18]设计了一种基于欧氏变换的平面点集算法。该算法将一个点集视为一个完备图,通过寻找全等完备图来解决点模式匹配问题。

本文提出了一种基于局部点模式确定的高效点模式匹配算法,该算法通过对位实现。我们的算法可以在平移、旋转和缩放变换下找到两个点集之间的对应关系。通过大量的实验验证了算法的有效性和优越性。其余的pa- per组织如下。第二章介绍了点模式匹配,第三章介绍了所提出的算法。实验结果见第4节,结论见第5节。

2. Point pattern matching

2.1. Problem description

P = { p 1 , p 2 , … , p n } , Q = { q 1 , q 2 , … , q n } P =\{p_1, p_2,…,p_ n\}, Q = \{q_1, q_2,…,q_n\} P={p1,p2pn}Q={q1,q2,qn}成为一对匹配点集在一个二维平面上,在一些点q的转换从P .如果点的坐标 ( x , y ) ∈ P 与 ( x ′ , y ′ ) ∈ q (x, y) \in P与 (x', y') \in q (x,y)P(x,y)q满足T变换的公式,它们是一对匹配点。通常,如果P和Q之间的匹配点总数大于一个预先定义的阈值,则P和Q被视为一对匹配点集。否则,它们不是一对匹配的点集。在实际应用中,可以通过计算T的不变量来确定匹配点。

如果平面点 ( x , y ) (x,y) (x,y) ( x ′ , y ′ ) (x',y') (x,y)满足变换 T T R S T _{TRS} TTRS的下列公式,
在这里插入图片描述
它们是平移、旋转和缩放变换下的一对匹配点,其中 θ \theta θ是旋转角度, s s s是缩放因子, t x 和 t y t _x和t_ y txty分别是沿x轴和y轴的平移。如果 p 1 和 q 1 , p 2 和 q 2 是 T T R S p_1和q_1, p_2和q_2是T _{TRS} p1q1,p2q2TTRS下的两对匹配点,那么变换参数可以计算如下。设 ( x i ( p ) , y i ( p ) ) 和 ( x i ( q ) , y i ( q ) ) 是 p i 和 q i (x_ i^{ (p)} ,y_ i^ {(p)})和(x_ i^{ (q)}, y_ i^{ (q)})是p_i和q_i (xi(p),yi(p))(xi(q),yi(q))piqi的余子式, T T R S ( p i ) = q i ( i = 1 , 2 ) T _{TRS} (p_i) = q _i (i = 1,2) TTRS(pi)=qi(i=1,2)将匹配点的坐标代入式(1),得到如下结果:
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第1张图片
其中 θ \theta θ是向量 p 1 p 2 → 和 q 1 q 2 → \overrightarrow{p_1p_2}和\overrightarrow{q_1q_2} p1p2 q1q2 的夹角。通过以上分析,我们得出平移、旋转和尺度变换的参数可以由两对匹配点唯一确定的结论。

2.2. Matched point calculation

对于 P = { p 1 , p 2 , … , p n } , Q = { q 1 , q 2 , … , q n } P =\{p_1, p_2,…,p_ n\}, Q = \{q_1, q_2,…,q_n\} P={p1,p2pn}Q={q1,q2,qn},如果Q是P在平移、旋转和缩放操作下的变换后的版本,点模式匹配问题可以通过常规方法解决基于完整的图表[18],以每一个点为顶点和使用每两个点之间的欧式距离来表示他们的边缘。因为P和Q的完备图都有 n ( n − 1 ) / 2 n(n -1)/2 n(n1)/2条边,传统的方法需要计算P和q之间所有对应边的比例和夹角,这样的计算非常耗时。为了减少计算量,我们用旋转角度来计算匹配点。首先,对夹角重新定义如下:

定义1 如图1(a)所示,边缘 p i p j ( i ≠ j ) p_ i p_ j(i\neq j) pipji=j的夹角是从x轴到 p i p j p _i p_ j pipj的直线的逆时针旋转角度,边缘 p i p j ( i ≠ j ) p _i p_ j(i\neq j) pipji=j和边缘 p i p k ( i ≠ k ) p_ i p_ k(i \neq k) pipki=k的夹角是从 p i p k p _i p_ k pipk p i p j p_ i p_ j pipj的逆时针旋转角,如图1(b)所示。
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第2张图片
设边 p i p j p_ i p_ j pipj的夹角为 α \alpha α ( x i ( p ) , y i ( p ) (x_i ^{(p)}, y_ i^{ (p)} (xi(p)yi(p) ) ) )和( x j ( p ) , y j ( p ) x _j ^{(p)}, y _j ^{(p)} xj(p)yj(p))分别是 p i 和 p j p _i和p _j pipj的坐标。令 Δ x = x j ( p ) − x i ( p ) 和 Δ y = y j ( p ) − y i ( p ) \Delta x = x_j ^{(p)} -x _i ^{(p)}和\Delta y = y_ j^{ (p)} -y_ i^{ (p)} Δx=xj(p)xi(p)Δy=yj(p)yi(p)因此,a可以计算如下。
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第3张图片
对于 P = { p 1 , p 2 , … , p n } , Q = { q 1 , q 2 , … , q n } P =\{p_1, p_2,…,p_ n\}, Q = \{q_1, q_2,…,q_n\} P={p1,p2pn}Q={q1,q2,qn},让 α i − 2 ( p ) \alpha_{ i-2} ^{(p)} αi2(p) p 1 p i ( i = 3 , 4 , … , n ) p_1p_i (i = 3,4,…,n) p1pi(i=3,4n) p 1 p 2 p_1p_2 p1p2的夹角为 q 1 q i ( i = 3 , 4 , … , n ) 与 q 1 q 2 q_1q_i (i = 3,4,…,n)与q_1q_2 q1qi(i=3,4n)q1q2的夹角,如图2所示。如果 α j ( p ) = α j ( q ) \alpha_j^{(p)}=\alpha_j^{(q)} αj(p)=αj(q) ∣ p 1 p i ∣ q 1 q i \frac{|p_1p_i|}{q_1q_i} q1qip1pi,有 p i 和 q i p _i和q_ i piqi是一对匹配点,因此p和q是一对匹配点集。

论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第4张图片

3. Proposed algorithm

3.1. Matched point calculation based on rotation angle

对于广义点模式匹配问题, P = { p 1 , p 2 , … , p n } , Q = { q 1 , q 2 , … , q n } P =\{p_1, p_2,…,p_ n\}, Q = \{q_1, q_2,…,q_n\} P={p1,p2pn}Q={q1,q2,qn}是不同的,即, m ≠ n m \neq n m=n,并且P的一些点在Q中没有匹配点。在这项工作中,我们根据旋转角度来确定P和Q之间的匹配点。具体步骤如下。

首先,我们把 p ′ ∈ P 和 q ′ ∈ Q p' \in P和q' \in Q pPqQ尽可能一对匹配点,计算包括 p ′ p i ′ ( p i ′ ≠ p ′ , i = 1 , 2 , … , m − 1 ) p'p'_i(p'_i \neq p', i = 1,2,…, m - 1) ppi(pi=p,i=1,2,,m1)和x轴正方向的夹角,和 q ′ q i ′ ( q i ′ ≠ q , i = 1 , 2 , … , n − 1 ) q'q'_i (q'_i \neq q,i= 1,2,…,n - 1) qqi(qi=q,i=1,2,,n1) 和x轴正方向的夹角。然后,我们对这些角进行排序,得到两个按升序排列的角序列,即, { α 1 ( p ) , α 2 ( p ) , . . . , α m − 1 ( p ) } ( 0 ≤ α i ( p ) < 2 π , i = 1 , 2 , . . . , m − 1 ) 和 { α 1 ( q ) , α 2 ( p ) , . . . , α n − 1 ( q ) } ( 0 ≤ α i ( q ) < 2 π , i = 1 , 2 , . . . , n − 1 ) \{\alpha_1^{(p)}, \alpha_2^{(p)},...,\alpha_{m-1}^{(p)} \}(0 \leq \alpha_{i}^{(p)} < 2\pi, i=1,2,...,m-1)和\{\alpha_1^{(q)}, \alpha_2^{(p)},...,\alpha_{n-1}^{(q)} \}(0 \leq \alpha_{i}^{(q)} < 2\pi, i=1,2,...,n-1) {α1(p),α2(p),...,αm1(p)}(0αi(p)<2π,i=1,2,...,m1){α1(q),α2(p),...,αn1(q)}(0αi(q)<2π,i=1,2,...,n1)。接下来,我们把P的点作为一个整体来考虑,直到p’与q’有相同的坐标。平移后,我们以q’为中心,将Q的其余点作为一个整体来看待,并不断地对它们进行对比,寻找最优的匹配位置。对于每一个反向转动,如果一个或多个P匹配的边缘,我们计算总P和Q之间的匹配边如果匹配边的总数大于预定义阈值及其扩展因素是相同的,匹配的边缘的顶点是两者之间的匹配点集。对于Q的每条边,连续的比对可以使其对P的所有边进行一次匹配,从而保证能够提取出所有的匹配点。每一次对转的角度计算如下。
在这里插入图片描述
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第5张图片
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第6张图片
接下来,如果 α i ( q ) ≥ 2 π \alpha_i^{(q)} \geq 2\pi αi(q)2π,令 α i ( q ) ← α i ( q ) + ∑ j = 1 r α j \alpha_i^{(q)} \leftarrow \alpha_i^{(q)}+\sum^{r}_{j=1}\alpha_j αi(q)αi(q)+j=1rαj。这是为了确保所有的旋转结果落在[0,2 π \pi π]。更新后的角度序列保持原有的顺序不变。对于每一个逆变换,如果匹配点数大于阈值,且匹配边缘的比例相同,则记录匹配点和变换参数。在计算过程中,我们计算了对转角。若对转角之和为 2 π 2\pi 2π,则以 p ′ 和 q ′ p'和q' pq为可能的匹配点进行计算。

3.2. Detailed steps of our algorithm

由于P和Q中有很多点,有些点没有对应的匹配点,所以对所有点的不变计算是非常耗时的。为了提高效率,我们将一个点及其相邻点视为一个局部点模式。然后,我们随机选择Q的一些点,提取它们的局部点模式,并在P中找到它们的匹配模式。最后,通过计算具有相同变换参数的局部匹配点模式的唯一点数来解决点模式匹配问题。假设P中这些点的匹配概率是 ρ \rho ρ。因此,P的 ρ m \rho m ρm个点在Q中有匹配的点。对于Q的每个点,我们用[19]方法来识别它的v近邻点。同样地,我们提取了p点的u内波点,一般来说,u和v值越小,计算效率越高。但是,如果u和v太小,就很难找到匹配的点。相反,u和v越大,匹配点越多,旋转角度确定的计算量越大,速度越慢。假设H是局部点模式匹配的阈值。如果H太小,匹配点的计算量就会变大,错误匹配点的概率也会变大。如果H变大,则无法发现实际的匹配点模式。在实际应用中,我们需要选择合适的H、u、v值,在匹配精度和运行速度之间取得较好的权衡。

具体步骤如下:
步骤1: 利用[19]方法提取 q i ∈ Q ( i = 1 , 2 , … , n ) q_i \in Q (i = 1,2,…,n) qiQ(i=1,2n)的v个相邻点,计算出 q i q_i qi及其v个相邻点所形成的边的夹角,并将这些夹角按升序进行排序。
步骤2: 从P中随机选取一个点 p ′ p' p,提取p’的u个相邻点,计算由p’及其u个相邻点形成的边的夹角,并进行排序,得到一个按升序排列的序列。以 p ′ 和 q i ( i = 1 , 2 , … , n ) p'和q_ i (i = 1,2,…,n) pqi(i=1,2n)为可能的匹配点对,利用3.1节提出的方案确定局部匹配点模式。如果局部匹配模式的点数大于H,则记录匹配的点和变换参数。
步骤3: 计算具有相同变换参数的局部匹配点模式的唯一点数。如果最大匹配点数大于 τ ρ m \tau\rho m τρm,则P和Q是一对匹配点集,其中 ρ \rho ρ为阈值。否则,转到步骤2。注意,步骤2最多重复k次,并且在下一个选择中没有选择选择的点。如果最大匹配点数仍然不大于 τ ρ m \tau\rho m τρm,则P和q不是一对匹配点集。

4. Experimental results

4.1. Parameter determination

为了确定算法的参数,进行了大量的实验。对于空间限制,这里给出了典型的例子。我们的算法是用C语言实现的,运行在Intel i5 2.5 GHz CPU和4gb RAM的PC上。具有不同m值的点集P在1024x 1024平方中随机生成。我们将平移、旋转和缩放变换应用到P上,得到一个标记为R的变换后的版本。使用的变换参数为: t x = 10 , t y = 20 t_ x = 10, t_ y = 20 tx=10,ty=20,比例因子s = 1.2,旋转角度 θ \theta θ = 0.349弧度。接下来,我们随机选择 ( 1 − ρ ) m (1 -\rho)m (1ρ)m个点,对这些点再进行平移、旋转、缩放变换,得到点集Q。

我们利用不同 u 和 v u和v uv值的算法来确定 P 和 Q P和Q PQ之间的匹配点。表1 给出了我们的算法在不同参数下的运行时间,其中 τ = 0.25 , H = 3 \tau = 0.25, H = 3 τ=0.25,H=3,符号 ‘ − ’ ‘-’ 表示没有找到实际的匹配点。可以看出,当 ρ \rho ρ <= 0.6时,我们的u = v = 2算法无法确定匹配的点集。当u和v达到3时,我们的算法可以在 ρ \rho ρ = 0.6时找到匹配点,但在 ρ \rho ρ = 0.5时也会失败。随着u和v的增加,我们的算法可以正确地找到不同 ρ \rho ρ值下的所有匹配点集。然而,消耗的时间也增加了。在表1中,粗体文本是运行速度最快的文本,主要发生在u = v = 3或u = v = 4时。因此,我们可以取u = v = 3或u = v = 4作为我们算法的最优参数。
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第7张图片

4.2. Performance comparisons

为了展示我们的算法的优点,我们将其与著名的算法[8]进行了比较。算法[8]的源代码由Van Wamelen提供,也是用C语言编写的。我们使用不同的参数,即, m和 ρ \rho ρ,生成不同的匹配点集。点集生成与4.1节中描述的相同。对于每组参数,我们将评估的算法运行100次,记录总消耗时间,然后分别计算每次计算的平均运行时间。表2是我们的算法与[8]算法的平均运行时间比较。我们发现我们的算法的平均运行时间都比[8]算法快。这意味着我们的算法在时间复杂度上要优于[8]算法。
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第8张图片

4.3. Application

为了验证该算法的实用性,我们将其应用于指纹识别中,利用指纹的脊结束和分叉等细节特征来表征指纹图像。图4显示了从人的同一手指上提取的两张[8]指纹图像,其中圈出的点被手动选择为细节特征。我们从每个指纹图像中提取了42个圈点,并通过软件Origin手动提取它们的坐标。我们将图4(a)和(b)中圈出的点视为两个点集,并将我们的算法应用于它们。匹配结果表明,图4(a)和(b)之间有35对匹配,说明了我们算法的有效性。图5为匹配点,其中符号“ × \times ×”为图4(a)中指纹图像特征点的变换结果,符号“+”为图4(b)中指纹图像特征点,符号“ ◯ \bigcirc ”为匹配点。
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第9张图片
论文《Efficient point pattern matching algorithm for planar point sets under transform of translati》学习_第10张图片

5. Conclusions

本文提出了一种新的点模式匹配算法。该算法从P中随机选取k个点,通过搜索Q中所有点的局部点模式来确定每个点的局部点模式,并将具有相同变换参数的局部点模式进行合并,实现点模式匹配。局部点振型的确定是通过连续的反向旋转来实现的。当对转角之和为2 π \pi π时,所有可能的边缘匹配位置都被移动。在计算过程中,只计算所选点的相邻点。该操作有效地提高了算法的速度。通过大量的实验验证了该算法的有效性。并与著名的[8]算法进行了运行时间比较,结果表明该算法比[8]算法更快。

你可能感兴趣的:(论文学习)