雙目攝像技術分析--突破光學與尺寸的極限
背景知識
運動模糊
釣寒江雪整理
Figure 1 水平方向運動模糊50像素(圖像已經縮?。?/p>
Figure 2 水平方向運動模糊10像素(圖像已經縮?。?/p>
Figure 3 軟件模擬水平方向運動模糊5像素(圖像已經縮?。?/p>
Figure 4 軟件模擬無運動模糊(圖像已經縮小)
Figure 5 軟件模擬運動模糊對比(圖像無縮放,左上:無運動模糊,右上:運動模糊5像素,左下:運動模糊10像素,右下運動模糊50像素)釣寒江雪整理
Figure 6 軟件模擬運動模糊對比(圖像無縮放,左上:無運動模糊,右上:運動模糊5像素,左下:運動模糊10像素,右下運動模糊50像素)釣寒江雪整理
Figure 7 軟件模擬運動模糊對比(左上:無運動模糊,右上:運動模糊5像素,左下:運動模糊10像素,右下運動模糊50像素)釣寒江雪整理
Figure 8 運動模糊(左30毫秒,右50毫秒)
Figure 9 運動模糊(左10毫秒,右30毫秒)
配準是尋找從一個數據集到另一個數據集的轉換關系的問題。大部分這類直接形式中,這兩組數據集的維度相同(例如,我們配準3D數據到3D數據或者2D數據到2D數據),轉換方式有旋轉,平移,也可能有縮放。好的方法對此類問題非常有用。很多案例中人們希望知道一個在與自己具有相同維度的數據集中的目標的位姿—世界坐標中的位置和方向。例如,我們有一個病人體內的MRI(核磁共振)圖像(3D數據集),我們希望疊加在真實病人的畫面上以指導外科手術。這種情況下,我們希望知道旋轉,平移,縮放模型,用以將一個圖像疊加在另外一個圖像上(釣寒江雪翻譯)。還有個例子,我們可能有一個2D圖像模板,我們想在一副航拍圖像中找到該模板,我們同樣需要知道旋轉平移和縮放關系,以將一副圖像疊加在另外一個副上。我們可能也使用匹配質量打分的方式來表示我們是否建立了正確的匹配關系。我們使用搜索和發(fā)現(xiàn)位姿恒常性特性來解決此類問題。位姿恒常性是指剛性物體中不同特征集反應該物體相同的位姿。結果,剛性物體配準問題變得簡單很多,因為我們只需找到一小部分特征來估計物體的位姿(釣寒江雪翻譯),且我們能用其他部分來確認該位姿。
該問題一個重要的變種是在投影關系下實施配準。這種情況下我們看到一個3D物體的圖像,且需要將該物體配準到圖像。通常,這個問題能夠用同維度數據集配準的搜索算法來解。這里我們需要借助一種有時被稱為攝像機恒常性的特性的幫助,攝像機恒常性意思是圖像中的所有特征在都是同一個攝像機拍攝的(釣寒江雪翻譯)。攝像機恒常興意味著,剛性物體到圖像的匹配搜索問題被大大簡化,因為我們只需要一小撮特征來估計物體的位姿和攝像機的標定,且我們可以用其他剩余的特征來確認位姿。
最復雜的配準問題是要處理能發(fā)生形變的物體。這種情況下,配準兩個數據集的轉換模型是個大家族(譯者注:不只旋轉,平移,縮放,投影)。搜索特定轉換相對而言更加復雜。配準可形變土體是醫(yī)療圖像分析的一個核心技術,因為人體組織可形變且通常在不同的成像模式下對相同的身體部分進行成像。
剛性物體配準
假設我們有兩個點集,源集與目標集。目標集是源集的旋轉,平移及縮放版本,且其中可能有噪點。我們希望計算該旋轉,平移及縮放量。
這個問題可以直接表達為公式,如果我們知道到的映射,記為目標點集合中某點索引到源集中第i個點(釣寒江雪翻譯)。這種情況下,我們可以計算一個最小二乘方程,最小化
其中s是縮放因子,是旋轉,是平移。如果目標沒有縮放,我們設s=1。
我們能可以用數值優(yōu)化的方法解該優(yōu)化問題,雖然該問題有解析解。Horn(1987b)認為平移兩可以從中心點恢復,旋轉和縮放可以從點集的各類矩中得到。事實上,這篇文章認為如果目標是源的旋轉平移和縮放版本,點到點的映射關系無關緊要。這個案例違背了配準問題,但是實際中并不常見。
更普遍地,S是一個從幾何結構中采樣到的點集,T是一個從相同結構的旋轉平移縮放版本中采樣的的點集。例如,S可能是物體的集合模型,T是通過立體重構或者激光測距的方式獲得。另一個例子,S和T可能是從不同的3D圖像解剖結構數據集中通過特征檢測齊獲得。不同例子中,我們相信S是T的旋轉平移及縮放版。但是T中的點未必對應S中的點。更糟糕,采樣過程意味著我們無法準確估計矩。所以Horn的算法不行。還有糟糕的事情,數據集可能包含較大的誤差和錯誤外點。
記
該數據集通過源集的旋轉平移與縮放得到。在解決該問題的方法中,中大部分點需要靠近T中的一個點。且提供一個映射關系。我們通過估計映射關系來搜索正確的轉換關系,然后通過估計得轉換關系來估計映射關系,然后重復。我們也可以選擇一小部分數據來搜索,然后用以估計轉換關系。
迭代最近點
此刻,假設我們沒有外點。我們期望對于任意,存在最近點。如果我們使用一個合理的轉換估計,距離不能太大。注意點的索引依賴于j, 但也依賴于特定的轉換參數,記最近點索引為,假設我們估計的轉換歡喜為。然后我們迭代地精細化估計結果:(a)轉換S中的點;(b)逐一找到T中對應的最近點;以及(C)最小二乘法重新估計轉換參數。這催生了一個迭代算法,根據文獻 Besl and McKay (1992),稱為迭代最近點算法iterated closestpoints。該算法可以明確地收斂到正確答案(釣寒江雪翻譯)。
實際應用中,它確實可以。兩個點集可以助其改善其性能。首先,重估計過程不需要收斂以使算法有用。例如,我們不需要完整地估計轉換關系,我們做一次梯度下降。這稍微改善了轉換關系,且修改了最近點映射關系。其次,我們不需要再最小化過程中使用全部的點。特殊地,如果最近點相對較遠,最好在下一步的最小2乘法中拋棄這些點。這會使算法更魯棒。
你可能會認為與其說這是個算法不如說是個算法模板;大量特征可以被成功地修改。例如,它可以用來在數據結構中小心地加速保持對最近點的跟蹤。另一個例子,一個可選的用于改善魯棒性的策略,是使用M估計器取代最小二乘誤差項。事實上,該算法不需要S和T的點集。例如,它相對直接地用于S是網格點,T是點集的案例(Besl and McKay 1992)。另外,有良好的證據表明我們優(yōu)化的關于(s, θ, t)的目標函數在實際應用中性能良好。例如,雖然它不是可微的(因為最近點改變,導致微分步長變化),2階方法如牛頓方法或者LBFGS在實際引用中事實上表現(xiàn)更好。
通過映射關系搜索轉換關系
迭代最近點重復估計源集于目標集的映射關系,然后用以估計轉換關系。就我們所見,該搜索方法面臨很多局部極小值。另一個方法是搜索映射空間。這看起來似乎沒有前途,因為有大量的映射關系,但是在剛性物體的案例中,較小的映射集足以配準整個物體。另一個直接考慮映射的優(yōu)勢是我們可以直接使用標記進行作用而不是點。例如,我們映射中放置線段,角,甚至如斑點(blobs)點狀特征。這類標記可能改變細節(jié),但對整個算法影響微小。
很小的源標記集與目標標記集進行映射,足以估計轉換關系。集合的尺寸依賴于轉換關系及標記本身。我們參考可用于計算轉換關系的稱謂幀支持群frame-bearing group一群標記。表12.1給出了2D-2D幀支持群的例子,且表12.02給出了3D到3D案例的例子。這也將在未來的運用中進一步拓展。
現(xiàn)在我們假設我們在源和目標中有幀支持群。進一步,如果我們有標記集的映射關系,我們可以計算源之于目標的相應的轉換關系(釣寒江雪翻譯)。只能有一個可能的映射關系。例如,如果群是先或者點,我們只能把源線(點)放置在與目標線(點)映射的位置。但是可能有多種可能的映射;例如群由3個點組成,但是有6種可能性。
如果一個群或者映射錯誤,大部分的源標記將轉換到遠離目標的位置。但是如果正確,很多或者大部轉換過的源標記將落在目標標記附近。這意味著我們可以用RANSAC(10.4.2),重復地使用如下步驟,分析結果:
- 為目標和源隨機選擇幀支持群,
- 計算源與目標單元的映射關系(如果有多個,我們隨機選擇),然后計算轉換關系。
- 使用該轉換關系轉換源集沒,并與目標進行比較打分只。
如果我們實施足夠多次,我們極大可能可以在好的群之間獲得好的映射結果,且我們也可以檢查每個分數用以分辨優(yōu)劣。從好的映射關系,我們可以分辨源與目標的匹配對,最終根據最小2乘法計算轉換關系。
應用:建立圖像拼接
一個拍攝大而壯觀的目標的細節(jié)的方法是拍攝很多張小的圖像,并將其拼接到一起。過去的做法常常是將照片沖印,然后堆疊貼在軟木板上,用以吻合。這引入了圖像拼接,一系列重疊的圖像。圖像拼接現(xiàn)在能用數字圖像配準的方法實施。
表1 3D-3D幀支持群.假設我們在源和目標中都有一個群,且有一個映射關系;從而,我們可以唯一地估計轉換關系。
Figure 10 左圖,機場上空航拍視頻幀。這些幀被矯正并拼接在右圖,其中顯示(a)全局可見結構(b)飛機飛行路徑。這個圖最作為Figure1發(fā)表在“Video Indexing Based on Mosaic Representations,”by M. Irani and P. Anandan, Proc. IEEE, v86 n5, 1998, _c IEEE, 1998.
一個應用是創(chuàng)建大型圖像。也有幾個其他重要的應用。例如,假設我們用在飛機垂直安裝的一個的攝像機拍攝了一些圖像(釣寒江雪翻譯);然后如果我們一幀一幀配準這些圖像,我們不但可以得到飛機可見的圖像,還可以呈現(xiàn)飛機的路徑,如圖Figure 12.1所示。另一個例子, 假如我們我們有一個獲取視頻的固定的攝像機。逐幀配準后,我們可以估計(a)運動物體,(b)背景,且用新的方式向觀眾呈現(xiàn)(figure 12.2)。還有個例子,我們能夠構建圓柱面全景圖像,模仿圓柱面攝像機拍攝的圖像。甚至球面全景圖像,模擬球面球面攝像機拍攝的圖像。全景圖像的一個特性看起來像一個視角的圖像,容易查詢提取信息。特別地,容易使用全景圖像模仿攝像機旋轉聚焦點時之所見。
創(chuàng)建拼接式圖像配準的一個重要應用。在最簡單的例子中我們希望配準兩張圖像我們先找到標記,然后確定哪些點是匹配額,然后選擇轉換關系,并最小化2次匹配誤差。Brown and Lowe(2003)給出了尋找標記的策略。他們找到感興趣點,然后計算領域的SIFT特征,然后使用近似最臨近點方法尋找匹配對,一小組匹配點足以擬合映射關系。
figure 11 左圖,空中飛機拍攝的視頻幀(釣寒江雪翻譯)。這些幀被矯正并拼接到右圖,其中顯示(a)視頻中飛機飛行軌跡和(b)觀察者的飛行軌跡。注意拼接顯示了飛機移動速度(可看到每一個飛機拼接實體間距多遠;如果間距遠,說明移動快)。
這類有兩種有用的轉換關系。最簡單的例子中,攝像機是一個垂直平移的攝像機,且它被平移。這意味著圖像標記平移(釣寒江雪翻譯),因為我們只需要估計圖像之間的平移量,另一個復雜的例子,攝像機是一個繞其焦點旋轉的透視的攝像機。如果我們對該攝像機一無所知,這個I1和I2的關聯(lián)部分是一個面投影轉換關系,又稱單應變換。了解更多關于攝像機及環(huán)境信息,能夠得到更緊的約束條件的轉換(釣寒江雪翻譯)。
在單應坐標中,轉換關系將點I1中的X1=映射到I2中的。轉換關系的形式是3x3行列式非零的矩陣。記為H。我們用平面上4個對應點估計元素值。記為第I1中第i個點,對應,現(xiàn)在我們有式
Figure 12
如果我們叉乘并相減,我們根據每一組映射點對的未知矩陣入口得到單應線性方程,例如:
這個系統(tǒng)給出了H大小的(up to scale,原文)求解方法(我們工作在單應坐標系下)。這是一個根據少量點估計H好的方法, 但當我們有一大堆映射點對時,可能得不到最準確的解。這種情況下,我們應該最小化H的函數
其中g是判別函數,如果我們有外點的話,這不是個好主意,或者一個M估計器。這個函數值關于H的大小是不變的(意思是H矩陣的元素統(tǒng)一放大或者縮小都不影響函數值),所以我們需要一個歸一化的形式(釣寒江雪翻譯)。我們可以設置一個量為1來歸一化(不是個好主意,因為這帶來了偏置量),或者要求Frobenius 范數等于1。好的估計單應矩陣的軟件已經可以在Web上獲得。Manolis Lourakis在http://www.ics.forth.gr/~lourakis/homest/發(fā)表了一個 C/C++ 庫; there is a set of MATLAB functions for multiple view geometry at一個MATLAB多視幾何函數集,http://www.robots.ox.ac.uk/~vgg/hzbook/code/,作者是 David Capel, Andrew Fitzgibbon, Peter Kovesi, Tomas Werner, Yoni Wexler, and Andrew Zisserman.
最后,OpenCV也有單應估計方法。
如果有超過2張圖像,配準圖像到拼接圖像更有意思。想想我們有三個圖像,我們能夠配準圖像1到圖像2,然后圖像2到圖像3。但是如果圖像3具有一些圖像1所具有的特征,這可能是不明智的做法。記為圖像2到圖像1的轉換關系(依次類推)。問題是可能不是圖像2到圖像1的轉換關系的好的估計。在三張圖像的情況下,誤差可能不是那么大,但是能累加?!?/p>
為了解決誤差累加的問題,我們需要使用全部的誤差值一次估計所有的配準數據。這個動作叫做綁定調整(bundle adjustment),依靠分析運動中結構的相關項實施(章節(jié)8.3.3)。一個自然方法是選擇一個坐標幀,圖像幀再其內工作-例如,第一幀圖像,然后搜索一系列其他圖像與第一幅圖像的匹配關系,并最小化點對誤差平方和。例如,記為第j元組,它由圖像i中及圖像k中組成。我們可以通過最小化下式估計和,
(其中,如果沒有外點,g是一致的,否則是M估計器),然后用轉換關系配準。注意,隨著圖像數量增加,這個方法可能帶來大的和差的優(yōu)化問題(釣寒江雪翻譯),很可能出現(xiàn)局部最小值,所以需要從一個好的轉換估計值開始。配準獨立圖像對能夠提供這樣的起始點。一旦圖像已經配準到另外一副圖像,我們能得到一單張全景圖像,然后小心地混疊像素以處理由鏡頭系統(tǒng)導致的空間亮度變化(圖12.5)?!?/p>
基于模型的視覺:使用投影配準剛性物體
MODEL-BASED VISION: REGISTERING RIGID OBJECTS WITH PROJECTION我們現(xiàn)在已經可以用圖像配準剛性物體。這個問題的解決方法在實際應用中很有用, 因為它們允許我們根據攝像機估計圖像中已知物體的位置,方向,縮放,盡管物體身上的圖像特征有很多不確定性。這類算法能夠和世界產生作用,在系統(tǒng)中特別有用。例如,如果我們希望移動一個物體到特定位置,或者抓住它,根據攝像機知道它的數據真的特別有用。我們使用相同的方法來解決3D物體到3D物體的配準,方法重復:找到一個群;恢復轉換關系;對全部源實施轉換;然后對源于目標的相似度打分。最后我們輸出得分最好的轉換結果。更進一步,如果最好的轉換關系得分較好,那么物體就在那兒(那兒就是估計出的位姿);如果不好,他就不是(不在那兒)?!?/p>
源由多個基于某些幾何結構的標記組成,而是基于幾何結構的旋轉平移及縮放版的標記組成。我們想得到實際的旋轉,平移及縮放。通常該問題涉及很多中的外點,因為我們不知道特征是否真的來自該物體。幾乎所有的標記都是點或者線段;對于,這些由物體的幾何模型決定,而對于,則來自邊緣點或者邊緣點的擬合線(我們能使用Chapter 10的這些機制獲得這些線)(釣寒江雪翻譯)。這個案例有兩個不同的特性。我們不能估計全部的轉換參數(通常也無關緊要),且它也很難得到令人滿意的源與目標的相似度評分?!?/p>
有很多方法可以估計轉換參數。細節(jié)依賴于我們是否標定攝像機,以及我們使用了何種攝像機模型。在最簡單的案例中,我們使用了垂直的攝像機,標定基于未知的尺度,沿著Z軸俯視攝像機坐標系。我們無法估計3D目標的深度,因為改變深度不改變圖像。我們不能獨立于攝像機的縮放尺度判定物體的尺度,因為同時改變這兩個參數能得到相同的圖像。例如,我們放大物體一杯,同時縮小攝像機的像元,我們得到的圖像點具有相同的坐標值。因此,我們不能影響上述搜索過程背后的因果關系。例如,我們建立源與目標的正確的映射關系,然后,源標記將停止在靠近或者在目標標記的上方。這意味著使用了上述RASANC風格的方法。相似地,如果我們提供了準確的轉換參數(我們能設置攝像機縮放參數為1),我們就可以估計深度。
在單個垂直攝像機的案例中,基于未知縮放值得標定,三個映射點對已經足夠估計旋轉量。兩個可觀測的平移及縮放(參考聯(lián)系,給出了另一個幀群組)。在大部分應用中,深度在物體間的變換相對于物體的深度要小的多。這意味著,一個透視攝像機能夠能被弱透視變換近似模型來近似。這等同于單個垂直攝像機,標定到一個未知的尺度。如果攝像機的尺度已知,也就可以恢復出無圖的深度?!?/p>
Figure 13 一個平面物體被配準到圖像。左圖中,一個物體的圖像;中圖中,一個圖像中包含物體的兩個實例,及其他材料(聚類中常見的例子)。特征點被檢測了,且兩個群組-在這個案例中,三點集-被搜索;每個映射給出了一個從模型到圖像的變換。滿意的映射對齊了很多模型邊緣點與圖像邊緣點,在左圖中,這是為什么這個方法有時候被稱為“對齊”。這個圖像來自該主題的早期的論文,但是受到當時落后的再生技術的影響。這個圖像最早作為Figure 7發(fā)表在“Object recognition using alignment,” D.P. Huttenlocher and S. Ullman, Proc. IEEE ICCV, 1986. c IEEE, 1986.
驗證: 比較轉換與玄然后的源圖與目標圖
實際應用中,用來搜索轉換關系的RANSAC-風格的搜索算法主要的難點在于配準3D目標與一個圖像,一個好的評分方法比較難以得到(釣寒江雪翻譯)。計算評分函數的方法是直接的,如果我們啟用渲染,一個通用目的用于根據模型生成圖像的方法的描述,包含所有的從繪線到給圖像物理地精確地著色工作。我們獲得估計得轉換模型,應用到模型,然后使用攝像機模型渲染轉換后的物體模型。我們實施渲染,并與圖像進行比較。難點在于比較方式(這決定我們需要渲染什么)。
我們需要一個能夠說明所有已知圖像跡象的評分函數。這要能包含難以確定確定型的標記(角點或者邊緣點),或者圖像紋理的跡象。如果我們知道所有的物體在其之下被觀測的光照條件。我們可能可以使用像素亮度(實際條件下,這幾乎行不通)。通常,關于光照我們所能知道全部就是亮度足夠時,我們能找到一些標記,這也是為什么我們有配準假設需要檢驗。這意味著這些比較被要求在在光照變換條件下是魯棒的。顯然,實踐中,最重要的檢驗是渲染物體的輪廓,然后比較其邊緣點。
一個自然檢驗方法是根據攝像機模型疊加物體的輪廓邊緣到圖像,然后根據這些點與真實圖像邊緣點的比較對假設模型進行評分,通常的評分是靠近的實際的邊緣點的預測的輪廓邊緣碎片的長度。這在攝像機框架下是旋轉平移不變性的,這是個好事,但是隨縮放因子變化,但未必是壞事。通常允許圖像邊緣點知在他們方向與對應的模型邊緣方向相近時貢獻評價分值。這個原則是對邊緣點描述越詳細,人們更容易知道它是否來自該物體。
在線段中包含不可見的輪廓可不是個好主意,因此,渲染需要刪除隱藏的線。由于輪廓內邊緣在差的光照條件下可能對比度低,所以使用了輪廓。這意味著輪廓的缺失表現(xiàn)的是光照的條件而非物體的存在性。
邊緣存在性檢驗可能很不可靠,甚至方向信息也不能真正解決該難題。當我們投影一個模型邊界到一個圖像時,輪廓附近的邊緣的缺失是一個模型不存在于此的可靠的信號。但是輪廓附近存在邊緣卻不是關于模型存在于此的可靠的信號(釣寒江雪翻譯)。例如,在紋理區(qū)域,有很多邊緣點組合在一起,這意味著,多紋理區(qū)域中,每個模型的每個位姿都可能會得到高的檢驗評分值。注意即使評分考慮邊緣方向也無濟于事。
我們能夠調整邊緣檢測器來重度平滑紋理強度,以期紋理區(qū)域的消失。這是個危險的規(guī)避方法,因為這常常會影響對比度靈敏度,從而也會導致物體消失。然而,這個方法在可接受的程度下有效果,被廣泛地應用。
參考文獻:
COMPUTER VISIONA MODERN APPROACHsecond editionDavid A. Forsyth
University of Illinois at Urbana-ChampaignJean PonceEcole Normale Supérieure
與非網原創(chuàng)內容,謝絕轉載!
評論