羅運,賀翔,丁詩婕
(四川大學(xué)計算機學(xué)院,成都610065)
圖像拼接是將兩幅或者多幅具有重疊區(qū)域的圖片,采用一定的方法進行融合從而獲得更寬視野或者更高分辨率的圖像處理技術(shù)。在實際應(yīng)用中,圖像拼接技術(shù)已經(jīng)被廣泛應(yīng)用于醫(yī)學(xué)成像、遙感技術(shù)、虛擬現(xiàn)實、手機全景等各領(lǐng)域。與此同時,為了獲得更加自然的拼接圖像效果,圖像拼接必須要解決采樣透視失真問題、偽影問題。圖像拼接包含圖像預(yù)處理、圖像對齊(配準)和圖像融合三個步驟,各研究學(xué)者從這幾個子問題出發(fā),研究算法并獲得了比較不錯的效果。
圖像拼接技術(shù)主要有兩個分支:基于像素到像素的直接方法以及基于特征的拼接算法[1]。因為基于特征的圖像拼接技術(shù)在尺度、方向、投影縮減上具有更好的魯棒性,因此成為了當今研究的熱點。常見的特征提取算法有SIFT[2]、SURF[3]、PCA-SIFT[4]等。1997 年,Richard 等人[5]提出了一種嚴格控制輸入圖像序列,并且不限制拍攝運動的圖像拼接方法。2003 年,Brown等人[6]基于不變特征提出了全自動全景圖像拼接的模型,該模型在2007 年[7]得到改進。該文章首次提出一種比較完善的基于特征圖像拼接流程,首先從輸入圖像中提取SIFT 特征,然后將圖像拼接問題視作多圖像匹配問題,找到無序圖像集中的圖像之間相互關(guān)系以進行全景圖像識別,最后通過光束差法將有關(guān)聯(lián)的圖像進行融合獲得無縫的高質(zhì)量圖像。由于SIFT 提取的特征點對較多,因此文章采用了RANSAC[8]方法進行篩除誤匹配點以獲得更好的匹配效果。
因為單應(yīng)性變換能夠解釋較多場景下(旋轉(zhuǎn)、相似等)兩平面圖像之間的變換關(guān)系,因此在圖像拼接中被廣泛采用。Brown 等人2003 年提出的全自動全景圖像拼接就是基于RANSAC 過濾的特征點對得到的更強魯棒性初始單應(yīng)變換矩陣。但往往,唯一的全局單應(yīng)矩陣得到的圖像拼接效果不盡如人意,可能出現(xiàn)誤對齊以致偽影問題的出現(xiàn)。很多學(xué)者基于此提出了效果較好的后處理方法,這些方法基于縫合線[9]或者圖像切割進行優(yōu)化,但這些后處理優(yōu)化并不見得在所有場景都能適用。2011 年,JunHong Gao 等人[10]針對可以分為遠處的后平面和以及攝像機掃出的地平面的圖像,提出了圖像拼接的雙單應(yīng)扭曲變換。2014 年,Julio Zaragoza 等人[11]為了避免誤對齊以及過分依賴后處理和消除偽影,提出了盡可能投影(APAP)算法。該算法首次提出網(wǎng)格形變,首先建立Moving DLT 數(shù)學(xué)模型,然后解超定方程生成網(wǎng)格單應(yīng)矩陣進行透視變換。這是網(wǎng)格多單應(yīng)變換的首次應(yīng)用,其有效地消除了偽影,但是沒有限制網(wǎng)格數(shù)量也沒有解決透視失真的問題。Che-Han Chang 等人[12]提出的基于保形差值的算法,能夠解決透視失真的問題,但對于大視差情景,則需要結(jié)合APAP算法。后續(xù)的研究者從網(wǎng)格優(yōu)化、多特征出發(fā)進行研究都獲得了不錯的圖像拼接效果。本文將重點分析APAP 算法以及其衍生的相關(guān)算法。
當拼接圖像僅包含旋轉(zhuǎn)或者各圖像處于同一平面時,用單應(yīng)性矩陣來表示它們平面物體的運動關(guān)系是恰當?shù)?。單?yīng)性矩陣是一個3×3 的矩陣。令x=[x y]T為圖像I 中的一個像素點,x'=[x'y']T為具有重疊區(qū)域的與x 相匹配的像素點。則兩像素點其單應(yīng)變換關(guān)系可以表示為:


其中,rj為H 矩陣的第j 行。
DLT 是一種從包含噪聲匹配點對估計單應(yīng)變換矩陣H 的基本方法。我們常用的匹配點對常采用SIFT特征點。

其中,h 是將H 向量化得到的向量。(3)式中只有兩行式線性無關(guān)的。使αi為(3)矩陣中的前兩行,以用來計算第i 個匹配點對{xi,x'i} 。給定一個估計h,‖αih‖是第i 個基準點的代數(shù)誤差。DLT 使代數(shù)誤差的平方和最小化。

同樣地,將所有的αi垂直疊加到一個新的矩陣A∈R2N×9。(4)式可以被重新定義為:

通過重建得到的估計一個H,原圖像I 和目標圖像I'之間任意點對的對應(yīng)關(guān)系可以表示為:

為了避免數(shù)值精度問題,在DLT 計算之前,可以先對數(shù)據(jù)進行歸一化操作,然后在執(zhí)行前進行H 的去歸一化。
上面描述了理想條件下的H 矩陣的估計,當視圖I 和I' 不僅僅包含旋轉(zhuǎn)關(guān)系或者不是處于同一平面時,采用一個基本的H 矩陣可能會產(chǎn)生誤對齊或者視差錯誤。由此Moving DLT 被提出,通過使用依賴位置的單應(yīng)性去變換每一個x*。

其中H*是通過加權(quán)問題估計得到:

其中,距離x*越近將會賦予更高的權(quán)重,并由下列式子計算得出:

其中,σ是一個尺度參數(shù),xi是源圖像I 中第i 個點匹配{xi,x'i} 一半的坐標。直觀上來看,式(9)分配了更高的權(quán)重給距離x*更近的點,因此,H*更好地遵循了點x*附近的局部結(jié)構(gòu)。同時,因為x*在I 中是連續(xù)地移動,因此變換H*也是平滑地變化,這就產(chǎn)生了能夠靈活適應(yīng)數(shù)據(jù)的整體變形,同時又試圖保證了投影的變化趨勢。這也就是Moving DLT。
當兩幅圖像或者多幅圖像不再滿足上述的理想條件,用唯一的單應(yīng)矩陣去估計變換關(guān)系,不可避免地會產(chǎn)生誤對齊或者視差。為了避免這個問題,Julio Zaragoza提出使用Moving DLT 計算全局單應(yīng)性矩陣,再按照一定規(guī)律將待對齊圖像進行網(wǎng)格劃分,依照網(wǎng)格權(quán)重進行對每個網(wǎng)格中的局部單應(yīng)性矩陣計算,再按照局部單應(yīng)性矩陣進行融合。它的算法步驟如下:
(1)在兩幅待對齊圖像中,提取SIFT 特征點;
(2)在得到的特征點中,使用RANSAC 算法剔除錯誤特征點;
(3)使用Moving DLT 估計全局單應(yīng)性矩陣;
(4)采用一定的規(guī)律對帶對齊圖像進行網(wǎng)格劃分,對網(wǎng)格中的特征點以及網(wǎng)格權(quán)重進行計算;
(5)根據(jù)步驟(4)得到的權(quán)重和全局單應(yīng)性矩陣計算每一網(wǎng)格的單應(yīng)矩陣。得到每一網(wǎng)格的局部單應(yīng)矩陣。
(6)使用局部單應(yīng)矩陣進行圖像拼接。
APAP 算法能夠解決待拼接圖像不是完全旋轉(zhuǎn)的情形,并且通過局部權(quán)重約束調(diào)整能夠同時較好地對齊多幅圖像。但是APAP 算法中,選擇劃分網(wǎng)格的數(shù)量以及解決透視失真的問題。在它的實驗結(jié)果中,偽影得到明顯解決,但直線扭曲,物體透視失真等問題依然顯著。SPHP 算法則在解決透視失真的問題上有良好的效果。
SPHP 算法提出了一種新穎的解決透視失真的方案。其通過將重疊區(qū)域的單應(yīng)變換過渡到非重疊區(qū)域的相似變換,能夠有效地解決透視失真的問題,對于大視差圖像拼接,其可以通過結(jié)合APAP 算法能夠獲得比較自然的圖像效果。其具體步驟如下:
(1)半投影變換
SPHP 算法首先通過線u=u1將R2分成兩個空間:RH={(u,υ)|u≤u1} ,RL={(μ,υ)|u>u1} 。其中,(u,υ)是待拼接圖像原像素坐標(x,y) 通過單應(yīng)矩陣變換而來的新坐標。u1用于將圖像劃分為兩個區(qū)域,RH理解為重疊區(qū)域,RL為其他區(qū)域。
對于(u,υ)∈RH,直接用H 進行單應(yīng)變換。對于(u,υ)∈RL,由于單應(yīng)變換H 造成了比RH更大的面積失真,因此將單應(yīng)變換替換為相似變換,以此來減少圖像在形狀和尺寸上的失真。同時為了保證變換的連續(xù)性以避免明顯的拼接裂縫,必須要求對于分界線上所有的(u,υ)都滿足S(u,υ)=H(u,υ)。
(2)C1外推
為了構(gòu)建C1扭曲,SPHP 將RH拆分為兩個空間:RT={(u,υ)|u1<u<u} ,RS={(u,υ)|u2≤u} 。RT可以視作一個將單應(yīng)變換H 平滑過渡到相似變換的過渡區(qū)域。
因此整張待拼接圖像被劃分為三個區(qū)域,即:

T(μ,υ)是定義在中間區(qū)域RT中逐漸改變H(μ,υ)到S(μ,υ)行為的函數(shù)。S(μ,υ)是定義在RS的相似變換。S(μ,υ)參數(shù)化如下所示:


其中,fx(u),fy(u),gx(u),gy(u)為未知函數(shù)。通過H(u,υ)和S(u,υ)進行進一步的簡化:

其中Fx(u),Fy(u),Gx(u),Gy(u)包含未知函數(shù),我們以Fx(u)為例,F(xiàn)x(u)可以表示為以下形式:

Hx(u),fx(u),Sx(u)分別來自H(μ,υ),T(μ,υ),S(μ,υ)步驟的求解。同理Fy(u)υ,Gx(u),Gy(u)。同時,為保證Fx(u)的連續(xù),fx(u)也必須滿足以下條件,即在u1,u2處函數(shù)連續(xù),并且其倒數(shù)也要連續(xù):

Fy(u)υ,Gx(u),Gy(u)同理,由此可以過渡變換T(μ,υ)。
(3)相似變換
非重合區(qū)域RS運用相似變換,并且結(jié)合前兩個區(qū)域的變換,完成圖像拼接。
SPHP 利用相似變換,極大地保留了圖像的原有視角,減少了圖像透視失真,同時為了獲得更好的對齊效果,文章作者給出了結(jié)合APAP 算法的優(yōu)化方案。
文章作者觀察到在一些實際生活中,一些場景例如重復(fù)紋理圖片或者人造建筑的同質(zhì)區(qū)域,點特征可能不能維持較好的匹配效果。因此,將線特征加入APAP 算法,既能保持圖像之間的強對應(yīng)關(guān)系,也能維持圖像的結(jié)構(gòu)屬性。
(1)線關(guān)系
(2)點特征與直線特征結(jié)合
通過簡單的矩陣連接,式(5)中的A變?yōu)锳∈R2(N+M)×9,并且通過新的矩陣A 估計全局單應(yīng)矩陣。

圖1
(3)線的權(quán)重計算

其中,σl是一個尺度參數(shù)dl(x*,lj) 表示點x*與直線lj最近的距離。

其中x1,x2為直線lj的兩端點。
(4)平衡參數(shù)λ
該算法因引入了點和線兩種特征,必須考慮如何平衡這兩者來獲得更高的圖像拼接質(zhì)量。該文作者提出了平衡參數(shù)λ來保持點和線的最佳平衡關(guān)系——通過最優(yōu)化對應(yīng)點和線的二次投影誤差來實現(xiàn)。
對于點:

其中,d(.,.)表示歐氏距離,H 是估計的單應(yīng)性矩陣,Ψ(·) 是一個索引映射。
對于線:

其中,d⊥表示線段的投影距離。文章通過來計算最終的二次投影誤差。通過E值,就可以找到合適的λ值。
通過點和線特征的結(jié)合,該算法對于圖像對齊和視差問題都具有強魯棒性。
圖像拼接技術(shù)的核心步驟是圖像對齊和圖像融合。在不是理想條件約束下的圖像拼接(圖像僅包含旋轉(zhuǎn)或圖像處于同一平面),依靠不變特征以及多局部單應(yīng)矩陣獲得良好對齊效果的圖像拼接技術(shù)值得肯定和研究。但同時也要注意到,應(yīng)用場景是復(fù)雜的,圖像拼接過程中出現(xiàn)的偽影、間隙、透視失真等問題要有效解決。例如對于特征點在某一區(qū)域較為稀疏,而在另外一區(qū)域則較為密集的情況,這樣的圖像拼接在對齊階段必然效果很差,因此引入多特征進行約束。對于失真問題,SPHP 提出了結(jié)合相似變換和單應(yīng)變換。APAP 算法作為網(wǎng)格形變的代表作,后續(xù)研究者基于其做了許多拓展,這些拓展從網(wǎng)格約束出發(fā),都獲得了不錯的效果。在未來研究中,我們還可以在大視差、視頻拼接、圖像混疊問題著手。