王丁弘,楊信廷,潘 良,朱文韜,焦冬祥,周 超
(1 上海海洋大學信息學院,上海 201306;2 北京市農林科學院信息技術研究中心,北京 100097;3 農產品質量安全追溯技術及應用國家工程研究中心,北京 100097;4 中洋漁業(江門)有限公司,廣東 江門 529200)
在集約化水產養殖中,魚類的投喂水平直接決定了生產效率和養殖成本。過量投喂不僅會造成飼料浪費[1],而且殘余的飼料分解還會產生氨氮等有毒物質,導致水體富營養化,增加魚類患病風險[2]。飼料投喂不足則會增加魚類間的侵略性[3],易搶食而導致傷殘[4-5]。實時量化魚類攝食行為,并以此為據調整投喂,有助于解決上述問題[6-9]。對魚類的攝食動作進行檢測可以獲取魚類的攝食頻率和攝食時間等信息,為優化投飼提供理論依據和數據支撐[10]。
已有相關研究將聲學、光學以及其他傳感器來量化和分析魚類攝食行為。例如,聲學傳感器被用于檢測魚群攝食強度[11],但聲學傳感器易受噪聲干擾,限制了其在實際生產中的應用[12]。機器視覺技術因其自動、無創、經濟和高效的優勢[13-14],被廣泛用于評估魚類食欲[15]。Liu 等[5]使用了幀間差法、背景減除和二值化等一系列圖像處理算法,以自動識別和量化鮭魚攝食行為。周超等[16]利用近紅外視覺評估魚類攝食強度。但上述研究均需要提取復雜的手工特征,模型受特征選取影響較大。深度學習能從海量數據中自動提取高維特征,已被廣泛應用于魚類攝食強度評估、魚類識別[17-19]、魚類計數[20-21]、目標檢測[22-25]等方面。近年來,利用深度學習識別魚類攝食行為已成為主流。Zhou等[6]提出一種基于LeNet5模型構建的7層CNN模型來評估魚類食欲,分級準確率達到90%。陳明等[26]運用特征加權融合的方法實現了魚類攝食強度評估,準確率達98.89%。徐立鴻等[27]將注意力機制引入卷積神經網絡,提出基于改進長期卷積循環網絡(LRCN)的魚群攝食強度分類模型,分類準確度達97%。許學斌等[28]在網絡初始端添加不同尺度的卷積核,并引入混合注意力機制,聚焦重要特征區域來降低復雜背景干擾,識別精度達到98.65%。
雖然以上模型在攝食強度檢測方面取得了較好的效果,但其檢測對象均為攝食強度片段,缺乏對于整個攝食過程的把控和判斷,難以精準定位魚群攝食動作的時間邊界。時序動作檢測模型可通過定位未裁剪視頻中動作的時間邊界,預測動作的開始和結束時間。Lin等[29]提出邊界敏感網絡(Boundary Sensitive Network,BSN)來預測動作的開始和結束時間,首先去定位時序動作片段的開始和結束邊界點,然后將兩邊界點直接結合成時序動作提名,最后通過設計的模塊來評估每個提名的置信度。但BSN只使用了局部特征來預測動作邊界,沒有考慮序列特征豐富的上下文信息,也沒有考慮每個提名之間的關系,檢測精度不高。為解決該問題,Su等[30]在模型中增加了互補邊界生成器和提名關系建模來豐富上下文信息并提升提名的預測置信度。除了上述問題,BSN還存在提名特征構建和置信度評估無法并行對提名進行處理、不是一個統一的網絡模型等問題。Lin等[31]提出邊界匹配網絡(Boundary Matching Network,BMN),BMN引入了邊界匹配機制來評估密集分布的提名的置信度,并且組成了一個統一的網絡框架,可進行端到端的聯合訓練。
BSN++[30]和BMN[31]同時作為高效的時序動作檢測模型,都可同時產生動作開始和結束時間匹配對提名和其對應的置信度分數,但對于魚群時序攝食動作檢測來說,BMN相比于BSN++的檢測精度高,所以選用BMN模型進行進一步改進。由于在魚群攝食視頻中魚群密度高、攝食動作迅速,BMN在處理該視頻時精度仍不夠高,導致對于魚群攝食和非攝食狀態探測模糊。
本研究針對未經裁剪且包含魚群完整攝食過程的視頻進行時序動作檢測。通過將注意力機制和殘差連接引入BMN中,提出了BMN-Fish魚群狀態檢測網絡,增強了算法對攝食過程局部和全局特征的感知能力,有助于解決現有方法在探測攝食狀態切換時誤差較高的問題。可有效定位魚群攝食動作的時間邊界,實現魚群攝食和非攝食狀態的精準時序探測,進而指導精準投喂。
試驗地點位于北京市農林科學院信息技術研究中心的循環水養殖實驗室,如圖1所示。該系統由6個高1.2 m,直徑均為1 m的魚池組成,水深1 m,并配套有水處理系統。試驗對象為金鱒魚,為消除環境變化對魚的應激,試驗對象首先進行為期1個月的適應性養殖,以消除環境變化對魚類攝食的影響。

圖1 循環水養殖系統Fig.1 Recirculating aquaculture system
試驗光源為固定亮度的Led燈。金鱒魚均重為550±10 g,養殖水體溶氧9~11 mg/L,溫度15±1 ℃,投喂量95±10 g。投喂裝置為養殖池上方的投飼機,可調節飼料拋灑范圍。視頻數據采集使用Gopro水下運動相機,在水面中心以下15 cm處進行拍攝,圖像分辨率為1 920×1 080,幀率為60 fps。
為實現魚群攝食動作時序檢測,需要準確獲得魚群攝食的開始和結束時間。采集的視頻數據均包含魚群完整的攝食過程,視頻時間均為20~200 s不等,共計100段視頻。由于魚類動作類別較單一,導致網絡訓練易過擬合,本研究中引入ActivityNet-1.3數據集[32]。ActivityNet-1.3作為一個大型數據集,一般用于時序動作提名的生成和檢測,包含19 994段視頻,附有200個動作類別的注釋文件。將采集的魚群視頻數據與公共數據集ActivityNet-1.3合并,組成具有201個動作類別的大型數據集,并隨機將其中75%作為訓練集,12.5%作為驗證集,12.5%作為測試集。
魚群密度高、攝食動作迅速,BMN在處理魚群攝食視頻時精度不高,導致對于魚群攝食狀態探測模糊,為解決上述問題,本研究在BMN的基礎上進行改進,提出魚群狀態檢測網絡BMN-Fish,如圖2所示。BMN-Fish首先采用時序分段網絡(Temporal Segment Networks,TSN)[33]對視頻進行特征編碼,得到對應編碼的視覺特征向量;其次,通過高效深度模塊輸出時序評估模塊和提名評估模塊所共享的時序特征向量;最后,分別通過時序評估模塊和提名評估模塊生成匹配對提名和二維置信度圖,通過匹配對提名和二維置信度圖中的置信度一一對應,獲取檢測結果。

圖2 BMN-Fish算法結構圖Fig.2 BMN-Fish algorithm structure diagram
本研究在原始BMN算法基礎上:(1)為解決魚攝食動作狀態捕捉性較差的問題,加入高效通道注意力模塊(efficient channel attention module net,ECANet)[34]來提高魚攝食狀態的局部性動作捕捉,從而進一步擴大時序維度特征的感受野;(2)為解決捕捉到的局部攝食動作特征之間的時序性關系模糊的問題,引入殘差連接[35],將基礎模塊改為基礎殘差模塊(base residual module,BRM),加強了局部攝食動作特征之間時序性關系,使算法能更多關注到特征圖中感興趣的區域。兩種改進加強了算法對于特征的重用能力,有效提升模型性能。
1.3.1 視頻特征提取
由于TSN網絡[33]在動作識別任務中具有較好性能,并被廣泛用于時序動作檢測和提名生成任務中[36],因此本研究視覺編碼器采用基于kenetics400[37]預訓練模型的TSN網絡。TSN網絡包含兩個分支:(1)在單一的RGB幀上捕捉外觀特征的空間網絡;(2)在堆疊光流場上捕捉動作特征的時序網絡。
首先,為獲得RGB幀和光流圖,使用視頻截幀提取光流工具denseflow將視頻逐幀截為分辨率為340×256的圖像,并提取對應的光流圖;其次,將單幀圖像和其對應疊加光流組合成一個片段放入TSN網絡中提取特征,并將提取的外觀特征和動作特征有效串聯,形成一幀完整的視頻級別特征;最后,為充分利用視頻中每一幀的變化,每隔f幀提取特征并按時間順序組合,形成lv×400的向量,因每個視頻的總幀數不同,則向量得到了不同的時間長度lv=l/f。其中l表示未經裁剪視頻的長度,f=16。
視頻特征提取流程如圖3所示。

圖3 特征提取示意圖Fig.3 Feature extraction diagram
1.3.2 高效深度模塊
為進一步處理輸入的特征序列,提高模型對攝食過程局部和全局特征的感知能力,并為后續的時序評估模塊和提名評估模塊提供共享特征序列,本研究基于BMN,在模型中加入高效通道注意力模塊,并且引入殘差連接將原有基礎模塊進行改進。改進方法如下:
(1)加入高效通道注意力模塊
高效通道注意力模塊(efficient channel attention module net,ECANet)[34]是一種局部的跨通道交互策略,該模塊通過一維卷積實現該策略。此外,ECANet使用一種自適應選擇一維卷積的內核大小的方法,以確定局部跨通道交互的覆蓋范圍。ECANet結構如圖4所示。

圖4 ECANet結構圖Fig.4 ECANet structure diagram
由于魚群密度高、攝食動作迅速,模型對各個魚的攝食動作狀態捕捉性較差,通過加入高效通道注意力模塊,提高了模型對魚攝食狀態的局部性動作捕捉,加強了局部信息提取能力,進一步擴大了時序維度特征的感受野。
(2)引入殘差連接
引入殘差連接[35],將BMN的基礎模塊(Base Module)改進為基礎殘差模塊(base residual module ,BRM)。BRM在兩個卷積核大小為3的一維卷積基礎上,引入殘差連接。模型結構如圖5所示。

圖5 BRM結構圖Fig.5 BRM structure diagram
通過加入高效通道注意力模塊,雖然加強了模型對魚攝食狀態局部性動作捕捉,但是捕捉到的局部攝食動作特征之間的時序性關系模糊,缺少前后幀局部特征關系的連接性處理。通過殘差連接將一維卷積a和一維卷積b的結果相加,使得輸入信息繞道傳到輸出,保護信息的完整性,加強了局部攝食動作特征之間時序性關系,使算法能更多關注到特征圖中感興趣的區域。


(1)
式中:ω為滑動窗口,Fω為特征向量,其中ω={tω,s,tω,e,Ψω,Fω}。tω,s和tω,e分別為該滑動窗口在視頻中的魚群攝食開始和結束的時間,Ψω為滑動窗口中包含的真實攝食動作實例標注,Fω為得到的特征向量。
1.3.3 時序評估模塊與提名評估模塊
本研究沿用時序評估模塊(temporal evaluation module,TEM)和提名評估模塊(proposal evaluation module,PEM)的結構[31]。通過TEM生成2個輸出,分別為魚群攝食開始和結束時間概率,該概率序列將用于后續提名的生成。TEM結構中開始時間概率的分支和結束時間概率的分支,都包含一個卷積核大小為3的一維卷積和一個卷積核大小為1的一維卷積,最終利用Sigmoid函數生成對應范圍為 [0,1]的概率。
PEM生成邊界匹配置信度圖如圖6所示。

圖6 邊界匹配置信度圖Fig.6 BM confidence map
定義一個時序提名為一個開始時間和一個結束時間所構成的時間匹配對,并按時序提名開始時間的位置和時間長度,將所有可能存在的時序提名形成二維的邊界匹配圖。在該圖上每一行時序提名具有相同的時序長度,每一列時序提名具有相同的開始時間,因此該圖可表示出所有潛在存在的提名。而每個點的數值即為提名所對應的置信度,因此通過邊界匹配置信度圖為所有提名產生置信度。
通過邊界匹配置信度圖與上述TEM生成的魚群攝食動作概率序列相結合,最終生成所有提名以及對應的置信度,如圖7所示。

圖7 邊界匹配置信度圖和攝食開始結束概率圖結合示意圖Fig.7 Diagram of combination of BM confidence map and probability graph of feeding beginning and ending
1.3.4 提名后處理
提名后處理目的是排除多余的提名。對于從魚群開始到結束攝食區間內的真實值,模型可能會預測出多個具有不同時間重疊的提名。為用更少的提名獲得更高的召回率,本研究使用Soft-NMS[38]對多余的提名進行冗余抑制。Soft-NMS作為一種高效的非極大值抑制算法,使用分數衰減函數來實現多余提名的篩除,首先,將所有的提名按其置信度分數由高到低排序。其次,計算最大置信度分數的提名φm與其他提名φr的重疊度iou,其中重疊度高的提名,置信度分數被遞減。然后,在其他提名之間遞歸進行上一步操作。最后,所有提名將得到被重新更新的置信度。
2.1.1 試驗平臺與模型訓練參數
本試驗的硬件配置為:CPU 12th Gen Intel Core i9-12900KF,內存32GB,GPU 為Nvidia GeForce RTX 3090 Ti 24GB。軟件系統環境為Windows10 64位操作系統,CUDA 10.2版本,CUDNN 8.3.0版本,Python 3.7版本,Pytorch 1.10.0版本。
在訓練模型時,優化器采用自適應矩估計(Adaptive Moment Estimation,Adam),訓練階段的試驗參數設置如表1所示。

表1 不同模型試驗結果比較Tab.1 Comparison of different models
2.1.2 評價標準
本研究的目標是生成高質量的魚群攝食開始和結束時間的提名匹配對,而其與真實的魚群攝食開始和結束時間的匹配對時間高度重合。目前主流框架[29-31,39-40]均使用AR@AN和AUC指標評估各提名是否具有高召回率和高時間重疊性,因此本文使用AR@AN和AUC作為評價指標。
AR@AN是用于評估算法在預測攝食動作邊界的性能指標。AR@AN計算在AN個提名片段中正確預測攝食動作邊界的比例。其中,AN表示一個預測視頻可以生成的總提名個數,AR表示平均召回率,即正確預測攝食動作邊界的提名數量除以實際攝食動作邊界的數量。本研究AN取值從0到100不等。
AUC(Area Under Curve)是平均召回率(AR)與平均提名數(AN)曲線下的面積,用于評估算法在預測攝食動作邊界時的全面性能指標。與AR@AN不同,AUC綜合考慮了所有提名的預測結果,而不僅僅是AN個提名。通過使用AUC指標,算法可以全面地評估其在預測視頻攝食動作邊界方面的性能。
在使用相同數據集和保持參數一致的情況下,BMN-Fish和BMN的訓練過程損失曲線如圖8所示,在12次迭代之前,模型損失迅速減小,然后隨著迭代次數的增加,BMN-Fish仍舊迅速減小,然而BMN損失緩慢向下且振蕩減小,最后兩者在15次迭代之后趨于穩定。最終BMN的損失值穩定在1.05左右,BMN-Fish的損失值穩定在0.95左右,收斂值明顯優于BMN。

圖8 兩種模型訓練損失值Fig.8 Training loss of two models
2.3.1 消融試驗方案設計
為驗證本研究對BMN[31]改進的性能,設計消融試驗,內容如下:(1)為驗證高效通道注意力模塊[34]在攝食動作狀態捕捉性上的性能。首先將BMN模型加入高效通道注意力模塊;然后訓練模型;最后將原始BMN和增加了高效通道注意力模塊的BMN進行對比試驗。(2)為驗證基礎殘差模塊[35]在解決局部攝食動作特征之間時序性關系模糊問題的有效性。首先將BMN原有的基礎模塊替換為改進的基礎殘差模塊;然后訓練模型;最后將原始BMN和改進基礎模塊后的BMN模型進行對比試驗。(3)為驗證高效通道注意力模塊和基礎殘差模塊在捕捉局部攝食動作狀態和增強前后幀局部特征關系的性能。將BMN模型同時加入高效通道注意力模塊和基礎殘差模塊,進行模型訓練,然后與原始BMN模型進行對比試驗。上述對比模型均使用同一數據集和相同參數,進行相同輪次模型訓練與模型測試。
2.3.2 消融試驗結果與分析
如表2展示了試驗結果。加入高效通道注意力機制模塊,模型的AUC達到92.24%,提升1.09%,并且AR@AN都有0.5%以上的提升。其用于深度卷積神經網絡的通道注意力模塊,通過快速的一維卷積以及生成自適應卷積核大小[34],提高了模型對于各個魚攝食狀態的局部性動作捕捉,加強了局部信息提取能力,進一步擴大了時序維度特征的感受野。

表2 不同模塊對網絡的貢獻Tab.2 Contribution of different modules to the network
將BMN原有的基礎模塊替換為改進之后的基礎殘差模塊,AUC提升了2.05%。在AN=5和AN=10的情況下分別有2.78%和2.5%的提升。通過加入殘差連接[35],增加了前后幀局部特征關系的連接性處理,加強了局部攝食動作特征之間時序性關系,使算法能更多關注到特征圖中感興趣的區域。
同時將BMN模型加入高效通道注意力模塊和基礎殘差模塊,AUC提升了2.17%,AR@AN提升了1.95%。試驗結果表明,兩個模塊同時作用能進一步增強魚攝食狀態局部性動作捕捉能力和前后幀局部特征關系,提高模型對攝食過程局部和全局特征的感知能力。
時序動作檢測算法可通過定位未裁剪視頻中動作的時間邊界,預測動作的開始和結束時間。BSN[29]、BSN++[30]、BMN[31]是目前精度較高的時序動作檢測算法,并且都是為了解決水下魚群密度高、攝食動作迅速導致時序檢測效果不佳的問題,因此本文選取BSN[29]、BSN++[30]、BMN[31]與BMN-Fish進行對比試驗。
在采用相同參數和驗證集的情況下,BMN和BMN-Fish對每個魚群攝食視頻的平均檢測時間分別為28 ms和32 ms,二者檢測時間相差4 ms,相對于本研究檢測視頻的長度基本可以忽略不計,因此在檢測速度大致相同的情況下,本研究更關注精度方面的結果。在精度方面,各時序動作檢測模型與BMN-Fish比較結果如表3所示。根據試驗結果分析可得,本研究所提出的模型取得良好成績。

表3 各模型AUC和AR@AN對比表Tab.3 Comparison table of AUC and AR@AN by models
BSN[29]、BSN++[30]、BMN[31]雖然都是為了解決魚群攝食和非攝食狀態探測模糊問題,但模型都缺乏對于魚群攝食過程局部和全局特征的感知能力。BMN-Fish的局部跨通道交互策略在提高了模型局部性動作捕捉能力的同時引入殘差結構,使得捕捉到的局部攝食動作特征之間的時序性關系更為緊密。綜上所述,BMN-Fish與參與對比的模型相比更適合魚群攝食動作時序檢測任務。
由于不同的冗余提名抑制方法會在很大程度上影響模型的性能,為驗證Soft-NMS方法對預測的多個具有不同時間重疊的提名的冗余抑制能力,本研究將同主流的冗余提名抑制方法NMS進行對比試驗[38]。如圖9和圖10所示。

圖9 各模型在使用NMS和Soft-NMS后AUC對比圖Fig.9 Comparison of AUC of each model after using NMS and Soft-NMS

圖10 各模型在使用NMS和Soft-NMS后AR@AN對比圖Fig.10 Comparison of AR@AN of each model after using NMS and Soft-NMS
檢驗對結果后處理的兩種冗余提名抑制方法(NMS和Soft-NMS)的效果,仍然使用上述時序動作檢測模型與BMN-Fish進行比較。試驗結果表明,所有模型使用Soft-NMS方法比使用NMS方法,指標AUC至少提升4%。特別是在提名數為1的情況下,BSN++、BMN和BMN-Fish的AR@1提升27%以上,有利于執行攝食動作提名生成任務。并且當提名數從5到100之間,BMN-Fish在使用Soft-NMS方法時,指標AR@AN比BMN高1.3%以上,指標AUC比BMN高2.17%。試驗結果表明,在魚群攝食動作時序檢測方面,使用Soft-NMS方法比使用NMS方法對于模型的性能有較大的提升。
上述結果表明,本研究算法具有較好的性能,是因為本算法可以生成具有以下特點的提名匹配對:(1)產生靈活長度的提名匹配對,更貼近大多魚群攝食動作真實值;(2)通過采用時序卷積網絡學習開始時間和結束時間的概率定位精確的時間邊界,使得生成的提名匹配對和真實值具有高重疊度;(3)邊界匹配機制可為所有提名匹配對生成置信度分數,可以合理檢索所有提名匹配對,從而使用相對較少的提名實現高召回和高重疊度。圖11為各時序動作檢測模型與BMN-Fish在2段魚群攝食視頻的預測結果實例。

圖11 模型預測結果可視化Fig.11 Visualization of model prediction results
兩段視頻長度分別為20.93 s和178.07 s,第1段視頻魚群攝食真實時間段為0.02~20.1 s,本模型預測時間段為0.01~19.7 s;第2段視頻魚群攝食真實時間段為103.2~148.2 s,本模型預測時間段為104.1~149.1 s。該模型通過加入高效通道注意力模塊[34]和基礎殘差模塊[35],解決了魚群攝食和非攝食狀態切換點探測模糊的問題。相比其他模型,該模型可精確預測出魚群攝食過程的開始和結束時間,可以有效檢測魚群的時序攝食動作,從而為智能化水產養殖提供算法支持。
然而本研究也存在一定的局限性,如圖11第2個預測可視化結果,該測試視頻魚群弱攝食持續時間長、存在餌料殘留現象,導致在攝食末期預測會有一定偏差。未來可與魚類殘飼檢測[41]相結合,輔助改進算法進行魚類攝食動作檢測,降低殘餌的影響,從而提高預測精度。
為高效實現魚群攝食動作檢測,本研究提出了魚群狀態檢測網絡BMN-Fish。通過在原始BMN基礎上加入高效通道注意力模塊和基礎殘差模塊,增強了算法對攝食過程局部和全局特征的感知能力。試驗結果表明,BMN-Fish的AUC達到93.32%,比BMN提高2.17%,同時在提名數(AN)為100的平均召回率(AR),即AR@100有1.95%的提升。因此,在魚群攝食狀態檢測方面,BMN-Fish優于BMN,且能夠更加精準檢測魚群攝食動作,可為開發精準投喂系統提供算法支撐。由于實驗室魚種單一,在后續會擴充魚類數據集,將該算法推廣運用至其他魚類。