发明名称 基于点到直线距离的广义点集匹配方法
摘要 本发明公开了一种基于点到直线距离的广义点集匹配方法,能够实现点集的快速、精确匹配。先从参考图像与目标图像中分别提取广义点集{p<sub>1</sub>,p<sub>2</sub>…p<sub>m</sub>}和{q<sub>1</sub>,q<sub>2</sub>…q<sub>n</sub>},点集是离散的,具有方向性;在寻找广义点集相对应点时,根据此参考点的索引序号和搜素半径,确定其邻域内的目标点的索引序号,用于快速查询目标点集;同时结合变邻域寻找最近点的方法,采用角度阈值及距离阈值,快速地建立有向点之间的对应关系;然后,根据点‑线距离与点‑点距离的等效转化方法,实现非线性优化问题与线性优化问题间的转化,从而利用最小二乘法获得匹配参数,实现了快速精确匹配,提高了计算效率。
申请公布号 CN103778433B 申请公布日期 2017.02.22
申请号 CN201410019047.2 申请日期 2014.01.15
申请人 广东华中科技大学工业技术研究院 发明人 夏奇;彭泳;王珂;史铁林;廖广兰
分类号 G06K9/62(2006.01)I;G06F17/30(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 广州华进联合专利商标代理有限公司 44224 代理人 谭一兵;蔡晓军
主权项 基于点到直线距离的广义点集匹配方法,其特征在于,广义点集中的每个点都是具有方向的,包括以下步骤:(1)从参考图像和目标图像中分别提取广义有向点集,得到参考有向点集{p<sub>1</sub>,p<sub>2</sub>…p<sub>m</sub>}和目标有向点集{q<sub>1</sub>,q<sub>2</sub>…q<sub>n</sub>};其中,参考有向点集共有m个有向点,目标有向集共有n个有向点;(2)设置初始参数,包括初始变换参数、最大迭代次数、循环过程中的迭代次数及最小均方根RMS改变值;其中,在设置初始变换参数时,对于相似变换参数包括平移x、y方向平移参数、缩放参数、旋转参数,分别用t<sub>x0</sub>,t<sub>y0</sub>,s<sub>0</sub>,Φ<sub>0</sub>表示;其中,t<sub>x0</sub>,t<sub>y0</sub>,s<sub>0</sub>,Φ<sub>0</sub>是设定的一个初始值,每经过一次迭代,寻找对应点对,并求解目标点集与参考点集间的相似变换参数,且当迭代cnt次时,用t<sub>xcnt</sub>,t<sub>ycnt</sub>,s<sub>cnt</sub>,Φ<sub>cnt</sub>表示此参数;如果是仿射变换,则包括x、y方向平移参数、斜切参数、x、y方向缩放参数、旋转参数,分别用t<sub>x0</sub>,t<sub>y0</sub>,h<sub>0</sub>,s<sub>x0</sub>,s<sub>y0</sub>,Φ<sub>0</sub>表示,其应用与相似变换参数类似;程序中最大迭代次数用max_cnt表示,如果迭代次数cnt大于max_cnt将跳出循环;初始的迭代次数设置为0,即cnt=1,且每循环一次其值加1;最小均方根RMS改变值设置为min_rms,并判断误差变化是否小于min_rms,如果小于则终止循环;根据以上初始条件,变换参考点集,得到初始参考有向点集,设置为P<sub>0</sub>;其中,P<sub>0</sub>只是一个初始点集,每经过一次迭代,通过新的变换参数t<sub>xcnt</sub>,t<sub>ycnt</sub>,s<sub>cnt</sub>,Φ<sub>cnt</sub>,得到新的参考点集,当迭代cnt次时,用P<sub>cnt</sub>表示;(3)离散化目标点集,从目标图像中提取的有向点为亚像素级别,利用这些目标有向点经过坐标取整获得行、列索引序号r<sub>qi</sub>=[y<sub>qi</sub>]和c<sub>qi</sub>=[x<sub>qi</sub>],然后建立四个矩阵,分别是掩模矩阵M<sub>q</sub>,x坐标矩阵X<sub>q</sub>,y坐标矩阵Y<sub>q</sub>和方向矩阵Θ<sub>q</sub>;分别设置掩模矩阵M<sub>q</sub>,x坐标矩阵X<sub>q</sub>,y坐标矩阵Y<sub>q</sub>和方向矩阵Θ<sub>q</sub>中对应元素的值;(3‑1)新建四个m行n列的矩阵,分别为M<sub>m*n</sub>、X<sub>m*n</sub>、Y<sub>m*n</sub>、Θ<sub>m*n</sub>;且令M<sub>m*n</sub>=X<sub>m*n</sub>=Y<sub>m*n</sub>=Θ<sub>m*n</sub>=0<sub>m*n</sub>,其中0<sub>m*n</sub>为m行n列的零矩阵;(3‑2)设置计数器i=1;(3‑3)将目标点q<sub>i</sub>的坐标取整,得到其行、列索引序号r<sub>qi</sub>=[y<sub>qi</sub>]和c<sub>qi</sub>=[x<sub>qi</sub>];(3‑4)将掩模矩阵中对应的元素M<sub>q</sub>(r<sub>qi</sub>,c<sub>qi</sub>)设为1;(3‑5)x坐标矩阵中对应的元素X<sub>q</sub>(r<sub>qi</sub>,c<sub>qi</sub>)设为x<sub>qi</sub>,y坐标矩阵中对应的元素Y<sub>q</sub>(r<sub>qi</sub>,c<sub>qi</sub>)设为y<sub>qi</sub>;(3‑6)方向矩阵中对应的元素Θ<sub>q</sub>(r<sub>qi</sub>,c<sub>qi</sub>)设为θ<sub>qi</sub>;(3‑7)设置i的值加1,即i=i+1;(3‑8)判断i是否小于等于n;如果否,则返回步骤(3‑4),如果是,则转到(3‑9);(3‑9)输出M、X、Y、Θ四个矩阵;(4)寻找对应点对:在以参考点P<sub>i</sub>为中心点,半径为R的范围内寻找对应点q<sub>i</sub>;(5)最小二乘法求解变换参数;(6)变换参考点集:利用新的变换参数变换参考点集得到P<sub>cnt</sub>,并计算新的参考点集P<sub>cnt</sub>和目标点集Q之间的均值平方根RMS,具体地,先计算参考点集与目标点集间距离,将所有距离平方相加后开方根,并除以对应点对数,由此得到RMS;(7)计算两个点集之间的误差,设置cnt=cnt+1,具体地,误差为参考点集与目标点集间距离平方之和,再开方根;(8)判断误差变化是否小于最小均方根改变值(min_rms),及迭代次数(cnt)是否大于设定最大迭代次数(max_cnt),若是则转入步骤(9),否则重新离散化目标点集,继续寻找新的对应点对,返回步骤(4);(9)输出最终求得的参考有向点集和目标有向点集之间的相似变换参数s,Φ,t<sub>x</sub>,t<sub>y</sub>;对于仿射变换是h,s<sub>x</sub>,s<sub>y</sub>,Φ,t<sub>x</sub>,t<sub>y</sub>。
地址 523808 广东省东莞市松山湖科技产业园区科技九路1号