劉星橋, 張 弛
(江蘇大學電氣信息工程學院/機械工業設施農業測控技術與裝備重點實驗室,江蘇鎮江 212013)
隨著信息化、集約化水產養殖的發展,養殖規模日益擴大,高效準確的水質變化、養殖密度等信息可以為魚類的優質高產提供有效保證。應激反應是魚類受到氨氮、溶解氧等應激源影響所表現出的機能障礙和防御反應。魚類的行為變化則是監測應激反應的靈敏指標[1]。適當的應激可使魚類逐步適應環境,增強免疫機能,從而提高生產性能,然而過度地應激不僅影響魚類的生產性能,而且會誘發多種疾病,甚至造成魚類死亡[2]?,F代集約化養殖方式極大地限制了魚類的行為反應,常導致其行為異常,引起生理系統的應激反應[3]。在這種環境下,養殖密度大,養殖水體水質變化很快,當魚類處于缺氧、水質惡化等應激條件下在較短的時間內就會產生嚴重的后果[4]。隨著計算機圖像處理技術在水產養殖領域的作用不斷加強,國內外學者已經取得了可觀的研究成果。在國外,Ma等利用計算機視覺系統對魚在不同運動模式下的運動軌跡進行分析從而實現對水質監測[5]。在國內,盧煥達等利用攝像設備對魚的行為進行監控發現,魚類由于應激或疾病等引起體色和游動速度的變化[6]。目前,在水產養殖中魚類的行為信息基本上是通過人直接觀察得到,耗費人力、時間,難以及時發現養殖系統中出現的問題[7]。利用圖像處理技術對魚類進行監測能夠提升魚類養殖過程中的科技含量,對提高管理效率和增加養殖產量具有非常重要的意義[8]。利用嵌入式系統實時處理魚類圖像并分析魚類軌跡,為養殖管理提供有價值的信息,從而提高生產效率。
試驗平臺包括嵌入式開發板、攝像頭、玻璃水槽、支架以及背光燈(圖1)。玻璃水槽長為80 cm,寬為38 cm,高為 48 cm,水深為40 cm;嵌入式開發板選用型號Tiny4412;配置2個攝像頭,分別放置在水槽上方距水面26 cm處和水槽前方距前玻璃30 cm處。為保證拍攝到的背景清晰均勻,玻璃水槽的后玻璃和槽底用白色聚氯乙烯(polyvinyl chloride,簡稱PVC)墻紙覆蓋。

開發在嵌入式Linux系統上運行的人機界面,為嵌入式平臺下的復雜圖像處理算法的設計和實現作基礎。在PC端流行的Ubuntu操作系統中交叉編譯OpenCV(開源計算機視覺庫)和Qt(跨平臺C++圖形用戶界面庫)移植到嵌入式Linux系統。嵌入式硬件結構如圖2所示。使用Qt設計圖像處理系統的人機交互界面;OpenCV庫作為提供圖像處理函數的靜態庫添加到Qt的工程文件中作算法函數支持。
本設計采用的基本流程由圖像采集、圖像預處理、目標分割、目標標記、目標跟蹤以及輸出軌跡6個部分組成(圖3)。


處理彩色圖像會造成不必要的系統開銷,所以要對采集到的圖像進行灰度化處理?;叶然幚硎菍GB(red,green,blue)格式的彩色圖像轉換為灰度圖像,轉換公式如公式(1)所示:
Gray=0.229×R+0.587×G+0.114×B。
(1)
式中:Gray表示灰度值;R、G、B分別表示圖像的紅、綠、藍3分量。
目標分割就是把魚類目標從采集到的圖像中分割出來,實現前景目標的提取。
2.2.1 背景差分 背景差分法是將當前包含魚類目標的圖像與背景圖片作差,得到的差值圖像即前景圖像。通過對前景圖像的二值化,就可以提取出魚類目標區域。差分公式如公式(2)所示:
Ik(x,y)=|Fk(x,y)-Bk(x,y)|。
(2)
式中:Ik(x,y)為作差獲得的差分圖像;Fk(x,y)、Bk(x,y)分別為k時刻視頻幀圖像和背景圖像。
2.2.2 閾值分割 對差分圖像進行最大類間方差法(OTSU)閾值分割得到二值圖像。OTSU是通過整幅圖像的灰度特性來選取合適的閾值。用假設的一個灰度值T將圖像的所有像素灰度值分成2組,當這2組的類間方差最大時,所分出來的前景組和背景組的灰度差最大,此灰度值T被采用為閾值[9]。效果如圖4所示。
2.2.3 形態學處理 此時二值圖像往往是帶有噪聲的,比如剩余飼料、魚類糞便等,須要使用形態學處理去除噪聲點。采用開操作,即先對二值圖像腐蝕處理,然后用膨脹處理恢復。腐蝕操作可以去除小噪聲點,使目標邊界向內部收縮。膨脹操作可以擴大噪聲點,使目標邊界向外擴張。形態學處理的效果如圖5所示。


采用Two-pass連通域標記的方法標記魚類目標。連通域標記是指在二值圖像中把所有的連通域都賦予1個編號并作記錄。Two-pass法指2遍掃描法,其中心思想為:第1遍掃描時先賦予每1個值為1的像素位置1個編號,在掃描過程中即使是同1個連通域的像素集合也可能會被賦予多個不同的編號,所以將屬于同1個連通域但又不同的編號合并成1個編號,建立相等關系;第2遍掃描就是根據相等關系將所標記的像素歸為1個連通域,賦予1個相同的編號,大多數情況下此編號取相等關系集合中的最小編號值。所有連通域的編號都存儲在一個編號序列中。
目標標記時按由下至上、由右至左的順序賦予目標編號。連通域標記效果如圖6所示。

直接從圖像序列中獲取目標的相關信息,根據圖像特征構造目標的外觀模型,跟蹤器根據目標模型確定目標在圖像中的位置對目標進行跟蹤[10]。采用先提取目標邊緣計算目標邊緣點的形心,然后匹配目標特征實現對魚類目標的跟蹤。
2.4.1 邊緣檢測 Canny邊緣檢測算法包括高斯濾波器平滑圖像、計算梯度幅值和角度圖像、梯度幅值圖像非最大抑制、雙閾值處理和連接邊緣4個步驟。計算梯度的幅值和方向采用Sobel算子,雙閾值處理時高低閾值比率為3 ∶1。邊緣檢測效果如圖7-a所示。
2.4.2 形心提取 將形心作為魚類目標的跟蹤點。邊緣檢測后,在連通域最外圍矩形區域的基礎上,把每個矩形區域的長寬各擴展4像素,將矩形區域設置為感興趣區域(region of interest,簡稱ROI)。在每個ROI內都只包含1個魚類目標的完整邊緣,根據這些ROI中的邊緣數據提取魚類目標的形心。
在按照目標編號設置ROI之后,提取形心的操作都將在每個ROI中獨立進行。假設邊緣圖像為g(x,y),原點不變矩的計算公式為:
(3)
式中:i,j為計數變量;g為灰度值。
0階矩m00是邊緣圖像ROI的灰度值和,由公式(4)來計算ROI中邊緣圖像的形心(xc,yc):
(4)
式中:m10表示x方向的一階矩;m01表示y方向的一階矩。
形心作為目標的跟蹤點,用小點標記。形心提取效果如圖7-b所示。

2.4.3 目標特征匹配 建立以橢圓模型近似魚類目標的運動模型如圖8所示。其中,(xc,yc)表示目標的形心;a為半長軸長;θ為橢圓的傾斜角度;vx、vy分別為2幀間速度V在x、y軸上的分量。

以10幀/s的速度進行采樣,同一魚類目標的形心在相鄰2幀之間距離不遠,以檢測到的目標為基礎,對當前幀檢測到的團塊與前1幀中的目標計算最近鄰,作初步匹配。
當目標個體與周圍目標距離的最小值大于設定的閾值Td時,說明下1幀該目標不會與其他目標重疊、遮擋,用全局最近鄰法就能夠對目標進行跟蹤。若第i幀目標檢測中得到mi個團塊,第i-1幀有mi-1個目標,形心距離公式如公式(5)所示。其中,α對第i幀mi個團塊進行遍歷,β對第i-1幀mi-1個目標進行遍歷。
(5)
對于目標重疊、遮擋的情況,為保持魯棒性配合目標的橢圓模型的角度、運動方向特征來處理。根據魚類個體運動的特點,在短時間內的游動方向、游動姿態不會有很大的變化,所以可以選用橢圓運動模型的角度、速度方向的余弦值作特征值。
(1)橢圓的角度:
(6)
式中:α對第i幀mi個團塊進行遍歷,β對第i-1幀mi-1個目標進行遍歷。計算前后2幀中,第i幀中的某個團塊與第i-1 幀中目標的橢圓角度差異性,Pθ(α,β)值越小,表示此團塊和前1幀中目標的相似度越高。
(2)運動方向:

(7)
式中:S表示位移;Δt表示時間差;V由vx、vy等2個分量組成,α對第i幀mi個團塊進行遍歷,β對第i-1幀mi-1個目標進行遍歷。2個速度方向夾角范圍為[0,180],cos范圍為[-1,1],Pv(α,β)范圍為[0,2],值越小表示速度方向的夾角越小,相似度越高。dp(α,β)值表示目標距離的遠近,Pθ(α,β)、Pv(α,β)值分別表示形態、運動方向的相似度,由此來進行目標特征匹配。對于發生重疊、遮擋的團塊,一般可以假設目標在進行直線運動,可以將目標融合前的目標和目標分裂后的團塊進行橢圓角度、運動方向的特征確定其相似度,然后進行特征匹配,連接匹配目標的形心,實現目標的跟蹤。
使用Qt GUI類庫編寫的人機交互界面(圖9),按“開始”鍵攝像頭開始采集;按“停止”鍵停止采集;按“拍背景”鍵更新背景圖像;按“退出”鍵退出程序。顯示圖像區域的左上角為當前圖像的幀數以及處理當前幀所消耗的時間,此幀圖像為第156幀,該幀處理耗時89.15 ms。

軟件設計以幀為單位對輸入的圖像進行上述處理。軟件設計采集到的圖像分辨率為640像素×480像素,幀數設置為10幀/s,平均處理每幀圖像的時間為90 ms左右,能保持較好的實時性。
當魚類目標處于非應激狀態時,魚類目標相對靜止,誤差能夠保持在2個像素以內,對目標跟蹤點的檢測能達到較高的精度。
將作為目標跟蹤點的形心按時間順序連接起來后就形成魚類目標的運動軌跡。軌跡數據會以幀為單位儲存在本地的SQLite數據庫中,用戶需要后續的分析評估時可提取使用軌跡數據。
采用多個方向拍攝圖像的方式,能更加全面地分析魚類的行為。通過對軌跡數據的分析可建立模型,計算出魚類目標的運動速度和位移量。采集圖像的方向為正上方和側面,分別由圖1中的攝像頭1和攝像頭2拍攝。
2臺攝像機分開時間拍攝,每臺拍攝時間為25 s,每臺采集到的圖像共為250幀。從上方拍攝的第156幀,圖像處理耗時89.15 ms(圖10-a);從側面拍攝的第172幀,圖像處理耗時89.07 ms(圖10-b)。
根據存儲在本地SQLite數據庫中的軌跡數據重新繪制軌跡(圖11)。


采集到的圖像分辨率為640像素×480像素,幀數設為10幀/s,玻璃水槽的長為80 cm、寬為38 cm、高為48 cm。除去玻璃水槽的玻璃厚度2 cm,從正上方拍攝到的投影面積為48 cm×36 cm。從側面拍攝到的投影面積設置為48 cm×36 cm。
使用形心作為跟蹤點,設在第i-1幀和第i幀的時間分別為ti-1、ti時刻,形心的位置分別為(xi-1,yi-1)、(xi,yi),則魚的位移量(di)、總位移(D)、運動速度Vi可由公式(8)、(9)、(10)計算得到。
(8)
(9)
(10)
根據保存的軌跡數據,每幀之間的時間差為100 ms,經過換算得到魚類目標位移曲線(圖12)。

通過公式(9)、(10)分析可得最大速度和總位移(表1)。
采用2條鯽魚作為試驗對象,拍攝方向為正上方,在不同溶解氧條件下觀察魚類目標的行為反應。

表1 軌跡參數分析
3.3.1 試驗過程 試驗前1周,將2條鯽魚放入玻璃水槽內,定期喂食和清潔水槽。在實驗前1 d停止喂食,添加新水使水位達到40 cm,pH值保持在6.9~7.5之間,室溫為26 ℃左右。通過管道向水體通入純氮壓縮氣體以獲得低溶解氧條件。為了提高氧剝離的效率,在水槽上方蓋上塑料布;通過布置在水體中的傳感器獲得實時的溶解氧數值。溶解氧值正常情況下在6.5~7.0 mg/L之間,進行試驗的溶解氧濃度分別為較高的7.0 mg/L和較低的1.0 mg/L。
試驗開始時溶解氧在(7.0±0.1) mg/L,輕輕敲擊水槽,拍攝25 s的視頻序列,幀數為250幀。然后向水體通入壓縮氮氣一段時間,溶解氧控制在(1.0±0.1) mg/L,經過6 min后輕輕敲擊水槽,拍攝25 s的視頻序列,幀數為250幀。按照上述方法分析在不同溶解氧濃度下的魚類軌跡。
3.3.2 試驗結果分析 試驗獲得多組視頻,選擇其中1組分析魚類目標軌跡(圖13)。通過公式(9)、公式(10)分析可得,在不同溶解氧濃度下魚類目標總位移和最大速度(表2)。


表2 不同溶解氧濃度下的魚類軌跡參數分析
由圖13、表2可以看出,與7.0 mg/L溶解氧環境下相比,魚類目標在1.0 mg/L溶解氧環境下移動速度緩慢、移動距離短、活躍程度明顯降低。在嚴重缺氧時魚的活躍程度減小,為了生存魚在缺氧條件下的對策是降低新陳代謝來減少能量消耗,減少運動活躍性是減少能量消耗的常用方式[11]。試驗結果與此論點相符,驗證了本試驗分析方法的有效性。
(1)嵌入式系統結合圖像處理技術能夠對實時的魚類圖像進行處理。結合OpenCV和Qt,嵌入式系統通過友好的用戶界面展示復雜圖像的處理結果。
(2)設計由圖像采集、預處理、目標分割、目標標記、目標跟蹤以及輸出軌跡組成的魚類軌跡跟蹤方法,準確地計算速度、位移量,用于檢測魚類活躍程度。
(3)通過試驗對比分析在不同溶解氧濃度下的魚類軌跡,檢測其活躍程度。試驗驗證在嚴重缺氧時魚的活躍程度明顯減小,也驗證了魚類運動軌跡參數分析方法的有效性。
(4)跟蹤魚類軌跡是分析處理魚類行為的前置步驟。根據魚類行為標準分析魚類活躍程度等指標以確定其自身健康狀況和養殖環境的變化,為信息化和應對突變情況的快速反應提供保證。
參考文獻:
[1]劉小玲. 魚類應激反應的研究[J]. 水利漁業,2007,27(3):1-3.
[2]王國強,王 雯. 應激反應對魚類影響的研究進展[J]. 安徽農業科學,2009,37(24):11579-11580.
[3]趙建華,楊德國,陳建武,等. 魚類應激生物學研究與應用[J]. 生命科學,2011,23(4):394-401.
[4]徐建瑜,崔紹榮,苗香雯,等. 計算機視覺技術在水產養殖中的應用與展望[J]. 農業工程學報,2005,21(8):174-178.
[5]Ma H,Tsai T F,Liu C C. Real-time monitoring of water quality using temporal trajectory of live fish[J]. Expert Systems with Applications,2010,37(7):5158-5171.
[6]盧煥達,劉 鷹,范良忠. 基于計算機視覺的魚類行為自動監測系統設計與實現[J]. 漁業現代化,2011,38(1):19-23.
[7]江丹丹,桂福坤. 基于視頻圖像的魚類行為軌跡追蹤[J]. 浙江海洋學院學報(自然科學版),2015,34(2):112-118.
[8]于 欣,侯曉嬌,盧煥達,等. 基于光流法與特征統計的魚群異常行為檢測[J]. 農業工程學報,2014,30(2):162-168.
[9]孫少林,馬志強,湯 偉. 灰度圖像二值化算法研究[J]. 價值工程,2010,29(5):142-143.
[10]王書朋. 視頻目標跟蹤算法研究[D]. 西安:西安電子科技大學,2009:16.
[11]Wu R S S. Hypoxia:from molecular responses to ecosystem responses[J]. Marine Pollution Bulletin,2002,45:35-45.