羅運(yùn),賀翔,丁詩(shī)婕
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
圖像拼接是將兩幅或者多幅具有重疊區(qū)域的圖片,采用一定的方法進(jìn)行融合從而獲得更寬視野或者更高分辨率的圖像處理技術(shù)。在實(shí)際應(yīng)用中,圖像拼接技術(shù)已經(jīng)被廣泛應(yīng)用于醫(yī)學(xué)成像、遙感技術(shù)、虛擬現(xiàn)實(shí)、手機(jī)全景等各領(lǐng)域。與此同時(shí),為了獲得更加自然的拼接圖像效果,圖像拼接必須要解決采樣透視失真問(wèn)題、偽影問(wèn)題。圖像拼接包含圖像預(yù)處理、圖像對(duì)齊(配準(zhǔn))和圖像融合三個(gè)步驟,各研究學(xué)者從這幾個(gè)子問(wèn)題出發(fā),研究算法并獲得了比較不錯(cuò)的效果。
圖像拼接技術(shù)主要有兩個(gè)分支:基于像素到像素的直接方法以及基于特征的拼接算法[1]。因?yàn)榛谔卣鞯膱D像拼接技術(shù)在尺度、方向、投影縮減上具有更好的魯棒性,因此成為了當(dāng)今研究的熱點(diǎn)。常見(jiàn)的特征提取算法有SIFT[2]、SURF[3]、PCA-SIFT[4]等。1997 年,Richard 等人[5]提出了一種嚴(yán)格控制輸入圖像序列,并且不限制拍攝運(yùn)動(dòng)的圖像拼接方法。2003 年,Brown等人[6]基于不變特征提出了全自動(dòng)全景圖像拼接的模型,該模型在2007 年[7]得到改進(jìn)。該文章首次提出一種比較完善的基于特征圖像拼接流程,首先從輸入圖像中提取SIFT 特征,然后將圖像拼接問(wèn)題視作多圖像匹配問(wèn)題,找到無(wú)序圖像集中的圖像之間相互關(guān)系以進(jìn)行全景圖像識(shí)別,最后通過(guò)光束差法將有關(guān)聯(lián)的圖像進(jìn)行融合獲得無(wú)縫的高質(zhì)量圖像。由于SIFT 提取的特征點(diǎn)對(duì)較多,因此文章采用了RANSAC[8]方法進(jìn)行篩除誤匹配點(diǎn)以獲得更好的匹配效果。
因?yàn)閱螒?yīng)性變換能夠解釋較多場(chǎng)景下(旋轉(zhuǎn)、相似等)兩平面圖像之間的變換關(guān)系,因此在圖像拼接中被廣泛采用。Brown 等人2003 年提出的全自動(dòng)全景圖像拼接就是基于RANSAC 過(guò)濾的特征點(diǎn)對(duì)得到的更強(qiáng)魯棒性初始單應(yīng)變換矩陣。但往往,唯一的全局單應(yīng)矩陣得到的圖像拼接效果不盡如人意,可能出現(xiàn)誤對(duì)齊以致偽影問(wèn)題的出現(xiàn)。很多學(xué)者基于此提出了效果較好的后處理方法,這些方法基于縫合線[9]或者圖像切割進(jìn)行優(yōu)化,但這些后處理優(yōu)化并不見(jiàn)得在所有場(chǎng)景都能適用。2011 年,JunHong Gao 等人[10]針對(duì)可以分為遠(yuǎn)處的后平面和以及攝像機(jī)掃出的地平面的圖像,提出了圖像拼接的雙單應(yīng)扭曲變換。2014 年,Julio Zaragoza 等人[11]為了避免誤對(duì)齊以及過(guò)分依賴后處理和消除偽影,提出了盡可能投影(APAP)算法。該算法首次提出網(wǎng)格形變,首先建立Moving DLT 數(shù)學(xué)模型,然后解超定方程生成網(wǎng)格單應(yīng)矩陣進(jìn)行透視變換。這是網(wǎng)格多單應(yīng)變換的首次應(yīng)用,其有效地消除了偽影,但是沒(méi)有限制網(wǎng)格數(shù)量也沒(méi)有解決透視失真的問(wèn)題。Che-Han Chang 等人[12]提出的基于保形差值的算法,能夠解決透視失真的問(wèn)題,但對(duì)于大視差情景,則需要結(jié)合APAP算法。后續(xù)的研究者從網(wǎng)格優(yōu)化、多特征出發(fā)進(jìn)行研究都獲得了不錯(cuò)的圖像拼接效果。本文將重點(diǎn)分析APAP 算法以及其衍生的相關(guān)算法。
當(dāng)拼接圖像僅包含旋轉(zhuǎn)或者各圖像處于同一平面時(shí),用單應(yīng)性矩陣來(lái)表示它們平面物體的運(yùn)動(dòng)關(guān)系是恰當(dāng)?shù)?。單?yīng)性矩陣是一個(gè)3×3 的矩陣。令x=[x y]T為圖像I 中的一個(gè)像素點(diǎn),x'=[x'y']T為具有重疊區(qū)域的與x 相匹配的像素點(diǎn)。則兩像素點(diǎn)其單應(yīng)變換關(guān)系可以表示為:
其中,rj為H 矩陣的第j 行。
DLT 是一種從包含噪聲匹配點(diǎn)對(duì)估計(jì)單應(yīng)變換矩陣H 的基本方法。我們常用的匹配點(diǎn)對(duì)常采用SIFT特征點(diǎn)。
其中,h 是將H 向量化得到的向量。(3)式中只有兩行式線性無(wú)關(guān)的。使αi為(3)矩陣中的前兩行,以用來(lái)計(jì)算第i 個(gè)匹配點(diǎn)對(duì){xi,x'i} 。給定一個(gè)估計(jì)h,‖αih‖是第i 個(gè)基準(zhǔn)點(diǎn)的代數(shù)誤差。DLT 使代數(shù)誤差的平方和最小化。
同樣地,將所有的αi垂直疊加到一個(gè)新的矩陣A∈R2N×9。(4)式可以被重新定義為:
通過(guò)重建得到的估計(jì)一個(gè)H,原圖像I 和目標(biāo)圖像I'之間任意點(diǎn)對(duì)的對(duì)應(yīng)關(guān)系可以表示為:
為了避免數(shù)值精度問(wèn)題,在DLT 計(jì)算之前,可以先對(duì)數(shù)據(jù)進(jìn)行歸一化操作,然后在執(zhí)行前進(jìn)行H 的去歸一化。
上面描述了理想條件下的H 矩陣的估計(jì),當(dāng)視圖I 和I' 不僅僅包含旋轉(zhuǎn)關(guān)系或者不是處于同一平面時(shí),采用一個(gè)基本的H 矩陣可能會(huì)產(chǎn)生誤對(duì)齊或者視差錯(cuò)誤。由此Moving DLT 被提出,通過(guò)使用依賴位置的單應(yīng)性去變換每一個(gè)x*。
其中H*是通過(guò)加權(quán)問(wèn)題估計(jì)得到:
其中,距離x*越近將會(huì)賦予更高的權(quán)重,并由下列式子計(jì)算得出:
其中,σ是一個(gè)尺度參數(shù),xi是源圖像I 中第i 個(gè)點(diǎn)匹配{xi,x'i} 一半的坐標(biāo)。直觀上來(lái)看,式(9)分配了更高的權(quán)重給距離x*更近的點(diǎn),因此,H*更好地遵循了點(diǎn)x*附近的局部結(jié)構(gòu)。同時(shí),因?yàn)閤*在I 中是連續(xù)地移動(dòng),因此變換H*也是平滑地變化,這就產(chǎn)生了能夠靈活適應(yīng)數(shù)據(jù)的整體變形,同時(shí)又試圖保證了投影的變化趨勢(shì)。這也就是Moving DLT。
當(dāng)兩幅圖像或者多幅圖像不再滿足上述的理想條件,用唯一的單應(yīng)矩陣去估計(jì)變換關(guān)系,不可避免地會(huì)產(chǎn)生誤對(duì)齊或者視差。為了避免這個(gè)問(wèn)題,Julio Zaragoza提出使用Moving DLT 計(jì)算全局單應(yīng)性矩陣,再按照一定規(guī)律將待對(duì)齊圖像進(jìn)行網(wǎng)格劃分,依照網(wǎng)格權(quán)重進(jìn)行對(duì)每個(gè)網(wǎng)格中的局部單應(yīng)性矩陣計(jì)算,再按照局部單應(yīng)性矩陣進(jìn)行融合。它的算法步驟如下:
(1)在兩幅待對(duì)齊圖像中,提取SIFT 特征點(diǎn);
(2)在得到的特征點(diǎn)中,使用RANSAC 算法剔除錯(cuò)誤特征點(diǎn);
(3)使用Moving DLT 估計(jì)全局單應(yīng)性矩陣;
(4)采用一定的規(guī)律對(duì)帶對(duì)齊圖像進(jìn)行網(wǎng)格劃分,對(duì)網(wǎng)格中的特征點(diǎn)以及網(wǎng)格權(quán)重進(jìn)行計(jì)算;
(5)根據(jù)步驟(4)得到的權(quán)重和全局單應(yīng)性矩陣計(jì)算每一網(wǎng)格的單應(yīng)矩陣。得到每一網(wǎng)格的局部單應(yīng)矩陣。
(6)使用局部單應(yīng)矩陣進(jìn)行圖像拼接。
APAP 算法能夠解決待拼接圖像不是完全旋轉(zhuǎn)的情形,并且通過(guò)局部權(quán)重約束調(diào)整能夠同時(shí)較好地對(duì)齊多幅圖像。但是APAP 算法中,選擇劃分網(wǎng)格的數(shù)量以及解決透視失真的問(wèn)題。在它的實(shí)驗(yàn)結(jié)果中,偽影得到明顯解決,但直線扭曲,物體透視失真等問(wèn)題依然顯著。SPHP 算法則在解決透視失真的問(wèn)題上有良好的效果。
SPHP 算法提出了一種新穎的解決透視失真的方案。其通過(guò)將重疊區(qū)域的單應(yīng)變換過(guò)渡到非重疊區(qū)域的相似變換,能夠有效地解決透視失真的問(wèn)題,對(duì)于大視差圖像拼接,其可以通過(guò)結(jié)合APAP 算法能夠獲得比較自然的圖像效果。其具體步驟如下:
(1)半投影變換
SPHP 算法首先通過(guò)線u=u1將R2分成兩個(gè)空間:RH={(u,υ)|u≤u1} ,RL={(μ,υ)|u>u1} 。其中,(u,υ)是待拼接圖像原像素坐標(biāo)(x,y) 通過(guò)單應(yīng)矩陣變換而來(lái)的新坐標(biāo)。u1用于將圖像劃分為兩個(gè)區(qū)域,RH理解為重疊區(qū)域,RL為其他區(qū)域。
對(duì)于(u,υ)∈RH,直接用H 進(jìn)行單應(yīng)變換。對(duì)于(u,υ)∈RL,由于單應(yīng)變換H 造成了比RH更大的面積失真,因此將單應(yīng)變換替換為相似變換,以此來(lái)減少圖像在形狀和尺寸上的失真。同時(shí)為了保證變換的連續(xù)性以避免明顯的拼接裂縫,必須要求對(duì)于分界線上所有的(u,υ)都滿足S(u,υ)=H(u,υ)。
(2)C1外推
為了構(gòu)建C1扭曲,SPHP 將RH拆分為兩個(gè)空間:RT={(u,υ)|u1<u<u} ,RS={(u,υ)|u2≤u} 。RT可以視作一個(gè)將單應(yīng)變換H 平滑過(guò)渡到相似變換的過(guò)渡區(qū)域。
因此整張待拼接圖像被劃分為三個(gè)區(qū)域,即:
T(μ,υ)是定義在中間區(qū)域RT中逐漸改變H(μ,υ)到S(μ,υ)行為的函數(shù)。S(μ,υ)是定義在RS的相似變換。S(μ,υ)參數(shù)化如下所示:
其中,fx(u),fy(u),gx(u),gy(u)為未知函數(shù)。通過(guò)H(u,υ)和S(u,υ)進(jìn)行進(jìn)一步的簡(jiǎn)化:
其中Fx(u),Fy(u),Gx(u),Gy(u)包含未知函數(shù),我們以Fx(u)為例,F(xiàn)x(u)可以表示為以下形式:
Hx(u),fx(u),Sx(u)分別來(lái)自H(μ,υ),T(μ,υ),S(μ,υ)步驟的求解。同理Fy(u)υ,Gx(u),Gy(u)。同時(shí),為保證Fx(u)的連續(xù),fx(u)也必須滿足以下條件,即在u1,u2處函數(shù)連續(xù),并且其倒數(shù)也要連續(xù):
Fy(u)υ,Gx(u),Gy(u)同理,由此可以過(guò)渡變換T(μ,υ)。
(3)相似變換
非重合區(qū)域RS運(yùn)用相似變換,并且結(jié)合前兩個(gè)區(qū)域的變換,完成圖像拼接。
SPHP 利用相似變換,極大地保留了圖像的原有視角,減少了圖像透視失真,同時(shí)為了獲得更好的對(duì)齊效果,文章作者給出了結(jié)合APAP 算法的優(yōu)化方案。
文章作者觀察到在一些實(shí)際生活中,一些場(chǎng)景例如重復(fù)紋理圖片或者人造建筑的同質(zhì)區(qū)域,點(diǎn)特征可能不能維持較好的匹配效果。因此,將線特征加入APAP 算法,既能保持圖像之間的強(qiáng)對(duì)應(yīng)關(guān)系,也能維持圖像的結(jié)構(gòu)屬性。
(1)線關(guān)系
(2)點(diǎn)特征與直線特征結(jié)合
通過(guò)簡(jiǎn)單的矩陣連接,式(5)中的A變?yōu)锳∈R2(N+M)×9,并且通過(guò)新的矩陣A 估計(jì)全局單應(yīng)矩陣。
圖1
(3)線的權(quán)重計(jì)算
其中,σl是一個(gè)尺度參數(shù)dl(x*,lj) 表示點(diǎn)x*與直線lj最近的距離。
其中x1,x2為直線lj的兩端點(diǎn)。
(4)平衡參數(shù)λ
該算法因引入了點(diǎn)和線兩種特征,必須考慮如何平衡這兩者來(lái)獲得更高的圖像拼接質(zhì)量。該文作者提出了平衡參數(shù)λ來(lái)保持點(diǎn)和線的最佳平衡關(guān)系——通過(guò)最優(yōu)化對(duì)應(yīng)點(diǎn)和線的二次投影誤差來(lái)實(shí)現(xiàn)。
對(duì)于點(diǎn):
其中,d(.,.)表示歐氏距離,H 是估計(jì)的單應(yīng)性矩陣,Ψ(·) 是一個(gè)索引映射。
對(duì)于線:
其中,d⊥表示線段的投影距離。文章通過(guò)來(lái)計(jì)算最終的二次投影誤差。通過(guò)E值,就可以找到合適的λ值。
通過(guò)點(diǎn)和線特征的結(jié)合,該算法對(duì)于圖像對(duì)齊和視差問(wèn)題都具有強(qiáng)魯棒性。
圖像拼接技術(shù)的核心步驟是圖像對(duì)齊和圖像融合。在不是理想條件約束下的圖像拼接(圖像僅包含旋轉(zhuǎn)或圖像處于同一平面),依靠不變特征以及多局部單應(yīng)矩陣獲得良好對(duì)齊效果的圖像拼接技術(shù)值得肯定和研究。但同時(shí)也要注意到,應(yīng)用場(chǎng)景是復(fù)雜的,圖像拼接過(guò)程中出現(xiàn)的偽影、間隙、透視失真等問(wèn)題要有效解決。例如對(duì)于特征點(diǎn)在某一區(qū)域較為稀疏,而在另外一區(qū)域則較為密集的情況,這樣的圖像拼接在對(duì)齊階段必然效果很差,因此引入多特征進(jìn)行約束。對(duì)于失真問(wèn)題,SPHP 提出了結(jié)合相似變換和單應(yīng)變換。APAP 算法作為網(wǎng)格形變的代表作,后續(xù)研究者基于其做了許多拓展,這些拓展從網(wǎng)格約束出發(fā),都獲得了不錯(cuò)的效果。在未來(lái)研究中,我們還可以在大視差、視頻拼接、圖像混疊問(wèn)題著手。