摘要:為了實(shí)現(xiàn)更高精度的水下魚類體長測量,提出基于分割掩膜和雙目視覺的魚類體長測量方法。通過雙目相機(jī)進(jìn)行水下標(biāo)定后獲得水下圖像;再使用U2-Net分割出魚類目標(biāo)的掩膜,經(jīng)過立體校正以及SGBM(semi-global block matching)立體匹配算法后生成魚體表面的點(diǎn)云數(shù)據(jù);最后通過在歸一化以及點(diǎn)云擬合過程中增加噪聲過濾,降低體長數(shù)據(jù)誤差。結(jié)果表明,該方法經(jīng)過水下標(biāo)定后,精度提升2%左右;增加噪聲過濾后,測量結(jié)果的誤差在4%以內(nèi),相較于現(xiàn)有方法降低2%以上。并且,魚體與相機(jī)夾角在60°以內(nèi)時(shí)都能達(dá)到較高的測量精度,明顯優(yōu)于現(xiàn)有方法。以上研究結(jié)果為水產(chǎn)養(yǎng)殖中的魚類無接觸尺寸測量提供了可行的思路。
關(guān)鍵詞:雙目視覺;U2-Net;三維重建;魚體測量doi:10.13304/j.nykjdb.2023.0581
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1008‐0864(2025)02‐0116‐09
魚的長度信息可以評估魚類養(yǎng)殖期間的生產(chǎn)性能,體現(xiàn)飼養(yǎng)管理的效率,是魚類養(yǎng)殖的重要評估依據(jù)。因此,準(zhǔn)確監(jiān)測魚類生長過程中的體長對于精確飼養(yǎng)以及打撈至關(guān)重要。然而,現(xiàn)有的魚體長度估計(jì)方法主要采用接觸式方法(人工取樣),不僅耗時(shí),而且人力成本也非常高;同時(shí),魚的打撈以及保持其靜止也存在一定難度。因此,亟需研究非接觸的檢測方法來測量魚體長度。
計(jì)算機(jī)視覺技術(shù)可以通過圖像分析獲取目標(biāo)信息,因此其非接觸、快捷的特點(diǎn)越來越受到水產(chǎn)養(yǎng)殖領(lǐng)域的關(guān)注,各個(gè)不同的細(xì)分方向如質(zhì)量分級[1]、品種識(shí)別[2]、計(jì)數(shù)[3]、行為分析[4]等都已開始使用機(jī)器視覺技術(shù)。在魚類生長測量方面,大多數(shù)方法都是先獲取圖像平面中的魚體長度,然后根據(jù)圖像坐標(biāo)與世界物理坐標(biāo)的關(guān)系預(yù)估真實(shí)的長度[5]。傳統(tǒng)的單目相機(jī)無法從圖像坐標(biāo)轉(zhuǎn)換到世界坐標(biāo),因此硬件設(shè)備就需要能獲得三維信息的雙目相機(jī)或者激光雷達(dá)等。由于激光雷達(dá)成本高昂,所以大多數(shù)研究選擇雙目相機(jī)作為拍攝工具。圖像中魚體長度的分析質(zhì)量將直接影響預(yù)估真實(shí)體長的準(zhǔn)確性。
在利用圖像預(yù)估魚類體長的方向上,早期已經(jīng)進(jìn)行了一些研究[6-8]。Hsieh 等[9]使用霍夫變換和投影變換來校正在漁船甲板上拍攝的魚體圖像,實(shí)現(xiàn)了金槍魚口叉長度(snout to fork length,SNFL)的測量。Chuang等[10]在雙局部閾值圖像上采用直方圖反投影方法解決了拖網(wǎng)內(nèi)魚類分割的問題。為了實(shí)現(xiàn)完整的輪廓提取,Qussay等[11]使用膨脹-腐蝕的方法來增強(qiáng)魚缸中自由活動(dòng)魚類個(gè)體的分割圖像。Shafait等[12]記錄了南方藍(lán)鰭金槍魚從拖網(wǎng)籠游到生長籠時(shí)的情況,并使用人工操作標(biāo)記的魚鼻和尾叉之間的線段來測量魚的長度。
此外,Costa等[13]訓(xùn)練了3層感知器的人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN),根據(jù)雙視頻圖像中的端點(diǎn)坐標(biāo)來測量北方藍(lán)鰭金槍魚的體長,相較于傳統(tǒng)算法,準(zhǔn)確率大幅提升。與此類似,許多研究都是通過類似關(guān)鍵點(diǎn)檢測來獲取魚頭部和尾部的關(guān)鍵點(diǎn),然后使用兩點(diǎn)之間線段的長度作為魚的體長。Zhao等[14]通過拍攝俯視圖、獲取魚體中心線的方法,實(shí)現(xiàn)了魚類體長測量,為彎曲狀態(tài)下的魚體測量提供了可行方案。然而,在實(shí)際應(yīng)用中,這種基于二維圖像的方法會(huì)由于圖像質(zhì)量影響關(guān)鍵點(diǎn)檢測的精確度,并且雙目相機(jī)的立體視覺特性并未得到很好的發(fā)揮。由此,Mu?oz-Benavent等[15]使用魚體建模的方法來構(gòu)建金槍魚體型,根據(jù)模型可以準(zhǔn)確獲得其體長數(shù)據(jù),該方法對于金槍魚的測量精度非常高。周佳龍等[16]使用SOLOv2模型以及三維姿態(tài)擬合來計(jì)算紅鰭東方鲀的體長,并計(jì)算體長與質(zhì)量的相關(guān)性,利用擬合公式可由體長推算魚類體質(zhì)量,實(shí)現(xiàn)了魚類生長狀態(tài)的多維度監(jiān)測。李艷君等[17] 和Huang等[18]分別使用雙目相機(jī)獲得魚類的三維點(diǎn)云數(shù)據(jù),通過點(diǎn)云的橢球擬合來獲取魚的體長數(shù)據(jù),取得較好效果,為魚類體長測量提供了新思路。雖然上述成果的測量精度較前人有一定的提升,但仍然存在標(biāo)定誤差或者噪聲點(diǎn)等問題。因此,本研究根據(jù)上述成果提出一種基于分割掩膜和雙目視覺的魚體測量方法。該方法基于水下環(huán)境的雙目相機(jī)標(biāo)定,減小了由于標(biāo)定帶來的誤差;采用對小體量數(shù)據(jù)集訓(xùn)練效果較好的U2-Net[19]進(jìn)行分割掩膜的獲取,隨后參照文獻(xiàn)[18]的研究思路,使用三維點(diǎn)云來計(jì)算魚類體長,發(fā)揮了雙目相機(jī)的立體視覺特性,并且在點(diǎn)云生成過程中加入了噪聲點(diǎn)過濾,有利于提高測量精度。此外,該方法不會(huì)干擾魚的正?;顒?dòng),除雙目相機(jī)外,不需要任何額外的水下設(shè)備,成本低廉。
1 材料與方法
1.1 圖像采集
本研究數(shù)據(jù)集中的圖像數(shù)據(jù)采集于上海市某農(nóng)業(yè)水產(chǎn)養(yǎng)殖基地,拍攝設(shè)備為雙目立體相機(jī)(Rovmaker),采集視頻的分辨率為640×480,幀率為30 fps( frames per second)。采集時(shí)間為12:00—15:00,光照條件為室內(nèi)自然光,共采集到180 min的監(jiān)控錄像,利用Fast Stone Capture 截圖工具截取幀獲得圖像。由于水下相機(jī)清晰度的原因,部分圖像中魚體的邊緣會(huì)模糊不清,對后續(xù)的分割產(chǎn)生阻礙,同時(shí)魚體彎曲也會(huì)極大地影響測量的精確性。為保證訓(xùn)練集圖像的相對理想性,篩選出魚輪廓清楚可辨、魚身無彎曲或輕微彎曲的560幅質(zhì)量較高的圖像制成數(shù)據(jù)集。
數(shù)據(jù)集中采集的魚類樣本種類為加州鱸魚(Micropterus salmoides)和美洲鰣魚(Alosa sapidissima),分別挑選3條不同成長時(shí)期的魚,總計(jì)6條作為拍攝對象。將拍攝體長數(shù)據(jù)的每尾魚做人工測量并記錄保存。
1.2 圖像處理
1.2.1 水下標(biāo)定與立體校正 為獲取目標(biāo)圖像的三維信息,需對圖像進(jìn)行三維重建。首先對相機(jī)進(jìn)行標(biāo)定,獲取其內(nèi)參以及外參矩陣。使用標(biāo)定法[20]獲取空氣中的內(nèi)參,即旋轉(zhuǎn)矩陣R、平移向量T 以及徑向和切向的畸變系數(shù)。隨后將相機(jī)放入水下,忽略光線在防水罩內(nèi)部的折射情況[21],得到簡化的水下相機(jī)成像模型,如圖1所示。