Computer Vision:Algorithms and Applications (Image stitching)

第9章   圖像拼接

9 圖像拼接

圖像和拼接成無縫圖像的馬賽克算法是計算機視覺領域最古老和應用最廣泛的算法。拼接算法創建高分辨率的馬賽克照片來生產今天的數字照片和衛星圖片。他們通常綁定在數碼相機上用於創建全視角的全景美圖。

圖像拼接起源於攝影社區,大部分手動的密集方法基於經過調查的地面控制點,或者自動登記的關鍵點,用來將航空照片轉變成大規模的馬賽克照片。這個領域的一個關鍵進步是綁定調整算法,能夠同時解決所有照相機的地點位置。從而產生全球一致的解決方案。在創建馬賽克照片過程中另一個經常出現的問題是如何消除可視的場景,今年來已經發展了很多的技術。

     在膠片攝影中,研製了特別的相機來拍攝超廣角全景圖,通常通過當相機在圍繞自身軸線旋轉時候露出的細縫來捕獲場景。在20世紀90年代中期,圖像對其技術開始應用於通過常見的手持相機拍攝全視角的無縫的全景圖。最近這方面的工作已經提出了需要計算全球一致的平面圖,用來移除由於視差和運動引起的模糊,並且處理不同的瑕疵。這些技術已經催生了大批的商業拼接產品,在Web上可以找到。

雖然最早期的技術工作是通過直接減少像素與像素之間的差異,最近的大部分算法是根據提取的一個稀疏特徵集並且相互匹配,正如第四章所述。這些基於特徵的圖像拼接方法對場景運動有更加強健的優勢,如果方式正確,速度也會更快。然而,最大的優勢在於確認場景的能力,例如,自動發現無序的圖像集的鄰接關係,可以實現普通用戶的全自動拼接。

     那麼,什麼是圖像拼接中的主要問題呢?對於圖像對其,我們可以首先確定適當的數學模型,將一個圖像的像素座標與另一個圖像的像素座標聯繫起來。9.1節複習了我們已經研究過的基本模型並且提出了一些新的模型。接下來,我們必須以某種方式估計正確的路線來連接起圖像不同的部分。第四章討論了圖片中哪些鮮明的特徵可以被用來準確的將圖像中不同的部分準確的配對。第8章討論了怎樣根據梯度下降來直接比較組合像素(還有其他的最優化技術)也能用來估計這些參數。當多圖像存在於一個場景中時,捆綁調整可以用來計算一個全局一致的路線來發現圖像之間的相互重疊。在9.2節,我們看看如何修改以前的技術,來創建全景圖片的更好的技術。

    一旦我們對其了圖像,我們必須選擇最終組合圖像表面的方式來組合已經對其的圖像。也需要算法來剪切或者混合重疊部分,即使存在視差,鏡頭變形,場景運動,或者其他異常情況。

9.1 運動模型

在對齊圖像之前,需要建立數學關係來聯繫兩幅圖像中的座標。常見的參數模型都可行,二維變換,平面角度變換,3D相機旋轉,鏡頭扭轉,映射到非平面(如圓柱形)的表面

     2.16.1中已經講了一些模型,特別是在2.1.5中,參數模型描述從不同的視角來看二維表面的變形,也就是8參數模型。我們看到一個相機應對只有旋轉變化的應對策略。

     在這部分內容中,我們複習了這些模型,將他們應用到不同的拼接場景中。同時,介紹了球形和圓柱形合成表面顯示如何在有利的情況下,可以用來對其。決定哪些對其模型最適合於給定的場景或者數據集屬於模型選擇問題,本書沒有討論。

                       

                              

9.1.1  線性全景運動

     調整圖像時使用的最簡單可行的運動模型,是簡單的轉化和2D範圍內旋轉。這正是同一種運動,你可以使用的,如果你有重疊的攝影照片。這是DH的一種技術青睞,稱其爲結合者。創建這些拼接,展現了可視化的縫合和不一致,添加進了藝術的影響,在Web上稱爲Flickr,全部在於全景攝像。轉換和旋轉同樣是運動模型,彌補在應用程序中的小相機的議案,正如圖片和視頻的穩定和組合。

     6.1.3節,我們看到了兩個照相機對於同一場景的映射可以用3*3單位矩陣來表示。考慮到矩陣M10時映射,從一個圖像上的三維點像素映射到第二個圖像上。

    當P0矩陣的最後一排取平面方程N0_p+c0,一些點假定在這個平面上。例如:他們的差距是d0=0,我們可以忽略M10的最後一列和最有一行,因爲我們不需要關心z緩衝區的深度。由此產生的但應舉證~H10(3*3子矩陣M10的左上角)描述在兩幅圖像之間的像素的映射。

     在觀察的基礎上形成的一些最早的圖像拼接的算法。由於可靠的特徵匹配技術尚未開發,這些算法使用直接的像素值匹配,例如直接的參數運動估計。進來拼接算法提取特徵,與其匹配,經常使用穩健的RANSAC技術來計算一套inliners.最後計算單應性,例如,最小二乘問題的解決方案並給予相應的功能。應用公式反覆迭代。

9.1.2 應用:Whiteboard和文件掃描

    最簡單的圖像拼接應用時在一個平板掃描儀上將一系列的圖片拼接在一起。比如你有一個大的地圖,或者一個小孩的藝術作品,對你的平板掃描儀來說太大。掃描多個文件,確保有足夠多的特徵來確保足夠數量的圖片。接下來,採取連續的圖像對,根據覆蓋部分,提取特徵,匹配他們,進行2D剛體變換。最好的匹配特徵是使用兩個點的RANSAC,有時有必要找到一個最好內聯集合。最後在合成表面合成圖像(例如,第一次的掃面對其),並且平均他們。你可以看到任何潛在的問題嗎?

一個複雜的問題是2D變換是非線性的,所以你將不得不使用非線性最小二乘法或者將變換限制爲正交變換,如6.1.3所述。

     一個更大的問題存在於成對的校準過程中。對其對越來越多,解決方案可能改變以致不適應全局。在這種情況下,就需要全局優化程序。這種全局優化往往需要解決一個非線性方程組,儘管有時是線性的或者簡單的變換,常規最小二乘是一種選擇。

     一個稍微複雜一點的情況是當你用白板或者其他大型平面對象來採取手持重疊的照片。常規模型是一種映射,但更復雜的模型,例如3D運動模型在理論上也可行。

9.1.3 全景旋轉

    最典型的全景圖像拼接是當相機處於旋轉中。試想你站在大峽谷的邊緣。相對於幾何中心偏遠處,你跑動過程中(例如,跑向平面的無窮遠處),相機處於旋轉之中,這等價於所有的像素點離相機很遠(圖9.3).設置,我們得到簡單的變換矩陣

其中,是簡單的相機固有矩陣(2.59),假設,例如,像素從相機的光學中心開始記座標,上面公式可以改寫爲

這表明了映射方程的簡單性,使得所有運動參數準確。代替8參數的單應性模型,我們使用3,4,5參數的3D旋轉運動模型,適用於焦距f已知,固定或者變化的情形。估算3D旋轉模型使得每一圖片本質上更加穩定,比估算一個8自由度的映射矩陣並選擇大模型的圖片拼接算法。

考慮到這個問題,如何更新旋轉矩陣來最好的對其兩個重疊的圖片?考慮到9.5節給出的估算映射矩陣的估算方法,最好的方法是用不斷增長的旋轉矩陣來估算並更新

    在用不斷變換的矩陣來更新矩陣之前,我們已經寫了更新規則.使用2.35節給出的小角近似矩陣,我們可以重寫更新矩陣

    注意到矩陣中的實體與表6.1和方程6.19中使用的參數參數的一對一聯繫,例如

    我們可以將這些規則應用到方程6.24和9.10中,得到

這給予了我們估算的線性方程。注意到這些更新規則依賴於目標視野的焦距,而獨立於當前視野的焦距。這是因爲組合算法使得目標存在小擾動。一旦旋轉向量被計算出來,旋轉矩陣可以用更新。

更新估算焦距的公式有些複雜,由Shum和Szeliski2000給出。在這裏將不重複,因爲在9.2.1節將要給出一個基於最小化3D射線區別的可供選擇的更新規則將要給出。圖9.4給出在3D旋轉運動模型下4張圖片的邊緣。

9.1.4 縫隙填補

這部分講的技術可以預估旋轉矩陣和焦距。這些矩陣和焦距可以連接起來創建大的場景。然而,由於一系列錯誤,這方法只能生成閉合的360度的全景圖。相反,總會存在漏洞或者重疊部分。

    通過匹配第一幅圖到最後一幅圖來解決這個問題。兩個不同的旋轉可以預估錯誤。通過兩個矩陣的四元數除商來區分這些不同之處。也可以通過錯誤配準來預估焦距。首先,將錯誤的四元數變換成一個角,用一下方程來更新焦距.

9.5a圖顯示了第一幅圖和其他圖片的末端。第一幅圖和最後一幅圖之間存在一個巨大的洞,由於使用了510的焦距,所以這個縫隙是32度。9.5b圖顯示了用468更新的焦距填補縫隙後的圖片。這些Mosaics圖幾乎沒有視覺錯誤,然後,9.5a圖計算了含有9%的錯誤的焦距。相關工作已經進行,通過使用平移模型和圓柱形模型來解決焦距預估問題。

     不幸的是,這個啓發式方法只能工作於一維相機場景,而大部分情況下相機存在運動。9.2節介紹了用以在任意相機運動下移除縫隙和重疊部分的方法。

     

9.1.5 應用:視頻聚合和壓縮

圖像拼接技術可以用於聚合和壓縮由可移鏡頭的相機拍攝的視頻。應用是由Teodosio和Bender1993提出來的,稱之爲salient stillsIrani, Hsu, and Anandan 1995,Kumar,Anandan,Irani1995,發展了Teodosio和Bender的想法,IraniAnandan(1998)將其用於其他應用,例如視頻壓縮和視頻索引。早期使用仿射運動模型而受到長焦距的限制,這些技術是由Lee, ge Chen, lung Bruce Lin1997總結的。他們引入了8參數模型並加入了MPEG-4視頻壓縮標準,圖像拼接背景圖層被稱爲video sprites

在某種方式上說,視頻拼接是直接的多圖像拼接技術的總結Steedly,Pal,Szeliski 2005;Baudisch,Tan,Steedly 2006,潛在的大量獨立出現的運動,相機空間,動態物體的理想化處理,這些都是新的挑戰。例如,使用median filtering移動前景物體。可供選擇的是,前景物體可以提取成獨立的圖層SawhneyAyer 1996,在後期複合成全景圖,有時作爲多場景背景(Massey Bender1996),有時作爲視頻覆蓋層IraniAnandan1998視頻同樣可以用來創建動畫panoramic video textures13.5.2節將給出),全景圖像的不同部分將成爲動畫的幀(Agarwala,Zheng,Pal2005;Rav-Acha,Pritch,Lischinski2005,或者閃耀“video flashlights”到一個組合的mosaic場景(Sawhney,Arpa,Kumar2002)。

視頻同樣可以提供一個由移動相機拍攝的照片流來創建全景圖。這些應用假設視野從一個點出發(光學中心),將會得到令人驚喜的結果。例如,VideoBrush系統(Sawhney,Kumar,Gendel1998)使用從圖片中心剝離技術來創建有水平相機拍攝的全景圖。這想法可以用於其他相機運動模型和組建自適應多種mosaics概念圖片表面(Peleg,Rousso,Rav-Acha2000,同樣可以創建立體全景(Peleg,Ben-EzraPritch2001)。相關觀點已經用於創建全景多面動畫(Wood,Finkelstein,Hughes1997,和使用multiple-center-of-projection imagesRademacherBishop1998)和multi-perspective panoramasRoman,Grag,Levoy2004;RomanLensch 2006;Agarwala,Agrawala,Cohen2006)表示3維複雜場景全景圖。

另一個基於視頻的全景的變體是concentric mosaics13.3.3節)(ShumHe1999)。替代創建單個全景圖,完整的源視頻保留下來並用於重新組合圖片(來源於不同的相機)使用射線再次映射(光場景重構),所以是帶着3維深度來構建全景圖。同樣的數據同樣可以用於準確重建多基線圖片深度(Peleg,Ben-Ezra,Pritch2001;Li,Shum,Tang2004;Zheng,Kang,Cohen2007)。

         

        

9.1.6 柱座標和球座標

    使用3D運動或者映射矩陣來對圖片首先使圖片變形成球座標,然後使用平移模型來對他們。然而,這僅僅工作在這些圖片是由水平相機拍攝的或者有一個已知的傾斜角。

假設攝像機在標準位置,例如,其旋轉矩陣式單位矩陣,所以其光軸可以對應軸,軸對應垂直方向。對應3維點座標

     我們期望將圖像投射到單位半徑的柱面上(Szeliski 1996)。柱座標由一個角度參數和一個高度參數決定,下面是座標計算公式

正如圖所示。從這聯繫中,可以得到映射座標公式(Szeliski和Shum 1997),

    是一個任意的規模因子(有時稱爲圓柱半徑),可以設置來最小化圖片中心規模。映射的逆座標公式爲

圖片同樣可以映射到一個球面上(SzeliskiShum1997),這適用於最後的全景包括一個球面或者半球面,而不僅僅是一個柱面。在這種情況下,球面座標由兩個角度參數決定,3D球面座標公式如下

如圖所示,映射座標公式(SzeliskiShum1997):

逆座標公式

    注意根據全景透視參數和規模參數用公式9.17來計算座標會更加簡單。

柱面座標圖像拼接算法通常使用在相機處於水平面或者圍繞其光軸旋轉的場合(Chen 1995)。在這種情況下,不同旋轉的圖像關聯於一個單純的水平旋轉。這使得他成爲計算機視覺課程中最初的教學內容,以致完整的全景拼接算法(6.1,8.2,9.1.3節)被拒之門外。圖9.8展現了一個由於水平旋轉的全景圖怎樣拼接成柱面座標下的場景(Szeliski和Shum 1997)。

專業的全景圖片製作者通常使用傾斜頭部使得他更容易控制傾斜角,以致在傾斜角度不合適的情況下得到改正。機動旋轉頭部有時用來獲得較大的場景(Kopf,Uyttendaele,Deussen 2007)。不僅確保一個水平視野場景的重疊數量,同時使得他可以利用柱座標和球座標或者旋轉變換來拼接圖片。在這種情況下,像素座標首先使用已知傾斜角來旋轉,然後在投射到柱面或者球面上時平移角度(Chen 1995)。有一個已知的平移角度使得計算對其更加容易,因爲輸入圖片的相關位置都已經提前知道,使得對其圖片成爲可能。圖9.9展示了一個全3D場景圖投射到球面的情形(SzeliskiShum 1997)。

 

最後一個值得一提的座標是極座標,極軸沿着光軸而不是垂直軸,

     

這種情況下,映射方程變爲

 

 ,r是徑向距離(x,y)在平面扮演了相似角度。這映射爲廣視角的全景提供了一個有吸引力的視覺表面,同時是一個非常好的通過fisheye lense 2.1.6提到的分解模型。注意到的極小化,映射方程變爲,相當於焦距的角色。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

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