






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