程國棟 吳建寨 邢麗瑋 朱孟帥 張建華 韓書慶
(中國農(nóng)業(yè)科學院農(nóng)業(yè)信息研究所/農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)大數(shù)據(jù)重點實驗室,北京 100081)
奶牛行為是奶牛對刺激或者周圍環(huán)境做出反應的方式,其正常行為包括采食、反芻、運動、飲水等[1]。研究表明,奶牛行為可以反應出奶牛的健康狀態(tài),如奶牛的日產(chǎn)奶量和采食量成正相關,咀嚼行為和反芻行為影響瘤胃發(fā)酵參數(shù)[2-4]。目前,中、小型奶牛養(yǎng)殖場基本采用人工觀察奶牛行為的方法,因此研究一種自動化、智能化的奶牛行為判別方法具有重要意義[5]。
近年來,機器視覺技術在行為識別領域廣泛應用[6]。劉忠超等[7]使用攝像機對牛場進行監(jiān)控,利用卷積神經(jīng)網(wǎng)絡(Convolutional neural network,CNN)檢測奶牛爬跨、發(fā)情行為,準確率為98%。顧靜秋等[8]使用基于圖像熵和運動量的方法檢測奶牛的爬跨行為和蹄病,準確率超過80%。Heo等[9]從視頻中抽取行為特征,利用支持向量機檢測奶牛的發(fā)情行為。張宏鳴等[10]利用YOLOv3模型實現(xiàn)對多肉牛目標進食行為的檢測。郝玉勝等[11]在牛場設置通用WiFi設備,利用長短時記憶神經(jīng)網(wǎng)絡(Long short-term memory,LSTM)算法,識別奶牛爬跨行為。上述行為識別方法僅對牛的部分行為(發(fā)情、蹄病)進行識別,無法同時識別多類行為。在實際應用時,光照情況、牛棚環(huán)境和牛只位置等條件也會影響上述行為識別方法的準確率,不利于多頭牛的行為的精準監(jiān)測。
慣性測量單元(Inertial measurement unit,IMU)在應用時,不受環(huán)境影響可同時測量大量牛只,為奶牛行為判別打開了新的思路。王俊等[12]利用三軸加速度傳感器和半監(jiān)督模糊聚類方法對奶牛的進食、快走、慢走、平躺姿態(tài)、平躺動作、站立姿態(tài)、站立動作進行了識別。候云濤等[13]利用二叉決策樹和支持向量機對奶牛靜止(站立、躺臥)、慢走、快走、爬跨、慢跑、快跑行為進行了識別。Busch等[14]利用決策樹和BP神經(jīng)網(wǎng)絡(Back propagation neural network,BPNN)算法對奶牛站立和躺臥兩種狀態(tài)進行了分類。SHEN等[15]利用K-近鄰(K-nearest neighbor,KNN)算法對奶牛的反芻、進食和其他3種行為進行了識別。任曉惠等[16]利用螢火蟲尋優(yōu)算法和支持向量機對奶牛反芻、進食、飲水進行了分類。Peng等[17]在三軸加速度傳感器的基礎上,同時使用陀螺儀和磁力計,利用LSTM算法對奶牛頂撞、反芻、進食、躺臥、相互舔舐、舔鹽行為進行了分類。Reza等[18]使用IMU收集奶牛運動數(shù)據(jù),測試了多層感知器、邏輯回歸、支持向量機(Support vector machine,SVM)、線性判別等算法,對奶牛進食、反芻、休息、其他4類行為進行了分類。
現(xiàn)存奶牛行為分類對于行為的劃分粒度較粗,為了進一步提高奶牛行為識別的準確性,本研究擬對奶牛的進食、反芻和休息行為進行細分,采用IMU和CNN對細粒度奶牛行為進行判別,并對傳感器類型、頻率、時間窗進行測試,以期為奶牛智慧化養(yǎng)殖提供新的思路和技術支持。
試驗采用的IMU型號為LPMS-B2,由日本的LP-RESEARCH公司與廣州阿路比電子科技有限公司共同研發(fā)。IMU集成了三軸加速度計、陀螺儀和磁力計等多種傳感器,可同時進行數(shù)據(jù)采集和數(shù)據(jù)傳輸,其中加速度計可以檢測運動載體三軸加速度數(shù)據(jù),陀螺儀可以檢測載體相對于導航坐標系的角速度數(shù)據(jù),磁力計可以檢測載體在3個方向的磁感應強度。
試驗人員將IMU固定到奶牛脖頸正下方,使IMU帶“P”圖案的一面朝向地面。固定頸帶松緊適宜,既保持IMU位置不變,又不會使奶牛產(chǎn)生應激反應。IMU頻率設定為25 Hz,啟動傳感器,人工同時開始標注奶牛卷食、咀嚼、站立反芻、躺臥反芻、躺臥休息、站立休息(奶牛在站立的狀態(tài)下,原地不動或者低速慢走的行為)6種行為。數(shù)據(jù)采集時間為2019年12月25日9:00—12:00,13:00—16:00。
在人工標注奶牛行為時,需要記錄奶牛行為的開始時間和結(jié)束時間。傳感器記錄的時間精確到秒,因此人工記錄的時間也需要精確到秒。為方便試驗員標注奶牛行為,本研究開發(fā)了一款輔助試驗員進行奶牛行為標注的手機程序。試驗員點擊程序中奶牛行為按鈕,程序可以自動記錄奶牛行為、行為開始時間、行為結(jié)束時間、以及行為發(fā)生的先后順序。
IMU數(shù)據(jù)來自于加速度計、陀螺儀和磁力計(表1)。首先按照時間先后順序為IMU數(shù)據(jù)匹配人工標注的奶牛行為,匹配后將6類奶牛行為提取單獨存放。
表1 固定在奶牛脖頸的IMU輸出數(shù)據(jù)Table 1 Data from IMU fixed to the cow’s neck
試驗時IMU頻率(f)設定為25 Hz,表示IMU每1 s產(chǎn)生25行數(shù)據(jù)。f設定為5、10 Hz的IMU數(shù)據(jù)從f=25 Hz的IMU數(shù)據(jù)中抽取。具體抽取規(guī)則為:在f=25 Hz的IMU數(shù)據(jù)中,將每25行數(shù)據(jù)視為1個片段,從每個片段中抽取部分數(shù)據(jù)形成新的試驗數(shù)據(jù),f=5 Hz的IMU數(shù)據(jù)抽取第1、6、11、16、21行數(shù)據(jù),f=10 Hz的IMU數(shù)據(jù)抽取1、3、6、8、11、13、16、18、21、23行數(shù)據(jù)。
根據(jù)Peng等[17]的研究,適當?shù)臅r間窗可以提高行為識別精度。根據(jù)試驗員觀察,奶牛單次卷舌、咀嚼時間一般不超過5 s。為使試驗更加貼合實際,本試驗時間窗(T)劃定為1、2和4 s,將時間窗內(nèi)試驗數(shù)據(jù)整合為一組。為增加試驗數(shù)據(jù),在T=2 s和T=4 s試驗中,每行數(shù)據(jù)使用2次,以T=2 s試驗數(shù)據(jù)為例,第1 s數(shù)據(jù)與第2 s數(shù)據(jù)整合為一組試驗數(shù)據(jù),第2 s數(shù)據(jù)與第3 s數(shù)據(jù)整合為一組試驗數(shù)據(jù),以此類推。整合處理之后,當T設置為1、2、4 s時,試驗數(shù)據(jù)為22 461、22 461和11 229組。為了方便訓練和測試分類模型,試驗數(shù)據(jù)按照7∶3的比例分為訓練集和測試集。
每列IMU數(shù)據(jù)范圍差異較大,不利于數(shù)據(jù)計算和模型擬合。在訓練模型前,統(tǒng)一使用L2范式正則化對數(shù)據(jù)進行處理。L2范式正則化原理:1個向量其每個維度元素都除以本向量的2-范數(shù),得到新向量。
KNN算法是一種簡單有效的分類算法,它認為一個樣本的類別由距離此樣本最近的幾個樣本的類別決定[19]。SVM在人像識別、文本分類等問題中廣泛應用[20],核心思想是在樣本空間中尋找最大間隔超平面將樣本分類[21]。BPNN是一種多層前饋神經(jīng)網(wǎng)絡,廣泛應用于各種分類任務。神經(jīng)元是其最基本結(jié)構,通過連接神經(jīng)元構成網(wǎng)絡結(jié)構。LSTM是一種時間循環(huán)神經(jīng)網(wǎng)絡,它能提取時間序列中間隔較長的特征,挖掘序列的深層信息[22]。
CNN是一種深度神經(jīng)網(wǎng)絡,其隱藏層個數(shù)和隱藏節(jié)點數(shù)遠大于普通神經(jīng)網(wǎng)絡,特征學習能力強,可以提取數(shù)據(jù)中隱含的特征關系[23]。CNN由卷積層、池化層、全連接層、Dropout層等構成。卷積層是CNN中最重要的結(jié)構,其主要功能是通過卷積核提取輸入數(shù)據(jù)的特征。卷積核是一種權值矩陣,大小通常為(3,3)或(5,5),它與輸入數(shù)據(jù)做卷積,得到輸出數(shù)據(jù)[23]。池化層一般出現(xiàn)在卷積層之后,對輸入的特征進行二次提取,進一步提高CNN模型的泛化能力。全連接層一般出現(xiàn)在池化層之后,通常由1層或者多層組成,其結(jié)構與BPNN中的隱藏層一致。通過卷積層、池化層、全連接層,CNN模型可擬合大多數(shù)樣本,但訓練小樣本模型時,易出現(xiàn)過擬合現(xiàn)象。為防止過擬合,一般在全連接層后插入Dropout層,主動遺忘部分隱藏節(jié)點,避免模型過于依賴部分特征,從而提高模型的魯棒性。
本研究使用的CNN模型網(wǎng)絡結(jié)構見圖1。在訓練模型時,不同頻率、時間窗的數(shù)據(jù)具有不同的維度,因此在試驗時需改變模型的輸入層,其他結(jié)構不變。如T=2 s、f=25 Hz的數(shù)據(jù)的維度是(22 461,50,9),需將模型的InputLayer層的參數(shù)設置為(50,9);如T=4 s、f=25 Hz的數(shù)據(jù)的維度是(11 229,100,9),需將模型的InputLayer層的參數(shù)設置為(100,9)。
(3)最大位移出現(xiàn)在碼頭面層中心區(qū)域。最大位移為8.55mm,整個鋼管桁架平均位移為2.75mm。根據(jù)相關規(guī)范可知,最大位移不應大于L/600,其中L為計算跨度,取60m。可見最大位移遠小于100mm的位移距離要求。
圖1 CNN模型網(wǎng)絡結(jié)構Fig.1 Network structure of CNN model
正確率(Accuracy,a),精準率(Precision,p)、召回率(Recall,r)和F1值是常用的分類評價指標[15]。計算公式如下:
(1)
(2)
(3)
(4)
式中:TP(True positive)表示被分類器正確分類的正樣本;FP(False positive)表示被分類器錯誤分類的正樣本;FN(False negative)表示被分類器錯誤分類的負樣本;TN(True negative)表示被分類器正確分類的負樣本。
對于多分類問題,每個細分類別均可得出精準率、召回率和F1值,不利于綜合評價分類器。本研究引入了宏平均(Macro average)的概念,對精準率、召回率和F1值進行加和平均,得出宏平均值。最后使用正確率,宏平均后的精準率、召回率和F1值4個指標對試驗進行分析。
試驗流程見圖2。首先,試驗人員在養(yǎng)殖場啟動IMU,同時開始標注奶牛行為。獲取IMU數(shù)據(jù)和人工標注數(shù)據(jù)后,根據(jù)時間先后順序?qū)蓚€數(shù)據(jù)集融合,對融合后的數(shù)據(jù)進行預處理,獲得試驗數(shù)據(jù)。將試驗數(shù)據(jù)劃分為訓練數(shù)據(jù)和測試數(shù)據(jù)。由訓練數(shù)據(jù)訓練分類模型,測試數(shù)據(jù)測試分類模型。最后,綜合選取最優(yōu)分類模型,用于細粒度奶牛行為分類。
圖2 細粒度奶牛行為試驗流程Fig.2 Flow chart of fine-grained behavior classification of cows
KNN、SVM、BPNN、CNN和LSTM 5個分類模型在測試數(shù)據(jù)集上的評價指標見圖3。CNN模型分類精度最好,4個評價指標均超過0.83;LSTM模型效果次之,其4個指標超過0.8。SVM、KNN、BPNN模型分類指標均低于0.75。由此可知,相較于傳統(tǒng)的機器學習算法,深度學習算法更適合于細粒度奶牛行為判別。
圖3 不同算法模型在測試數(shù)據(jù)集上的評價指標Fig.3 Evaluating indicators of models of different algorithm on test data set
三軸加速度計的分類效果優(yōu)于陀螺儀和磁力計,4類指標均大于0.8(圖4)。這說明相較于陀螺儀和磁力計,著重于測量物體空間運動屬性的三軸加速度計更加適合于奶牛行為的判別。單獨傳感器數(shù)據(jù)訓練模型的正確率明顯低于全部數(shù)據(jù)訓練模型的正確率,這說明3個傳感器配合使用可以彌補各自的短板,明顯提高奶牛行為分類的精度。
圖4 不同傳感器模型在測試數(shù)據(jù)集上的評價指標Fig.4 Evaluating indicators of models of different sensors on test data set
IMU頻率越高,傳感器在單位時間內(nèi)采集的數(shù)據(jù)量越多,耗電量也越大。耗電量過大會縮短IMU工作時長,影響實際應用。f=25 Hz的IMU分類模型分類效果最好,優(yōu)于f=5 Hz和f=10 Hz的IMU分類模型(圖5)。由此可見,奶牛行為識別模型的性能與IMU采集數(shù)據(jù)量的大小相關,頻率越高,采集數(shù)據(jù)量越大,識別效果越好。但是不同f的IMU分類模型的性能差距并不明顯,其中f=25 Hz 的IMU分類模型的正確率比f=10 Hz的IMU分類模型大0.02,比f=5 Hz的IMU分類模型大0.04。因此在使用IMU時,在f選擇上應統(tǒng)籌考慮工作時長和分類性能。
圖5 不同IMU頻率(f)的模型在測試數(shù)據(jù)集上的評價指標Fig.5 Evaluating indicators of models of IMU with different frequency (f) on test data set
當時間窗為4 s時,模型的分類效果最好,正確率達到0.85(圖6)。當T=2 s時的模型的分類效果差于T=4 s時的分類模型,正確率為0.84,當T=1 s時的模型的分類效果最差,正確率為0.8。由此可知,細粒度奶牛行為識別的最佳時間窗為4 s。
圖6 不同時間窗(T)模型在測試數(shù)據(jù)集上的評價指標Fig.6 Evaluating indicators of models of different time window (T) on test data set
采用上述試驗和分析得到的最佳參數(shù)(使用全部傳感器、f=25 Hz、T=4 s、CNN算法),構建奶牛行為分類模型,利用模型在測試數(shù)據(jù)集上得到的召回率繪制混淆矩陣(圖7)。反芻(躺臥)和休息(躺臥)的分類效果最好,召回率達0.9以上。卷食(采食)和反芻(站立)2個行為的召回率均為0.88,休息(站立)和咀嚼(采食)的分類效果比較差,召回率分別為0.76和0.69。觀察錯誤分類情況,可發(fā)現(xiàn)咀嚼行為、卷食行為相互錯分較多,休息(站立)、咀嚼行為相互錯分較多,反芻(站立)、休息(站立)行為相互錯分較多。由此可知,咀嚼行為數(shù)據(jù)與休息(站立)、卷食行為數(shù)據(jù)較為接近,休息(站立)行為數(shù)據(jù)和咀嚼、反芻(站立)行為數(shù)據(jù)比較接近,這導致其分類精度較低。將6類行為歸納為站立和躺臥2種狀態(tài),錯分數(shù)據(jù)少,其錯分召回率小于0.02,分類正確率為0.99,說明模型可正確分類奶牛2種狀態(tài)。
A,卷食(采食);B,咀嚼(采食);C,反芻(站立);D,休息(站立);E,反芻(躺臥);F,休息(躺臥)。A, rolling (feeding); B, chewing (feeding); C, ruminating (standing); D, resting (standing); E, ruminating (lying); F, resting (lying).圖7 使用全部傳感器,頻率為25 Hz、時間窗為4 s、 CNN的奶牛行為分類模型混淆矩陣Fig.7 Confusion matrix of model of behavior classification of cow using all sensors, f=25 Hz, T=4 s, CNN
本研究提出了一種基于CNN和IMU的細粒度奶牛行為識別算法,實現(xiàn)了奶牛站立、躺臥2種狀態(tài)和卷食(采食)、咀嚼(采食)、反芻(站立)、反芻(躺臥)、休息(站立)、休息(躺臥)6類行為的識別,主要結(jié)論如下:CNN算法和IMU配合使用,可實現(xiàn)奶牛行為的細粒度分類,其二分類正確率為99%,六分類正確率為85%;與傳統(tǒng)機器學習算法相比,深度學習算法更適用于奶牛行為分類;CNN模型分類效果最好,可以有效的對卷食(采食)、反芻(站立)、反芻(躺臥)、休息(躺臥)行為進行分類;頻率設定為25 Hz的IMU和4 s時間窗更加適用于細粒度奶牛行為分類;當同時使用加速度計、陀螺儀和磁力計3類傳感器時,奶牛行為分類模型效果更好。
雖然細粒度奶牛行為判別試驗取得了一定的成果,但是仍存在提升空間,未來可進一步優(yōu)化CNN網(wǎng)絡結(jié)構,通過增加網(wǎng)絡層數(shù)提高深度,進一步提高模型的正確率。