馬翰飛
(西北工業(yè)大學(xué) 計算機學(xué)院,陜西 西安 710072)
場景深度估計一直是計算機視覺領(lǐng)域中的重點問題和難點問題。目前,場景深度估計的主要方法有時差測距法、三角測距法、結(jié)構(gòu)光法、調(diào)變光法、主動視覺法、被動視覺法等。時差測距法、三角測距法、結(jié)構(gòu)光和調(diào)變光測距法為掃描式深度獲取法,其研究比較成熟,能獲得較精確的場景深度信息。主動視覺法為通過人為精確控制相機方向和位置參數(shù)的改變獲取場景圖像信息來估計出場景深度信息,其裝置比較復(fù)雜昂貴。被動視覺法為利用相機獲取場景反射周圍環(huán)境光能量的圖像信息來估計場景深度信息,包括立體視覺法、運動法、聚焦測距法等。
聚焦測距法[1]為通過單相機焦距等參數(shù)設(shè)置的改變對場景多深度聚焦以獲取場景圖像序列,以圖像中像素點的聚焦程度為線索而判別出圖像序列中的清晰聚焦點,而后,利用透鏡成像公式計算得到像素對應(yīng)的場景區(qū)域的深度信息。傳統(tǒng)的聚焦測距法要考慮相機焦距變化引起的圖像放縮問起且其標定復(fù)雜,而且獲得高精度的深度圖需要多次改變相機焦距等參數(shù)設(shè)置以采集高密度的場景圖像數(shù)據(jù)。而通過相機陣列獲取的共焦圖像序列能很好的解決以上兩個問題,也即無
基于共焦圖像的場景深度估計方法屬于聚焦測距法的一種,如圖1所示。聚焦測距法主要包括3個主要步驟:獲取不同聚焦深度的場景圖像序列,度量每個像素的聚焦值,找出每一點在圖像序列的最大聚焦值并根據(jù)相機幾何參數(shù)配置計算出相應(yīng)點的場景深度值。
聚焦測距法中的聚焦度量計算對深度的估計起決定性作用。研究人員從空域和頻域方面研究了清晰聚焦時圖像的特需考慮焦距改變引起的圖像放縮問題,并且一次性場景數(shù)據(jù)采集可以獲得任意序列密度的場景圖像集。
傳統(tǒng)聚焦度量算子在場景深度不連續(xù)處有較大計算誤差,本文采用了基于共焦圖像序列的自適應(yīng)聚焦度量算子計算像素聚焦度。自適應(yīng)聚焦度量算子以參考圖像為全焦圖像,根據(jù)顏色特征計算得到每個像素鄰域內(nèi)深度相似度權(quán)重信息,得到鄰域內(nèi)的自適應(yīng)權(quán)重信息,并與傳統(tǒng)聚焦度量算子計算得到的鄰域聚焦值卷積得到自適應(yīng)聚焦度量值。相對于傳統(tǒng)聚焦測距法,此方法提高了場景深度不連續(xù)處深度值估計的準確度,得出較優(yōu)的場景深度估計結(jié)果。
征。理想情況下,聚焦度越高的圖像包含越多的高頻信息。在空域方面,Tenenbaum算子[2]、灰度方差算子[2]、改進的Laplace算子[3]是最常用的聚焦度量算子。在頻域方面,圖像中的高頻信息的大小和高頻信息與低頻信息的比率常被用來做為聚焦度量算子?;陬l域的聚焦度量研究顯示,不同頻譜的能量大小對聚焦度量有影響。例如,基于離散小波變換的聚焦度量顯示二階能量對圖像的清晰度有較大影響。在基于離散余弦的聚焦度量研究中,圖像頻譜中間部分的能量可能對圖像清晰度有較大的影響。本文中,我們采用空域自適應(yīng)聚焦度量算子[4]對圖像聚焦度進行度量以提高場景深度不連續(xù)處的深度估計的準確性。
圖1 基于共焦圖像的場景深度計算流程圖Fig. 1 The schedule of confocal image based depth estimation
由光的直線傳播原理,我們得知理想針孔相機獲取的場景圖像為全清晰的。由于理想針孔相機通光量太小而不適于實際應(yīng)用。我們所使用的相機多為透鏡相機,而其所采集的場景圖像并非是完全清晰的。根據(jù)透鏡成像公式(1)我們得知,只有在透鏡準確聚焦的平面區(qū)域所映射的像為清晰的,而其他區(qū)域的點由于失焦而彌散為一個光斑并與其他物點的光斑混合在一起,從而呈現(xiàn)出不同程度的模糊,如圖2所示。
圖2 非聚焦平面上的物體的像模糊Fig. 2 The object out of the focus plane blurred
依據(jù)透鏡相機只對單一平面清晰成像的這個線索,我們可以用這個特性來估計場景的深度信息。通過改變相機的焦距等參數(shù),我們可以對場景的不同深度聚焦從而采集焦距漸變的圖像序列。在采集的圖像序列集中,每幅圖像上只有準確聚焦的場景區(qū)域的像是清晰的,其他區(qū)域的像點都是模糊的。利用聚焦判別算子,我們可以計算出圖像序列中每個像素的聚焦度量值來衡量像素的清晰程度。由于場景中的物點在圖像序列中的像只有一個是最清晰的,其聚焦度量值為聚焦度量值序列中的最大值,如圖3所示。通過搜索聚焦度量值序列中的最大值(2),我們可以找到清晰點。利用透鏡成像原理(1),我們可以計算出對應(yīng)場景區(qū)域的深度值。
圖3 聚焦度量值最大值為清晰點Fig. 3 The largest focus measurement of pixels is the best focused
在聚焦測距法中,為了采集不同焦深的場景圖像數(shù)據(jù),我們移動相機或者改變相機焦距來實現(xiàn)對不同場景深度的聚焦。相機位置的移動或焦距的改變將引起場景物體在圖像中影像尺寸放縮。因為對采集的圖像進行標定是一件復(fù)雜的問題,所以聚焦測距法主要應(yīng)用于顯微鏡對微小場景的深度估計或者對深度變化不大的場景的深度的估計。Levoy等人[5-6]提出了用相機陣列模擬一個大孔徑相機,對場景不同深度的聚焦。相機陣列獲取場景的多視角圖像集,并根據(jù)透鏡相機成像原理合成相應(yīng)的虛擬相機圖像,即共焦圖像。生成對場景不同深度聚焦的共焦圖像只需要采集一次原始數(shù)據(jù),而不需改變相機陣列中每個相機單元的參數(shù)設(shè)置。合成的共焦圖像不存在放縮問題,因此使用共焦圖像測量場景深度無需對共焦圖像序列進行標定校正。
根據(jù)透鏡相機成像的光路原理,我們利用相機陣列采集的圖像數(shù)據(jù)合成共焦圖像(3),如圖4所示。
圖4 根據(jù)相機成像原理利用多視角圖像合成共焦圖像Fig.4 Synthesize confocal image with multiview images according to the imaging theory
聚焦測距法的關(guān)鍵在于設(shè)計一個魯棒的聚焦度量算子以準確判別圖像序列中的清晰聚焦點。由于無法根據(jù)單個像素斷定其聚焦度,大多數(shù)聚焦判別算子依據(jù)像素的鄰域中的圖像紋理信息計算其聚焦度量值。目前已經(jīng)存在的聚焦測距法包括梯度算子[1]、直方圖熵算子[1]、頻率算子[1]、SML算子[3]等。
在計算聚焦度量值時,這些方法假設(shè)所選取的圖像窗口所對應(yīng)的場景區(qū)域的深度是連續(xù)變化的。實際情況中,場景的結(jié)構(gòu)是復(fù)雜多變的,場景中某些區(qū)域的深度變化是非連續(xù)的。所以,傳統(tǒng)聚焦度量算子在場景深度不連續(xù)處所計算得到的聚焦度量值有較大偏差,進而估計出的場景深度與實際場景深度相差也較大。根據(jù)觀察,場景區(qū)域的深度突變往往伴隨著對應(yīng)區(qū)域的顏色突變。因此,我們可以利用這個信息計算自適應(yīng)窗口[7]改進傳統(tǒng)聚焦度量算子,提高場景深度不連續(xù)區(qū)域的聚焦值計算的準確性。在選取的圖像窗口內(nèi),我們可以計算中心像素與其鄰域中像素的深度相似度從而得到自適應(yīng)窗口每個像素的權(quán)重。
圖5 深度不連續(xù)處自適應(yīng)窗口權(quán)重窗口Fig. 5 The adaptive weight window at depth discontinuity
在自適應(yīng)窗口中,與中心像素幾何距離和顏色值越相近的像素,其所對應(yīng)的的權(quán)重也越大,自適應(yīng)窗口中每個元素的權(quán)重值(4)其幾何距離權(quán)重值(5)和顏色權(quán)重值(6)的乘積。在本文中,我們以參考相機圖像為全焦圖像計算每個像素的自適應(yīng)窗口的權(quán)重信息,如圖5所示。
圖像中每個像素自適應(yīng)聚焦度量值為自適應(yīng)窗口和對應(yīng)的聚焦度量值窗口的卷積(7)。首先,我們使用傳統(tǒng)聚焦度量算子計算得到共焦圖像序列的每個像素的聚焦度量值(8)。然后,以參考圖像為全焦圖像,計算全焦圖像中每個像素的鄰域的權(quán)重窗口作為自適應(yīng)窗口,其中權(quán)重窗口的值歸一化,也即窗口中權(quán)重的和為一。最后,計算自適應(yīng)窗口和相應(yīng)的共焦圖像序列聚焦值窗口卷積值得到像素新的聚焦度量值。
在本文中我們使用顏色互相關(guān)系數(shù)(NCC)計算得到傳統(tǒng)聚焦度量值。
為了評估本方法的有效性,我們用兩組不同的相機陣列配置采集的實際場景數(shù)據(jù)進行了驗證。第一組實驗中,相機陣列由9臺單相機組成,以3×3正方形方式均勻分布在陣列平面上,場景由深度連續(xù)變化的毛絨玩具熊和一張印有文字的紙構(gòu)成。第二組實驗中,相機陣列由64臺單相機組成,以8×8正方形方式均勻分布在陣列平面上,場景以書籍和文具用品構(gòu)成,其中有較多深度突變區(qū)域。
在第一組實驗中,如圖6所示,從估計結(jié)果中,我們可以看到,在深度不連續(xù)處,本方法基本準確判別了場景的深度變化。在背景中,由于文字相似度很高,聚焦判別算子有一些錯誤地估計進而導(dǎo)致深度估計錯誤。這是由于在重復(fù)紋理很高的區(qū)域,NCC聚焦判別算子會出現(xiàn)誤判,得到的深度估計結(jié)果也會出現(xiàn)較大的偏差。在第二組實驗中,如圖7所示,本方法較準確地估計了前景物體的深度變化。在由于NCC聚焦判別算子對弱紋理區(qū)域的失效,所以導(dǎo)致背景深度的估計出現(xiàn)了較多的噪聲錯誤。
圖6 9相機陣列自適應(yīng)聚焦度量深度圖Fig. 6 Depth map of using 9 cameras composed array
圖7 64相機陣列自適應(yīng)聚焦度量深度圖Fig. 7 Depth map of using 64 cameras composed array
本文提出一種基于共焦圖像序列自適應(yīng)聚焦度量算子的場景深度估計方法。首先,我們用相機陣列模擬了一個虛擬孔徑相機對場景不同深度進行聚焦,得到共焦圖像序列。根據(jù)圖像清晰度線索,本文采用了自適應(yīng)聚焦度量算子判別出共焦圖像序列中的清晰聚焦點。自適應(yīng)聚焦度量算子能準確判別場景深度不連續(xù)區(qū)域的清晰度,提高了聚焦測距法在深度突變處的估計結(jié)果。由于我們采用的傳統(tǒng)的顏色互相關(guān)聚焦度量算子在對重復(fù)紋理和弱紋理的判別存在較大的偏差,因這些區(qū)域的深度估計有較大誤差。在后續(xù)的聚焦測距法研究中,重復(fù)紋理和弱紋理區(qū)域的聚焦度的準確判別將是一個重要的研究內(nèi)容。
[1]Pentland A. A New Sense for Depth of Field[J]. In Proc. IJCAI,Los Angeles, 1987, 9(4):523-531.
[2]Krotkov E P. Focusing[J]. International Journal of Computer Vision,1987, 1(3):223-237.
[3]Nayar S K, Nakagawa Y. Shape from focus[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994,16(8):824-831.
[4]Aydin T, Akgul Y. A New Adaptive Focus Measure for Shape From Focus[C]//BMVC. British Machine Vision Association,2008:1-10.
[5]Levoy M, Chen B,Vaish V,et al. Synthetic aperture confocal imaging[J]. ACM Transactions on Graphics,2004,23(3):822-831.
[6]Levoy M.Light fields and computational imaging[J].IEEE 2006,39(8): 46-55.
[7]Yoon K J,Kweon I S. Adaptive support-weight approach for correspondence search[J]. Pattern Analysis and Machine Intelligence, 2006, 28(4):650 - 656 .