史 懷 陳 崢 潘志針 福建省農(nóng)業(yè)科學院農(nóng)業(yè)生物資源研究所 福州 350003
動物的采食、飲水、排泄等行為是判斷其健康狀況的重要依據(jù), 例如日采食量的減少多是由于感染疾病而引起,是疾病的早期征兆[1]。 目前國內(nèi)大多養(yǎng)殖場都是采用對特定觀察群體的人工觀察方式監(jiān)測豬的個體行為,費時費力,而且人工觀察的數(shù)據(jù)存在一定的主觀性偏差。自動化系統(tǒng)檢測具有無人干預、獨立可靠和連續(xù)性強等優(yōu)點, 是規(guī)?;B(yǎng)殖的發(fā)展趨勢[2]。 隨著信息技術(shù)的發(fā)展,生產(chǎn)者可通過自動化系統(tǒng), 監(jiān)測動物早期的行為變化并對監(jiān)測數(shù)據(jù)進行智能分析,判斷動物是否出現(xiàn)健康問題并迅速反饋,以便管理人員及時采取相應(yīng)的處理措施。
傳統(tǒng)自動化檢測系統(tǒng)中, 豬的個體識別主要采用耳標射頻識別(簡稱RFID)技術(shù),但該技術(shù)在一定程度上會干擾豬只的正常生活[3],并且當多個RFID應(yīng)答器接近于接收器時, 低頻RFID 無法準確識別出特定個體[4]。 隨著近幾年機器視覺、深度學習技術(shù)的發(fā)展, 基于機器視覺的非接觸式方案技術(shù)可行性越來越高,可以取代人工,完成更高效的日常養(yǎng)殖管理。
對群養(yǎng)豬排泄行為的研究表明, 豬具有定點排泄(墻角或圈欄一角)的生活習性,平時較少在排泄區(qū)停留[5]。 因此,本項目引入機器視覺技術(shù),通過改建試驗用豬舍,設(shè)定進食區(qū)和排泄區(qū),分別在兩個區(qū)域的正上方安裝攝像頭進行俯拍持續(xù)視頻監(jiān)控每頭豬個體的采食、排泄活動(見圖1),構(gòu)建個體身份和行為識別系統(tǒng)。
圖1 識別系統(tǒng)視頻監(jiān)控布局示意圖
選取一欄10 頭左右、處于育肥期的豬進行試驗研究。在方案中,需要考慮如下兩個主要問題:(1)豬個體的身份識別;(2)豬個體的進食、排泄行為識別研究。
由于豬的非剛性特性, 豬在圈舍中有停停走走的運動模式, 同一頭豬不同的姿勢所提取的特征就不盡相同。以往的機器視覺方法做豬個體識別,通過豬個體的顏色、紋理、形狀等融合特征進行識別,在實際應(yīng)用中識別率往往不理想。 另外,顏色、紋理等特征的提取受光線的影響也較大。因此,本項目中提出在豬只的體表設(shè)置不同的數(shù)字標記方法, 結(jié)合豬只的輪廓等形狀特征,進行豬個體的身份識別。
本項目設(shè)計選取10 頭豬進行試驗,采用最簡單的0~9 數(shù)字標記。 數(shù)字標記的方向統(tǒng)一與豬只的頭尾方向平行,見圖2。
在實際應(yīng)用中,可根據(jù)豬舍的豬只數(shù)量,決定編號的位數(shù), 原理相同, 具有可擴展性。 具體流程見圖3。
1)背景消除:通過改進的背景消除算法獲得前景(豬只)的輪廓信息;
圖2 數(shù)字標記示意圖
圖3 單一個體識別流程
2)區(qū)域分離:利用基于形態(tài)學的圖像分析算法對豬個體進行分離, 獲得圖像中每頭豬個體的區(qū)域和輪廓信息;
3)旋轉(zhuǎn)校正:對每頭豬個體的輪廓曲線計算最小外接矩形,得到豬只相對垂直位置的傾斜角,利用該傾斜角進行旋轉(zhuǎn)校正;
4)標識識別:經(jīng)旋轉(zhuǎn)矯正后的標識是處于0 度或180 度方向, 利用訓練好的卷積神經(jīng)網(wǎng)絡(luò)進行數(shù)字標識的檢測和識別,選取超過置信度閾值的Top-1 類別,輸出識別結(jié)果。
經(jīng)過上述流程, 可以獲得在圖像視野內(nèi)所有豬個體的ID 以及相應(yīng)的姿態(tài)。 在此基礎(chǔ)上,根據(jù)姿態(tài)(如豬頭部與進食槽的區(qū)域重合度、豬尾部與排泄區(qū)的區(qū)域重合度)和在飲食區(qū)、排泄區(qū)的駐留時長,記錄相應(yīng)的進食和排泄行為。 系統(tǒng)的整體方案流程見圖4。
2.1 背景消除 采用混合高斯模型GMM 進行背景建模。
1)首先將每個高斯的均值、方差,權(quán)值都設(shè)置為0,即初始化個模型矩陣參數(shù)。
2)采用視頻中的T 幀用來訓練GMM 模型。 對每一個像素而言, 建立其模型個數(shù)最大GMM_MAX_COMPONT 個高斯的GMM 模型。 當?shù)谝粋€像素來, 單獨為其在程序中設(shè)置好其固定的初始均值、方差,并且權(quán)值設(shè)置為1。
3)非第一幀訓練過程中,當后面來的像素值時,與前面已有的高斯的均值比較, 如果該像素點的值與其模型均值差在3 倍的方差內(nèi), 則任務(wù)屬于該高斯。
4)當?shù)竭_訓練的幀數(shù)T 后,進行不同像素點GMM 個數(shù)自適應(yīng)的選擇。
在上述背景消除的基礎(chǔ)上, 以正常豬體面積的20%為基準, 去除掉圖中面積小于20%豬體面積的連通域,剔除結(jié)果就只剩下大面積的豬體。
圖4 系統(tǒng)整體方案流程
2.2 區(qū)域分離 為了盡量保持豬體輪廓且有效分開粘連豬體,使每個豬體成為單一的連通域,對圖像進行形態(tài)學預處理。 采用不同形狀的開運算結(jié)構(gòu)元素進行形態(tài)學開運算,可以用圓形、方形、菱形和斜45°線型的結(jié)構(gòu)元素進行開運算。
2.3 旋轉(zhuǎn)校正 提取該豬體的連通域(連通域內(nèi)像素點值為1,背景為0),遍歷連通域中所有像素點,找到所有與背景八鄰域相接的像素點, 生成豬體邊緣像素點集, 得到圖5 所示輪廓曲線。 對輪廓曲線計算最小外接矩形。
圖5 豬體輪廓曲線與旋轉(zhuǎn)校正
圖中的θ 即為所求得的旋轉(zhuǎn)角度, 根據(jù)該旋轉(zhuǎn)角度, 可以通過旋轉(zhuǎn)矯正將所有豬個體的形態(tài)都旋轉(zhuǎn)到垂直方向。注意:由于未區(qū)分豬頭、豬尾,所以旋轉(zhuǎn)后的圖像上顯示的標識可能是正方向, 也可能是180 度反方向,但無礙進行下個步驟的標識識別。
2.4 標識識別 隨著近幾年深度學習技術(shù)的發(fā)展,以卷積神經(jīng)網(wǎng)絡(luò)為代表, 在圖像分類和目標檢測領(lǐng)域獲得了長足的進步。 在目標檢測領(lǐng)域,以RCNN、YOLO、SSD 為代表, 檢測精度mAP 一直持續(xù)提高。本文綜合考慮性能和速度的權(quán)衡,采用SSD 框架進行豬背上數(shù)字標識的檢測, 檢測的結(jié)果會輸出標識的位置和類別(0~9 數(shù)字,共10 類)。
在具體試驗中, 本文利用i7 CPU,GTX1080 顯卡,在ubuntu 系統(tǒng)下,采用Caffe 深度學習框架(見圖6),采集2 000 張試驗場景圖片,并進行檢測框的標注后訓練得到相關(guān)模型。
圖6 Caffe 深度學習框架
圖7 不同生豬個體行為明細記錄界面
圖8 異常行為報警記錄
根據(jù)識別結(jié)果, 可以同時確定豬頭和豬尾在圖像中的具體位置,便于下一步的進食、排泄行為識別。
2.5 進食、排泄行為識別 前述工作完成了對每頭進入拍攝視野的豬個體的ID 識別, 在此基礎(chǔ)上,通過如下兩個規(guī)則來確定豬是否完成了進食或排泄行為。
對于進食行為,若滿足情況:(1)豬頭部與進食槽的重合度IOU 超過置信度; 置信度設(shè)為0.6;(2)豬在進食區(qū)的單次駐留時長超過10 秒。則輸出進食時間、時長,并將進食行為記錄數(shù)+1。
對于排泄行為,若滿足情況:(1)豬尾部與排泄區(qū)的重合度IOU 超過置信度; 置信度設(shè)為0.6;(2)豬在排泄區(qū)的單次駐留時長超過10 秒。則輸出排泄時間、時長,并將排泄行為記錄數(shù)+1。
以福建省農(nóng)業(yè)科學院漁溪微生物發(fā)酵床大欄養(yǎng)殖工程化實驗室菜豬場的2 欄20 頭育肥豬為驗證對象,在自由采食條件下監(jiān)控其進食與排泄行為(見圖7)。驗證期從2019 年5 月1 日至6 月30 日,在此期間,共檢測出疑似患豬17 頭次,經(jīng)檢驗實際患病15 頭次,本系統(tǒng)預測準確率為88.23%,基本達到了預期目標。 選取期間檢測到的出現(xiàn)異常行為的報警示例見圖8。
在系統(tǒng)中監(jiān)測到某頭生豬24 h 內(nèi)進食或排泄次數(shù)超出設(shè)置閾值,即將其確定為疑似患豬,并進行報本文設(shè)計了一種遠程智能化監(jiān)測識別生豬行為的方法,可以對疑似患豬進行預判,在減輕養(yǎng)殖人員巡欄工作量的同時,可盡量避免養(yǎng)殖企業(yè)的經(jīng)濟損失。