陳文藝,來慶盈,楊 輝
(1.西安郵電大學 物聯網與兩化融合研究院,陜西 西安 710061;2.西安郵電大學 通信與信息工程學院,陜西 西安 710121)
計算機視覺最基本的工作就是根據物體的幾何信息對空間中的物體進行重建從而恢復出物體的形貌,在立體空間中物體表面的某一個物理點在該空間中所處的位置與二維圖像中的某一像素點坐標是相互對應的,這二者間的關系是根據攝像機模型來最終確定的。該模型中所包含的物理參數就是標定中通過一系列實驗與推導計算得出的攝像機內外參數[1],對這些物理參數進行推導的過程稱為攝像機標定[2]。
攝像機是視覺系統中的重要組成部分同時也是計算機視覺獲取二維圖像最主要的工具。攝像機標定技術作為視覺系統中不可或缺的一項技術,其在三維重建、人工智能以及機器視覺等各個領域都有廣泛的應用前景[3,4]。到目前為止,涌現出了大量經典的標定方法[5],同時也衍生出了許多攝像機標定的新技術[6]。其中雙平面標定法在標定中占據了重要的地位,文獻[7]在雙平面標定方法的基礎之上確立了較為完善的標定模型,同時通過非線性優化的方式得到相應的參數,該方法降低了累積誤差對于最終標定精度的影響;文獻[8]在雙平面模型中采用最小二乘法對攝像機參數以及畸變系數進行預估,并將其應用到了鋼板的長度、寬度以及厚度的尺寸測量中,該方法現場標定的工作量較小;文獻[9]將雙平面法引入到了多個攝像機的標定工作中,該方法操作比較容易并且標定成本較低,但是標定的計算量過大。
本文通過對攝像機模型標定理論的研究,根據標定模板與成像面的相位對應關系確定物點、像點間的一一對應關系,并且在雙平面攝像機模型基礎上建立了虛擬攝像機模型,在該模型中實現了標定圖像的畸變校正。
雙平面攝像機模型通過獲取兩個標定平面的標定點坐標以及投影光線與平面的相交關系完成攝像機標定。為更好的對標定結果進行驗證,在該模型基礎上建立虛擬攝像機模型。
該模型在雙平面攝像機模型基礎上引入虛擬成像平面C,其模型如圖1所示。

圖1 虛擬攝像機模型
該模型中包含光心、虛擬成像平面、虛擬主點和虛擬光軸。如圖1所示,將光心定義為圖像平面I中所有像點所對應的空間直線匯聚的交點F,虛擬光軸定義為垂直于兩個標定平面的空間直線L;虛擬成像平面則定義為垂直于虛擬光軸且與圖像平面I等焦距的對應平面C;虛擬主點則定義為虛擬光軸和虛擬成像面C間的交點d。
如圖1所示,結合兩標定平面的相位分布得到物點與像點間的映射關系,并根據均方誤差和最小原理確定光心坐標。在此基礎上,建立虛擬攝像機模型,從而建立傳感器像平面I(u,v) 和虛擬像平面C(x,y) 間的坐標映射關系,從而得到式(1)所示的函數表達式,實現標定圖像的畸變校正
(1)
其標定的基本思想如圖2所示。首先采集兩幅不同位置處的實心圓點標定板圖像并進行灰度化處理,對其進行條紋分離后檢測橫豎條紋的相位分布,通過相位不變點對應同名點的原理對虛擬光軸對應像點坐標進行標定;然后采用最小二乘擬合法對該點位置處的橫豎條紋相位分布進行修正,從而獲取條紋圖像的理想載波角頻率,并根據理想載波角頻率得到條紋圖像的真實相位,利用標定模板和成像面圖像的相位對應關系建立物點和像點間的對應關系,進而實現光心位置的標定;最后,通過物點、像點之間的對應關系以及光心坐標確定傳感器成像面與虛擬成像面的坐標映射關系,結合灰度級插值算法對原圖像的畸變進行校正。

圖2 攝像機標定基本思想
在實際攝像機標定中,鏡頭畸變、靶面安裝誤差都會使圖像發生畸變,即虛擬成像面的圖像與實際成像面圖像不是過光心的直線對應關系,因此通過建立各種攝像機畸變模型可以描述攝像機畸變,并通過標定估計畸變模型參數。本文采用隱式的畸變標定方法,不明確使用攝像機畸變模型,通過逐點獲取虛擬成像面C的圖像與實際成像面I圖像位置的映射函數,實現畸變校正。
在進行實際標定實驗時,由于圓點標定板固定在標定平臺上不方便移動,因此利用步進電機移動攝像機對標定板進行拍照,利用光柵尺記錄攝像機的移動距離,其效果等效于雙平面的攝像機標定。實驗所采用攝像機為工業檢測攝像機,分辨率為960pixel×1280pixel,所采用的標定板為實心圓點標準標定板,其圓點直徑為4 mm,圓心距為8 mm。在不同位置采集的標定板圖像如圖3所示。

圖3 標定板采集圖像
圖3中圖(a)為A位置處的標定板采集圖像,圖(b)為B位置處的標定板采集圖像,兩處位置距離150.015 mm。
本文采用高斯頻域濾波的方式對標定圖像進行條紋分離。由于標定圖像的邊緣包含很多無效的信息,為了得到較好的條紋圖像,首先需要對實心圓點標定圖像進行圓點外插;然后對外插圖像進行二維傅里葉變換得到其頻域圖像;再采用高斯濾波器在頻域從x和y兩個方向對頻域圖像進行相應的濾波處理;最后將改變后的頻域圖像進行二維傅里葉反變換,獲取標定圖像濾波后在x、y兩方向上的條紋圖像。
以標定平面A為例,頻域高斯濾波后得到x、y方向的條紋圖像如圖4所示。

圖4 標定平面A條紋圖像
平面標定板上x、y方向的理想條紋光強分布可以表示為

(2)

由于攝像機存在畸變,畸變效應會對標定板條紋圖像的相位進行調制,采集得到的標定圖像在x、y方向的條紋圖像光強分布可以表示為

(3)
其中,rx(x,y)、ry(x,y) 分別代表標定板表面的非均勻反射率,An(x,y)、Bn(x,y) 表示經過相位調制后的傅里葉系數,φx(x,y)、φy(x,y) 為帶有攝像機畸變的條紋圖像的相位分布。采用正交相干解調法能夠直觀獲取條紋的相位分布,雖然標定板條紋圖像的相位分布是二維的,但是能夠以一維方式逐行逐列的獲取條紋的相位。以x方向條紋圖像為例,將條紋圖像的某一行I(x,yc) 分別乘以載波sin(ωcx) 和cos(ωcx), 并通過低通濾波后將除±(ωx-ωc) 以外的頻率分量去除,可得
(4)
其中,ωc為帶有攝像機畸變的條紋圖像的載波角頻率。當ωx=ωc時,便能夠獲取條紋任意一行的相位分布,理想條紋的載波角頻率可采用最小二乘擬合法得出,由此可逐行解調出標定板的x方向條紋相位分布φx(x,y), 同理也可逐列解調出y方向相位分布φy(x,y)。
根據理想載波角頻率檢測標定平面橫豎條紋的相位分布,由于邊緣條紋圖像存在邊緣效應,對于整體標定精度的影響比較大,因此去除橫豎條紋邊緣的部分條紋。以標定平面A為例,對其橫豎條紋進行相位檢測,由于噪聲等影響,其相位分布起伏比較大,因此對測量結果進行多項式擬合。其中對豎條紋進行逐行解調和相位去包裹,多項式擬合后獲取標定平面A的豎條紋相位分布如圖5(a)所示;同理對橫條紋進行逐列解調和相位去包裹,多項式擬合后獲取橫條紋的相位分布如圖5(b)所示。

圖5 標定平面A條紋相位分布
根據攝像機的成像特性可知,當攝像機到物體間的距離發生改變時,在傳感器成像面上的圖像也會隨之產生一定程度的縮放。若主光軸沒有發生改變,則光軸和二維平面間的交點位置將保持恒定,即該交點位置處的相位值保持不變。因此雙平面攝像機模型中標定平面中圖像相位不變點所對應的同名點就是虛擬光軸和像平面間的交點,根據該點在標定平面A、B上的對應點坐標可確定該模型下的虛擬光軸。若標定平面A的條紋載波角頻率為ωAx, 標定平面B的條紋載波角頻率為ωBx, 則設ωCx=(ωAx+ωBx)/2, 根據正交相干解調法得到標定平面A和標定平面B的相位分布為

(5)

(6)
根據式(5)和式(6)可得,兩幅標定圖像在x、y方向上的相位差為

(7)
對相位差分布進行去包裹,根據相位展開的原理可知,由于解包裹的影響,其真實的相位差分布與解包裹得到的相位差分布之間相差2πk(k為整數)。因此將解包裹得到的相位差分布±2πk, 使相位差分布的中心區域調整到k=0的部分。截取橫豎條紋中心區域相位差為0附近的一定區域的曲面分別進行插值擬合,得到相位差為0的點即為虛擬光軸與圖像平面的交點。根據實驗數據可得該點像素坐標為(525.552,606.602)。
為了確定任意像點和物點的對應關系,需要在標定平面橫豎條紋相位分布的基礎上加入一級諧波相位。對于成像面上任意一點P(u1,v1) 在標定平面B和標定平面A上分別對應pb(X2,Y2,Z2) 和pa(X1,Y1,Z1), 由標定模板與成像面間的相位分布間的相互對應關系可知,兩個標定模板與其對應的成像面上的標定圖像在x、y方向上的諧波相位對應關系可表示為

(8)

(9)

已知標定板的周期Px=Py=8mm, 根據式(8)和式(9)可得到像平面上每一個像素點在標定模板A、B上所對應的X、Y方向上的世界坐標。兩標定模板的位置已知,由此可以根據世界坐標系原點位置確定兩標定模板Z方向的世界坐標。從而計算出任意像點在世界坐標系中所對應的物點坐標,確定任意像點所對應的空間直線,從而建立三維物點和二維像點間的映射關系。其部分空間直線集如圖6所示。

圖6 部分空間直線集
由于兩個標定平面相互平行,攝像機的主光軸垂直于兩個標定平面并且經過光心,因此光心的橫縱坐標可由虛擬光軸來確定。將虛擬光軸和標定平面A的交點作為坐標系原點,標定平面A的x、y方向分別為X、Y軸,并將虛擬光軸作為Z軸建立統一的世界坐標系。在理想狀態下,兩個標定平面所對應的空間視線集匯聚于一點,該點即為光心。但實際上,由于畸變等因素的影響,空間視線集會在光心附近形成無數個交點。因此需要在一定范圍內遍歷Z軸,得到每一個Z值所對應的z平面上所有空間直線與z平面的交點,計算所有交點到虛擬光軸與z平面交點間的距離和,根據最小距離和的原則對光心位置進行估計,使其所對應的均方誤差和最小。
圖像坐標系中任一像點所對應的兩標定平面空間直線可表示為

(10)
其式中的未知參數均可由兩個標定平面的世界坐標求出。根據虛擬光軸可以確定光心在X、Y方向的世界坐標(X,Y)。對于圖像坐標系中N個像點可得到N個空間直線方程組,給定任意一Z值,根據空間直線方程可以在z平面上得到N個交點坐標 (Xi,Yi), 該點與Z值所對應的光心間的距離可由式(11)得出
(11)
di也代表了該交點與Z值所對應的光心坐標的誤差,因此,將均方誤差和最小所對應的Z值作為光心Z坐標的估計。其表達式可表示為
(12)


圖7 均方誤差和分布
由此可得光心在以虛擬光軸與標定平面A交點為原點的世界坐標系中的位置坐標為(0,0,507.496)。
根據光心位置坐標和物點與像點之間的對應關系,能夠建立傳感器成像面I和虛擬成像面C之間的坐標對應關系。由于虛擬成像面上的圖像是沒有畸變,由此可實現圖像的畸變校正。為降低系統誤差,在原虛擬攝像機模型的標定平面A、B的中間位置處定義平面D。以Y方向為例,對于任意像點P,首先根據標定平面A、B所對應的空間直線得到平面D的世界坐標;然后由光心坐標與平面D對應的世界坐標構成空間直線集,根據空間直線集得到虛擬成像面C的世界坐標。將虛擬成像面C的世界坐標轉化為像素坐標 (x,y), 從而得到傳感器成像面圖像f(u,v) 和虛擬成像面圖像f(x,y) 的前向映射關系,由于f(x,y) 的坐標為非整數,其對應坐標的灰度值由f(u,v)的多個像素灰度值來決定,可能造成f(x,y) 像素的丟失,因此需要將前向映射關系轉換為后向映射關系生成后向映射表,后向映射表的生成原理可參照文獻[10],從而可以逐像素的生成輸出圖像f(x,y), 實現原圖像的畸變校正。由此可得標定平面A、B的校正圖像如圖8所示。

圖8 畸變校正圖像
為了測量攝像機標定精度,可以利用光心位置坐標和傳感器成像面與虛擬成像面的映射關系恢復出兩個標定平面的圖像,計算其圖像的實心圓點質心坐標并將其轉化為物理坐標,與標定板實心圓點的實際位置坐標作比較,分析系統標定誤差。
對于標定平面A,首先根據生成的后向映射表采用雙線性插值算法得到畸變校正后的虛擬像平面圖像,檢測虛擬像平面圓點圖像的質心坐標 (ui,vi) 并根據式(13)將其轉換為物理坐標 (x′i,y′i); 然后根據式(14)利用虛擬像平面與標定平面A間的位置關系得到標定平面A實心圓點質心所對應的物理坐標 (x″i,y″i), 將其與標定平面A實心圓點質心對應的真實位置坐標 (x,y) 對比;最后根據式(15)、式(16)求其絕對平均誤差Δr以及均方誤差Δm,可得到標定平面A的標定誤差,同理也可得出標定平面B的標定誤差

(13)

(14)
式中:f為虛擬像平面到光心的距離,d為標定平面與光心間的距離,dx、dy可由攝像機參數得到
(15)
(16)
由此可得到標定誤差對比結果見表1。

表1 標定誤差/mm
由表1可知,兩標定平面的絕對平均誤差均在 0.05 mm 以內,可以達到比較高的標定精度,驗證了該方法的有效性。
本文研究了一種雙平面攝像機標定方法,該方法不要求像平面與測量平面平行,并且整個標定過程只需要兩幅標定圖像即可完成,現場標定工作量比較小;利用標定模板和成像面之間的相位對應關系,不需要繁瑣的特征點提取即可確定像點與物點之間的對應關系,同時不必知道任何關于畸變類型的先驗知識,在不明確攝像機的物理參數的情況下就能較為精準完成標定工作;以線性的方法完成標定,避免了復雜的物理參數的求解,實驗結果表明,該方法的標定精度較高。
本文為降低邊緣效應,在標定的過程中去除了部分邊緣的條紋圖像,因此在后期的研究中可以考慮以線性插值的方式對邊緣條紋進行處理,從而進一步對該標定方法進行完善。