劉世晶 涂雪瀅 錢 程 周 捷 陳 軍
(1.中國水產(chǎn)科學(xué)研究院漁業(yè)機械儀器研究所,上海 200092;2.上海市崇明區(qū)水產(chǎn)技術(shù)推廣站,上海 202150)
近年來,隨著智能、綠色、生態(tài)農(nóng)業(yè)不斷發(fā)展,水產(chǎn)養(yǎng)殖面臨產(chǎn)業(yè)轉(zhuǎn)型升級發(fā)展機遇與挑戰(zhàn)。飼料作為水產(chǎn)養(yǎng)殖產(chǎn)業(yè)重要的生產(chǎn)投入品,占水產(chǎn)養(yǎng)殖總成本50%以上[1],是影響水產(chǎn)養(yǎng)殖整體效益重要因素。此外,由于飼料浪費引起的水質(zhì)污染,已經(jīng)成為制約水產(chǎn)養(yǎng)殖綠色健康的發(fā)展的重要瓶頸[2]。因此,開展精準投喂技術(shù)研究,減少生產(chǎn)過程飼料浪費,對節(jié)省養(yǎng)殖成本、降低水體污染和提高養(yǎng)殖效益具有重要意義。
池塘養(yǎng)殖特別是戶外池塘養(yǎng)殖,生產(chǎn)工況復(fù)雜,導(dǎo)致傳統(tǒng)檢測手法和分析手段很難準確地量化分類魚類攝食行為,大大增加了實施精準投喂的難度。近年來,國內(nèi)外相關(guān)研究機構(gòu),圍繞水產(chǎn)養(yǎng)殖精準魚類攝食行為分類開展了大量研究工作,主要集中在光學(xué)和聲學(xué)兩個方面。其中聲學(xué)量化方法,主要是利用水聽器和聲納等主被動聲學(xué)技術(shù),測量魚類攝食聲音和攝食行為,并通過回歸分析和機器學(xué)習(xí)等手段對魚類不同攝食階段進行分類。例如,Lagardere等[3]利用水聽器,發(fā)現(xiàn)大比目魚攝食頻率為7—10 kHz,變化幅度為15—20 dB;Juell等[4]利用小型聲納測量固定位置餌料剩余情況,并結(jié)合魚類攝食行為經(jīng)驗分析,判斷魚類當前攝食狀態(tài)。上述方法在背景噪聲較少的工況環(huán)境取得了較好的試驗效果,但尚無法滿足具有全頻環(huán)境噪聲和復(fù)雜的池塘底質(zhì)環(huán)境的戶外池塘養(yǎng)殖場景應(yīng)用需要。相比于聲學(xué)技術(shù),視覺技術(shù)由于其非接觸、高精度和低成本等特點,目前已經(jīng)成為該領(lǐng)域研究熱點[5]。Liu等[6]和Ye等[7]采用基于單幀圖像的特征分類識別方法,量化魚類攝食行為,在魚類攝食瞬時行為評價中取得了不錯的分類效果,但由于魚類攝食行為具有明顯的強弱波動特征,基于局部特征的分類方法很難有效統(tǒng)計全局特性,導(dǎo)致其預(yù)測結(jié)果魯棒性不足。為了解決這個問題,張佳林等[8]提出一種基于變分貝葉斯編碼的卷積神經(jīng)網(wǎng)絡(luò)分類方法,利用固定長度視頻序列特征判斷魚類攝食狀態(tài),實現(xiàn)大西洋鮭(Salmo salar)攝食強度粗分類;唐宸等[9]利用神經(jīng)網(wǎng)絡(luò)和專家打分法對魚類攝食的連續(xù)圖像進行識別分類,實現(xiàn)了的魚類攝食狀態(tài)的細粒度分割。上述基于時間特性的魚類攝食行為分類方法,采用固定光照條件獲取魚類攝食圖像,并利用全連接網(wǎng)絡(luò)實現(xiàn)行為分類,適用于光照穩(wěn)定、魚類集群和分散行為較為明顯的設(shè)施化養(yǎng)殖環(huán)境,且由于采樣頻率固定,模型的泛化能力較弱。
針對上述問題,本文圍繞戶外池塘草魚精準投喂技術(shù)需求,提出一種基于幀間光流特征和改進遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)的草魚攝食狀態(tài)分類方法。該方法利用偏振相機獲取多張魚類攝食偏振圖片,并通過圖像亮度信息選取低反光圖像作為訓(xùn)練樣本,以期提高系統(tǒng)在戶外場景的適應(yīng)能力;其次,根據(jù)投飼機啟停狀態(tài)分割視頻序列,并利用光流法計算分割后視頻序列內(nèi)相鄰兩幀運動狀態(tài),以期細分攝食行為時間特性;以相鄰兩幀運動狀態(tài)為內(nèi)參,構(gòu)建基于幀間運動特征的視頻序列特征向量,并以此為基礎(chǔ),構(gòu)建特征樣本集;然后,基于視頻序列特征樣本,利用改進RNN網(wǎng)絡(luò)實現(xiàn)攝食狀態(tài)分類,增強投喂狀態(tài)識別的時間相關(guān)性;最后,通過與不同攝食分類模型比較,驗證本文方法的有效性。
試驗使用的偏振相機為型號為IMX250MZR,幀率24 fps,采集圖像分辨率為2448×2048像素。相機偏振角度為0°、45°、90°、135°,可同時獲取4個角度的偏振圖像。試驗用圖像處理器CPU主頻4.3 GHz,內(nèi)存32 G,顯存2 G,CUDA并行處理核心256個。集成開發(fā)環(huán)境為Anaconda3和python3.6,RNN模型由pytorch程序包實現(xiàn)。
魚類攝食視頻數(shù)據(jù)采集自上海市崇明區(qū)瑞缽水產(chǎn)養(yǎng)殖專業(yè)合作社戶外養(yǎng)殖池塘,采樣時間為2020年7月1日至2020年7月30日。試驗池塘占地4666.7 m2,養(yǎng)殖品種為草魚,畝平均養(yǎng)殖當量為500 kg。池塘配有1臺增氧機和1臺投飼機,投飼機采用傳統(tǒng)的間歇式投喂方式,啟停時長分別為4s和2s。按照養(yǎng)殖戶養(yǎng)殖習(xí)慣,試驗期間日餌率定為7.2%,每天理論投飼量為252 kg,投飼機每天投喂3次,投飼時間為9:00、13:00和17:00,單次理論投喂量為84 kg,投飼時長約為28min。試驗時,為了增加比較樣本數(shù)量,將每次投喂時長設(shè)定為30min,試驗期間保持不變。
如圖 1所示,采樣相機采用三角支架安裝在投飼機側(cè)邊,采用吊裝形式固定,機座中軸近似與水面垂直。系統(tǒng)集成控制裝置安裝在支架中部,采用Zigbee無線通信方式控制相機和投飼機。手動調(diào)整相機角度,使圖像中心與投飼機撒料中心盡量一致,且只拍攝水面圖像。采用4G無線傳輸形式獲取投喂階段視頻,并同步記錄投飼機開關(guān)狀態(tài)。
圖1 相機現(xiàn)場安裝圖Fig.1 Site layout of camera
戶外環(huán)境養(yǎng)殖水體鏡面反射是影響成像質(zhì)量的重要影響因素,已經(jīng)成為制約視覺技術(shù)深入應(yīng)用的關(guān)鍵技術(shù)瓶頸。為了降低戶外光照的影響,增加技術(shù)的實用性,本文利用具備4個偏振角成像偏振相機作為采樣裝置,同時獲取4幅不同偏振角圖像圖 2。為了選取最優(yōu)偏振圖像構(gòu)建樣本集,提出一種基于圖像飽和度和亮度的圖像選取方法。
圖2 偏振圖像選擇Fig.2 Polarization image selection
利用文獻[10]中方法,將RGB顏色空間轉(zhuǎn)換為HSL(Hue,Saturation,Luminance)顏色空間,其中S(飽和度)和L(亮度)分量取值范圍為0—255;采用專家經(jīng)驗法初步確定L上限閾值PL,當亮度高于上限值時認為存在過度曝光現(xiàn)象。水面反射光線偏振角度與太陽高角度值緊密相關(guān),因此在特定時間,當一個偏振角度圖像存在過度曝光現(xiàn)象時,肯定存在另一個偏振角度圖像無過度曝光現(xiàn)象。以0°偏振角圖像作為起始點,按照偏振角度從小到大順序遍歷所有偏振圖像,確定所有圖像像素點亮度都低于PL時的一個或多個偏振角度;當無過度曝光偏振角度為1個時,以此偏振角度圖像為樣本構(gòu)建圖像樣本集;當存在多個無過度曝光偏振角度時,比較不同偏振角度圖像飽和度,選擇飽和度最高的偏振角度圖像構(gòu)建樣本集。
本文采用光流法[11]構(gòu)建魚類攝食運動特征。光流法是一種計算幀間運動信息的計算方法,通過光流法在全局圖像范圍內(nèi)計算關(guān)鍵像素點的運動場,能夠有效描述魚類攝食圖像瞬時變化情況。光流法主要依靠三個假設(shè):(1)亮度恒定,外部光照條件恒定;(2)時間連續(xù),幀間圖像運動連續(xù)且位移較小;(3)空間一致,相鄰像素運動方向一致?;谶@三個假設(shè),我們可以得到像素點灰度約束方程:
式中,L(u,v,t)代表圖像(u,v)位置初始像素點在t時刻的光強度值,u為橫軸方向像素坐標,v為縱軸方向像素坐標。L(u+du,v+dv,t+dt)代表t+dt時刻初始像素點移動到(u+du,v+dv)位置時的光強度值。利用泰勒展開公式,可得光流方程為:
式中,x、y分別為光流沿u、v方向運動矢量,、、表示像素點灰度沿u、v、t三個方向的偏導(dǎo)數(shù)。
為了描述魚類攝食圖像時間序列圖像運動特性,本文選擇速度和轉(zhuǎn)角兩個參數(shù)表征光流特征,其中速度特征代表像素的運動矢量(式3),轉(zhuǎn)角特征代表像素運動的相位角度(式4)。
式中,Mag(u,v),ang(u,v)分別為(u,v)點運動速度和相對轉(zhuǎn)角。文獻[12]比較了不同光流方法的算法性能,指出Lucas-Kanade(LK)光流法[13]在所有測試集都表現(xiàn)良好,因此本文選擇LK光流法作為光流特征提取方法,得到的相鄰兩幀光流特征矢量場圖像如圖 3所示。
本文采用速度矢量和相位角度來表征光流矢量,只能定性的評價魚類攝食圖像光流脈動,很難定量的量化光流脈動。魚類攝食運動具有明顯的隨機特性,當魚類開始搶食時,水面波動劇烈,造成的圖像特征變化多樣,基于視頻序列計算出的光流矢量差異較大,僅通過矢量場評價攝食運動強度是極不科學(xué)的。此外,在撒料中心區(qū)魚類活動相比與周邊區(qū)域更為劇烈,導(dǎo)致圖像光流場分布不均勻,增加了全局光流矢量量化難度。
針對此種情況,本文提出一種基于光流能量值和分塊描述的圖像光流脈動量化方法,首先采用等分策略將圖像分割成44、88或3232等多個獨立單元,計算每個單元的光流運動矢量,并利用文獻[14]中的方法計算每個圖像塊的光流能量值,能量值計算公式如下:
式中,Lk為分塊圖像第k個像素點的像素大小,n為圖像塊像素點總數(shù),Magk為速度矢量,angk為相位角度。為了量化圖像光流矢量,利用2-范數(shù)來代表分塊圖像中像素點的光流脈動能量,并用所有光流脈動能量的期望來代表分塊圖像中光流的平均脈動強度,則單幀圖像光流脈動強度表征向量X i為:
式中,其中Xi為時間長度索引i處的特征向量,n為分塊 數(shù)量,為每塊的平均光流能量值。
近年來,基于序列的遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN),在語音識別和機器翻譯等領(lǐng)域取得了良好的應(yīng)用效果,其良好時間序列追溯能力,為動物行為分析提供了有效的技術(shù)手段,且正逐漸應(yīng)用到相關(guān)領(lǐng)域的研究[15—17]。目前常見的RNN改進結(jié)構(gòu)包括LSTM和GRU等,改進結(jié)構(gòu)能夠有效避免網(wǎng)絡(luò)層數(shù)增加產(chǎn)生的梯度消失和梯度爆炸問題,但會增加算法運算復(fù)雜度[18,19]。受饑餓程度和飽食度影響,魚類攝食行為雖然具有明顯的時間特性,但是一個逐步變化的過程,單個視頻樣本序列內(nèi)整體攝食強度變化不劇烈,因此利用經(jīng)典RNN模型開展魚類攝食狀態(tài)分類是可行的。此外,針對實際生產(chǎn)工況,魚類攝食狀態(tài)分類結(jié)果將為下一步精準投喂提供決策數(shù)據(jù),因此對算法實時性要求較高,相比于改進結(jié)構(gòu)傳統(tǒng)RNN結(jié)構(gòu)更為簡潔,運算速度更快,更符合實時性要求較高的應(yīng)用場景使用要求圖 4。
圖4 改進RNN模型結(jié)構(gòu)Fig.4 Improved RNN model structure
由于魚類的可馴化特性,其對投飼機投飼聲音能夠產(chǎn)生應(yīng)激行為,但飽食后搶食行為不明顯,因此需結(jié)合投飼機暫停投喂后魚類行為綜合判斷魚類搶食狀態(tài)。因此,本文采用雙向RNN(Birectional Recurrent Neural Networks,BiRNN)結(jié)構(gòu)構(gòu)建分類模型[20],模型結(jié)構(gòu)如圖 3所示。其中,RNN輸入為時視頻序列光流脈動強度特征X={Xi}。雙向RNN具有前向和后向兩個隱藏狀態(tài),在時間索引t處的全局隱藏狀態(tài)為,隱藏狀態(tài)更新如下:
式中,g和f均為激勵函數(shù),U、W、分別代表輸入層到隱藏層權(quán)值,為BiRNN隱藏層輸出。對于魚類攝食等群體運動行為分類,由于其運動狀態(tài)具有明顯的時間關(guān)聯(lián)特性,需對時間序列進行整體分析,以判定其全局狀態(tài)。如圖 3所示,為了增強模型對全局數(shù)據(jù)的利用能力,模型在BiRNN結(jié)構(gòu)的基礎(chǔ)上增加了一個具有線性激活函數(shù)的全連接層,并采用前饋神經(jīng)網(wǎng)絡(luò)實現(xiàn)攝食狀態(tài)分類,狀態(tài)分類估計如下:
圖3 光流矢量場圖像Fig.3 Optical flow vector field image
式中,Linear為線性激活函數(shù),T為隱藏層輸出權(quán)值,b為偏置量。
為了評價攝食狀態(tài)分類效果,本文選擇準確率(Precision)、召回率(Recall)和F1得分(F1·score)作為模型評價指標。其中準確率主要用于評價模型精準識別程度,召回率主要用于評價正確樣本的分類效果,而F1得分主要用于評價算法的整體效果,避免出現(xiàn)保守預(yù)測和暴力召回的情況[21]。模型評價公式如下所示:
式中,N待分類樣本總數(shù),為正確分類樣本數(shù),M為樣本分類數(shù),為第l個類別正確分類樣本數(shù)。
養(yǎng)殖試驗共采集正常養(yǎng)殖30d投喂數(shù)據(jù),養(yǎng)殖場每天投喂3次,每次投喂時長30min,合計獲得視頻數(shù)據(jù)2700min,按照投喂機1次投喂和暫停時間6s計算,共得到樣本集數(shù)據(jù)27000個。在圖像采集時,設(shè)定采集幀率為24幀,每2幀獲取一組光流數(shù)據(jù)計算,單個樣本向量的維度為72。為了找到最適圖像分割比例構(gòu)建光流特征,按照4×4、8×8、16×16和32×32構(gòu)建4組比較樣本。
為了保證樣本基礎(chǔ)分類的準確性,選擇5名科研人員按照弱攝食、中攝食和強攝食3個分類標準對試驗樣本進行分類,當有3名或超過3名人員同時選擇一種狀態(tài)時將該狀態(tài)作為該視頻片斷的攝食狀態(tài)。當選擇的攝食狀態(tài)有較大分歧時,即產(chǎn)生2:2:1的選擇比例時,低比例人員在剩余兩組內(nèi)重新選擇,并根據(jù)選擇結(jié)果,將得票較多的狀態(tài)作為分類狀態(tài)。按照此種方法,共獲得弱攝食狀態(tài)樣本數(shù)據(jù)6721個,中攝食強度樣本數(shù)據(jù)13467個,強攝食狀態(tài)數(shù)據(jù)6812個。按照深度學(xué)習(xí)經(jīng)驗樣本分類辦法[22],基于四舍五入原則,將所有攝食狀態(tài)樣本集按照8∶2的比例構(gòu)建訓(xùn)練集和測試集。
改進的RNN模型共包括BiRNN層和全連接層兩個主要組成部分。因此,模型的超參數(shù)主要包括隱藏層的數(shù)量、每層中隱藏的RNN單元的數(shù)量、學(xué)習(xí)率和匹尺寸等。本文采用pytorch神經(jīng)網(wǎng)絡(luò)礦建實現(xiàn)和優(yōu)化改進RNN模型,其中隱含層數(shù)量設(shè)為2,每層RNN隱藏單元數(shù)量設(shè)為80。采用Adam優(yōu)化器更新梯度變量,并設(shè)定丟失率為0.3 %,匹尺寸為60。
本文提出的基于光流能量值的運動強度特征構(gòu)建方法,通過將圖像分割成多個運動區(qū)塊,來近似的描述整幅圖像的光流脈動強度。區(qū)塊劃分越細,圖像脈動強度還原度越高,但算法運算量將成級數(shù)增長。此外,針對群體運動的全局性圖像描述,隨著劃分區(qū)間數(shù)量的增加,區(qū)間內(nèi)圖像運動特征隨機干擾降低,趨同性增強,進一步劃分對算法精準度提升有限。因此選擇合適的劃分區(qū)間,不僅可以提升算法預(yù)測精度,更有利于降低算法復(fù)雜度,提升運算效率。針對此種情況,本文在前期經(jīng)驗分析的基礎(chǔ)上,選擇4種圖像劃分方法分類,并通過比較評價指標,確定最優(yōu)劃分方案。4種圖像劃分方法分類結(jié)果如表 1所示。
從表 1可以看出,隨著區(qū)域劃分數(shù)量的增加攝食狀態(tài)識別準確率和召回率都有明顯提升,4×4劃分方法識別精度最低,16×16和32×32劃分方法識別精準基本一致,32×32劃分方法識別平準準確率和平準召回率僅比16×16劃分方法高0.03。在所有四組分類方法之中攝食狀態(tài)識別精度最高,弱攝食和強攝食狀態(tài)識別精準接近。16×16劃分方法中攝食識別準確度和召回率均高于32×32劃分方法,而弱攝食和強攝食識別結(jié)果略低于32×32劃分方法。
表1 不同圖像劃分方法分類結(jié)果Tab.1 Classification results of different image division methods
按照一般性認知,圖像分割數(shù)量越多,其光流特征對圖像整體特征描述越準確,但是由于模型訓(xùn)練時匹尺寸選擇和優(yōu)化器學(xué)習(xí)率選擇具有一定的隨機性,導(dǎo)致產(chǎn)生隨機誤差。當預(yù)測精度接近時,出現(xiàn)了32×32劃分方法在中攝食識別精度略低于16×16劃分方法的情況。綜上,根據(jù)不同圖像劃分方法綜合比較,本文選擇16×16劃分方法作為模型圖像光流特征構(gòu)建框架。
本文采用改進RNN結(jié)構(gòu)作為識別模型對魚類攝食行為進行分類,適用于不同時長視頻序列輸入,可滿足不同投喂頻率的視頻序列分類學(xué)習(xí)。但是,為了比較本文方法的有效性,采用固定輸入數(shù)據(jù)維度的方法選擇比較算法。首先,本文利用了雙向RNN來提升模型對投飼機投喂時產(chǎn)生聲音應(yīng)激行為的適應(yīng)能力,因此選擇單項RNN結(jié)合全連接層作為第一個比較算法。其次,本文選擇全連接層以充分利用整個時間序列狀態(tài),因此選擇典型雙向RNN作為第二個比較算法。此外,目前常見的魚類攝食狀態(tài)分類方法主要利用BP神經(jīng)網(wǎng)絡(luò)、SVM和CNN等分類算法,因此本文選用具有代表性的文獻[23—25]中的方法作為其他類比算法進行綜合比較。為了提高比較效果的有效性,本文不考慮文獻原有試驗環(huán)境,而是直接利用python3.6對文獻中的方法進行重現(xiàn),并應(yīng)用于戶外養(yǎng)殖環(huán)境獲取的圖像,比較結(jié)果如表 2所示。
從表 2可以看出,本文方法在分類平均準確率、平均召回率及平均F1得分方面都優(yōu)于其他方法。其中,基于單向RNN+全連接層的分類方法比雙向RNN取得了更好的分類效果,說明魚類攝食視頻序列是一種非穩(wěn)態(tài)的時間變化序列,引入全連接層增加模型對整個時間序列的利用能力,增強了模型對非穩(wěn)態(tài)特征的適應(yīng)能力。單向RNN的分類精度低于雙向RNN,說明魚類攝食行為在投飼機投喂時和暫停時有較大差異,需利用正向和反向聯(lián)合判斷提升攝食狀態(tài)分類的準確性。此外,文獻[25]中的方法采用CNN網(wǎng)絡(luò)實現(xiàn)魚類攝食行為分類,充分利用了時序圖像特征,其分類精度略低于本文方法,優(yōu)于單向RNN+全連接層和雙向RNN分類方法。該方法采用全局特征描述,沒有考慮局部特征變化對全局的影響,而魚類攝食圖像在投飼機投喂區(qū)域紋理變化頻率遠大于非投喂核心區(qū),單一利用全局特征的評價很容易丟失局部信息,而本文方法通過比較不同圖像分塊狀態(tài)分類效果,確定最優(yōu)分塊特征實現(xiàn)了基于局部特征的全局復(fù)雜特征描述,有效提升了算法分類效果。
表2 不同分類算法分析結(jié)果Tab.2 Analysis results of different classification algorithms
提出一種基于幀間光流特征和改進RNN的草魚攝食狀態(tài)分類方法,實現(xiàn)了戶外池塘養(yǎng)殖草魚攝食狀態(tài)的精準分類,主要結(jié)論如下:(1)基于圖像偏振成像原理,利用偏振相機獲取不同偏振角度的攝食圖像,并根據(jù)圖像亮度和飽和度確定最優(yōu)偏振視角,實現(xiàn)了戶外自然光條件魚類攝食圖像的有效獲取;(2)提出一種基于光流脈動強度和圖像分塊的圖像全局光流特征構(gòu)建方法,實現(xiàn)了基于局部特征的全局復(fù)雜特征有效描述,有效提升了圖像的分類精度;(3)本文方法在強中弱三類魚類攝食狀態(tài)分類方面取得了較好的分類精度,模型評價指標達到了平均準確率91%、平均召回率92.2%、平均F1得分91.6,均優(yōu)于其他分類方法;(4)本文采用基于RNN的模型構(gòu)建方法,可滿足不同投喂時間策略樣本訓(xùn)練要求。此外,通過改變樣本集,可適用于其他搶食性魚類攝食狀態(tài)判定,有效提升了模型廣適性。綜上,本文方法在草魚攝食狀態(tài)分類方面取得了較好的識別效果,但現(xiàn)有樣本數(shù)量和種類還不滿足不同養(yǎng)殖模式、不同養(yǎng)殖周期攝食狀態(tài)分類需要,仍需繼續(xù)豐富樣本數(shù)量,增強模型適應(yīng)能力,為魚類精準飼喂控制提供有效數(shù)據(jù)和算法支撐。