俞圣池,李佳康,熊鑫泉,賀劉剛1,,,何瑞麟,戴 陽 ,3
(1上海海洋大學(xué)信息學(xué)院,上海 201306;2 中國水產(chǎn)科學(xué)研究院東海水產(chǎn)研究所,農(nóng)業(yè)農(nóng)村部漁業(yè)遙感重點(diǎn)實(shí)驗(yàn)室 上海 200090;3 嶗山實(shí)驗(yàn)室,山東 青島 266237)
在養(yǎng)殖中,實(shí)時(shí)監(jiān)控個(gè)體大小對于制定養(yǎng)殖方案、合理分配飼料、控制養(yǎng)殖密度等均具有十分關(guān)鍵的作用,并將對養(yǎng)殖企業(yè)的生產(chǎn)經(jīng)營與品質(zhì)控制產(chǎn)生重大影響[1]。魚體尺寸測量的方式可分為接觸測量和非接觸測量。目前,養(yǎng)殖過程中采用接觸測量比較多,需要將魚捕撈后人工測量。這個(gè)過程不僅效率低,樣本數(shù)量少,更影響了魚群的生長[2]。為解決魚體的非接觸測量,目前主要有雙目視覺[3]、聲吶[4]、激光[5]等技術(shù)途徑。其中,激光測量[6-10]技術(shù)不僅可以用于陸上物體測量,同樣可以用于在水底作為一種主動視覺探測手段,其具有精度高、原理簡單、成本低、易實(shí)現(xiàn)的特點(diǎn)。劉源等[11]基于線激光三角法實(shí)現(xiàn)了對圓孔尺寸的測量,通過對比分析確定HOUGH圓變換法在環(huán)規(guī)標(biāo)準(zhǔn)件的測量中的適用性,并取得了令人矚目的試驗(yàn)結(jié)果,誤差僅為2 μm。這為基于線激光三角測距法的精準(zhǔn)測量提供了一個(gè)可行的方法,并豐富了測量工具的選擇。另一方面李坤等[12]通過自行研制的 532 nm 強(qiáng)度調(diào)制激光源,在 3 m 長的水箱中搭建了激光水下探測系統(tǒng),運(yùn)用相位法的測距原理成功實(shí)現(xiàn)了水下激光測距,并有效抑制了散射和湍流的影響,這為基于線激光三角測距法在水下環(huán)境中的應(yīng)用提供了有力的支持,但載波調(diào)制激光雷達(dá)成本高,且在3 m內(nèi)測量誤差高達(dá)12 cm。此外,解則曉等[13]設(shè)計(jì)了一種創(chuàng)新的水下雙目測量系統(tǒng),利用線結(jié)構(gòu)光陣列提供視覺特征,通過推導(dǎo)水下雙目光路折射模型,并引入改進(jìn)的外極線匹配方法,成功獲得特征點(diǎn)的三維坐標(biāo)。這一系統(tǒng)在水下物體測量和三維形貌還原方面取得了顯著成果,測量誤差僅為0.3 mm。這為本研究提供了線激光作為特征點(diǎn)的啟示,尤其在處理水下環(huán)境中的復(fù)雜問題上,但其測量過程參數(shù)多且復(fù)雜。浙江大學(xué)李艷君等[3]提出了一種基于立體視覺的動態(tài)魚體尺寸測量方法,通過雙目攝像頭獲取魚體的三維信息,并運(yùn)用掩膜卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行魚體的檢測與分割。這項(xiàng)研究不僅解決了傳統(tǒng)魚體測量中費(fèi)時(shí)費(fèi)力的問題,還推動了深度學(xué)習(xí)技術(shù)在漁業(yè)中的應(yīng)用,但其根本基于雙目系統(tǒng),本研究將從單目的角度研究魚體測量。綜合而言,激光測距的精度高且應(yīng)用相當(dāng)廣泛,測距與魚體尺寸測量密不可分[14],通過對水下物體測距并結(jié)合相機(jī)的成像原理[15],即可得出魚體表面的三維空間坐標(biāo),同時(shí)得出魚體的尺寸信息。
本研究基于線激光三角測距法的測距原理并加以改進(jìn),開發(fā)了一種基于線激光三角測距法的魚體測距系統(tǒng),可為魚體尺寸測量定位出物距提供更多的思路,為水產(chǎn)養(yǎng)殖發(fā)揮更大的作用。
水下魚體激光測距系統(tǒng)如圖1所示,包括視頻采集裝置,圖像處理程序。采集裝置為固定于同一個(gè)支架上的兩個(gè)水下網(wǎng)絡(luò)攝像機(jī),攝像頭的分辨率像素為2 560×1 440,視頻錄制幀率為30 Hz。
圖1 水下魚體激光測距系統(tǒng)
通過網(wǎng)線POE供電與??低曈脖P機(jī)相連接,硬盤機(jī)儲存視頻數(shù)據(jù)。上攝像頭具有一定的傾斜角度,而下攝像頭是水平固定的,增大了拍攝范圍。最底端固定的是專門定制過的防水一字線激光器??逃泄潭ㄩL度的矩形標(biāo)定板。試驗(yàn)樣本為黑魚 1 條、小鯽魚 3 條、大鯽魚 2 條、鱸魚 1 條。圖像處理程序主要是進(jìn)行數(shù)據(jù)采集、分析、計(jì)算、結(jié)果輸出等功能。編寫語言為Python,基于計(jì)算機(jī)視覺[16]開源庫OpenCv獲得激光輪廓結(jié)合算法分析得到激光線的重心坐標(biāo),運(yùn)用Pytorch深度學(xué)習(xí)框架進(jìn)行非線性回歸訓(xùn)練得到重心在圖像中的像素點(diǎn)位置與實(shí)際物距離的關(guān)系。
在激光測距中常用的方法有飛行時(shí)間法[17]、相位測量法[18-20]、三角測距法[21]等。飛行時(shí)間法也叫直接測距法,即通過發(fā)射一束脈沖激光,測量激光從發(fā)射到接收所經(jīng)過的時(shí)間,并根據(jù)光速計(jì)算出距離。這種方法適用于較遠(yuǎn)距離的測量,但需要考慮激光脈沖的展寬效應(yīng)[22]。相位法是利用激光的光波相位變化來測量距離[23],在發(fā)射端,將發(fā)出的激光進(jìn)行調(diào)制,使其成為一定頻率的相位調(diào)制光,在接收端,通過檢測光源發(fā)射的相位變化來計(jì)算距離。它可以精確地測量距離,具有高度的精確度,但需要復(fù)雜的裝備。而三角法測距是利用激光發(fā)射點(diǎn)和接收點(diǎn)的幾何關(guān)系計(jì)算距離[24],激光器向被測物體發(fā)射激光束,物體表面反射回來通過攝像頭接收成像,根據(jù)相機(jī)的成像原理,如果標(biāo)定物沿著激光束的方向發(fā)生位移時(shí),則相機(jī)成像面上的像點(diǎn)也會發(fā)生相應(yīng)位移,通過物像位移之間的關(guān)系可以計(jì)算出被測物上被激光照射的各點(diǎn)坐標(biāo),進(jìn)而得到被測物到攝像頭鏡面的距離。相比于前面提到的飛行時(shí)間法和相位測量法,三角法測距方法精確度適中,實(shí)施簡單,且不需要較為復(fù)雜的裝備,成本低。因此本研究選用的測量方法為基于線激光的三角法測距。線激光三角法測距的光路原理[25]如圖2所示。
圖2 光路原理
一字線激光器發(fā)出的扇形光面與激光器和攝像頭的連線BC垂直,激光器發(fā)出的光照射到物體上就是一條水平的亮線。
為方便計(jì)算,系統(tǒng)需要事先選擇一個(gè)已知的基準(zhǔn)距離S0(AB)作為定標(biāo)基準(zhǔn)。一般情況下,基準(zhǔn)距離S0(AB)的選擇取決于設(shè)定的測距量程中點(diǎn),如量程50 cm到150 cm,則S0選擇100 cm。一字線激光器的光線從A點(diǎn)射出,在基準(zhǔn)面上形成亮線ML。激光器照射待測平面后,形成亮線NK。過基準(zhǔn)點(diǎn)A的光線在待測平面上的投影點(diǎn)為E。接下來計(jì)算任一光線BM在該平面上的投影點(diǎn)N的位置。建議調(diào)整攝像頭,使CCD成像面豎直放置且像素沿豎直和水平方向排布。取以豎直方向?yàn)閤軸方向,以水平方向?yàn)閥軸方向,以基準(zhǔn)點(diǎn)A的像A1為原點(diǎn)的平面直角坐標(biāo)系,在CCD上建立成像平面直角坐標(biāo)系。這樣,任意一點(diǎn)的坐標(biāo)(x,y)可以方便地通過像素尺寸和像素?cái)?shù)計(jì)算得出。在該圖中,M、A、L、N、E、K在CCD上的成像坐標(biāo)分別為M1、A1、L1、N1、E1、K1。
對于不過基點(diǎn)A的任一條光線,如圖中的BM,其照射到后面的豎直平面上的N點(diǎn),N在CCD上成像點(diǎn)為N1,下面通過已知量N1的坐標(biāo)(xN1,yN1)、S0(AB)、h(BC)、焦距f計(jì)算S1(EA)、N點(diǎn)與攝像頭鏡面物距U(EC)、和YN(NE)獲得N點(diǎn)的位置。
ΔNEC∽ΔN1E1C
(1)
在ΔECA中:
(2)
(3)
式(3)帶入(1)得:
(4)
不難看出,在以B點(diǎn)為原點(diǎn)的過B點(diǎn)與LM平行的直線為Y軸,BA為X軸,BC為Z軸的空間坐標(biāo)系中,N點(diǎn)的空間坐標(biāo)XN=S0+S1,YN=NE,ZN=0。
同理,若N點(diǎn)位于B,M之間可計(jì)算出:
(5)
(6)
此時(shí)N點(diǎn)的空間坐標(biāo)XN=S0-S1,YN=NE,ZN=0。
通過上述獲得N點(diǎn)空間坐標(biāo)的方法得出圖像任意點(diǎn)的空間坐標(biāo),從而計(jì)算魚體大小。
根據(jù)上述推導(dǎo)公式,只需測量S0(AB)、h(BC)長度,結(jié)合鏡頭焦距f和N點(diǎn)在攝像頭上的成像N1坐標(biāo),即可計(jì)算N點(diǎn)空間坐標(biāo)。但實(shí)際系統(tǒng)中難免會產(chǎn)生誤差,本系統(tǒng)主要誤差包括以下幾種:(1)系統(tǒng)裝配誤差,包括AB、BC長度及鏡頭焦距f測量不準(zhǔn)確和發(fā)出的激光不與BC垂直所導(dǎo)致的誤差;(2)因鏡頭畸變帶來的成像與理想狀態(tài)差異所致的測量誤差;(3)因系統(tǒng)在水中工作,攝像頭和激光器均安裝在防水盒內(nèi),盒內(nèi)部是空氣介質(zhì),光線需穿過空氣、玻璃和水三種介質(zhì),由于介質(zhì)折射率不同和光線入射角度不同所致的非線性偏折誤差[26],加上防水窗口質(zhì)量及安裝問題而導(dǎo)致的誤差;(4)因攝像頭成像亮度重心計(jì)算不準(zhǔn)確所致的誤差。綜合以上誤差構(gòu)成了系統(tǒng)的整體誤差,可通過對各種誤差進(jìn)行分析和矯正來解決,但這種處理方法煩瑣、工作量大。本研究采用簡單的回歸分析法對系統(tǒng)進(jìn)行定標(biāo)和校準(zhǔn)。
定標(biāo)方案:將水下魚體激光測距系統(tǒng)靜止置于水箱中的一側(cè),取固定長度為1 m的矩形標(biāo)定板水平置于水箱底部,開啟攝像頭和激光器并調(diào)整激光線角度與矩形標(biāo)定板上的刻度線水平平行,使用卷尺測量矩形標(biāo)定板到激光端面的距離,并拍攝這時(shí)激光照射在標(biāo)定板上的成像,形成一條紅色的亮線如圖3所示。
圖3 激光照射在標(biāo)定板上的成像
由遠(yuǎn)及近的開始定標(biāo),為了能夠采集更多的標(biāo)定數(shù)據(jù),過程中每間隔2 cm拍攝一張圖片,在量程51 cm至147 cm中共拍攝了49張圖片,并確保了測距的誤差將會在2 cm內(nèi)。
對定標(biāo)過程中錄制的視頻利用Pot Player 播放器的連續(xù)幀采集功能獲取截圖[27],從中人工篩選出清晰可見的每間隔2 cm的標(biāo)定板照片。對每張照片建立平面直角坐標(biāo)系xoy,取圖片的左上角為原點(diǎn)o,水平向右方向?yàn)閥軸,豎直向下方向?yàn)閤軸。根據(jù)采集的光線重心坐標(biāo)與矩形標(biāo)定板到激光端面的距離關(guān)系,可以得出光線的重心坐標(biāo)在x軸上是隨著矩形標(biāo)定板距離激光端面的距離越近而越小的。由此可以根據(jù)已知水平激光直線距離與圖像點(diǎn)坐標(biāo)匹配分析得出其非線性回歸的關(guān)系[28]。
試驗(yàn)中攝像頭分辨率為2 560×1 480像素,在不影響回歸精度的前提下,適當(dāng)減少了采樣點(diǎn)的數(shù)量[29],即采樣點(diǎn)并不包括激光線上所有的點(diǎn),而是每個(gè)采樣點(diǎn)間有一定的間隔(10,20,30,…,100 cm),并且挑選圖像清晰的點(diǎn)得出他們在豎直向下方向x軸的坐標(biāo),并選擇坐標(biāo)的中位數(shù)作為在此距離下x軸的坐標(biāo)。其坐標(biāo)單位為像素?cái)?shù),分別找到各個(gè)像點(diǎn)對應(yīng)光點(diǎn)在實(shí)際中與激光端面的距離S即前面提到的N點(diǎn)的空間坐標(biāo)XN,采用一元多項(xiàng)式回歸模型:
S=anxn+an-1xn-1+,...,+a2x2+a1x+a0
(7)
擬合出S與像點(diǎn)坐標(biāo)x的關(guān)系,至此完成系統(tǒng)的定標(biāo)與校準(zhǔn)。
所使用的相機(jī)為哈克思特HK90A高清水下網(wǎng)絡(luò)攝像機(jī),可以清晰拍攝水中物體影像。但拍攝的圖像中會出現(xiàn)畸變,為保證圖像尺寸和比例關(guān)系的真實(shí)性,在圖像處理過程中需要先對這些畸變進(jìn)行矯正。本研究選擇張正友標(biāo)定法[30-31],它是一種常用的相機(jī)標(biāo)定方法,可以用來計(jì)算相機(jī)內(nèi)參、畸變參數(shù)和外參等相機(jī)參數(shù)。當(dāng)這些參數(shù)已知時(shí),可以使用它們來矯正照片,使得照片中的圖像符合實(shí)際物體的尺寸和比例關(guān)系。
使用張正友標(biāo)定法矯正照片的方案如下:
(1)拍攝棋盤格照片:需要準(zhǔn)備一張使用黑白格子組合起來的棋盤格,置于試驗(yàn)的水箱中,并在不同的角度和不同的距離下拍攝多張照片,確保照片中棋盤格占據(jù)不同比例的圖案。
(2)提取角點(diǎn):通過角點(diǎn)檢測算法檢測出每張圖片中棋盤格的角點(diǎn),利用這些角點(diǎn)可以得到對應(yīng)的像素坐標(biāo)。
(3)標(biāo)定相機(jī):使用檢測到的角點(diǎn)和已知的棋盤格尺寸進(jìn)行相機(jī)的標(biāo)定,即通過張正友標(biāo)定法來求解相機(jī)的內(nèi)部參數(shù)矩陣和畸變參數(shù)。
(4)矯正照片:首先使用標(biāo)定得到的相機(jī)參數(shù)來矯正棋盤格照片中的畸變,使得棋盤格的每個(gè)方格都恢復(fù)原始的大小和比例關(guān)系,確保矯正效果。再應(yīng)用到本試驗(yàn)中的其他照片上,從而將照片中的物體大小和比例關(guān)系恢復(fù)到實(shí)際場景的大小和比例關(guān)系。
在進(jìn)行魚體測距時(shí)最大的誤差在于水下激光照射到魚體表面發(fā)生的亮線展寬現(xiàn)象,激光照射到魚體表面的成像不是一條細(xì)線,而是具有一定的寬度。這是由于反射光強(qiáng)導(dǎo)致的成像 CCD 飽和所致[32]。顏色較深的魚體表面反射較弱,激光照射在魚體表面將呈現(xiàn)出一條清晰可見寬度均勻的激光線條。而當(dāng)激光照射在魚體顏色較淺的魚體表面上,反射光較強(qiáng),導(dǎo)致成像展寬,激光輪廓的重心將很難準(zhǔn)確地識別[33],此時(shí)會產(chǎn)生比較大的誤差。為此本研究對魚體表面激光的重心提取步驟如下:
(1)載入清晰可見激光照射魚體表面的圖片。
(2)提取二值圖像:本試驗(yàn)所采用的激光為波長638 nm的紅色激光,首先需要使用圖像處理算法提取圖像的綠色通道,此時(shí)紅色激光輪廓更加明顯,進(jìn)一步使用cv2.threshold函對圖像進(jìn)行閾值分割,得到紅色激光輪廓的二值圖像。如圖4所示。
圖4 激光輪廓識別圖
(3)縮小輪廓區(qū)域:對于步驟(2)得到的二值圖像有紅色激光線條的輪廓也有散射激光形成的亮斑,需逐步縮小激光線條的輪廓大小。首先對步驟(2)提取出的輪廓提取亮度通道v_channel,計(jì)算出每個(gè)小輪廓的平均亮度,并以圖像平均亮度為閾值,篩選出平均亮度大于圖像平均亮度的小輪廓,并過濾去面積小于50個(gè)像素面積的小輪廓,去除了具有明顯干擾的小斑點(diǎn)。再對輪廓進(jìn)行最小二乘法擬合,計(jì)算出輪廓特征直線的參數(shù),然后根據(jù)點(diǎn)到直線的距離公式計(jì)算出輪廓中所有點(diǎn)到擬合出的直線的距離,并計(jì)算出平均距離。最后去除點(diǎn)到直線的距離大于平均距離的像素點(diǎn),剩余的像素點(diǎn)構(gòu)成新的輪廓。如圖4識別出的激光亮線所示,此時(shí)的輪廓用綠線標(biāo)記。
(4)基于亮度分布計(jì)算激光線條的重心:首先遍歷激光輪廓的每個(gè)像素點(diǎn)坐標(biāo)計(jì)算出輪廓的每一列像素的上下界值以確定j和n。再按列計(jì)算每列的重心坐標(biāo)l,每列內(nèi)的像素?cái)?shù)值即為亮度gj,列內(nèi)像素縱坐標(biāo)為lj,然后利用重心公式(8)計(jì)算加權(quán)平均數(shù)以得到每列的重心坐標(biāo)l。
(8)
如圖4計(jì)算的亮線重心所示此時(shí)計(jì)算得出的重心包含了魚體身上的多個(gè)重心以及未照射在魚體上的亮線重心,可將非魚體身上亮線的重心坐標(biāo)設(shè)為閾值僅保留魚體上的亮線重心。
綜上所述,本研究的基于線激光三角法的魚體測距系統(tǒng)的整體架構(gòu)如圖5所示。
圖5 魚體測距整體架構(gòu)
首先根據(jù)水下拍攝的各種角度和不同距離的張正友標(biāo)定板照片進(jìn)行照片的畸變校正,獲得本次試驗(yàn)所使用的兩個(gè)工業(yè)攝像頭的相機(jī)內(nèi)參和畸變參數(shù)。將獲得的相機(jī)內(nèi)參和畸變參數(shù)代入到需要矯正的照片中,使照片中的魚體和線激光線條的大小和關(guān)系都恢復(fù)到實(shí)際場景的大小和比例關(guān)系。矯正前后的結(jié)果如圖6所示。
圖6 圖像矯正前后對比
將矯正后每間隔 2 cm的標(biāo)定板照片進(jìn)行提取對應(yīng)距離下的激光亮線的坐標(biāo),使用多項(xiàng)式非線性回歸分析并擬合出距離與像素坐標(biāo)的曲線系數(shù)。多項(xiàng)式回歸的本質(zhì)是將一個(gè)低維空間里的數(shù)據(jù)集通過非線性變換映射到一個(gè)高維空間中,從而給線性回歸提供更豐富的特征信息。因此,本研究在訓(xùn)練集中,通過多項(xiàng)式函數(shù)對自變量進(jìn)行轉(zhuǎn)換,將低維映射到高維,然后對新的自變量和因變量擬合線性模型。通過sklearn.preprocessing中的Polynomial Features來實(shí)現(xiàn)這一操作,激光亮斑的像素坐標(biāo)與距離正相關(guān)。激光測距曲線如圖7所示。
圖7 激光測距曲線圖
為提高激光測距精度,需要確定一元多項(xiàng)式的最優(yōu)階數(shù)[33]。為此本研究選擇了多次迭代多項(xiàng)式回歸模型,可以通過增大多項(xiàng)式的階數(shù)來實(shí)現(xiàn)。在每次迭代中,將上一次得到的模型作為初始模型,使用更高階數(shù)的多項(xiàng)式回歸模型擬合數(shù)據(jù),并更新模型參數(shù)。重復(fù)進(jìn)行多次迭代,可以得到不同階數(shù)的多項(xiàng)式回歸模型,還在每次迭代后可視化了模型擬合結(jié)果。不同階數(shù)的擬合結(jié)果如圖8所示。
圖8 不同階數(shù)的擬合結(jié)果
通過比較不同階數(shù)下的預(yù)測結(jié)果,可以判斷模型在數(shù)據(jù)上是否出現(xiàn)欠擬合或過擬合現(xiàn)象。從而找到適合我們的多項(xiàng)式階數(shù)。從圖 8 來看,3 階到 5 階的擬合結(jié)果接近,6階7階在近距離下的擬合結(jié)果不佳,具有明顯誤差。不同階數(shù)時(shí)的具體誤差分析,如表1所示。
表1 不同階數(shù)的誤差分析
從表1中的數(shù)據(jù)可以看出當(dāng)多項(xiàng)式階數(shù)為5時(shí),平均誤差和方差最低,平均誤差僅有5.654 mm,故本研究選擇一元五階多項(xiàng)式(9)來預(yù)測激光距離。
S=a5x5+a4x4+a3x3+a2x2+a1x+a0
(9)
針對魚體測距本研究通過標(biāo)定所擬合得到的激光距離與圖像像素點(diǎn)坐標(biāo)的非線性回歸公式計(jì)算出魚體與激光器的距離。對魚體身上的激光輪廓重心識別部分結(jié)果如圖9所示。
圖9 魚體重心識別結(jié)果
圖10 魚體表面激光相鄰列重心坐標(biāo)關(guān)系圖
由圖9可見激光散射所識別出的線激光輪廓并不連續(xù),但在魚體表面上的激光均能識別出部分輪廓,對識別出的輪廓計(jì)算每列的重心,并將重心在圖像中以藍(lán)色圓點(diǎn)標(biāo)記出來。這些重心的像素坐標(biāo)都可以進(jìn)行測距,得出魚體的不同部位的距離。通過分析圖9D魚體相鄰列的重心坐標(biāo)大小關(guān)系如圖 10 所示。
X為列數(shù),Y為對應(yīng)列的重心坐標(biāo),以像素為單位??偣驳牧袛?shù)為 351 列,識別出的最大值為314,最小值295,可見差值最大為19個(gè)像素,通過分析得出 91.7%的相鄰列重心坐標(biāo)差值在5像素內(nèi)。由上圖可見重心坐標(biāo)往增大趨勢,反映了魚體由前往后變遠(yuǎn)的趨勢。
由于魚在水下環(huán)境中不斷游動將很難測出實(shí)際的魚體距離,故本研究采用標(biāo)定板在水下不同的位置來驗(yàn)證魚體測距系統(tǒng)預(yù)測的準(zhǔn)確性。利用前面提到的(9)式來計(jì)算激光端面到標(biāo)定板的距離,根據(jù)標(biāo)定所拍圖像得出了上攝像頭的一元五次多項(xiàng)式回歸的系數(shù),a5=1.542 972 25×10-14,a4=4.547 337 69×10-11,a3=3.520 692 02×10-8,a2=2.486 386 20×10-5,a1=5.362 824 03×10-2,a0=49.966 213 855。確定回歸系數(shù)后,將被測物的圖像上的激光輪廓重心坐標(biāo)代入(9)式即可計(jì)算出距離,驗(yàn)證測量精度,見表2。從表2可以看出,隨機(jī)選取的56~92 cm內(nèi)的80%預(yù)測結(jié)果的誤差都在7.000 mm內(nèi),最大的誤差是12.920 mm也都滿足了本研究標(biāo)定時(shí)最大2 cm誤差的要求,胡波等[34]提出的基于圖像的水下三點(diǎn)激光測距方法在2.33 m內(nèi)的測量誤差高達(dá)35 cm,李坤等[12]提出的強(qiáng)度調(diào)制532 nm激光水下測距方法在 3 m內(nèi)誤差為 12 cm,本試驗(yàn)在量程0.5~1.5 m量程內(nèi)平均誤差僅為0.56 cm,能夠滿足水下目標(biāo)較近距離的測量精度要求,且成本低并簡化了測距所需參數(shù),僅需識別水下目標(biāo)物體重心坐標(biāo),代入定標(biāo)擬合的一元多項(xiàng)式即可計(jì)算距離。綜上所述,本研究提出的一元多項(xiàng)式回歸模型是能夠準(zhǔn)確地預(yù)測水下測距的。
表2 激光測距預(yù)測誤差分析
針對傳統(tǒng)的線激光三角法測距原理以及相機(jī)成像原理進(jìn)行深入研究,設(shè)計(jì)了一種基于線激光三角測距法的魚體測距系統(tǒng)。通過激光亮線照射在被測物身上,為被測物測距提供了大量的特征點(diǎn),多次標(biāo)定,簡化了測距需要的參數(shù),僅需像素坐標(biāo)即可預(yù)測距離,使得測距更加簡易,并將其應(yīng)用于魚體測距上,為魚體測量中的非接觸動態(tài)魚體尺寸測量提供更多的思路,而不局限于使用雙目攝像頭獲得魚體三維信息。同時(shí)在對圖像提取像素點(diǎn)坐標(biāo)前,通過張正友標(biāo)定法獲得了本試驗(yàn)攝像頭的相機(jī)內(nèi)參和畸變參數(shù),進(jìn)而將圖片恢復(fù)到了一個(gè)與實(shí)際場景的大小和比例關(guān)系相當(dāng)?shù)乃?。識別出了魚體表面的激光亮線,并實(shí)現(xiàn)了一種基于亮度分布的重心識別法,計(jì)算出了魚體表面激光重心。提取矩形標(biāo)定板的光斑重心坐標(biāo)信息與距離的回歸關(guān)系,擬合了多個(gè)不同階數(shù)一元多項(xiàng)式,并分析得到一元五階多項(xiàng)式的平均誤差最低,僅為5.654 mm。最后隨機(jī)分析了不同距離下的預(yù)測距離的誤差情況,得出結(jié)果均滿足標(biāo)定時(shí)所設(shè)定的2 cm內(nèi),將其應(yīng)用魚體尺寸測量具有良好的精度,本研究下一步將結(jié)合深度學(xué)習(xí)模型實(shí)現(xiàn)動態(tài)魚體尺寸測量和種類分析。
□