精讀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)進行對比,如下圖。(此圖未完全看懂,誰看懂了說一下)

主要算法

文章使用的是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就是一樣子了。由於像素的連續性,的變化也是連續的。未經過規格化結果如下圖:

本文的基本操作

  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的時間複雜度是

結果如下


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章