?

基于改進FlowNet 2.0光流算法的奶牛反芻行為分析方法

2023-03-07 07:20姬江濤劉啟航高榮華李奇峰趙凱旋
農業機械學報 2023年1期
關鍵詞:光流頭部奶牛

姬江濤 劉啟航,2 高榮華 李奇峰 趙凱旋 白 強

(1.河南科技大學農業裝備工程學院, 洛陽 471003;2.國家農業信息化工程技術研究中心, 北京 100097;3.北京市農林科學院信息技術研究中心, 北京 100097)

0 引言

奶牛進食后一段時間,將未能消化的食物從食道返回口腔,重新咀嚼后吞咽的行為稱為反芻行為[1-3]。反芻行為與奶牛生產、繁殖性能及疾病等因素密切相關[4-8]。STONE等[9]、KAUFMAN等[10]和ANTANAITIS等[11]試驗驗證奶牛反芻時間與產奶量呈正相關性[12]。ALMEIDA等[13]研究表明,奶?;继悴r其反芻時長明顯下降。因此,監測奶牛個體反芻行為能夠及時掌握其健康狀況,便于早期發現患病牛只[14],避免病情加重影響正常產奶和繁殖[15-18],提高奶牛養殖水平。

反芻行為表現出來的視覺特征是逆嘔-咀嚼-吞咽,一次行為發生的時間約為70 s,每次反芻行為中咀嚼時間為50~60 s,因此咀嚼次數是反芻行為最直觀體現,且咀嚼次數減少意味著反芻行為異常。傳統依靠人工監測并判斷反芻行為異常的工作方式,效率較低、準確率難以保證。隨著養殖規模擴大及現代化、精準化畜牧業發展,智能監測設備不斷涌現[19-21],使得反芻行為監測智能化成為可能?,F有智能化反芻行為監測大多通過穿戴式設備,監測奶牛咀嚼加速度、聲音規律等,該技術監測精度高、實時性強,但穿戴式監測設備安裝成本高、易造成奶牛應激反應[22]。隨著視覺技術在養殖中應用逐漸增多,基于視頻分析的奶牛反芻監測方法降低了接觸式設備監測奶牛反芻行為的成本,避免了設備對奶牛造成的應激反應,是未來奶牛反芻行為監測發展的重要趨勢。ANDRIAMASINORO等[23]結合慣性測量單元(Inertia measuring unit, IMU)識別奶牛反芻行為,準確率為95.0%。CHEN等[24]采用Mean-Shift算法精確跟蹤奶牛下頜運動,從視頻中提取出牛嘴運動的質心軌跡曲線,實現奶牛反芻行為監測,準確率為92.03%。REITER等[25]采用Smartbow算法創建了Smartwell視頻分析系統監測奶牛每小時反芻時間,誤差為35.3 s。毛燕茹等[26]通過Kalman濾波和Hungarian算法對同一奶牛上下顎區域關聯匹配獲取嘴部咀嚼曲線,實現多目標奶牛嘴部跟蹤和反芻行為監測,咀嚼次數平均正確率為96.93%。

基于視頻分析的反芻行為監測方法,具有較強的光照敏感性,不適宜圖像明暗程度差異較大的養殖環境。而光流法不會受光照條件約束且能夠保證較高檢測率,被廣泛應用到復雜養殖環境下動物行為分析。如宋懷波等[27]利用Lucas-Kanade稀疏光流法分析視頻序列幀中奶?;ò哌吔缙骄饬髯兓幝?,實現呼吸行為檢測,幀處理耗時在0.10~0.13 s之間,檢測平均準確率為98.58%。李通[28]提出了一種基于Horn-Schunck光流法的多目標奶牛嘴部區域自動檢測方法,跟蹤成功率達到89.12%。段恩澤等[29]基于優化Mask RCNN的實例分割網絡和基于LiteFlowNet的光流計算網絡,構建了一種死兔行為識別模型,識別準確率為90%。其中FlowNet算法相較于傳統光流算法光流計算速度更快,對視頻幀間運動信息敏感,更加適合擁有豐富大小位移信息的反芻行為監測,而由于其高靈敏度運動感知能力,會不可避免受到反芻過程中奶牛頭部小細節運動干擾。

本文改進FlowNet 2.0光流算法利用垂直光流分量替代光流速度計算光流圖,消除水平運動對光流分析干擾;設置光流閾值避免垂直光流中頭部運動光流干擾,在保持高靈敏度的同時減小其他運動影響。

1 數據集構建與研究方法

1.1 數據來源

2021年9月—2022年3月分別在北京市延慶大地群生奶牛養殖基地和北京市富農興牧奶牛養殖中心采集奶牛反芻行為視頻數據,使用高清網絡攝像機,攝像機位于反芻奶牛頭部側邊45°~90°,距離目標奶牛0.5~1 m位置,每段視頻1~2 min。

首先對反芻行為視頻數據預處理,截取約10 s畫質清晰視頻段,每段300幀,篩選出20頭奶牛共30段反芻行為視頻為試驗數據集。如圖1所示,數據集為奶牛近距離側面反芻行為,其中頭部占據鏡頭主體區域,嘴巴進行大幅度的反芻咀嚼運動。反芻過程中,奶牛頭部小幅度隨機擺動與周圍其他牛只運動干擾影響反芻光流特征提取。

圖1 奶牛反芻運動視頻示例Fig.1 Video example of cow rumination

1.2 理論方法

由于奶牛反芻行為位移較小,需要精度較高的全局光流分析算法才能捕獲到反芻行為的規律特征。FlowNet 2.0由大、小位移求解網絡組成,能夠捕獲到小位移運動信息,因此本文以FlowNet 2.0為基礎網絡,網絡結構如圖2所示。

圖2 FlowNet 2.0網絡結構圖Fig.2 FlowNet 2.0 network structure

圖2中,FlowNetCorr、FlowNetS、FlowNetS 3個網絡串聯組成大位移求解網絡,FlowNet-SD網絡專注小位移求解。其中FlowNetS網絡是只包含卷積層的連接輸入兩幀圖像的通道;FlowNetCorr中采用關聯層促進網絡匹配過程。設相鄰兩幀圖像的多通道特征圖分別為f1、f2,其寬、高、通道數分別為w、h、c。關聯層用來比較每個f1和f2中的圖像塊。定義f1以位置x1為中心的圖像塊和f2以x2為中心的圖像塊之間的關聯性為

(1)

式中o——計算區域

k——計算區域邊長的1/2

每個圖像塊是邊長為K=2k+1的正方形。兩幀之間計算相關性的區域被限制在一個[-k,k]×[-k,k]的區域內,C(x1,x2)表示f1中x1處特征與f2中x2處特征的相似度。當k=0時,C(x1,x2)表示f1中x1處特征向量和f2中x2處特征向量的點乘運算。

向FlowNetCorr網絡輸入兩幀連續的待求解圖像1和圖像2,由上一層網絡估計的光流對圖像2扭曲變換得到連續圖像的亮度差,融合網絡將每組圖像預測的光流場作為輸入,對大、小位移網絡結果進行卷積操作,最終得到光流圖像。

奶牛反芻時其頭部無規則運動,如擺頭、低頭等,造成FlowNet 2.0光流算法生成的光流圖像存在大量干擾運動光流,無法抽取有效的反芻光流。因此,本文通過改進FlowNet 2.0光流算法消除干擾運動對反芻光流的影響。

2 FlowNet 2.0光流算法改進

為消除牛只自身頭部運動與背景干擾對反芻光流特征提取的影響,首先使用垂直光流分量替代光流速度計算光流,消除水平運動造成的干擾;然后設置光流閾值避免垂直光流中頭部運動光流干擾,生成視頻幀間反芻行為光流圖像。同時為減小奶牛反芻行為中因嘴巴閉合與張開至最大時光流消失對檢測的影響,設置反芻區域面積閾值準確提取區域內光流數據,提升檢測準確率。最終對反芻運動曲線圖濾波擬合計算,準確獲取奶牛反芻運動咀嚼頻次。

2.1 反芻行為光流圖

首先計算兩幀視頻流間所有像素點的水平光流分量u和垂直光流分量v,每個像素點在兩幀圖像間的光流速度s為

(2)

每個像素點光流的運動角度a為

(3)

a確定不同顏色代表不同運動角度,s確定顏色強度,生成奶牛反芻行為光流圖,如圖3所示。

圖3 奶牛反芻行為圖像與光流圖Fig.3 Rumination behavior images of cows and optical flow maps

一次完整的反芻咀嚼運動是從嘴巴閉合到張開至最大再到閉合的垂直上下過程。

牛只自身頭部運動與背景運動可拆分為水平方向與垂直方向兩部分,為避免背景與自身運動對光流分析影響,分別從兩個方向的運動分量上對反芻行為光流進行計算。定義T為光流圖像,利用FlowNet 2.0光流算法計算得到光流圖像T,T由a和s共同決定。

為減少s中水平方向運動分量u對反芻行為特征提取的影響,將光流速度s替換為各像素點的垂直方向光流分量v的絕對值|v|。

從圖4可以看出,圖4a中紅框標記出的光流區域為頭部運動對反芻光流的干擾,改進后的算法有效剔除因頭部運動產生的干擾光流,留下嘴部區域反芻光流。

圖4 光流計算方式改進前后效果對比Fig.4 Comparison of effects before and after improvement of optical flow calculation method

2.2 反芻咀嚼頻次計算

反芻區域為二值化反芻光流圖像的最大連通域。對二值化反芻光流圖腐蝕、膨脹,獲得圖像最大連通域,計算其外接矩坐標,即為奶牛反芻區域坐標。理想的反芻區域檢測結果如圖5所示。

圖5中紅框為感興趣區域(Region of interest,ROI),綠框為檢測出的反芻區域。一次完整的反芻咀嚼運動中,奶牛嘴巴閉合狀態與張開至最大時,不會產生光流數據,若此時出現其他劇烈且目標較小運動會影響反芻區域檢測。反芻區域檢測異常結果如圖6所示。

圖5 反芻區域檢測結果Fig.5 Results of rumination area detection

圖6 反芻區域檢測異常結果Fig.6 Abnormal results of rumination area detection

圖6a為奶牛嘴巴閉合狀態下,頸部運動干擾導致反芻區域檢測判斷錯誤;圖6b為背景有其他牛只闖入造成光流干擾導致反芻區域檢測錯誤。通過設置面積閾值減少嘴巴閉合與張開至最大時對反芻區域檢測的干擾,面積閾值μ的計算公式為

(4)

式中 (x1,y1)、(x2,y2)——ROI框的左上頂點、右下頂點坐標

S——檢測得到的反芻區域面積

奶牛反芻行為主要表現為嘴部區域運動,當嘴巴閉合與張開至最大時,背景中其他牛只運動或牛只個體頭部運動會產生小面積光流干擾反芻光流提取,因此,設置面積閾值濾掉小面積的光流區域,來提升反芻光流提取算法的魯棒性與準確性。為確定最佳閾值,選取1/10、1/20、1/30、1/40、1/50作為候選閾值在本數據集不同場景視頻中進行對比試驗,以圖6中出現錯檢的視頻為例分析設置面積閾值后的反芻區域檢測結果,如圖7所示。

圖7 不同面積閾值的反芻區域檢測結果Fig.7 Rumination area detection results of different area thresholds

由圖7a、7b可知,μ為1/10與1/20時,出現部分反芻區域漏檢情況,原因為閾值設置過大導致算法將正常反芻區域過濾,影響后續計算;圖7d、7e中設定μ為1/40與1/50時,仍會出現反芻區域錯檢情況,分析可知其面積閾值設置過小,未能剔除部分頭部運動與背景闖入牛只的干擾;圖7c中設定μ為1/30時,面積閾值成功過濾上述干擾且不會影響正常反芻區域的檢測,算法準確性最高。對比分析試驗結果可知,本文數據集中的最佳面積閾值μ應設定為1/30。

(5)

式中 |v|——反芻區域內光流速度絕對值

奶牛嘴巴閉合及張開最大導致無法檢測到反芻區域時,ROI內光流數據均值計算公式為

(6)

設定橫坐標為視頻幀序列,縱坐標為光流數據的反芻運動曲線,歸一化后使用Savitzky-Golay濾波器減少奶牛頭部其他運動造成的噪聲影響。由于濾波后反芻運動曲線呈現正弦分布波峰波谷,定義擬合函數y,公式為

y=a0sin(a1x+a2)+a3

(7)

式中a0、a1、a2、a3——擬合得出的變量

擬合函數的極大值點h可通過二階導數計算得出,遍歷曲線統計極大值點個數h,即為輸入視頻的奶牛反芻咀嚼次數d,令t為輸入視頻的時間,反芻咀嚼頻次p的計算公式為

(8)

3 試驗與結果分析

3.1 試驗數據集和參數設置

本文試驗基于Windows操作系統、Pytorch框架,其中Python版本為3.6,Pytorch版本為1.0.1,CUDA API版本為10.0,Cudnn版本為7.4.1。選取9頭奶牛的15段視頻作為試驗數據集,隨機選取不同場景下11頭奶牛的15段視頻作為測試數據集。部分視頻圖像如圖8所示。

3.2 試驗分析

為驗證改進FlowNet 2.0光流算法的有效性,在相同設備、相同算法環境下,對比FlowNet 2.0光流算法與改進后算法的反芻行為光流曲線,其中以視頻幀序號作為橫坐標,光流速度均值作為縱坐標,如圖9所示。

由圖9可以看出,改進FlowNet 2.0光流算法相較于FlowNet 2.0光流算法曲線更具規律性、周期性,波峰波谷更為分明。如圖9a中一次反芻運動周期內波峰往往會出現多次(圖中紅圈標出),難以實現曲線波峰波谷的計數。出現該現象的原因是FlowNet 2.0光流算法計算光流速度s沒有對頭部運動與背景干擾進行處理,導致曲線中參雜其他運動噪聲干擾,波峰波谷不明顯。改進后算法計算垂直光流速度v,避免了水平方向運動的干擾,且通過閾值的設置成功過濾掉垂直方向奶牛頭部小幅度運動干擾,使得曲線周期性明顯。如圖9b所示,算法結果中一次反芻運動周期內僅出現一次波峰,保證了反芻咀嚼次數計數的準確性。

圖9 光流曲線結果對比Fig.9 Comparison diagrams of optical flow curve results

為進一步驗證算法的反芻區域面積閾值設置與濾波曲線擬合過程對算法準確率的提升效果,對比FlowNet 2.0光流算法與改進FlowNet 2.0光流算法的濾波效果圖,如圖10所示。

圖10 濾波結果對比Fig.10 Comparison diagrams of filtering results

在圖10中,通過比對同一數據集的濾波曲線(如圖10c、10d),該數據集等140幀左右時(圖中綠圈標出)奶牛出現短暫低頭動作,圖10c中濾波后曲線波峰波谷不明顯,無法確定周期;而圖10d中濾波后曲線除第140幀左右出現波峰特征不明顯外,總體呈現正弦曲線規律,利用正弦函數擬合曲線,濾波后曲線與擬合曲線基本重合,而擬合曲線在第140幀左右波峰明顯,避免了奶牛低頭動作帶來的光流干擾。由圖10可知,反芻區域面積閾值的設置能夠有效減少頭部等其他運動對反芻光流的影響,增大波峰波谷間的差值,使曲線周期性更為明顯,有效避免濾波曲線有少部分區域出現周期缺失的現象,確保算法魯棒性。

為驗證改進FlowNet 2.0光流算法獲取到的奶牛反芻咀嚼次數準確性,對比FlowNet 2.0光流算法和改進算法的反芻咀嚼次數誤檢率,如表1所示。

由表1可知,FlowNet 2.0光流算法反芻咀嚼次數檢測準確率為93.64%,改進FlowNet 2.0光流算法的反芻咀嚼次數檢測準確率為99.39%,比改進前提升5.75個百分點。為了進一步驗證改進FlowNet 2.0光流算法的穩定性與魯棒性,采用新的測試試驗數據驗證改進FlowNet 2.0光流算法的反芻咀嚼次數與反芻咀嚼次數誤檢率,如表2所示。

表1 不同方法計算奶牛反芻咀嚼次數對比Tab.1 Comparative of different methods for calculating rumination times of dairy cows

表2 奶牛反芻咀嚼次數檢測結果Tab.2 Testing results rumination times of dairy cows

由表2可知,除0587_2編號奶牛頭部運動劇烈,造成反芻咀嚼次數檢測誤檢率較高外,其余樣本反芻咀嚼次數均檢測正確。改進FlowNet 2.0光流算法在新的測試試驗數據中仍保持較高反芻咀嚼次數檢測準確率,驗證了改進FlowNet 2.0光流算法的穩定性與魯棒性。

4 結束語

為改善反芻過程中頭部運動與背景牛只運動對反芻行為分析的影響,本文提出了一種改進FlowNet 2.0光流算法的奶牛反芻行為分析方法,利用垂直光流分量替代光流速度計算光流圖,消除水平運動對光流分析干擾;設置光流閾值避免垂直光流中頭部運動光流干擾;二值化檢測奶牛反芻區域進一步消除背景運動影響;設置反芻區域面積閾值準確提取區域內光流數據,避免反芻光流消失時頭部運動與闖入牛只影響;濾波擬合計算反芻曲線,增大波峰波谷差值,保證曲線周期性與算法魯棒性,準確得到奶牛反芻咀嚼頻次信息。試驗結果證明,改進FlowNet 2.0光流算法反芻咀嚼頻次計算準確率達到99.39%,相較于FlowNet 2.0光流算法準確率提升5.75個百分點。且改進后的光流算法避免了牛只自身頭部運動與背景干擾對反芻光流特征提取的影響,解決了奶牛反芻行為中因嘴巴閉合與張開至最大導致反芻光流消失時頭部運動干擾問題,確保算法準確率,為群體養殖模式下奶牛反芻行為的智能監測分析提供技術支撐。

猜你喜歡
光流頭部奶牛
乍暖還寒時奶牛注意防凍傷
利用掩膜和單應矩陣提高LK光流追蹤效果
夏季奶牛如何預防熱應激
火箭的頭部為什么是圓鈍形?
奶牛吃草
自適應統計迭代重建算法在頭部低劑量CT掃描中的應用
一種改進的基于全局最小能量泛函光流算法
《奶牛的家》
融合光流速度場與背景差分的自適應背景更新方法
利用PSO估算Lucas-Kanade光流模型的參數
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合