(安徽大學 計算智能與信號處理教育部重點實驗室, 合肥 230039)
摘 要:
提出一種新的用于散焦求深度的攝像機內參數標定算法。該算法依靠改變攝像機鏡頭光圈指數獲取同一場景的任意兩幅散焦程度不同的圖像,提取兩幅圖像間模糊程度差異信息,結合分析透鏡成像幾何標定出攝像機的相應內參數。此算法解除了2006年由Park所提出的標定方法中必須有一幅聚焦圖像的限制,并且無須對圖像進行復雜的放大率標準化處理。模擬實驗與真實實驗均驗證了算法的有效性和精確性。
關鍵詞:計算機視覺; 散焦求深度; 標定; 光圈指數; 深度估計
中圖分類號:TP391 文獻標志碼:A
文章編號:1001-3695(2009)02-0760-03
Novel algorithm of camera calibration based on defocus images
ZHANG Quan-bing, GONG Yan-yan
(Key Laboratory of Intelligent Computing Signal Processing for Ministry of Education, Anhui University, Hefei 230039, China)
Abstract:In order to realizeprecise calibrationand restore depth of scene, proposed a novel camera parameter calibration method for DFD. The proposed methodestimates blur level differencebetween thetwodefocused imagesof the same scene obtained by changing camera’s F number. Then could calibrate the responding camera parameters combiningwith imaging geometryof the thin lens. This algorithm relieved the request of calibration algorithm given by Park that one of the images used in calibration must be focused. And which was valid without process of scale normalization. Finally, calibrated parameters yield consistent results in depth estimation. The proposed algorithm is tested using synthetic and real images. The results obtained are validand accurate.
Key words:computer vision; depth-from-defocus(DFD); calibration; F number; depth estimation
0 引言
計算機視覺的基本任務是根據若干幅世界景物的圖像求得對真實景物世界的理解。人類通過眼睛可以很容易地感知到景物的諸多信息(包括空間結構、顏色、紋理、狀態、發展趨勢等),而讓計算機具有人類同樣的視覺功能卻相當困難。眾所周知,在由三維景物到二維投影圖的成像過程中會丟失大量的信息,而其中重要的一點就是深度信息的丟失。因此,由2D投影圖像來重構3D物體的深度信息就成了計算機視覺中的一個核心問題。
從2D圖像中,可以提取不同的線索用于場景的深度估測,如立體、運動、陰影和散焦等。本文主要研究散焦線索。對比從聚焦圖像求深度(depth from focus, DFF)的方法,散焦圖像求深度(DFD)的方法僅需要兩幅或一幅圖像用于深度估計,而DFF則一般需要十幾幅圖像,并需要漫長的搜索過程。另外與常見的立體視覺和運動視覺相比,DFD有一個巨大的優點是無須考慮不同圖像間對應點的匹配問題。所以,散焦作為一種新興的深度恢復方法,受到了視覺領域廣泛的重視。
早在1987年,Pentland[1]首先提出了物體的深度信息可以通過兩幅散焦程度不同的圖像獲得。1988年Subbarao放寬了Pentland方法中一幅圖像必須使用針孔相機取像的限制[2],隨后與Surya用一個空間變換的方法重建出散焦圖像中物體的深度[3]。Xiong等人[4]提出了利用Gabor變換中的短時傅里葉變換來濾除窗口邊界生長的寄生高頻分量干擾的方法,提高了估計深度信息的精度。最近,Vinay等人[5]把散焦成像過程看做是熱擴散過程,利用擴散理論產生場景的散焦空間,通過該空間確定出景物的深度。Ziou等人[6]提出用Hermite多項式表示局部圖像,依靠在空間域中求解一組方程計算出兩幅散焦圖像間的模糊差異。Favaro等人[7]將場景重建分為形狀重建和紋理重建兩個部分,提出依靠最小化信息散度恢復場景三維形狀的方法。
二十多年來,已有一些DFD算法被提出,但這些算法均要從改變攝像機內部參數所形成的散焦圖像中求取模糊程度信息進而估計深度的,因此任何DFD算法均需要精確的標定攝像機內參數,它是實現深度恢復的第一步。目前大多數DFD技術不是采用傳統的攝像機標定算法去標定攝像機,就是專門設計視覺系統去精確控制和測量攝像機透鏡參數??涩F存的標定技術都是在假設攝像機是一個針孔模型來實現的,而散焦成像使用的是薄透鏡,這必然給標定的結果帶來一定的誤差。另一方面,要設計一個精確的視覺系統又是非常昂貴的,這個問題至今仍具有很大的挑戰性。Tsai等人[8]曾用一幅圖像采用人工神經網絡的方法去估計深度,他們利用散焦圖像的模糊程度與物體的深度來構造神經網絡,在三個不同的距離下取144個數據點來標定攝像機的參數;Rajagopalan等人[9]在其恢復深度的實驗中,用一個真實的物體去標定攝像機;Subbarao等人引入了一種空間域卷積與反卷積變換的方法,他們專門設計了一個攝像機系統,依靠透鏡規格說明表確定攝像機的參數。
2006年由Park[10]提出了一種基于STM (spatial-domain convolution/doconvolution transform)的標定算法(image-based defocus calibration,IBDC),擺脫了以往的標定方法模式,僅僅依靠從圖像中提取散焦信息來進行標定。算法簡單,同時也提高了標定的精度。但該算法中用于標定的兩幅圖像是通過改變攝像機像距獲得的,這樣場景在像平面中成像的尺寸就必然跟隨像距的變化而發生改變,為了能夠正確地比較這兩幅圖像,就要對其進行復雜的標準化處理。另外對于普通的專業相機來說,可以讀出或者調節它的焦距和光圈指數F,變焦時焦距與像距均會相應地發生改變。而僅僅調節像距并讀出它的參數值是不可能。IBDC算法精確地調節像距,則必須要對成像裝置進行專門的改進。最后它還要求這兩幅圖像中必須要有一幅是聚焦的。對于一個薄透鏡來說,其本質屬性就是傾向于散焦成像,拍攝完全的聚焦圖像(所有點對應的擴散參數均為0)本身就相當困難,且需要漫長的搜索過程。本文對IBDC算法進行了改進,通過改變鏡頭光圈指數獲取兩幅不同模糊程度的散焦圖像,利用圖像間模糊程度的差異,同時結合攝像機成像幾何實現參數標定,解決了以上存在的問題。
1 散焦光學模型
圖1給出了簡單的薄透鏡散焦成像模型。其中:P為距透鏡為u的物平面上的一點;f為攝像機的焦距;v為像距。若它們滿足透鏡成像公式
1/u+1/v=1/f(1)
則P點通過透鏡成的像P′為像平面上的一個聚焦點,這時得到的圖像就是聚焦的。
若此時的實際像平面并不在聚焦面位置,P點的像就不會聚焦為一個點而是產生一個模糊的圓形光斑。這是在攝像機實際應用中更傾向于產生的現象。如圖1中,當像平面向后移動到光軸的s1或s2位置時,P點的像就會擴散成半徑分別為R1和R2的模糊圓。這時拍攝得到的圖像就是散焦的。由相似三角形和透鏡方程式(1)可得模糊圓半徑Ri(i=1,2)滿足
Ri=siD/2(1/f-1/u-1/si)(2)
其中:D為鏡頭直徑,可以表示為D=f/F,這里F為鏡頭光圈指數。為表述方便,下文將攝像機實際成像時的焦距f、光圈指數F和像距s統稱為攝像機參數,并記為η(η=〈f,F,s〉)。
假設P點在三維空間中的坐標為x,y是其在像平面上的對應坐標,拍攝圖像時使用的真實孔徑光學系統參數為η,上述散焦成像過程可被表示成下面的積分形式
I(y,η)=∫hη(y,x)r(x)dx(3)
其中:r(x)是場景表面的輻射率;hη(y,x)是成像核,即攝像機透鏡的點擴散函數(point spread function, PSF)。它與成像裝置的幾何關系有關,并滿足標準約束:∫Ωhη(y,x)dx=1,Ω表示任意場景表面。不同攝像機參數下對同一場景拍攝的散焦圖像的模糊程度是不同的(本文中用σ表示圖像的模糊程度),因此就可以從模糊程度中提取相應的攝像機參數信息。模糊程度與模糊圓半徑R成正比關系,即
σ=kR(4)
其中比例因子k為與攝像機采樣率有關的常數。
2 圖像的預處理
在不同攝像機參數下拍攝的圖像,其亮度和放大率會發生改變。例如在圖1中,像平面向后移動,所成的像的尺寸也相應地變大。為了能夠在一致的條件下比較這些圖像的模糊度,需要對圖像的灰度值和放大率進行統一標準化處理。Park提出的算法中通過尋找兩幅散焦圖像中的對應點,確定它們之間的仿射變換關系,從而實現圖像放大率的標準化。本文提出的方法是攝像機光圈指數F不同的條件下獲得的兩幅散焦圖像,圖像的亮度會發生改變,但放大率變化不大,可以忽略不予考慮放大率的標準化處理。而對亮度進行的灰度值標準化相對于放大率標準化來說要簡單得多,用圖像的平均灰度值分別去除對應圖像每個像素的灰度值即可。
本文的標定算法建立在Subbarao等人[3]提出的STM方法基礎之上,而STM算法要求圖像局部近似為三次多項式形式,因此需對圖像進行平滑濾波,以使圖像局部近似為三次多項式。Meer等人[11]證明了可選取下面的濾波器
l1(n)=-3[5n2-(3N2+3N-1)]/[(2N-1)(2N+1)(2N+3)](5)
其中:n=-N,-N+1,…,-1,0,1,…,N-1,N。N在實驗中可取值為4。
將上面的濾波器分別沿著行和列應用于圖像就可以得到圖像局部三次多項式的近似。
3 標定攝像機參數
對于通常的攝像機,在散焦成像過程中,實際成像時的焦距f和光圈指數F是可以從攝像機中讀出,但對應的像距s卻需要特殊的標定才能得到。下面就介紹如何利用兩幅散焦圖像的信息來標定對應焦距f的像距s。
將一個平面標定物放置于距攝像機中心為u0的位置,在保持攝像機焦距f不變的情況下,調整光圈指數到F1和F2拍攝兩幅散焦圖像g1和g2。不失一般性,設對應的參數分別為η1=〈f1,F1,s1〉和η2=〈f2,F2,s2〉。首先利用第2章介紹的方法對圖像進行標準化和平滑處理,為記號簡單起見,將處理后的圖像仍記為g1和g2。
對于標準化,不妨以圖像g2為標準,則標準化后圖像gi(i=1,2)的模糊半徑Ri由式(2)轉換為[3]
Ri=s2fi/2Fi(1/fi-1/u0-1/si)(6)
記
mi=-fis2/2Fi, ci=-mi(1/fi-1/si)(7)
則模糊參數σi滿足
σi=kRi=kFis2/2Fi(1/fi-1/u0-1/si)=kmi/u0+kci(8)
由STM算法[3],當圖像近似為三次多項式形式時,兩幅圖像的模糊參數σ1和σ2滿足
σ21-σ22=4(g1-g2)/2g(9)
其中2是Laplacian算子
2g=(2g1+2g2)/2(10)
將圖像分別沿行和列利用
L2(n)=30(3n2-N(N+1))/
N(N+1)(2N-1)(2N+1)(2N+3)(11)
進行卷積,再將兩次卷積結果相加即可獲得圖像的Laplacian變換[11],其n=-N,-N+1,…,-1,0,1,…,N-1,N。N在實驗中可取值為4。
另外由式(8)可得σ1和σ2滿足如下線性關系:
σ1=aσ2+b(12)
其中
a=m1/m2, b=k(c1-ac2)(13)
由于拍攝兩幅圖像時攝像機的焦距不變,對應的像距也保持不變,改變的僅是光圈指數,對應于兩幅圖像的參數有f1=f2=f,s1=s2=s,F1≠F2。將其代入式(7)和式(13)可得
a=F2/F1, b=0(14)
再由式(9)(12)(14)可得兩幅圖像的擴散參數
σ2=±G/(a2-1), σ1=aσ2(15)
這里σ2有兩組解,為了獲得惟一的正確解,可按下面方法確定σ2的正負號:調試攝像機的焦距使圖像趨于清晰,設對應的焦距為f0,若f≤f0,則σ2取正號;否則σ2取負號。
由于參考物距u0、焦距f、光圈指數Fi已知,在確定了兩幅圖像的擴散參數σ1和σ2之后,就可由式(8)得到
si=((2Fiσi)/kfi+1)/(1/fi-1/u0)(16)
即標定出對應焦距fi的像距si。
4 深度估計
一旦標定好攝像機的內參數,就可以有多種方法估計物體的深度。本文主要考慮的是攝像機內參數的標定問題,但為了驗證算法的正確性,選取一種與本文標定算法相關的且僅適用于場景表面為垂直平面(即場景所有的深度都是一樣)的深度估計方法。
假設有一物體到攝像機的距離為u(未知),現于同一方位在不同攝像機參數下對該物體拍攝兩幅散焦圖像g1和g2,設對應的焦距和光圈指數分別為fi和Fi。對兩幅圖像進行標準化和平滑后,直接利用圖像信息就可求出式(9)中的G,因為此時所有的參數均已標定,結合式(12)便可估計出模糊參數σi;最后由式(8)可得物體相對于攝像機的距離為
u=kmi/(σi-kci)(17)
5 實驗結果
5.1 模擬實驗
下面利用模擬實驗驗證算法的有效性和穩定性。
散焦成像過程可視為聚焦圖像與攝像機透鏡的點擴散函數(PSF)的積分,如式(3)所示,而PSF一般近似為高斯函數。由式(8)可以分析得出模糊參數與攝像機各參數的關系,因此利用假設的不同攝像機參數ηi=〈fi,Fi,si〉和物距u0可以模擬生成不同模糊程度的散焦圖像。
假設圖2(a)為距透鏡為u0=1 000 mm的某標定物的聚焦圖像,利用不同的攝像機參數按上述方法模擬生成10組(每組兩幅)散焦圖像,對應的不同參數如表1所示(長度單位均為mm,下同。其中:f、F1、F2、s是模擬參數值;s′是標定結果),焦距以步長為5從25增加到45,模擬的像距參數均為對應的焦距加上2.5。對每一不同的焦距,用兩組圖像(對應不同的光圈指數)來標定對應的像距。例如圖2(b)(c)兩幅散焦圖像就是使用表1第1組參數模擬出的散焦圖像。
對每組中的兩幅圖像進行標準化和平滑處理,再利用STM算法直接由圖像求出式(9)中的G,然后由式(14)和式(15)確定對應的模糊參數σ2;最后利用式(16)標定出對應焦距fi的像距si。標定結果如表1中s′所示。
表1 模擬實驗標定結果
組號fF1F2ss′組號fF1F2ss′
從表1可以看出,同一焦距,使用兩組在不同光圈指數下獲得的散焦圖像進行標定,其結果是比較接近的。標定結果s′與模擬采用的像距值s的相對誤差均在1.58%以內。
一旦攝像機參數標定好,就可以對深度未知的物體進行深度估測,從而驗證參數標定結果是否正確。假設圖3是某物體放在未知距離下的聚焦圖像,利用上述同樣的方法模擬生成5組(每組兩幅)散焦圖像。其中模擬值中使用的攝像機參數就是表1的標定結果,如表2所示(其中攝像機參數分別對應表1中奇數行的模擬參數,u是模擬深度),s為算法利用標定參數估計出的深度結果。
表2模擬實驗深度估計結果
組號ufF1F2s′u′組號ufF1F2s′u′
1800251.4227.805 9788.141 100401.4242.069 31122.4
2900301.4232.660 7890.151 200451.4247.128 91178.1
31 000351.4237.362 71 018.2
由表2可知,深度估計值u′與模擬圖像時采用的模擬物距的相對誤差在2%以內,從而像距的標定值s′的精確度是可以達到實際應用的要求。
5. 2 真實實驗
筆者使用一款可變焦攝像機Canon EOS400D進行實驗,分別對焦距24和50處的相應像距進行估測。每組分別采用鐵質、紙質和石質三種不同質地的物體(圖4)放在不同參考位置ur進行標定實驗,以其均值作為最終的標定結果(表3)。
表3 真實實驗標定結果
組號urfF1F2s
下面驗證標定參數結果的正確性,使用標定好的攝像機,可以對任意處場景拍攝兩幅散焦圖像,通過第4章節介紹的方法得到物體的深度。
圖5(a)是攝像機在焦距為24時改變F對同一物體拍攝的兩幅散焦圖像;(b)是將物體移至另一位置,調焦距為50時在不同F下拍攝的另一組圖像。
對圖5中的圖像經過亮度標準化和平滑后,利用第4章介紹的深度恢復算法估計出物體離攝像機的距離,估計結果如表4中的u欄所示。最后用硬件裝置對物體的實際距離進行了測量,結果如表4中硬件測量所示。
表4真實實驗深度估測結果
fF1 F2 s u 硬件測量
244.06.024.878 9677.786 3680
506.08.053.248 6819.438 1810
實驗結果與硬件裝置測量結果的相對誤差均在1.2%以內,足以驗證攝像機參數標定結果的精確性。這種標定技術完全可以運用到三維場景實際的深度恢復中去。
6 結束語
任何DFD算法均需要兩個處理過程,即攝像機的標定和估計深度。許多關于散焦求深度的文獻將攝像機參數當成已知量,注重研究求深度算法。但實際上,攝像機參數的確定方法是復雜的、重要的。本文提出的利用調整攝像機光圈指數的散焦標定算法,無須精密的標定儀器,而是直接利用兩幅散焦圖像進行標定,方法簡潔,并解除了Park提出的標定算法中必須有一幅聚焦圖像和對圖像的放大率進行標準化處理的要求。最后對標定算法進行了大量的模擬實驗和真實實驗,并在標定結果的基礎上進行了恢復深度的實驗,其實驗結果驗證了標定算法的精確性。
參考文獻:
[1]PENTLAND A P. A new sense for depth of field[J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 1987,9(7): 523-531.
[2]SUBBARAO M. Parallel depth recovery by changing camera parameters[C]//Proc of the 12nd International Conference on Computer Vision. Floride: IEEE Computer Cociety, 1998:149-155.
[3]SUBBARAO M, SURYA G. Depth from defocus: a spatial domain approach[J].International Journal of Computer Vision, 1994,13(3): 271-294
[4]XIONG Y, SHAFER S A. Depth from focusing and defocusing[C]//Proc of DARPA Image Understanding Workshop. New York: IEEE,1993:618-673.
[5]VINAY A, NAMBOODIRI P,CHAUDHURI S.On defocus, diffusion and depth estimation[J]. Pattern Recognition Letters, 2007,28(3): 311-319.
[6]ZIOU D, DESCHENES F. Depth from defocus estimation in spatial domain[J]. Computer Vision and Image Understanding, 2001,81(2):143-165.
[7]FAVARO P, SOATTO S. Shape and radiance estimation from the information divergence of blurred images[C]//Proc of IEEE Computer Vision and Pattern Recognition. London: Springer-Nerlag, 2000: 755-768.
[8]TSAI D M,LIN C T. A moment-preserving approach for depth-from-defocus[J]. Pattern Recognition, 1998,31(5): 551-560.
[9]RAJAGOPALAN A N, CHAUDHURIS. Optimal selection of camera parameters for recovery of depth from defocused images[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition. Wa-shington DC: IEEE Computer Society, 1997: 219-224.
[10]PARK S Y.An image-based calibration technique of spatial domain depth-from-defocus[J]. Pattern Recognition Letters, 2006, 27(12): 1318-1324.
[11]MEER P, WEISS I.Smoothed differentiation filters for images[J]. Journal of Visual Communication and Image Representation, 1992,3(1): 58-72.