閆家興,劉 敏
(河北農(nóng)業(yè)大學(xué)海洋學(xué)院,河北 秦皇島 066000)
在傳統(tǒng)的凡納濱對蝦養(yǎng)殖過程中,需要根據(jù)養(yǎng)殖經(jīng)驗確定投喂量,容易導(dǎo)致飼料過剩或不足的問題。為解決這一問題,研究者建立預(yù)測模型預(yù)測投喂量,主要使用BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型對水產(chǎn)養(yǎng)殖投餌量進(jìn)行預(yù)測(楊加慶,2018;陸天辰,2020)。近年來,隨著計算機深度學(xué)習(xí)的發(fā)展,相關(guān)模型具有更強的數(shù)據(jù)挖掘和泛化能力。何津民(2022)提出IPSO-CNN-LSTM-ATTN 對蝦投餌量預(yù)測模型,改善了BP 神經(jīng)網(wǎng)絡(luò)過擬合和穩(wěn)定性差的問題,然而該類模型訓(xùn)練數(shù)據(jù)來自養(yǎng)殖記錄,這需要人工長期進(jìn)行記錄。
目前計算機視覺技術(shù)快速發(fā)展,本文設(shè)計一個對蝦投餌量預(yù)測系統(tǒng),從圖片中挖掘蝦群表型數(shù)據(jù),可根據(jù)蝦群照片直接得出預(yù)測投餌量。投餌量預(yù)測值是根據(jù)系統(tǒng)預(yù)測蝦群的體重計算得出,因此能夠精準(zhǔn)預(yù)測蝦群體重是系統(tǒng)的核心。
基于計算機視覺的餌料精準(zhǔn)投喂系統(tǒng)流程如圖1所示。首先將輸入的圖片進(jìn)行預(yù)處理,特征提取后進(jìn)行目標(biāo)檢測和實例分割,獲得對蝦的數(shù)量和圖像中對蝦背部總面積數(shù)據(jù)信息,并作為梯度回歸模型的訓(xùn)練數(shù)據(jù)集,通過回歸模型的訓(xùn)練和優(yōu)化,實現(xiàn)預(yù)測蝦群體重和精準(zhǔn)估算投喂量。
圖1 精準(zhǔn)投喂系統(tǒng)流程
本研究所用凡納濱對蝦為從市場購買,數(shù)量200 尾,規(guī)格10.9~35.8 克/尾。環(huán)境模擬采用裝有海水的魚缸,共采集群蝦照片2 000張。
精準(zhǔn)投喂系統(tǒng)需要訓(xùn)練學(xué)習(xí)兩個模型的權(quán)重,首先訓(xùn)練的是YOLOv5s-Mask 模型,以該模型的輸出結(jié)果作為輸入數(shù)據(jù)訓(xùn)練回歸模型以獲得其權(quán)值,利用回歸模型完成蝦群體重的預(yù)測值。最終,根據(jù)具體投餌率得到預(yù)測投喂量。
YOLOv5s-Mask 數(shù)據(jù)集構(gòu)建:使用VIVO IQOO Neot5手機攝像頭拍攝,拍攝時鏡頭位于蝦的正上方,拍攝時鏡頭焦距和高度不固定,選擇多種環(huán)境下拍攝群蝦群的背部照片,使得數(shù)據(jù)更加豐富,以提高訓(xùn)練后模型的魯棒性(穩(wěn)健性)。
回歸數(shù)據(jù)集構(gòu)建:工廠化養(yǎng)殖的對蝦在投喂均勻的條件下,對蝦具有體重接近的特點,因此在拍攝照片時,選擇個體重接近的凡納濱對蝦。在拍攝前先選取不同數(shù)量的蝦進(jìn)行稱重,每次稱重后記錄數(shù)據(jù)并拍攝蝦照片,手機攝像頭固定于養(yǎng)殖缸的正上方80 厘米處,同時拍攝過程需注意如下事項:①拍攝時保持手機高度和焦距不變;②采集時保證拍攝整個蝦群的照片;③拍攝的圖片中不能出現(xiàn)與蝦形狀和大小相似的物體,避免對實驗結(jié)果造成干擾。
將體重均勻的凡納濱對蝦圖片放在1個文件夾中,并以稱重結(jié)果重命名,改變蝦的數(shù)量后重復(fù)操作。將圖片像素值降低處理后可以極大提高模型訓(xùn)練速度,數(shù)據(jù)集制作使用labelme標(biāo)注,標(biāo)注結(jié)果見圖2。數(shù)據(jù)集中訓(xùn)練集和驗證集的比例按9∶1分配。
圖2 labelme標(biāo)注
(1)YOLOv5s-Mask模型網(wǎng)絡(luò)結(jié)構(gòu)。YOLO作為單階段目標(biāo)檢測的經(jīng)典代表之一,具有檢測速度快、易于部署的特點。Mask-RCNN作為雙階段目標(biāo)檢測經(jīng)典算法,可完成更為精準(zhǔn)的實例分割,生成Mask掩碼,但檢測速度非常慢。因此以YOLOv5s為基礎(chǔ)模型,可在YOLOv5s的Neck上單獨分出1個檢測頭,以同時完成目標(biāo)檢測和實例分割(Wu 等,2022)。YOLOv5s-Mask模型可以快速地進(jìn)行目標(biāo)檢測和實例分割,但也有部分精度損失。主干網(wǎng)絡(luò)選擇CSPDarknet 進(jìn)行特征提取,采用CPS、Focus結(jié)構(gòu)減少計算量以加速訓(xùn)練,利用SPP特征金字塔池化將Feature map劃分成多個尺度。Neck網(wǎng)絡(luò)進(jìn)行一系列混合和組合圖像特征,并將圖像特征傳遞至預(yù)測層,利用FPN 和PAN 結(jié)構(gòu)融和多級特征,解決目標(biāo)檢測中的多尺度問題。Head 網(wǎng)絡(luò)對最終的特征圖進(jìn)行預(yù)測輸出,包括了蝦實例分割頭和目標(biāo)檢測頭兩個部分,分別對目標(biāo)進(jìn)行分類并輸出置信度。模型損失函數(shù)包括目標(biāo)檢測損失和分隔損失,目標(biāo)檢測損失包括分類損失、置信度損失和定位損失。其中分隔損失和目標(biāo)檢測中分類損失及置信度損失為BCE Loss,目標(biāo)檢測中定位損失為CIoU Loss。
(2)回歸模型。梯度提升回歸(GBR)是一種從錯誤中進(jìn)行學(xué)習(xí)的技術(shù),原理是訓(xùn)練多個弱學(xué)習(xí)器,集成一堆較差的學(xué)習(xí)算法進(jìn)行學(xué)習(xí),每個學(xué)習(xí)算法的準(zhǔn)確率均不高,但集中起來可以獲得較高的準(zhǔn)確率,這是因為每個算法都不是單獨學(xué)習(xí),而是在前一個算法的基礎(chǔ)上進(jìn)行學(xué)習(xí)。
YOLOv5s-Mask 的訓(xùn)練損失包括位置損失、目標(biāo)損失、分割損失等,訓(xùn)練過程中邊框損失降低至0.020 45,分割損失降低至0.021 09。訓(xùn)練結(jié)果表明,訓(xùn)練前80 次損失下降較快,80 次后趨于平穩(wěn),訓(xùn)練過程中沒有出現(xiàn)過擬合和欠擬合現(xiàn)象;模型分隔精度0.99,召回率1,mAP 0.5:0.95 Mask為0.739。
為了探究凡納濱對蝦體重對預(yù)測結(jié)果的影響,本次實驗將10~30 克/尾的蝦以5 克為步長將其分成4 組,按體重范圍從小到大依次分為小蝦、中小蝦、中蝦、大蝦4種類型。數(shù)據(jù)采集時選擇同一類型的蝦,將照片輸入訓(xùn)練好的YOLOv5s-Mask分隔模型,求出群蝦的像素面積和蝦數(shù)量,利用分隔模型進(jìn)行檢測,檢測后得出凡納濱對蝦的類別和置信度,并生成分隔掩碼。YOLOv5s-Mask 模型檢測每張圖片消耗時間為20~30 毫秒,檢測消耗時間小于Mask-RCNN 模型檢測消耗時間(170~200毫秒)。
將統(tǒng)計好的檢測數(shù)據(jù)導(dǎo)入回歸模型進(jìn)行訓(xùn)練,訓(xùn)練后測試數(shù)據(jù)如表1所示。
利用回歸模型評價指標(biāo)對模型進(jìn)行評估,GBR模型擬合優(yōu)度R2為0.936、平均絕對誤差(絕對值)為1.280 克、均方根誤差(絕對值)為2.120 克。最大相對誤差(絕對值)為3.503%,最小相對誤差(絕對值)為0.033%。
相關(guān)性熱力分析表明,凡納濱對蝦預(yù)測體重和其在圖片中所占面積相關(guān)性為0.980,占比最高,其次是蝦的數(shù)量,占比為0.880。根據(jù)相關(guān)性分析熱力圖可以得出,10克/尾以上的蝦體重預(yù)測和蝦群的類型沒有顯著關(guān)系。
蝦的體重是蝦養(yǎng)殖過程中的重要數(shù)據(jù)。有學(xué)者利用計算機視覺和深度學(xué)習(xí)等技術(shù)對養(yǎng)殖動物體重進(jìn)行過預(yù)測(唐楊捷,2019;Dang 等,2022)。對于蝦投餌量的估算,何津民(2022)提出了IPSO-CNN-LSTM-ATTN 對蝦體重預(yù)測模型,最大相對誤差為2.32%,最小相對誤差為0.33%,平均絕對誤差為0.681克。IPSO-CNN-LSTM-ATTN對蝦體重預(yù)測模型從養(yǎng)殖過程中記錄的數(shù)據(jù)中提取特征,最終通過模型預(yù)測投餌量。本文提出的精準(zhǔn)投喂系統(tǒng)的數(shù)據(jù)來源是基于計算機視覺,從圖像中獲取信息。以上兩種方式各有優(yōu)勢,前者模型預(yù)測精度要優(yōu)于本文模型,但不同地域養(yǎng)殖環(huán)境不同,每次更換飼料要重新記錄數(shù)據(jù)并訓(xùn)練模型。本文提出的系統(tǒng)設(shè)計可解決上述因素的影響,但對圖片質(zhì)量和清晰度要求較高。由于蝦體在測量時會有少許水存于其表面,因此在測量蝦體重時也存在一定的誤差。
本文利用計算機視覺完成凡納濱對蝦精準(zhǔn)投喂系統(tǒng)的設(shè)計。系統(tǒng)首先經(jīng)過YOLOv5s-Mask 模型進(jìn)行蝦體的識別和分隔,求出對蝦的數(shù)量和所占像素的面積,通過回歸模型對蝦的體重進(jìn)行回歸預(yù)測,最終根據(jù)蝦群重量計算得出投喂量,實現(xiàn)了對蝦的投餌量預(yù)測。模型mAP 0.5:0.95 Mask為0.739。YOLOv5s-Mask主干網(wǎng)絡(luò)選擇CSPDarknet進(jìn)行特征提取,采用CPS、Focus 結(jié)構(gòu)減少計算量,利用SPP 將Feature map 劃分成多個尺度。Neck網(wǎng)絡(luò)利用FPN和PAN結(jié)構(gòu)融和多級特征,解決目標(biāo)檢測中的多尺度問題。相同面積下,不同生長階段的蝦體重相同。將蝦的體重范圍作為一個因素,驗證是否對預(yù)測結(jié)果造成影響,經(jīng)實驗驗證得出,10克/尾以上的蝦在投喂量預(yù)測時不需要考慮該因素。
本文基于YOLOv5s-Mask 和梯度回歸的對蝦投餌量預(yù)測系統(tǒng)雖然具有智能化程度高、檢測精準(zhǔn)等優(yōu)勢,但也存在依賴養(yǎng)殖水環(huán)境的清晰度的短板,測量時圖片質(zhì)量會影響測量結(jié)果。因此下一步將對模型進(jìn)一步進(jìn)行優(yōu)化,以構(gòu)建性能更好的目標(biāo)檢測、實例分割以及回歸模型。