?

雙目立體視覺成像系統水下建模與標定方法

2022-02-15 11:52劉建業莊蘇鋒屠大維張璨金攀
光子學報 2022年12期
關鍵詞:標定光線立體

劉建業,莊蘇鋒,屠大維,張璨,金攀

(上海大學 機電工程與自動化學院,上海 200072)

0 引言

雙目立體成像技術在水下考古、海洋地質勘測、水下機器人自主導航和水下生物調查等領域具有廣闊的應用前景[1,4]。然而,當相機應用于水下環境時,成像光線依次經過水、窗口玻璃和空氣時會發生折射,使傳統的小孔成像相機模型不再滿足測量精度要求[5]。

早期的研究沒有從水下光線的傳播出發建立模型,而是采用簡化的計算模型加以補償[6-7]。例如,PARVATHI VS 等[8]提出補償折射誤差的標定模型,基于標定模型對基本矩陣進行估計,使用標準運動結構(Structure From Motion,SFM)算法進行對比度增強圖像的三維重建,改善了三維重建的結果。后又提出了一種基于運動算法的單層折射方法[9],證明了在姿態估計中使用折射運動結構(Refractive Structure From Motion,RSFM)優于SFM 算法,使三維重建結果有所提高。ELNASHEF B 等[10]提出了當系統和相機的光軸不重合時對水下標定模型的影響,但沒有給出有效的辦法。此后,研究者開始從光線傳播的角度,關注水下物體成像的折射模型。例如,KOWN Y H 等[11]分析了折射效應對水下相機標定的影響,明確指出建立正確的折射模型是解決折射效應的基本方法。WEI Jingyang[12]對光線進入相機的路徑進行分析,結合折射定律建立了水下成像模型,并改進了一種基于平面標定板的水下相機標定方法,提高了水下標定的精度,缺點是對物體大角度偏轉區域的重建結果不太理想。LUCZYNSKI 等[13]提出了一種將虛擬針孔相機模型與軸向相機模型相結合的七軸相機模型,基于Pinax 模型補償折射的圖像失真,在水下三維重建中具有高效性,但這種方法的缺點是需要事先通過查找表進行折射校正。SUN J 等[14]提出了一種基于兩條正交平行線消失點優化的快速水下標定方法,該方法操作簡單,減少了水下標定現場的限制要求。LI S Q 等[15]提出了一種基于等效焦距的標定方法,將折射畸變視為等效焦距變化而引起,提高了水下相機的標定精度。KANG L 等[16]在不使用標定板或特殊設備的情況下解決了系統標定和三維場景重建等問題。上述方法解決了水下環境光照不足的問題,獲得了較高的相機內外參數,但標定過程過于繁瑣,導致計算量大和效率低。

建立一種精確的水下折射成像模型是提高雙目立體測量系統標定精度的關鍵。為此,本文提出了一種基于光線四維參數化表示的水下雙目立體視覺成像模型,提出系統參數標定方法,并構建最優目標函數進行非線性優化,最大限度地減小重投影誤差以獲取高精度的標定參數,從而提高水下三維測量的精度。

1 水下雙目立體視覺成像模型

相機水下應用,被封裝于防水密封艙體中,艙體前端具有玻璃窗口,光線的傳播依次經過“水-玻璃-空氣”三種介質,并最終在相機像平面成像。光線在不同介質的分界面處發生折射,使得水下相機成像的物像關系不滿足空氣中小孔成像原理??紤]到窗口玻璃厚度較小且兩面平行,其折射影響可忽略不計,故簡化的光路如圖1。水下物點(xwor,ywor,zwor)的成像光線經過折射平面上一點(xref,yref,zref),發生折射后在像平面的坐標為(u,v),其中入射光線和折射光線與分界面法向量之間的夾角分別為θw和θa,f為相機焦距,d為折射平面到相機鏡頭中心的距離。

所有成像光線中任一條光線可用兩個平面、四維參數表示[17](如圖2):一個平面表示光的位置([u ν]T),另一個平面表示光線的方向([s t]T),兩個平面的距離為1 個單位長度。因此,光線在空間上可表示為[u v s t]T。

圖2 光線四維參數化表達Fig.2 Four-dimensional parametric expression of light

將相機坐標系建立在相機光心上,z軸與光軸平行(如圖3 中的黑色坐標系);以多層界面法線n為z軸,其與相機z軸的叉乘為x軸,構成多層折射成像坐標系(如圖3 中的紅色坐標系)。多層折射成像坐標系(ref)與相機坐標系(cam)間的關系為

圖3 水下相機折射成像模型Fig.3 Refraction imaging model of underwater camera

式中,camRref、camtref為多層折射成像坐標系相對于相機坐標系的姿態,n為分界面法向量,zcam為相機坐標系的z軸。

物點坐標系(obj)相對于多層折射坐標系的關系為

式中,refRobj和reftobj為物點坐標系相對于相機坐標系的姿態。

在相機坐標系中建立物點P=[X,Y,Z]T與成像點m=[u,v]T之間的關系:=K·P,K為內參矩陣。假設像面平行于接口,任意像素m決定有一束光線通過光心和該像素。因此,在相機坐標系中,光的方向可表示為

即當光線Lref傳輸距離d0,從介質μ0折射到介質μ2,入射光和折射光分別表示為

對于雙目立體成像系統,以左相機光心為原點,左相機光心與右相機光心的連線方向為左立體視覺坐標系的x軸;將左平面折射坐標系的z軸(分界面的法線)與左立體視覺坐標系x軸的叉乘作為左立體視覺坐標系y軸;x軸與y軸叉乘作為z軸。將左立體視覺坐標系平移到右相機光心,即可得到右立體視覺坐標系。立體視覺坐標系與多層折射坐標系的關系可表示為

式中,refRste與reftste為立體視覺坐標系相對于多層折射坐標系的位姿,nx為左右相機光心連線,nref為分界面法向量。

建立的水下雙目立體視覺模型如圖4。

由于在左相機多層折射坐標系下點P同時位于右相機多層折射坐標系下(如圖4),因此滿足下列約束:

圖4 水下雙目立體視覺模型Fig.4 Underwater binocular stereo vision model

再用反對稱矩陣表示代替叉乘(即向量積),式(9)可轉化為

2 系統參數標定方法與仿真分析

2.1 系統參數標定

單相機內參及雙目立體視覺系統外參可通過張正友標定法標定得到[18]。然而,對于圖4 的水下雙目立體視覺成像模型,由于制造和安裝誤差,相機光軸不可能垂直于分界面,需要通過標定確定分界面法向量n[19]。此外,相機被封裝在密封艙內,空氣介質厚度d0也是一個需要標定的參數。

2.1.1 分界面法向量標定

多層平面界面的成像系統具有共面特性,即入射光線與中間的傳播光線和最終的折射光線共面。為了建模方便,多層平面之間當作平行處理,光路位于由入射光線和分界面法向量n確定的平面上?;诠裁婕s束,可以計算出分界面法向量。

在相機坐標系中,相機光心為坐標系原點。對于任一物點Pobj經過多層界面后,它都位于入射光Icam與分界面法向量n確定的平面上,用?表示卷積運算。因此,可以將共面約束表示為

物點坐標系相對攝像機坐標系的姿態為camRobj、camtobj,物點Pobj坐標轉化到相機坐標系的坐標可表示為Pcam=camRobjPobj+camtobj。將點Pcam的變換代入式(11)中,共面約束可以寫為

將矩陣E按列向量形式保存在向量E(:)中,用⊙表示kronecher 積,式(12)可表示為

當物點坐標系中有11 個以上的已知點時,利用最小二乘法求得[17]。設物點坐標系中存在N個已知點,方程組可表示為

對B進行奇異值分解B=UΣVT,解是最小特征值對應的列向量V的最后一列。因此,V(:,12),由此可得E。又因為E=n?camRobj,所以nTE=0,對E進行奇異值分解,可解出分界面法向量n的初值。

2.1.2 空氣介質厚度標定

根據建立的折射模型知,只有已知分界面法向量的情況下,才能計算出空氣介質厚度。2.1.1 節已標定出分界面法向量n,本節對空氣介質厚度d0進行標定。

由光線經過折射的傳播路徑L'=R(s,t,μ,μ')?L知,折射光線方向只與入射光線的方向、界面法線、兩個介質的折射率有關,與光線的位置無關。因此,光線可表示為

當第N層折射光線到達一定深度dn后,可以表示為

根據式(2)物點坐標系與多層折射坐標系之間的變化,式(17)可表示為

由N個點的約束方程不難發現,所有點的[d0…dn-1dn]T保持不變,唯獨dn隨物點變化而變化。在物點坐標系下,對于K個已知點可建立2K個約束方程,方程組可表示為

本文采用雙層折射(玻璃厚度忽略),且μ0≠μ2,第二層的折射光線與第一層的入射光線不是平行的,根據式(19)可求得d0。

2.1.3 非線性優化分析

在標定得到分界面法向量n、空氣介質厚度d0的初始值基礎上,對其進一步優化,以獲得更加精確的參數。由于反向投影誤差的計算較為復雜,本文采用正向投射誤差作為目標函數對參數n和d0進行優化,正向投射誤差具體為:對于平面的標定物,將對應性的像素使用坐標變換可得在物體坐標系下的點坐標,兩者相減作為正向投射誤差。正向投影誤差的代價函數表示為

式中,?(pi,n,di,R,t)為正向投影函數,Pi為物點,pi為對應的圖像點。

令每一段光路的方向向量為v0、v1,…,vn,相應的折射點為q1、q2,…,qn(如圖5),因此vn可表示為

圖5 多層折射光路示意Fig.5 Schematic of multi-layer refraction light path

將Pc向量分解為平行于x軸和平行于y的分量:

當有N對物點與成像點時,根據式(24)最優目標函數可表示為

因此,求解參數的過程是非線性優化過程,即

且在優化時需要使用多幅圖片以降低圖片質量對優化結果的影響。

2.2 仿真分析

根據2.1 節所述的多層折射參數標定理論進行分界面法向量n和空氣介質厚度d0標定仿真實驗,并利用標定的參數計算三維測量誤差,以分析多層折射參數標定算法的正確性。

為反映真實情況,將標定板放置在1 500~2 500 mm 之間(標定板不與相機成像平面平行),在不同位姿共取樣16 次,并提取角點信息,并在角點信息中加入均值為0、標準差σ為1 的高斯分布的背景光。首先根據其中1 幅標定板圖片的角點信息計算待優化參數的初值,然后利用其中12 幅標定板圖片進行正向投影誤差非線性優化,并計算另外4 幅標定板圖片中角點的反向投影誤差,以測試標定結果的精度。仿真計算的結果以及真實系統參數如表1,其中n為分界面法向量,d0為空氣介質厚度。當使用所提出的標定方法進行參數仿真標定后,平均重投影誤差為0.078 pixel,表明標定算法的精度較高。

表1 仿真標定結果Table 1 Simulation calibration results

為分析背景光對標定精度的影響,對提取的角點數據分別加入均值為0、標準差σ為0 到1 的高斯分布的背景光,重復進行仿真標定,不同背景光下標定的平均重投影誤差如圖6。背景光對于標定結果的影響非常明顯,因此在實際標定時,應盡量降低背景光的影響。

圖6 不同背景光下的標定結果Fig.6 Calibration results under different background light

為進一步驗證標定算法的有效性,根據標定參數進行三維計算精度仿真實驗。首先,構建水下立體視覺系統,假定雙相機的多層折射參數相同(如表1),取立體視覺系統的外參數為:R=[ 0 0 0 ]T,T=[-1200 0 0 ]T。然后,給定11×11 個空間三維點坐標(空間點均勻分布在3 m 遠2 m×2 m 的平面),如圖7,并計算出對應左、右相機像素理論坐標。最后,對理論像素坐標加入均值為0、標準差σ為1 的高斯分布的背景光,利用加入背景光的像素點根據第1 節介紹的水下多層折射三維數學模型計算物點的三維坐標。比較計算值與實際值,三維點X、Y、Z誤差分布如圖8。

圖7 仿真模型Fig.7 Simulation model

圖8 三維點X、Y、Z 誤差分布Fig.8 X,Y,Z error distribution of three dimensional points

由仿真結果可知,采用提出的多層折射三維計算模型和標定算法時,三維點最大誤差為1.395 mm,誤差的標準差為0.437 mm,具有很高的精度。

3 實驗與分析

3.1 實驗裝置與環境

軟件環境為Win10+VS2015,算法編碼采用C++。實驗使用PointGrey 生產的GS3-U3-32S4C-C 相機,搭配Kowa LM5JC10M 的鏡頭。焦距為5 mm,相機分辨率為2 048×1 536。實驗水池尺寸為3.5 m×2 m×0.9 m,水池內裝滿自來水(如圖9)。

圖9 實驗環境Fig.9 Experimental environment

3.2 系統標定實驗

標定實驗分為空氣和水下標定,在空氣中主要標定相機內參、畸變系數和左、右相機的相對位姿,在水環境中主要標定左、右相機空氣介質厚度和左、右分界面的法向量以及多層折射成像坐標系相對于相機坐標系的位姿??諝猸h境中的標定使用是14×11 的圓環標定板。對于水下參數標定,由于水折射率的影響,水下成像畸變較大,會導致拍攝的圓環標定板出現嚴重變形,從而無法精確提取圓環中心像素坐標。因此使用14×11 棋盤格標定板進行水下參數標定。

3.2.1 空氣中標定

運用迭代標定算法進行空氣中標定,標定場景如圖10。具體標定結果如表2。其中,fx,fy為焦距,cx,cy為主點坐標,k1,k2,k3,p1,p2為畸變系數,Ra為右相機坐標系相對于左攝像機坐標系的旋轉矩陣,Ta為相對應的平移向量。

表2 相機空氣中的標定參數Table 2 Calibration paraments in camera air

圖10 空氣中標定場景Fig.10 Calibration scene in air

3.2.2 水下標定

在空氣中標定參數的基礎上,將折射率設置為1.333,進行水下標定,得到左、右相機空氣介質厚度和左、右分界面的法向量以及多層折射成像坐標系相對于相機坐標系的位姿,場景如圖11。標定時,需在1.5 m、2.0 m 和2.5 m 處分別拍攝6 組不同位姿的圖片,使用其中12 組成像質量較好的圖片進行標定。圖12為水下標定時左右相機采集的標定板圖片。表3 為水下標定參數,其中n為分界面法向量,d0為空氣介質厚度,Rw為多層折射成像坐標系相對于相機坐標系的旋轉矩陣,Tw為相對應的平移向量。

圖11 水下標定場景Fig.11 Underwater calibration scene

圖12 水下標定拍攝的一組圖片Fig.12 A set of images taken by underwater calibration

表3 水下標定參數Table 3 Underwater calibration parameter

選擇另外4 組圖片標定結果進行測試,通過計算測試圖中角點的重投影誤差分析水下參數標定精度。測試圖像的重投影誤差如圖13,重投影誤差均在0.12 pixel 以下??梢?,標定的系統參數具有較高精度。

圖13 不同測試圖片的重投影誤差Fig.13 Reprojection error of different test images

3.3 水下精度實驗

實驗環境示意如圖11。被測目標物為標準球棒(球徑d1=d2=150.13 mm,球心距dis=497.72 mm,由上海計量院預先標定測得)。球棒置于水下雙目相機前約3 m,并先后擺放10 個不同位姿(如圖14)進行測量?;谝陨夏P秃头椒ㄓ嬎愕玫饺S點云,再使用Ployworks 軟件對球棒點云擬合,并將重建球徑和球心距與標定真值進行比較,得到球徑d1、d2與球心距dis的測量誤差的標準差(Standard Deviation,SD)值,結果如表4。由表4 可知,對于水下球棒的10 個位置,d1的測量誤差最大值為1.8 mm,其標準差為0.8 mm;d2的測量誤差最大值為1.1 mm,其標準差為0.6 mm;dis 的測量誤差最大值為1.8 mm,其標準差為 1.2 mm。因此,在10 種不同姿態下對球棒進行三維測量,得到球徑d1測量誤差的標準差為0.8 mm,球徑d2測量誤差的標準差為0.6 mm,球心距dis 測量誤差的標準差為1.2 mm,充分說明基于標定算法的三維測量模型有較高的精度。

圖14 球棒的10 個位姿示意圖Fig.14 Diagram of the 10 positions of the bat

表4 10 種姿態下球棒的測量結果(單位:mm)Table 4 Measurement results of bat under 10 postures(unit:mm)

3.4 水下實物三維重建實驗

實驗對象為鯛魚、大海螺,水下測量距離為2.1 m。圖15(a)、(b)為左、右水下相機采集的一組圖像。實驗測得的點云數據如圖15(c)。圖中可見點云整體較稠密,無明顯孔洞,而且輪廓良好且平滑,細節重建效果也很好,表明本文所提模型與標定算法的有效性。

圖15 實驗結果示意Fig.15 Schematic of experimental results

4 結論

針對空氣中雙目立體成像系統水下應用模型失效的問題,提出一種水下雙目立體視覺成像模型,并據此開展標定方法研究。仿真分析與標定實驗表明提出的水下雙目立體視覺成像系統標定方法具有較高的系統參數標定精度,為之后的像素匹配與三維重建奠定基礎;水下精度實驗得到水下標準球棒d1測量誤差的標準差為0.8 mm,d2測量誤差的標準差為0.6 mm,球心距dis測量誤差的標準差為1.2 mm,表明基于標定算法的三維測量精度很高。水下實物三維重建實驗表明,提出的水下立體視覺模型和標定方法具有較好的水下三維重建效果。

猜你喜歡
標定光線立體
念個立體咒
使用朗仁H6 Pro標定北汽紳寶轉向角傳感器
消失的光線
“你看不見我”
CT系統參數標定及成像—2
CT系統參數標定及成像—2
立體登陸
基于勻速率26位置法的iIMU-FSAS光纖陀螺儀標定
Pop—Up Books立體書來了
基于MATLAB 的CT 系統參數標定及成像研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合