楊 戈 ,王震堯
(1.北京師范大學珠海分校 智能多媒體技術重點實驗室,廣東 珠海 519087;2.北京師范大學 智能工程與教育應用研究中心,廣東 珠海 519087)
本文對水下雙目攝像機獲取的圖像進行了預處理,為了在具備各種復雜條件的水體中獲取目標物體的精確深度信息,著重研究對目標物體圖像的校準、圖像匹配以及深度信息轉換的關鍵算法。
文獻[1]針對水下圖像的處理方法將其主要分為水下圖像增強與水下圖像復原兩大類,并對兩類方法的研究現(xiàn)狀進行分析與歸納,對各類增強和復原算法進行各個維度的深入比較。
在攝像機標定技術中,以張氏標定為代表的傳統(tǒng)標定方法中,需要使用特定的、已知大小的標定物。此結合水下場景要求精度高、實時性強的條件需要,本文選擇采用傳統(tǒng)標定方法中的張氏標定法進行實驗。
文獻[2]在張正友標定算法的基礎上,添加了切向畸變參數(shù),豐富了校準模型,提出了一種非線性代價的函數(shù)方法,通過使用全局優(yōu)化學習算法來求解攝像機的三維模型參數(shù),有效解決了由于水體環(huán)境惡劣而造成的線性誤差和誤差累計的問題。最后采用OpenCV 的“rePojectImageTo3D”對矩陣視差圖像進行計算,得到目標物的三維坐標,實驗表明測量精度誤差也在5%以下。
雙目視覺中的立體匹配算法在基于深度學習匹配算法中,深度學習技術可以獲取更多的圖像特征用于計算,通過訓練大量的數(shù)據(jù)集可以得到更高精度的立體匹配視差圖。本文選擇了改進的SGBM 算法進行雙目圖像立體匹配。
在雙目視覺測距系統(tǒng)中,基本分為5 個步驟[3-4],分別為圖像獲取、相機標定、特征提取、立體匹配和測距[5]。本文將特征提取技術與立體匹配進行融合,為了更好地展示目標物體的三維信息,增加了點云可視化技術模塊。
其中,X1-X2是由立體匹配過程得到的;B、f 由標定過程確定。因此,將上述值帶入到表達式中可以得出被測物體的深度信息。
雙目視覺測距檢測方法如圖1 所示,具體如下:
圖1 雙目測距流程
(1)首先是水下被測物體圖像的增強技術,水中獲取的圖像質量比陸上圖像質量低、對比度差,難以進行后續(xù)實驗,因此需要對獲取的左、右目圖像進行圖像增強操作。
(2)通過使用兩個二維圖像獲得三維參數(shù)進行相機的標定和校準。由于在水中環(huán)境復雜,且在擺放相機時可能出現(xiàn)徑向畸變和切向畸變誤差,導致左右目相機難以精確地共面和行對準,因此需要對左右圖像進行校正實驗。
(3)立體匹配。通過兩個相機同時獲取同一場景的立體圖像,尋找左右目圖像的對應關系,匹配對應的點。在圖像立體匹配前,進行特征提取操作,目的是確定具有強魯棒性的特征點,增強圖像對比度,加強特征效果。
(4)目標測距。通過已經(jīng)求得的視差,根據(jù)雙目立體視覺測距原理可計算出目標物體的深度信息值。
(5)三維點云可視化,將獲取的含有三維信息的目標物體坐標點根據(jù)視差圖映射為三維點云圖,實現(xiàn)對目標物體的三維構建。
本文在獲取左、右目圖像的基礎上進行了CLAHE算法操作,大大提高了圖像的對比度。通過設置對比度閾值,對圖像塊的直方圖可以進行切割和重分布,然后采取直方圖均衡化處理如圖2、圖3 所示,與原始圖像相比,陰影區(qū)域2 的色彩信息明顯增強。
圖2 海底景物原圖
圖3 海底景物增強圖
在攝像機標定技術中,現(xiàn)有標定算法大致分為4 類[2]:傳統(tǒng)標定方法[6-8]、自標定方法[9]、基于主動視覺的標定方法[10]和基于神經(jīng)網(wǎng)絡的標定方法[11-12]。本文采用了張正友標定法,通過MATLAB2018b 標定工具箱計算出水下相機的內(nèi)外相關矩陣模型參數(shù),標定的棋盤規(guī)格為9×9,單個格子為18 cm 定長,如圖4 所示。該算法不同于攝影標定法和自標定法,既克服了攝影標定法需要的高精度三維標定物體成像的缺點,而且優(yōu)化了自標定法魯棒性差的問題,精度高,魯棒性好。
圖4 棋盤標定板
SGBM 算法[13]作為半全局算法的典型,既保留了速度快的優(yōu)點,又克服了魯棒性較差的缺點,具有廣泛的應用性。SGBM 算法分為預處理、代價計算、動態(tài)規(guī)劃和后處理4 個步驟。本文在原有SGBM 算法的基礎上改進了塊匹配block 的大小,增強了圖像邊緣的平滑度。
將立體匹配和相機標定得到的參數(shù)代入到雙目視覺測距原理公式中可以得到目標物體的具體深度信息值,通過基于Python 的OpenCV 函數(shù)庫中的cv2.reprojectImageTo3D 函數(shù)可以求解出目標物體的三維坐標信息,其中Z 坐標的數(shù)值即為目標物體的深度信息。
點云作為3D 物體的表現(xiàn)形式之一,一直被用于目標三維重建[2]。本文將立體匹配得到的視差圖基于PCL庫和python-pcl 庫轉換為點云,其過程分為個3 個步驟:壓縮視差圖、轉換信息點和優(yōu)化局部信息。
(1)壓縮視差圖,將得到的像素點的三維坐標以及h×w×3 的三維數(shù)組視差圖依次轉換為N×3 的二維數(shù)組;
(2)將立體匹配獲取并壓縮后的三維坐標信息與壓縮后的RGB 平面圖進行融合,轉化為帶顏色的點云數(shù)據(jù);
(3)優(yōu)化局部信息,考慮到該實驗環(huán)境為一個1.8 m×1.1 m×0.63 m 的水池,因此設計一個范圍為Z≤0,Z>1 800,X>1 100,X<-1 100,Y>630,Y<-630(單位:mm)的有效區(qū)域,將不滿足上述區(qū)域的坐標點刪除,最終得到含有三維信息坐標點的彩色點云模型。
3.1.1 數(shù)據(jù)集
本文使用型號為C203 的威海至帆品牌的水下雙目攝像機作為拍攝設備。在55 cm 水深的渾濁、能見度差的水體中以32.5 cm 為一組,針對正方形鐵盒、圓形鐵桶和不規(guī)則塑料盒3 種不同的水下物體分別拍攝了不同組別的、分辨率為2 560×960 的左右目圖像共200 張,作為實驗數(shù)據(jù)集。其中部分圖像樣例如圖5 所示。
圖5 左右目圖像數(shù)據(jù)集
3.1.2 軟硬件環(huán)境
軟件環(huán)境:Python3.6,python-pcl0.3,open3d0.9,open3dpython0.7,opencv-python4.1.0.25,pcl-1.9.1,cython0.25.2,Windows 10,Spyder4.2.1。
硬件環(huán)境:Intel?CoreTMi7-7500U CPU@2.70 GHz 2.90 GHz,8 GB RAM,NVIDIA GeForce940MX。
3.2.1 CLAHE 圖像增強技術
采用CLAHE 圖像增強技術分別對32.5 cm 和60.0 cm距離的3 種物體進行圖像增強,實驗結果如圖6、圖7所示。結果表明,增強后的水下雙目圖片色彩明顯增強、對比度提高,可以有效地表現(xiàn)出目標物體的特征。
圖6 32.5 cm 處圖像增強結果對比
圖7 60.0 cm 處圖像增強結果對比
3.2.2 校準與標定
采用MATLAB 標定工具箱對12 幅雙目圖像進行標定,對誤差較大的雙目圖像進行二次標定,直到誤差接近平均水平。誤差結果如圖8 所示。
圖8 左右目標定像素誤差
通過張正友標定法獲取了相機的內(nèi)外參數(shù)信息(見表1),輸出左右目校正圖像,如圖9 和圖10 所示。實驗表明,左右目圖像的校正圖結果顯示正常,對應點在同一水平線上;相機標定結果比較精確,誤差控制在合理的范圍內(nèi)。
表1 標定參數(shù)結果
圖9 32.5 cm 左右目校正圖像
圖10 60.0 cm 左右目校正圖像
3.2.3 立體匹配與測距
采用改進的SGBM 算法,實驗結果如圖11 和圖12 所示。實驗表明,32.5 cm 的組別中立體匹配的結果較好,可以很好地表達出目標物體的輪廓信息,特征點明顯;在60.0 cm 組別中,隨著距離的增大,目標物體呈現(xiàn)面積減少,立體匹配效果會變差,無法準確地表達目標物體的輪廓信息,同時也會對周圍水體環(huán)境進行誤匹配,增大了后續(xù)實驗的誤差。
圖11 32.5 cm 處雙目圖片及對應的視差圖
圖12 60.0 cm 處雙目圖片及對應的視差圖
根據(jù)式(2),將視差圖中每個視差值進行矩陣運算,得到每個元素中含有深度信息值的深度圖,計算出目標物體距離攝像機的深度值,如表2 所示。其中,以32.5 cm為一個距離單位,在相同距離內(nèi)針對不同物體進行多次測距實驗。
表2 測距結果
其中組別1、2、3 的測試對象分別為正方形鐵盒、圓形鐵桶和不規(guī)則塑料盒,每組分別在距離水下雙目相機32.5 cm 處測距3 次,取3 次平均值為每組的實驗結果,保留5 位小數(shù)。組別4、5、6 的測試對象分別為正方形鐵盒、圓形鐵桶和不規(guī)則塑料盒,每組分別在距離水下雙目相機60.0 cm 處測距3 次,取3 次平均值為每組的實驗結果,保留5 位小數(shù)。
在深度信息測量實驗中,距離為32.5 cm 組別針對上述3 種不同目標物體的測距精度差別較小,平均精度為96.29%,效果比較理想;在60.0 cm 組別中,平均精度為81.2%,不同物體的測距精度存在差距,原因為當距離變大時,更多的水體環(huán)境會進入水下相機的拍攝范圍內(nèi),當水體渾濁時,會影響到立體匹配的視差圖效果,造成一定程度上的測距誤差。
3.2.4 點云可視化
基于python-pcl 第三方庫,把立體匹配得到的視差圖求解出目標物體的三維信息,并將每個包含深度信息值的三維坐標點生成點云,如圖13 所示。
圖13 三維點云圖
本文給出了雙目視覺技術在水下場景中的測距任務的設計與具體的實現(xiàn)方法,并提出了一種根據(jù)視差圖生成三維點云的方法,可以有效表示出目標物體的三維結構信息。同時針對立體匹配部分,采用改進的SGBM算法,既保證了魯棒性好的優(yōu)點,又優(yōu)化了算法執(zhí)行速度。實驗結果表明,該算法優(yōu)化了處理時間、魯棒性好。測距實驗表明:在渾濁水體環(huán)境中的0~50 cm 的距離內(nèi),測距平均精度為96.29%,達到了較高的精度水平,由于近距離拍攝會產(chǎn)生不可逆的畸變誤差,因此該實驗結果達到了近距離水下測距的要求。目前國內(nèi)外的水下測距實驗距離多在1~2 m 區(qū)間內(nèi),且水體清澈,因此產(chǎn)生的誤差較低。考慮到上述原因,在相同水體環(huán)境中,本文在0~50 cm 的測距精度較為先進。
雖然本文較為成功地實現(xiàn)了針對水下渾濁環(huán)境下的針對目標物體的近距離測距任務以及構建出目標物體的三維模型,但仍有許多不足的地方:在水下場景中,拍攝的圖像對比度低、圖像質量差,導致視差圖的效果沒有陸上實驗效果理想,影響到了后續(xù)實驗的準確性。接下來將對此進一步研究和完善。