精读As-Projective-As-Possible Image Stitching with Moving DLT

文章标题As-Projective-As-Possible Image Stitching with Moving DLT,来自CVPR 2013,文章主页,PDF。

摘要

本文主要目的是做图像拼接,使用MovingDirect Linear Transformation (MDLT)算法,强调全局投影(Globallyprojective)特性,同时允许局部非投影(local non-projective)偏差,能够有效的避免两幅图像重合部分的重影现象,降低了对准的误差,再几何上看起来更加逼近真实,畸变更小。

投影变换(Projective warp),逼近仿射变换(As-affine-as-possible warp)与本文的逼近投影变换(As-projective-as-possible warp)进行对比,如下图。(此图未完全看懂,谁看懂了说一下)
精读As-Projective-As-Possible Image Stitching with Moving DLT_第1张图片

主要算法

文章使用的是Moving DLT算法,那么首先就要搞清楚什么是DLT算法。在两幅图片和中有一对匹配的点对,原始图像(Source Image)中的点 与目标图片(Target Image)中的点 ,投影变换或者说单应矩阵(对极几何中的基础矩阵?本质矩阵?)要做的事就是得到一个映射关系

此公式中的表示的其次坐标,即 为单应矩阵。在非其次坐标中,有如下对应关系:

其中的代表单应矩阵中的第j行,并且此处映射为非线性映射。DLT算法就是计算单应矩阵 的一种基础算法。
此处文章直接给出来了一个公式,说根据公式1直接得到了,下面我稍微解释一下上面这个公式是怎么来的,from wiki。
设有半正定矩阵,使得。由于,所以共有3*2/2=3个这样的

,则有:

由于的秩为2,所以的秩也为2,这样子我们设为 上面矩阵的前两行,i代表第i个匹配点对。则矩阵H的目标函数:
,subject to 
重新排列后得到矩阵H。,将纵向排列得到。解为A奇异分解右侧的矩阵。如此,对其他像素根据单应矩阵做一次线性变换即可。由于是整幅图片使用一个单应矩阵,所以只适用于旋转角度不大的情况,本文对此做出改进,在计算时采用加权估值,使用

与图片中每个像素距离第i个匹配点之间的几何距离正相关。为了避免过于接近0导致误差,进行规格化操作。取

可以看出当趋近1的时候MovingDLT和DLT就是一样子了。由于像素的连续性,的变化也是连续的。未经过规格化结果如下图:
精读As-Projective-As-Possible Image Stitching with Moving DLT_第2张图片

本文的基本操作

  1. SIFT提取匹配点对;
  2. RANSACwith DLT去除outliers
  3. 计算全局的单应矩阵,计算拼接之后整幅图size,使用全局单应矩阵将Source Image映射到Target Image中去
  4. 分块(cell)计算MDLT中的weight矩阵并映射。我们观察到大于40%的cell只有少数的weight值不同于。令,特征值分解:
    真正的weight矩阵区别在于那些很少的不为的地方,且均分布在对角线上。如此,就有

    其中,为前面矩阵A的第i行,。用特征方程对角化上面公式中间的矩阵

    得到,由于是奇异值分解右侧的矩阵,这样就得到了h的估计。用此对每一个cell做单应矩阵的变换。这样子做法好处是每个cell的时间复杂度是

结果如下


你可能感兴趣的:(image,Moving,stitching,DLT,cvpr2013,apap)