胡學龍 ,朱文韜 ,,楊信廷 ,王丁弘 ,潘 良 ,曾昱皓 ,周 超 ※
(1.揚州大學信息工程學院, 揚州 225127;2.北京市農林科學院信息技術研究中心, 北京 100097;3.國家農業信息化工程技術研究中心, 北京 100097;4.農產品質量安全追溯技術及應用國家工程研究中心, 北京 100097)
飼料是工廠化循環水產養殖中重要的可變成本之一,可占總成本的50%以上[1]。實際生產中的投喂主要是以人工判斷和機械投喂為主,無法根據魚類的實際需要進行投喂,易造成投喂過量或不足。過量投喂不僅會導致飼料浪費,還會污染水體環境,增加魚類患病風險[2-3]。而攝食強度可直接反映魚類食欲[4],并用于指導投喂,有助于解決上述問題。因此,對魚類攝食強度進行實時準確識別成為實現精準投喂的關鍵。
近年來,基于視覺、聲音和水質傳感器的方法被應用于魚類攝食強度識別[5]。例如,DUARTE等[6]通過幀差法,得到魚類攝食引起的圖像區域面積變化,并以此作為魚類活動的評價指標。ZHOU等[7]利用圖像紋理和光流評估攝食強度,并建立自適應網絡模糊推理系統(adaptive network-based fuzzy inference system,ANFIS),實現了自動按需投喂。陳彩文等[8]基于魚群背景圖片提取目標魚群,并使用灰度共生矩陣對逆差矩、相關性、能量和對比度4個紋理特征分析魚群的攝食活動。ZHOU等[4]提出一種基于LeNet5框架的攝食強度評價系統,避免了人工特征提取帶來的誤差,并將攝食強度分為“無”、“弱”、“中”、“強”4個等級。陳雨琦等[9]將工廠化循環水養殖池中魚群攝食視頻作為前景提取并獲取傅里葉頻譜特征,使用得到的特征訓練支持向量機(support vector machines, SVM)以判斷攝食狀態。UBINA等[10]將光流和RGB特征融合到3D CNN網絡中,以此對魚類攝食強度進行預測,準確率大于90%。YANG等[11]提出了一種基于Efficient EntNet-B2的雙注意力網絡,通過研究攝食圖像中興趣區域之間的空間關系分析魚群短時攝食行為??傮w而言,基于深度學習的視覺分析方法精度較高[4]。
雖然基于視覺的方法方便有效,但在水體渾濁、環境變化等情況下,此時攝食時的聲音成為另一個重要指標[5]。LAGARDèRE等[12-13]通過監測大菱鲆(Scophthalmus maximus)攝食聲音頻譜,發現攝食過程中產生在7~10 kHz頻率范圍內的聲音強度為15~20 dB,其反映了攝食強度波動。聲學傳感器也被用于判斷魚類攝食強度,在昏暗和不均勻光照條件下能夠進行有效識別[14-15]。曹曉慧等[16]采用被動聲學技術獲取單體大口黑鱸(Micropterus salmoides)攝食聲音信號,從混合信號中提取完整的攝食信號,成功篩選出衡量大口黑鱸攝食活躍度的聲學特征參數。NODA等[17]對音頻信號進行預處理,并使用梅爾倒譜系數(mel-scale frequency cepstral coefficients,MFCC)對其進行參數化,以獲得分類相位信息,最終通過支持向量機識別了102種魚類聲音。此外,一些聲學特征尚雖未被運用到魚類研究,但也在其領域取得了顯著成果。例如,LIU[18]在研究語音情感識別時發現伽馬通頻率倒譜系數(gammatone frequency cepstral coefficients,GFCC)相對于MFCC具有更強的抗噪聲表達能力,在情緒識別時性能更優。RAMASHINI等[19]比較了MFCC、LPCC(linear prediction cepstral coefficients)和GFCC,發現GFCC特征在鳥類鳴叫分類方面準確率較高。然而,聲學技術容易受到環境噪聲干擾,限制了其在實際生產實踐中的應用[20]。
水質等環境參數也已用于攝食強度評估。水質(如水溫、溶解氧濃度、pH值、氨氮化合物等)變化會直接影響魚類食欲[21-23]。溫度可影響魚類新陳代謝率,從而影響其獲取食物的能力和欲望[24]。WU等[25]通過檢測投喂時魚群聚集和斗爭對溶解氧濃度的影響,開發了一種自適應的模糊推理系統,用于魚類投喂決策。SK?IEN等[26]研究發現魚的攝食行為也會隨著溶解氧濃度的變化而發生變化。例如,投喂時,局部溶解氧濃度會降低,未攝食的顆粒沉積在水底也會引起溶解氧和氨氮化合物濃度變化。因此,水質數據在一定程度上能夠反映魚類攝食狀態。
多模態相比單模態蘊含更豐富的信息,在檢測和分類方面展現出超越單模態的性能,并已在多方面得到應用。例如,LIU等[27]提出了低秩多模態融合(Low-rank Multimodal Fusion)方法,其使用低秩張量融合大大提升了模型運算效率。TSAI等[28]提出了一種多模態Transformer(multimodal transformer,MulT),該算法通過融合視覺、聲音和文本信息進行情感分類,相比傳統方法,精度至少提升5%。在農業中,KERKECH[29]等將可見光和紅外圖像融合繪制葡萄園的患病區域。車熒璞等[30]通過融合圖片和光譜等信息檢測玉米表型性狀,克服了冠層飽和問題,驗證了多模態在生物量估測精度方面的性能。WAKAMORI[31]提出了一種基于聚束雨滴的多模態神經網絡(C-Drop),通過整合生理和氣象數據準確估計植物水分壓力。SHEN[32]基于隨機森林(RF-RFE)和CNN提取聲學和視覺特征,并將這2種特征通過早期融合輸入支持向量機,實現了豬咳嗽聲的識別。
為將多模態融合引入魚類攝食強度識別并提升其識別精度,本文針對以上問題,以實現水產養殖中的水質-聲音-視覺融合為目標,提出一種基于MulT算法[28]改進的Fish-MulT攝食強度量化算法,首先引入多模態轉移模塊(multimodal transfer module,MMTM)對輸入3種模態的特征向量進行特征級融合,保留重要特征,并抑制非重要特征,得到各模態融合后的向量;其次,對融合后的3種模態添加自適應權重(adaptive weight)后得到融合模態F;最后,通過融合模態F將MulT算法優化為Fused MulT算法,以克服單一模態難以完全反映攝食狀態的片面性,提高攝食強度量化的準確率。為開發精準投喂系統提供技術支持。
試驗在北京市農林科學院信息技術研究中心的工廠化循環水養殖實驗室進行。數據采集平臺如圖1所示。該平臺由6個高1.2 m、直徑和水深為1 m的養殖池組成。并配備制氧機、循環水處理裝置、水質傳感器等設備。試驗用魚為金鱒魚(Oncorhynchus aguabonita),單體質量為(500±10)g,養殖密度為(8±1)kg/m3,溶解氧為(9~12)mg/L,水溫為(14~16)℃。投喂頻率為每日一次,時間為下午5:00,每個養殖池投喂量為(100±10)g。為消除環境變化的影響,試驗前對所有魚進行為期一個月的適應性養殖。此外,為模擬真實養殖環境,試驗燈光在白天保持常亮,以消除魚類趨光性對試驗的影響。

圖1 試驗裝置與數據采集系統Fig.1 Experiment equipment and data collecting system
為避免水面反光影響圖像采集的質量,本研究使用GoPro運動相機在水下10 cm處采集數據,其不僅可以捕捉整個養殖池區域,還可消除投餌機與相機相對位置的影響。音頻數據采樣頻率為44.1 kHz。視頻幀率為60幀/s,像素分辨率為1 920×1 080。采用電化學水質傳感器采集水質數據,包括溫度、pH值和溶解氧3種參數。
根據?VERLI提出的魚類攝食強度分類標準[33],本文將攝食強度分為“強”、“中”、“弱”、“無”4類,如表1所示。

表1 魚類攝食強度分級Table 1 Grading of fish feeding intensity
將采集的視頻和音頻統一剪輯為4 s片段。從水質傳感器中記錄的文件中提取水質數據。共得到1 293組3模態數據,其中70%的數據隨機作為訓練集,15%作為驗證集,15%作為測試集。
多模態數據量較大,為更高效合理利用數據,減少計算量,首先需對3種模態數據進行特征提取,具體流程如圖2所示。

圖2 特征提取流程Fig.2 Flow chart of feature extraction
視頻特征提取過程如圖2a所示。基于Kenetics-400[34]的SlowFast[35]預訓練模型用于視覺特征提取,其網絡結構如圖3所示。SlowFast網絡以64幀作為特征提取的基本單元,輸入路徑分為Slow和Fast。Slow路徑捕獲空間信息,Fast路徑捕獲運動信息。該算法利用不同速率下的差異捕捉幀的動態變化,并將每幀圖像縮放到256 × 340。為了最大限度地利用每一幀的變化,將視頻分為4個基本單元,最后通過線性層得到1 × 2 304維的視頻特征向量。

圖3 SlowFast網絡結構Fig.3 SlowFast network structure
魚類攝食時,頜骨或咽部牙齒咬合時會發出摩擦聲。聲音頻率組成范圍較廣,低頻小于100 Hz,高頻超過8 000 Hz,但主頻在1 000~4 000 Hz之間[36]。音頻特征提取過程如圖2b。對采集的44.1 kHz音頻信號進行下采樣到16 kHz,并從音頻中提取能量譜圖,將能量譜圖轉換為GFCC譜圖。最后,利用ResNet50[37]網絡提取GFCC譜圖信息,得到1×2 048維的音頻特征向量。
水質數據處理如圖2c所示。水質數據的采集間隔為12 s,本文將整個攝食階段的水質數據進行3次函數擬合。以0.01 s為間隔,沿擬合曲線對相應視頻時間段進行采樣,得到401維數據,并進行歸一化處理。最后將pH值、溶解氧、溫度等水質特征連接,得到1×1 203維的水質特征向量。
本文提出的改進Fish-MulT算法,如圖4所示。具體改進如下:首先,引入多模態轉移模塊(multimodal transfer module,MMTM)對輸入的3種模態的特征向量進行融合;然后,針對融合后的3種模態添加自適應權重(adaptive weight)后得到融合模態F;最后,通過融合模態F將MulT算法優化為Fused MulT算法。

圖4 Fish-MulT算法結構圖Fig.4 Structure diagram of Fish-MulT algorithm
MulT算法[28]由一維卷積(Conv1D),位置編碼(position embedding),跨模態Transformer(cross-modal transformer),自注意力Transformer(self-attention transformer)和線性層構成。其中一維卷積可以增強一維特征向量相鄰信息交互。位置編碼為向量添加顯式位置信息。
跨模態Transformer作用為表征一個模態對于另一模態潛在適應性。而自注意力Transformer可收集時間維度上的信息。最后經過線性層映射得到輸出結果。對于3種模態(視覺V,聲音A和水質W),MulT算法中的跨模態Transformer用于表征其中2種模態分別對于第3模態的適應性(如水質對于視覺的潛在適應性以及聲音對于視覺的潛在適應性,記作W→V和A→V),無法表征3種模態之間的適應。因此本文考慮使用融合模態F表征3種模態之間的適應性(即使用F→V代替W→V和A→V)。
為了得到融合模態F,需要對3種模態進行特征間的融合。本文引入多模態轉移模塊(multimodal transformer module,MMTM)實現不同模態數據特征間的融合[38]。并在原始模型雙模態融合的基礎上擴展為3模態,如圖5所示。

圖5 多模態轉移模塊結構Fig.5 MMTM(multimodal transfer module) structure diagram
MMTM主要由壓縮單元、激勵單元和激活函數Sigmoid構成。壓縮單元使用全局平均池化,獲得各模態壓縮向量,對壓縮向量進行連接并通過線性層映射得到融合向量。激勵單元通過線性層獲得各模態的激勵向量。最后通過Sigmoid函數和初始向量進行點積運算,強調重要特征,并抑制非重要特征。
MMTM具體實現過程如下,設輸入特征向量分別為XV、XA和XW,經過全局平均池化,得到壓縮向量SV、SA和SW,分別為
式中K、L、H和Ni、Mi、Oi分別為XV、XA、XW的維度數和第i個維度大小。
將SV、SA和SW連接后送入線性層,映射得到融合向量Z:
式中W為映射矩陣,b為偏置。激勵向量EV、EA和EW通過獨立的線性層映射得到:
式中σ代表Sigmoid函數,⊙為點積操作,以此對每個通道進行抑制或激活。
由于MMTM輸出結果為融合后的3種模態特征向量,為得到融合模態F,需要對3種模態向量進行求和運算,然而不同模態對準確率的貢獻不同,因此需要在求和之前為每個模態添加權重w。本文采用自適應權重(adaptive weight)的方式為各模態添加權重,具體如下:
wi定義為
式中αi為對應模態輸入節點的訓練權重,隨優化器的梯度下降而改變,k為放大系數,能夠加快wi的收斂。
本文使用融合模態F對MulT算法中的跨模態Transformer的數量進行優化,得到Fused MulT算法,如圖6所示。MulT算法中跨模態Transformer只能表征一種模態到另一模態的潛在適應性,由于存在視覺V、聲音A和水質W3個模態,故每路分支使用2個跨模態Transformer(例如W→V和A→V),表征其中2個模態分別對于第3模態的潛在適應。通過引入融合模態,并使用融合模態F對各模態的潛在適應代替各支路的跨模態Transformer(例如使用F→V代替W→V和A→V),得到Fused MulT算法。故Fused MulT相比MulT,只使用50%的跨模態Transformer。

圖6 Fused MulT與MulT的算法結構Fig.6 Algorithm structure of Fused MulT and MulT
本文中,模型輸入為視頻、音頻和水質向量,為了使輸入序列的每個元素與相鄰的元素充分交互,將該序列通過一維卷積(Conv1D)進行變換。Conv1D的輸入序列長度Lin,則輸出序列長度Lout為
式中k為卷積核大小;p為填充大??;d為卷積核內同一維度上相鄰元素之間差異;s為卷積核步長。
對于位置編碼PE(position embedding),本文遵循了Vaswani和Tsai的方法[28,39]。序列X∈RT×d(其中T為長度,d為經過卷積輸出的維度)的PE定義為
跨模態Transformer的核心為跨模態注意力(crossmodal attention,CMA)[28],本文的跨模態注意力結構如下:輸入為模態α和融合模態F,模態α記為Xα∈RTα×dα,融合模態F記為XF∈RTF×dF,Tα和TF表示序列長度,dα和dF表示特征維度。在跨模態注意力中,模態α的注意力矩陣Qα和融合模態F的注意力矩陣KF和VF定義為
跨模態Transformer結構[28]由D個如圖7所示的跨模態注意力塊疊加構成。

圖7 跨模態注意力塊結構Fig.7 The structure of cross-modal attention block
設第0層模態α的輸入為,融合模態F的輸入為,則跨模態Transformer的融合模態F關于模態α的D層前饋運算為
式中fθ為由θ參數化的位置前饋子層[28],為CMAF→α在第i層的多頭注意力[39]。LN為層歸一化[40]。則融合模態F到模態α的跨模態Transformer記作(F→α)。本文使用的3個跨模態Transformer分別記作(F→V,F→A和F→W)。
然后,將跨模態Transformer的輸出輸入到自注意力Transformer(self-attention transformer)[39]以收集時間信息。最后將3種模態經過自注意力Transformer后得到的輸出向量進行連接,并通過線性層映射得到預測結果。結果被限制在1到4之間并向上取整,得到4類標簽,為1,2,3,4,分別代表“無”、“弱”、“中”和“強”。
本研究基于準確率(Ac)、精度(Pr)和召回率(Re),準確率為正確識別各種攝食強度的概率,為正確分類的樣本數量與樣本總數的比例。精度是在特定攝食強度下,正確分類樣本在所有預測為該特定攝食強度樣本中所占的比例。召回率是正確分類的攝食強度占所有該強度總樣本的比例。
為驗證本文算法的性能,在相同試驗環境下,將該算法和MulT等多模態算法進行比較。試驗環境如下:GPU 為Nvidia GTX1650,CPU為 AMD Ryzen 5 3500X,CUDA版本為10.0。
訓練參數Batch size設置為24,初始學習率設置為0.001,訓練180個Epoch。使用Adam優化器優化網絡參數。經過20個Epoch訓練,若訓練集損失函數(loss function)大小并未減少,則將學習率降低為上一階段的0.1倍。
試驗結果如表2所示。對于單模態模型,采用視覺的SlowFast算法確率達到91.75%,遠高于采用聲音的GFCC頻譜和ResNet50組合。水質準確率較低,可能由于投喂時間短,水質參數變化較小。經過多模態融合后的模型準確率明顯高于單模態。使用3種模態融合的MulT算法準確率為93.30%。而本文模型在3種模態融合情況下,準確率達95.36%,比MulT高2.06個百分點,相對視覺、聲音和水質等單一模態方法分別提高3.61、21.65和68.56個百分點。此外通過抑制MulT和本文模型某一模態的輸入,發現雙模態的準確率基本優于單一模態。

表2 各模型魚類攝食強度識別準確率對比表Table 2 Comparison table of fish feeding intensity identification accuracy of each model
MluT和本文模型的準確率和損失函數曲線如圖8所示,本文模型的準確率曲線在80個訓練周期之后始終保持在MulT算法準確率曲線的上方。由損失函數曲線可知,本文模型在第80個周期左右開始收斂,而MulT算法在第100個周期左右開始收斂,本文算法的損失函數收斂速度優于MulT算法。

圖8 MulT和Fish-MulT性能對比Fig.8 Performance comparison between MulT and Fish-MulT
表3對比了3種多模態模型參數和每個Epoch平均訓練時間,結果顯示,與MulT相比,本文模型參數減少38%,訓練時間減少29%。與Fusion-Based-CM-Attn-MulT[41]相比,參數量下降了28%,訓練速度也有所提升。其原因為MulT模型每個模態分支使用2個跨模態Transformer,而本文模型每個分支只使用1個,可減少參數,并加快訓練速度。

表3 多模態模型參數量和訓練時間比較Table 3 Comparison of parameters and training time between multimodal models
圖9比較了5種模型精度和召回率,結果表明本文模型(Fish-MulT)對“強”、“中”、“弱”和“無”4種攝食強度的識別精度達到最高,分別為93.62%、94.74%、95.12%和97.06%。并且在“弱”和“中”這2個標簽上的召回率明顯優于其他模型,達到95.12%和92.31%,在“無”標簽方面略微落后Fused MulT模型1.42個百分點。

圖9 不同模型的精度和召回率對比Fig.9 Comparison of Precision and Recall of different models
本文對多模態轉移模塊MMTM和自適應權重進行消融試驗,如表4所示。選擇Fused MulT作為基線模型。基線模型準確率為93.81%。分別單獨加入MMTM和自適應權重后,準確率提高了1.04個百分點。在二者均加入的情況下,模型準確率達到95.36%。結果表明,二者都對準確率的提升起到一定作用。

表4 Fish-MulT消融試驗Table 4 Ablation experiment of Fish-MulT
本文模型識別結果和歸一化混淆矩陣如表5和圖10所示,歸一化混淆矩陣的左上到右下的對角線表示每個分類的識別準確率,對角線外區域表示錯誤分類區域。“無”、“弱”、“中”、“強”4個攝食強度類別識別精度和召回率均在90%以上,整體識別準確率為95.36%。值得注意的是,只存在相鄰類別的誤判,而不存在跨越一個及以上等級的誤判?;煜仃嚨慕Y果表明本文模型識別準確率高,穩定性好。

表5 Fish-MulT算法識別結果Table 5 Identification results of Fish-MulT algorithm

圖10 Fish-MulT算法識別準確率歸一化混淆矩陣Fig.10 Normalized confusion matrix of identified accuracy by Fish-MulT
本文針對不同模型推理攝食強度的速度進行了對比實驗,推理速度為每個片段的識別時間,結果如表6所示。

表6 模型推理速度對比Table 6 Comparison of different models with inference speed
表6為不同模型對于每個4 s 攝食片段的平均推理用時對比。MulT算法對于每個片段的推理用時最久,為0.093 5 s,本文模型在MulT的基礎上改進,減少了參數量,推理速度優于MulT。相比MulT,推理速度提升15.72%。此外,由表6可見,本文模型雙模態的推理速度優于3模態。而單模態的SlowFast模型推理速度最快,達到0.022 3 s。雖然多模態模型的推理速度相比單模態不占優勢,但是整體的推理速度均較快,推理用時占片段用時的占比小于2.5%,精度優勢的重要性遠大于時間優勢。
為驗證本文模型預測能力,測試其在一段完整的未經訓練的攝食視頻上的性能。視頻長度為180 s,使用滑動窗口覆蓋4 s作為視覺模態輸入。每次滑動距離為1 s。直接從視頻中提取音頻數據,水質數據通過3次函數擬合獲得。最后得到177個預測結果。
圖11為預測結果與真實值對比,4種狀態變化預測時間點接近真實變化點。對于完整攝食過程預測,“弱”和“無”的預測準確率略低于試驗結果??赡茉蚴钦麄€攝食視頻中“弱”和“無”的時間相對較長,投喂后養殖池內漂浮物增加,也在一定程度上影響了視覺模態的識別效果。此外,魚群不規則游動也會給識別帶來一定挑戰??傮w上,177個片段的平均準確率為87%,能夠較準確識別4種攝食狀態變化和把握攝食強度變化的時間點,可為工廠化循環水養殖系統實現精準投喂提供算法支持。

圖11 攝食過程預測結果Fig.11 Predicted results of feeding process
本文算法正確識別示例如圖12所示。然而本試驗對于攝食強度識別仍存在一定誤差,對于攝食強度狀態切換時,仍有誤判,錯誤識別實例如圖13所示。

圖12 魚群攝食強度正確識別示例Fig.12 Correct identification samples of fish feeding intensity

圖13 魚群攝食強度誤判示例Fig.13 Wrong identification samples of fish feeding intensity
當“強”即將轉變為“中”時,本文算法可能提前將“強”識別為“中”,對于“無”和“弱”狀態的切換同樣如此。在實際應用中,可以通過加入上下文信息,或者研究邊界點檢測的高精度算法,避免或減少上述誤判的出現。此外,本研究僅針對金鱒魚進行了試驗,模型的泛化能力有待考證。下一步將結合目標檢測算法對殘余餌料進行識別,并擴充試驗魚的種類數量,從而綜合評價本文模型識別魚類攝食強度的效果。
為準確識別魚類攝食強度,本文提出一種融合圖像-聲音和水質信息的Fish-MulT算法。該算法在MulT算法基礎上進行改進,加入MMTM和自適應權重,并減少了跨模態Transformer數量。試驗結果表明,該算法對攝食強度識別準確率達到95.36%,相比MulT算法提高2.06個百分點,且參數量減少38%,訓練時間減少29%。因此,該模型可運用于工廠化循環水養殖系統,為實現精準投喂提供可靠的算法參考。