在现实场景中镜头畸变是常见问题,但是在目前的讨论中我们并没有考虑它对单应性估计的影响。如果建模不好的话,可能会产生错误的模型估计。在现代系统中广泛应用的高分辨率传感器中,这种影响尤其明显。考虑到单应性估计中的这些影响,我们使用一个简单的单参数畸变模型:
f(r)=1+κr2 (13.4)
其中,r是所考虑的点到畸变中心(通常假设为图像中心)的距离;κ是未知的镜头畸变参数。
当存在镜头畸变时,可以利用该模型来估计单应性,一种极有效的方法是利用每个可能的κ值运行基于RANSAC的校准算法,然后选择适当的κ值,使其单应性满足最多的数据点。在镜头畸变时,我们考虑对CONSAC算法进行一次迭代。这时,内点的数目N是畸变参数κ,判决内点的阈值τ,和用于计算单应性的一对均匀采样三元组T(2)的函数f:
N=f(κ,τ,T(2)) (13.5)
假设τ是固定的,则内点的数目为N=f(κ,T(2))。用多对均匀采样三元组进行多次迭代,所得的内点数目为(www.xing528.com)
相应的满足内点数目最多的单应性就是所估计的单应性矩阵。显而易见,当增加三元组的对数(增加CONSAC迭代)时,N的值也就增加了。而且,用U代表三元组对的全集,由这个集合得到N的过程是一个确定性连续函数(由于内点的数目只能是整数,所以该函数在整数值上连续)。
为了满足正确计算的需求,实际上只能希望所选的三元组对应的集合非常接近其全集。除非三元组对的全集很小或者内点三元组的比例较大,否则取近似值是不准确的。因此,从备选畸变参数值表中选择κ值,满足由式(13.6)得到的内点最大数目N值,这样将会得到真实场景中畸变参数的非鲁棒性估计。
为此,我们提出了一个两步法,它不仅能够对畸变参数产生鲁棒性的估计结果,而且具有较高的效率。在第一阶段(粗采样),对畸变参数可能值的解空间进行粗采样。对每一个参数值运行CONSAC算法从而得到内点数。内点数越多,相应的畸变参数值越能更好地反应数据特性。但是,如先前讨论的,由于CONSAC的迭代次数有限,所以这样不可能提供畸变参数的鲁棒性估计。因此,接下来需要改进。
在第二阶段,我们把内点集与第一阶段产生的最优畸变参数备选值相对应。这里,我们不使用在三元组对空间上的RANSAC算法,而是利用这些内点集(其中大量的内点满足κ值)重新计算单应性,从而得到一个改进的κ值样本空间。直观上,对应于理想的内点集能取代第一阶段的随机采样三元组对,从而能更好地估计κ值。改进阶段中的迭代次数被最优内点值和备选畸变参数值的数目所限制。通常本阶段的迭代总次数甚至远小于第一阶段中对一个κ值运行CONSAC算法所需的迭代次数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。