陳雨琦,馮德軍,桂福坤,曲曉玉
(1.浙江海洋大學國家海洋設施養殖工程技術研究中心,舟山 316022;2.浙江海洋大學水產學院,舟山 316022)
世界糧農組織(FAO)于2020年的統計報告中指出,2018年全球魚類產量達到1.79億t,其中8 200 萬t來自水產養殖,價值 2 500億美元;占水產品總量的46%,占人類魚類食用量的 52%[1]。工廠化養殖模式作為一種高效養殖模式,近年來得到了越來越多的重視[2]。截止2019年底,中國工廠化水產養殖面積達到3 515 萬m3,工廠化水產養殖產量達226 405 t[3]。而在魚類的養殖中,餌料支出約占總成本的 50%~80%[4],是最主要的可變成本,因此餌料的精準投喂在經濟方面具有重大意義。此外,過量飼料投喂不僅會影響魚類的正常生長,還會造成水體污染,引起魚類的疾病[5]。而現階段餌料的投喂基本依據養殖人員的經驗判斷魚類攝食的餌料需求量,主觀性強,一致性差[6-7]。
為實現工廠化養殖環境中的精準投喂,需要對魚類攝食行為進行更精確的分析與判斷。關于魚類攝食行為的研究方法主要有高頻聲吶、聲學標簽[8-9]及計算機視覺技術等,其中計算機視覺技術(Computer View,CV)為一種非入侵式且穩定性較好的觀察技術,在水產養殖領域有廣泛的應用[10]。王文靜等[11]通過圖像處理技術測量魚面積,建立擬合模型實現對水下鲆鰈魚類的質量估計;穆春華等[12]通過計算機視覺技術結合機器學習的方法,對分割所得殘餌分辨前景進行6種不同特征提取并分類,實現對循環水養殖系統的殘餌、糞便的識別;楊杰超等[13]基于計算機視覺提出了在復雜背景下針對大黃魚個體信息提取的方法。在魚類攝食行為的判斷研究方面,計算機視覺技術也扮演了重要的角色,其大致分為2種不同的方法:間接評估方法(通過對非魚體如殘餌或水面反光區域的分析以間接分析魚體的攝食行為)以及直接評估方法(直接觀察魚體本身進行攝食行為分析)。其中,直接評估方法較間接評估方法應用廣泛,技術成熟。其主流方法是通過提取攝食圖像的紋理信息實現分類,陳彩文等[14]利用灰度共生矩陣對紋理特征分析,得到魚類的攝食活動強度;Zhou等[15]利用近紅外圖像,提出了一種基于支持向量機和灰度梯度共生矩陣的反射幀分類去除方法來量化魚類行為;陳彩文等[16]利用灰度差分統計法、灰度共生矩陣和馬爾科夫隨機場模型提取魚群的13個紋理特征作為特征向量,以此實現對魚類攝食行為的分類識別。此外,直接評估方法中的光流法也經常應用于攝食行為判斷,例如,趙建[17]借助于Lucas-Kanade光流和信息熵,利用魚群自身攝食行為特征、水體流場變化對魚群整體攝食活躍程度進行量化;陳志鵬等[18]同樣利用 LK光流法計算魚群的運動方向矢量,并采用方向熵表征魚群運動的混亂程度,成功區分了魚群正常狀態與攝食狀態。除上述 2種方法以外,還有許多屬于直接評估方法的魚類攝食行為研究,例如,張佳林等[19]利用變分自動編碼器求出每幀對應高斯均值和方差向量,形成特征矩陣來訓練CNN對魚類攝食行為分類;Atoum等[20]通過對最優選擇區域濾波,對魚類水面上的殘餌進行識別來判斷魚類攝食行為,實現養殖的自動投喂;張重陽等[21]提出了一種基于魚群攝食圖像的顏色、形狀和紋理 3種特征融合與機器學習的魚類攝食行為的檢測方法,并構建3層BP神經網絡進行檢測,精度可達97.1%。
以上方法主要集中于其對魚群本體的分析,雖然能夠準確地對魚類攝食行為進行判斷,但會受到水面反光、魚群擁擠、光線重疊等因素的嚴重干擾,對其準確率造成嚴重影響。而間接評估方法雖然應用較少,但該方法能夠將會對正常的魚群前景提取造成嚴重影響、增大結果的誤差的水面反光波紋等大多情況下作為需過濾或剔除的強干擾因素作為一種判斷依據[22-23],例如,趙建等[24]提出了一種基于Lucas-Kanade光流、統計學方法以及信息熵對反光區域變化不規律程度來評估魚群攝食活動強度。通過對由魚類攝食行為引起的水面反光區域變化特征的分析,可以有效避免復雜魚類目標的前景提取和魚群個體跟蹤,計算冗余度低,效率較高。故提取水面波紋作為前景特征對魚類攝食行為進行判斷研究。
該研究采用快速傅里葉變換獲得水面波紋的頻譜圖,以此量化魚類攝食行為。傅里葉變換就是將時域信號分解成眾多不同頻率的正弦信號或余弦函數并疊加之后的和[25-26]。而快速傅里葉變換(Fast Fourier Transform,FFT)是在保留了傅里葉變換的奇偶性、虛實性等特性的基礎上,通過離散傅里葉變換得到的[27],快速傅里葉變換的出現簡化了傅里葉變換的算法,使得運算更加方便快捷[28],且圖像處理方面已經有了較為廣泛的應用,例如,溫芝元等[29]通過提取傅里葉變換幅度譜并對其進行多重分形分析及多重分形譜的二次擬合來進行病蟲害的識別;周游等[30]提出一種基于圖像傅里葉頻譜徑角變換的紋理特征提取方法,對藤莖類植物的顯微圖像進行了相似性度量測試并取得更好效果;石康君等[31]在通過傅里葉變換分割頻域信息構造特征向量,實現了對織物褶皺程度的評級等。目前,該方法尚未應用到魚類攝食行為的識別中。
由于在圖像中,圖像的空間頻率[32]表征了圖像相位變化的快慢程度。圖像中突變(如邊緣和線條)、劇烈起伏變化(如噪聲)的區域,空間頻率較高。通過對大量樣本數據分析結果顯示,魚群在攝食時,水面波紋變化劇烈,從而使反光區域圖像的突變、起伏變化區域數量大大增加,因此高頻信息也會隨之增強,同時影響頻域中的幅值信息。針對上述現象,本文提出一種基于傅里葉頻譜特征的魚類攝食行為判斷方法。利用水面波紋前景的提取圖像對其進行頻域分析,并通過對頻譜濾波分析,擇除幅值變化不明顯的頻率范圍。在該范圍內以不同步長分割幅值,以此作為判斷魚類攝食行為的特征值,若幅值之和較大,說明水花波動劇烈,魚類攝食行為強;若幅值之和較小,說明水花波動不劇烈,魚類攝食行為弱。以上述結論構建特征向量集后通過支持向量機(Support Vector Machine,SVM)實現對圖像樣本的分類。該研究可對全自動的精準投喂控制提供理論支持和技術參考。
本試驗采用羅非魚(Tilapia)作為試驗對象,試驗魚均購于廣州市添發魚苗發展有限公司。試驗時羅非魚數目為50條,質量為(57±10)g,養殖環境水溫控制在(29±2)℃[33],溶氧量為(4.5±0.5)mg/L,pH值為(7.8±0.3),投喂飼料浮性飼料。
該研究采用如圖1所示的視頻采集裝置,主要包括攝像機(尼康D90攝像機)、支架及圓形養殖池。養殖池半徑90 cm,池高80 cm,水位高度(40±2) cm,視頻采集系統中,光源采用普通室內光源,攝像機安裝在養殖池的正上方,攝像頭距離水面70 cm,其采集圖像為24-bit RGB真彩圖像,分辨率為1 280×720像素,采集幀率為24幀/s。
該研究通過量化水面波紋反光的劇烈程度對魚類攝食行為進行判別,因此對魚群攝食活動前后10 min的視頻進行分析。首先提取所采集視頻中的水面波紋二值化圖像,并通過二維傅里葉變換將圖片從空間域轉化到頻率域。在頻率域中對可視化傅里葉圖像的各位置進行幅值提取,并構建環形濾波器確定幅值變化差異較明顯的頻譜范圍。在該范圍內,通過最佳遞增步長將頻譜圖分割為若干特征子區間,統計每一區間內頻譜幅值之和,并將其作為特征向量,以此量化魚類攝食行為并訓練支持向量機,實現對魚類攝食行為的精準判斷。本具體算法如圖2所示。
對魚類本體進行分析是傳統的判別魚類攝食行為的主要方法,但是其容易受到水花、水體質量、陰影等因素的干擾。然而,相關研究表明,由魚群攝食活動引起的水面反光區域的變化特征能夠在一定程度上表征魚類攝食活動的激烈程度[24]。因此,該研究對水面反光波紋所提取的頻率信息進行分析。首先,對水面波紋進行前景提取,去除圖片中的背景干擾。由于在RGB色彩空間中,魚本體及水中雜質干擾較多,該研究將圖像從RGB空間(圖3a)轉化到HSV空間(圖3b);其次,提取S分量(飽和度,圖3c)和V分量(亮度,圖3d)。
通過對比圖3c和3d可以看出,反光區域的對比度很低但亮度很高,因此該研究分割公式如下
式中Is(x,y)和Iv(x,y)分別表示圖像在(x,y)處的飽和度值和亮度值,Ts和Tv分別為飽和度閾值和亮度,f(x,y)表示經二值化處理后像素點(x,y)的取值(圖3e),f(x,y)值為 1的區域為反光區域[17]。該研究中,經過提取反光區域與原圖進行多次效果比對,最終分別確定Ts值為 0.25,Tv值為0.75。
水面反光區域變化的劇烈程度可以明顯反應魚群運動的不規律程度,并能夠在頻域中用幅值對其進行量化。該研究利用傅里葉變換提取原始圖片中的頻譜幅值,從而分析原始圖片中波紋(水花)圖像變化的劇烈程度,以此量化魚類攝食欲望程度。傅里葉變換能夠將預處理所得的圖像波紋信息由空間域變換至頻率域,而快速傅里葉變換能夠提高傅里葉變換的計算效率。因此,該研究采用快速傅里葉變換對原始圖像進行處理。
傅里葉變換可以看作是數學上的棱鏡,將函數基于頻率分解為不同的成分。圖像的頻率是表征圖像中灰度變化劇烈程度的指標,是灰度在平面空間上的梯度。從物理上來看,傅里葉變換是將圖像從空間域轉換到頻率域,其逆變換是將圖像從頻率域轉換到空間域。具體原理可參見相關文獻[31]。
令f(x,y)代表一幅尺寸為M×N的數字圖像,由f(u,v)表示f(x,y)的二維傅里葉變換,見公式(2)
式中u=0,1,2,…,M-1;v=0,1,2,…,N-1。其逆變換為
式中x=0,1,2,…,M-1;y=0,1,2,…,N-1;j為虛數。
由于傅里葉變換后所得空域矩陣f(u,v)內值通常為復數,無法實現可視化,因此在本試驗中,通過計算圖像的頻譜,即f(u,v)的幅度,從而將其轉化為可視化傅里葉頻譜圖,該方法見公式(4)
式中R(u,v)與I(u,v)分別表示f(u,v)的實部和虛部。為增強頻譜圖的可觀察性,將所得頻譜圖進行居中變換及log增強,再對其以10.5為灰度閾值二值化[34],攝食狀態(圖4a)和非攝食狀態(圖4b)可視化頻譜圖與原圖比較如圖4所示。
已知在進行居中變換的可視化頻譜圖中,中心區域與邊緣四角區域所代表的頻率高低不同,中心區域代表高頻信息,邊緣四角區域代表低頻信息。在相同范圍的頻譜區域內,頻率越高,周期越短,幅值之和相對較大,說明水花波動劇烈,魚類大概率處于攝食狀態;頻率較低,周期較長,幅值之和相對較小,說明水花波動不劇烈,魚類大概率處于非攝食狀態。由圖4可知,在魚類攝食狀態下波紋頻譜圖具有更多的高頻信息,代表攝食行為更為劇烈。而相同頻率范圍內頻率越高,其范圍內的幅值總和也會相應增大。此外,傅里葉變換后所得頻譜圖中的頻率信息較原圖像的空間域信息更易提取,表征性也更強。因此,根據頻譜圖的這一特征,將相同頻率區間內 2種攝食狀態的幅度值作為判斷魚類攝食行為的特征值。不同環境條件下,雖然魚類攝食狀態與非攝食狀態下的幅值對比均較為明顯,但劃分不同攝食狀態的幅值存在較大的差異,較難取得一個具體的閾值,因此不能通過設定簡單的閾值來判斷攝食狀態。該研究通過對頻譜幅值提取,作為支持向量機的特征向量進行訓練,實現對攝食狀態更精確的判斷。
上文所述方法提取的幅度值之和為傅里葉頻譜圖中的所有幅值之和,僅有一組數據,缺乏數據多樣性,無法為支持向量機提供充足的特征向量。為增加樣本數量,縮小實驗誤差,該研究通過不同環形濾波器對頻譜圖像進行濾波,通過不同內徑的環形濾波器將原始頻譜圖分為不同區塊,并統計每個區塊內的幅值之和,以此作為特征向量。環形濾波器的構建如公式(5)所示
式中D(u,v)為選定點距濾波器中點距離,D0為濾波器內徑,D1為濾波器外徑。
為進一步提高該研究的成功率,在對每段區間提取幅值之和后,需要對攝食行為和非攝食行為幅值數據中相同小區間的幅值之和進行對比,最終舍棄在攝食狀態變化時幅值變化不明顯的頻譜范圍,并將剩余區分度較好的頻率范圍內的幅值之和作為構建特征向量的數據集。
本試驗攝食行為分類通過訓練支持向量機分類,主要包括訓練樣本和測試樣本特征數據的提取,數據的預處理和支持向量機的參數優化。
支持向量機是20世紀90年代中期發展起來的基于統計學習理論的一種機器學習方法,其通過尋求結構化風險最小來提高學習機泛化能力,實現經驗風險和置信的最小化。其主要思想是建立一個最優決策超平面,使該平面兩側距離該平面最近的兩類樣本之間的函數間隔最大化,實現對樣本的最優分類。最優超平面示意圖如圖5所示。
由圖5可知,所有在上間隔邊界上方的樣本屬于正類,在下間隔邊界下方的樣本屬于負類,2個間隔邊界的距離被定義為邊距,位于間隔邊界上的正類和負類樣本為支持向量。
本試驗由拍攝視頻所得的2 197張波紋圖片中,選取投喂前及攝食完成后的圖片集作為非攝食狀態圖片集,將投喂后直至攝食完成前的整個攝食過程的圖片集作為攝食狀態圖片集。除此之外,舍去2種攝食行為分界時間節點附近的、無代表性的模糊圖片。隨機選取攝食行為和非攝食行為狀態圖片各150張作為訓練圖片集。分別將非攝食狀態和攝食狀態的前90張圖片作為訓練集,將后60張圖片作為測試集,即訓練集共有180張圖片,測試集共有120張圖片。對圖片集進行幅值提取并轉化為特征向量來訓練SVM模型,并通過交叉驗證法對c/g值進行優化,提高模型識別準確率。訓練平臺為MATLAB 2016b和libsmv 3.24工具箱。
本文以50為步長的濾波器對頻譜圖進行濾波,濾波完成后對所得的頻譜圖進行傅里葉逆變換,并對相同頻率區間攝食行為和非攝食行為濾波結果圖片進行對比,結果如圖6所示。
圖6中,在D(u,v)>50時,2種狀態在圖中的區別較為明顯,攝食行為圖像中反光區域的離散程度和噪聲明顯高于非攝食行為,而在D(u,v)<50時,波紋位置的細節較為豐富,而二者差異卻不夠明顯。因此,推測在選擇頻譜幅值之和作為判斷魚類攝食行為的特征值時,要舍去影響判斷的模糊范圍,即選擇D(u,v)>50的頻率范圍。
以上述例子為樣本,為增強該試驗結果的普適性,本文以20張隨機同種狀態圖片為一組,每種狀態5組圖片,統計每組圖片的幅值并求其均值。本文選取50為步長的濾波器將兩種狀態頻譜圖分為各個不同區間,并提取各區間內幅值之和,取均值結果如圖7所示。
由圖7可知,在半徑為0~550的頻率范圍內,除0~50子區間外,所有特征子區間頻譜幅值均有很好的區分度,即攝食行為水面反光區域頻譜圖的幅值之和明顯大于非攝食行為水面反光區域頻譜圖的幅值之和,與上文論證結果相同,因此由該方法得出的特征向量提取范圍具有普適性,能夠更好地對攝食行為進行區分,減少干擾,提高成功率。
該研究頻率區間內幅值之和作為特征向量,且幅值之和隨環形濾波器內外徑增大而逐級遞減。為確定不同分割步長對實驗結果準確率的影響,本文分別以不同寬度的環形濾波器在頻率區域內進行頻譜濾波,并對其分類準確率分別進行了統計。
由表1可知,步長位于70~90之間時,可以獲得較好的分類效果且產生的特征子區間數較少,訓練時間相應也較少。因此在本文中,選擇90為步長對特征向量提取范圍進行分割,所得到的子區間從小到大依次為[50,140]、(140,230]、(230,320]、(320,410]、(410,500]、(500,550]。通過提取特征子區間內的幅值之和,在 300個樣本中,構建訓練集和測試集的數據樣本,并以此構建訓練集和測試集,訓練支持向量機。

表1 不同分割步長的分類準確率及平均訓練時間Table 1 Classification accuracy and mean training time of different split steps
本文采用支持向量機對測試樣本進行分類預測。其對沒有歸一化前的數據進行訓練,需要較長時間才能達到KKT(Karush-Kuhn-Tucker conditions)條件,即滿足最優解的必要條件,導致運算時間過長,歸一化能夠方便后期數據的處理,并保證程序運行時收斂加快,但是并不是所有數據都進行規范化。在該研究中,將數據歸一化至[-1,1]與未歸一化后分類準確率進行了研究比對,結果顯示,在進行數據歸一化后,攝食行為的分類準確率能夠達到 98.3%,較歸一化前的42.5%有大幅提高。
在支持向量機中,數據歸一化后,還需要對參數進行選擇。支持向量機中,核函數寬度g與懲罰系數c對支持向量機分類準確率影響較為明顯。核函數能夠將特征向量映射到更高維空間中,使原本線性不可分的數據變為可分;而懲罰系數權衡了經驗風險和結構風險,即懲罰系數越大,經驗風險越小,風險結構越大,則越容易出現過擬合;懲罰系數越小,經驗風險越大,風險結構越小,則容易出現欠擬合。為提取到較好的參數,本文采用交叉驗證法提取參數,從數據集中按一定比例選取若干數據集作為訓練集,并將模型輸出的預測值與對應數據的因變量進行比較,提取出分類準確率最高的系數組合。本文進行了多次交叉驗證,并對每一組的分類準確率(accuracy=標簽正確數/總數)進行統計,選取準確率最高的5組系數如下表2所示。

表2 多次交叉驗證結果對比Table 2 Comparative results of multiple cross-validation results
由表2結果可知,交叉驗證法所得c/g參數分類成功率均能達到預期標準。由于懲罰系數c越高將會造成過學習狀態,使驗證數據的準確率虛高,而由于本文數據集充足,不必考慮欠擬合狀態,因此本文選擇懲罰系數 c最小、準確率最高的一組數據作為最佳c和g,即c為1.56×10-2,g為 0.29。
將本文方法與其他基于機器視覺的魚類攝食行為判斷方法進行訓練測試后,結果對比如表3所示。

表3 各方法檢測結果對比Table 3 Comparison of detection results of each method
基于形狀和紋理特征的魚類攝食狀態檢測方法的準確率最低,其原因是該方法僅考慮魚群圖像的靜態特征變化信息,容易將非攝食狀態下的魚類聚集現象誤判斷為攝食行為。并且,前2種方法均對魚群本體進行分析,容易受到渾濁水質、水面反光等因素的影響,因此成功率較本文方法較低。由于該研究需要對首先對數據集進行采集訓練,以成功搭建支持向量機模型,因此測試運行時間大部分集中在對數據集的訓練上,而實際檢驗樣本所耗時間在1 s內;此外,在相同養殖池環境中,該模型可重復使用,無需多次訓練,因此在實際工廠化養殖環境中,綜合效率將明顯高于其余方法。
該研究在工廠化養殖水質環境下,通過對魚群攝食行為所造成的水面反光區域,并通過對傅里葉頻譜圖的分析來量化其區域變化的劇烈程度,從而實現對魚類攝食狀態的判斷。該研究不需要對魚群本體進行任何提取和分析,因此能夠有效地避免水質渾濁、水面反光、魚影重疊等復雜問題,對魚群的攝食行為判斷具有較高的準確率和普適性。因此該研究可以應用于工廠化養殖魚類的攝食行為判斷與精準投喂研究。
本文提出了一種基于傅里葉頻譜特征的魚類攝食行為判斷方法。通過傅里葉變換及頻域濾波確定特征向量提取范圍,統計該范圍內頻譜幅值之和作為判斷魚類攝食行為的特征值,并通過支持向量機進行分類預測,取得了較好的分類效果。研究結果如下:
1)將魚類攝食過程的圖像從空間域轉換為頻率域可以方便特征向量的提取。在50~150的頻率范圍內,通過步長為 50的環形濾波器提取頻譜幅值,以此量化魚類攝食過程水面波紋的離散程度,進而判別魚類的攝食行為。
2)對支持向量機模型的特征向量提取進行了優化,結合交叉驗證法的測試結果篩選出核函數寬度和懲罰系數2個評價系數,當2個系數分別取1.56×10-2和0.29時效果最好,識別結果準確率為99.24%。
在實際工廠化循環水養殖中,可以對魚群攝食行為的視頻數據樣本進行提前訓練,并對比選定合適的閾值,得到判斷魚類攝食行為的分類器,并將其置于養殖的投喂控制系統中,實現對魚類的精準投喂。
然而,實際養殖過程中,當養殖對象的大小和體長等不足以對水面造成反光區域明顯變化時,該研究所提出的對魚類攝食判斷方法的可實施性將會明顯降低。并且該方法也需通過對魚類的定時投喂(即魚類的攝食規律)為基礎,而魚類的攝食規律將會受到各種客觀因素如養殖環境、個體大小等影響。因此探索不完全依賴于養殖對象的攝食習性和規律的精準投喂方法將是下一步研究的目標和重點。