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