发明名称 基于局部线性迁移和仿射变换的图像特征匹配方法及系统
摘要 本发明提出了一种基于局部线性迁移和仿射变换的图像特征匹配方法及系统,用于通过去除初始匹配点对中的错误的匹配来建立正确的匹配,包括针对待匹配图像间的仿射变换建立待匹配图像间几何变换相应的模型,并建立匹配点对为正确匹配的后验概率相应的模型,基于最近邻居匹配点、最小二乘法、最优化方法求解模型参数;计算初始匹配点对为正确匹配的后验概率,并根据阈值判断初始匹配点对的正误。本方法针对待匹配图像之间存在仿射变换的情况进行了建模,大幅降低了匹配的错误率,即使在初步匹配中存在大量错误匹配的情况下,依然保持良好的鲁棒性。
申请公布号 CN105488754A 申请公布日期 2016.04.13
申请号 CN201510799813.6 申请日期 2015.11.19
申请人 武汉大学 发明人 樊凡;马泳;黄珺;马佳义;梅晓光
分类号 G06T3/00(2006.01)I 主分类号 G06T3/00(2006.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 严彦
主权项 一种基于局部线性迁移和仿射变换的图像特征匹配方法,其特征在于:包括以下步骤,步骤1,建立待匹配图像间几何变换相应的模型和匹配点对为正确匹配的后验概率相应的模型,实现如下,针对待匹配图像间的刚性几何变换,建立变换数学模型如下,y=t(x)=sRx+o其中,设两幅待匹配图像为图像a和图像b,x和y分别是图像a和图像b上像素的坐标向量,t(x)表示刚性几何变换关系,s表示待匹配图像间的尺度比例,R是一个2×2的矩阵,表示待匹配图像间的旋转,o是一个2×1的矩阵,表示待匹配图像间的平移;设已知的一组初始匹配点对中,图像a上点集为X={x<sub>1</sub>,…,x<sub>N</sub>}<sup>T</sup>,图像b上相应点集为Y={y<sub>1</sub>,…,y<sub>N</sub>}<sup>T</sup>,计算其中第n对匹配点为正确匹配的后验概率p<sub>n</sub>有如下后验概率数学模型,<math><![CDATA[<mrow><msub><mi>p</mi><mi>n</mi></msub><mo>=</mo><mfrac><mrow><msup><mi>&gamma;e</mi><mrow><mo>-</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><mi>t</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></mrow></msup></mrow><mrow><msup><mi>&gamma;e</mi><mrow><mo>-</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><mi>t</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup></mrow><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac></mrow></msup><mo>+</mo><msup><mi>b&pi;&sigma;</mi><mn>2</mn></msup><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&gamma;</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mi>n</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mi>N</mi></mrow>]]></math><img file="FDA0000851380530000011.GIF" wi="1124" he="295" /></maths>其中,γ和σ均为模型参数,e为数学常量,b为预设的系数;步骤2,根据点集X={x<sub>1</sub>,…,x<sub>N</sub>}<sup>T</sup>和Y={y<sub>1</sub>,…,y<sub>N</sub>}<sup>T</sup>求解模型参数,包括以下子步骤,步骤2.1,为每一个匹配点x<sub>n</sub>,n=1,…,N,分别搜索最近的K个邻居匹配点,K取预设值;步骤2.2,根据步骤2.1的搜索结果,采用最小二乘法求解维度为N×N的权重矩阵W;步骤2.3,通过最优化方法求解模型参数s、R、o、γ、σ,包括以下子步骤,步骤2.3.1,初始化,包括令γ=γ<sub>0</sub>,R=I<sub>2×2</sub>,o=0,P=I<sub>N×N</sub>,γ<sub>0</sub>为γ的预设初始值,令当前迭代次数k=1,采用下述模型参数公式计算σ,<math><![CDATA[<mrow><msup><mi>&sigma;</mi><mn>2</mn></msup><mo>=</mo><mfrac><mrow><mi>t</mi><mi>r</mi><mrow><mo>(</mo><msup><mrow><mo>(</mo><mrow><mi>Y</mi><mo>-</mo><mi>T</mi></mrow><mo>)</mo></mrow><mi>T</mi></msup><mi>P</mi><mo>(</mo><mrow><mi>Y</mi><mo>-</mo><mi>T</mi></mrow><mo>)</mo><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mo>&CenterDot;</mo><mi>t</mi><mi>r</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000851380530000012.GIF" wi="676" he="207" /></maths>其中,T=(t(x<sub>1</sub>),…,t(x<sub>N</sub>))<sup>T</sup>,tr()表示求矩阵的迹;步骤2.3.2,更新矩阵P,包括采用步骤1中所得后验概率数学模型,计算得到N对匹配点对分别为正确匹配的后验概率p<sub>1</sub>,…,p<sub>N</sub>,令P=diag(p<sub>1</sub>,…,p<sub>N</sub>),diag表示对角矩阵;步骤2.3.3,计算参数s、R、o如下,采用下述公式计算参数s,<math><![CDATA[<mrow><mi>s</mi><mo>=</mo><mfrac><mrow><mi>t</mi><mi>r</mi><mrow><mo>(</mo><msup><mrow><mo>(</mo><mrow><msup><mover><mi>Y</mi><mo>^</mo></mover><mi>T</mi></msup><mi>P</mi><mover><mi>X</mi><mo>^</mo></mover></mrow><mo>)</mo></mrow><mi>T</mi></msup><mi>R</mi><mo>)</mo></mrow></mrow><mrow><mi>t</mi><mi>r</mi><mrow><mo>(</mo><msup><mover><mi>X</mi><mo>^</mo></mover><mi>T</mi></msup><mi>P</mi><mover><mi>Y</mi><mo>^</mo></mover><mo>)</mo></mrow><mo>+</mo><mn>2</mn><msup><mi>&lambda;&sigma;</mi><mn>2</mn></msup><mi>t</mi><mi>r</mi><mrow><mo>(</mo><msup><mi>X</mi><mi>T</mi></msup><mi>Q</mi><mi>X</mi><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000851380530000021.GIF" wi="771" he="251" /></maths>其中,矩阵<math><![CDATA[<mrow><mover><mi>X</mi><mo>^</mo></mover><mo>=</mo><mi>X</mi><mo>-</mo><msub><mi>I</mi><mrow><mi>N</mi><mo>&times;</mo><mn>1</mn></mrow></msub><msubsup><mi>&mu;</mi><mi>x</mi><mi>T</mi></msubsup><mo>,</mo></mrow>]]></math><img file="FDA0000851380530000022.GIF" wi="382" he="87" /></maths><math><![CDATA[<mrow><mover><mi>Y</mi><mo>^</mo></mover><mo>=</mo><mi>Y</mi><mo>-</mo><msub><mi>I</mi><mrow><mi>N</mi><mo>&times;</mo><mn>1</mn></mrow></msub><msubsup><mi>&mu;</mi><mi>y</mi><mi>T</mi></msubsup><mo>,</mo></mrow>]]></math><img file="FDA0000851380530000023.GIF" wi="378" he="94" /></maths><math><![CDATA[<mrow><msub><mi>&mu;</mi><mi>x</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mi>t</mi><mi>r</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow></mrow></mfrac><msup><mi>X</mi><mi>T</mi></msup><msub><mi>PI</mi><mrow><mi>N</mi><mo>&times;</mo><mn>1</mn></mrow></msub><mo>,</mo></mrow>]]></math><img file="FDA0000851380530000024.GIF" wi="485" he="158" /></maths><math><![CDATA[<mrow><msub><mi>&mu;</mi><mi>y</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mi>t</mi><mi>r</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow></mrow></mfrac><msup><mi>Y</mi><mi>T</mi></msup><msub><mi>PI</mi><mrow><mi>N</mi><mo>&times;</mo><mn>1</mn></mrow></msub><mo>,</mo></mrow>]]></math><img file="FDA0000851380530000025.GIF" wi="485" he="157" /></maths>将I<sub>N×N</sub>省略记为I,矩阵Q=(I‑W)<sup>T</sup>P(I‑W),λ为预设的参数;采用下述公式计算参数R,R=UDV<sup>T</sup>其中,D=diag(1,det(UV<sup>T</sup>)),det()表示矩阵的行列式,矩阵U和V通过奇异值分解获得;采用下述公式计算参数o,o=μ<sub>y</sub>‑sRμ<sub>x</sub>步骤2.3.4,根据步骤2.3.3计算得到的参数s、R、o,重新计算参数γ、σ如下,采用下述公式计算参数γ,<math><![CDATA[<mrow><mi>&gamma;</mi><mo>=</mo><mfrac><mrow><mi>t</mi><mi>r</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow>]]></math><img file="FDA0000851380530000026.GIF" wi="245" he="159" /></maths>采用步骤2.3.1中模型参数公式计算σ;步骤2.3.5,判别收敛条件,包括计算当前的参数L,当满足k=k<sub>max</sub>或者(L‑L<sub>old</sub>)/L<sub>old</sub>≤ε,结束迭代,k<sub>max</sub>为最大迭代次数,ε是收敛阈值;否则,k=k+1,返回步骤2.3.2;所述参数L的计算公式如下,<math><![CDATA[<mfenced open = "" close = ""><mtable><mtr><mtd><mrow><mi>L</mi><mo>=</mo><mo>-</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></mfrac><msubsup><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>p</mi><mi>n</mi></msub><mo>|</mo><mo>|</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><mi>t</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>-</mo><mrow><mo>(</mo><mi>l</mi><mi>n</mi><mfrac><msup><mi>&sigma;</mi><mn>2</mn></msup><mi>&gamma;</mi></mfrac><mo>)</mo></mrow><msubsup><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>p</mi><mi>n</mi></msub><mo>+</mo><mi>l</mi><mi>n</mi><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&gamma;</mi><mo>)</mo></mrow><msubsup><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>p</mi><mi>n</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mi>&lambda;</mi><msubsup><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>p</mi><mi>i</mi></msub><mo>|</mo><mo>|</mo><mi>t</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>W</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><msub><mi>x</mi><mi>j</mi></msub><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000851380530000027.GIF" wi="1718" he="327" /></maths>其中,L<sub>old</sub>表示上一次计算得到的L;步骤3,计算初始匹配点对为正确匹配的后验概率,并根据阈值判断初始匹配点对的正误,实现如下,将所述步骤2.3中求解的模型参数代入步骤1中所述后验概率数学模型,计算得到第n对匹配点对为正确匹配的后验概率;当p<sub>n</sub>≥threshold时,则认为第n对匹配点是正确匹配;当p<sub>n</sub>&lt;threshold时,则认为第n对匹配点是错误的匹配,其中threshold为预设的判断阈值。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学