宋懷波 陰旭強 吳頔華 姜 波 何東健
(1.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100; 2.農業農村部農業物聯網重點實驗室, 陜西楊凌 712100)
利用視頻分析技術感知動物行為已成為精準畜牧領域的研究熱點,奶牛目標的準確、實時檢測可為奶牛個體識別[1-2]、目標跟蹤[3-6]、呼吸檢測[7-8]、跛行檢測[9-10]等后續研究奠定基礎。實現復雜養殖環境下奶牛目標的準確檢測,對于提升奶牛養殖業的智能化水平具有重要意義。
近年來研究者在動物行為感知領域取得了一定的成果,但是由于奶牛的非結構化養殖環境,常用的目標檢測算法,如背景減去法[11-12]、幀間差分法[13-14]和光流法[15-16]并不能取得良好的檢測效果。ZHAO等[11]提出了一種基于幀差法并調整RGB通道系數的運動奶牛目標檢測算法,目標的檢測精度為88.34%,但該算法對環境變化敏感。王紅君等[17]利用高斯金字塔 Lucas-Kanade光流法實現了奶牛的目標定位,但光流法計算量大,導致算法復雜度較高,不適于在線檢測。劉冬等[18]在GMM的基礎上,引入局部更新策略來降低算法復雜度,實現了奶牛目標的實時提取,前景誤檢率、背景誤檢率分別降低了19.50%和13.37%,單幀時耗降低了29.25%。GMM模型具有較強的魯棒性,該方法通過假設樣本集符合高斯概率分布,根據樣本集擬合該分布中的參數[19-20]。利用GMM模型可以建立動態背景模型實現運動目標的提取,但是對于奶牛等生活在復雜開放環境下的大型動物,GMM模型復雜度高、計算量大,且該方法對于光照變化比較敏感,易受圖像噪聲的干擾,對于室外目標的檢測精度有待提高。
在實際場景中,大量樣本的分布形式是未知的或并不服從典型分布,因此難以用已知參數的模型對背景進行建模。由于GMM模型需要加入主觀的先驗知識,往往難以擬合出符合其真實分布的模型。因此,ELGAMMAL等[21]提出了一種無參數化模型,利用非參數核密度估計法進行背景建模。與參數估計不同,非參數估計并不加入任何先驗知識,而是根據數據本身的特點、性質來擬合分布[22-23]。非參數核密度利用標準核函數和像素表現出來的高斯特性,根據訓練圖像樣本信息準確估計核函數,因而核密度估計能夠獲得更符合真實背景像素概率的分布,適合處理多樣性的動態背景場景。ZIVKOVIC等[24]提出了一種基于聚類思想的自適應核密度估計方法,提高了核密度估計的效率。喬俊鋒等[25]提出了一種基于直方圖的快速核密度估計背景建模方法,由于離散直方圖不能完整地代表奶牛圖像信息,且易受噪聲的干擾,在目標檢測時易出現誤檢測。劉娣等[26]提出了一種基于背景差分圖像核密度估計的前景檢測方法,利用單高斯模型初始背景建模濾除非動態背景區域,對動態區域采用核密度估計進行分類。該方法在小物體且背景可分的情況下具有較高的準確性和實時性。
鑒于上述分析,本研究將非參數化自適應核密度估計理論應用于運動奶牛的目標檢測之中,提出一種基于關鍵幀的自適應無參核密度估計算法,通過與三幀差法進行邏輯或運算實現運動目標的精確提取。
運動奶牛試驗視頻于2018年10—11月在陜西省楊凌科元克隆股份有限公司的奶牛養殖場采集,拍攝對象為處于運動狀態的美國荷斯坦奶牛。在奶牛運動期間將1臺SONY HDR-CX290E型DV固定在三腳架上,保持鏡頭與目標奶牛平行且距離目標奶牛約2.5 m。試驗總共采集了8段奶牛行走視頻,視頻信息如表1所示。為了驗證算法的適應性,8段視頻包含了晴天、陰天、雨天和夜間等典型奶牛養殖環境。8段視頻中包含了奶牛非結構生存環境中典型的干擾因素,如欄桿遮擋會導致前景檢測率下降,光照變化會導致背景像素誤檢測,灰暗光線和污漬干擾會使得目標與背景難以分割,導致前景目標缺失等問題。這些在奶牛養殖中普遍存在的干擾使得非結構化環境下運動奶牛目標準確檢測受到影響。

表1 運動奶牛視頻信息Tab.1 Video information of moving cows
試驗平臺為一臺Win 8.1系統的便攜式計算機,處理器配置為AMD A10-7300,主頻為1.90 GHz,8 GB內存。算法開發平臺Python 3.7,為了客觀地對目標檢測結果進行評價,本研究使用Adobe Photoshop獲取真實奶牛目標區域,以便與本研究所檢測出的奶牛目標區域進行比較,并用圖像標注工具Labeling軟件標出運動奶牛的位置,與本研究算法檢測的前景目標最小外界矩形框對比以便驗證本研究方法在目標追蹤上的可行性。
1.2.1總體技術路線
本研究擬采用的技術路線如圖1所示,首先通過核密度估計算法對奶牛圖像序列進行動態背景建模,然后引入關鍵幀提取以降低算法運算量并加強核密度估計對遙遠歷史幀信息的儲存能力,接著利用三幀差法對奶牛邊緣的提取優勢,將其與核密度估計算法進行邏輯或運算,最后進行形態學操作和孔洞填充實現奶牛目標的精確提取。

圖2 不同γ值下的試驗結果Fig.2 Test results using different γ values

圖1 核密度估計的運動奶牛目標檢測技術路線圖Fig.1 Nuclear density estimation map of moving cows
1.2.2視頻關鍵幀的提取
利用關鍵幀技術可以充分減少原始視頻中的冗余信息,目前研究者們在視頻關鍵幀檢測領域做了大量工作[27-29],考慮到實時性的要求,本研究利用具有平均幀間差分法強度的局部最大值幀作為關鍵幀,與基于差分強度閾值方法相比,該方法無需手動設置閾值,即可使提取結果均勻地分散在視頻中。為了有效移除噪聲以避免將相似場景下的數據幀提取為關鍵幀,本研究對平均幀間差分強度時間序列進行了平滑處理。
1.2.3視頻預處理
預處理是視頻分析的首要環節,它可以去除圖像中的無關信息進而提高有效信息的占比[30]。噪聲的影響和光照的變化會降低目標和背景間的對比度,為了減弱光照影響以增加圖像對比度,常利用圖像增強的方式來實現。本研究選用Gamma變換對圖像進行校正。當圖像的亮度范圍小于其數據類型允許范圍的0.50時,圖像被認為是低對比度,此時應用Gamma變換
Gx,y=(Ix,y+Vesp)γ
(1)
式中Ix,y、Gx,y——Gamma變換前、后的像素值
Vesp——補償系數γ——系數
由于本研究希望圖像中較亮區域灰度被壓縮,較暗區域灰度被拉伸從而圖像整體變亮,因此γ取值應小于1。圖2為γ取不同值時的結果,圖2a為原始圖像,奶牛目標與黑夜背景區分度較低,圖2c中γ取值為0.50時,圖像過亮并且引入了噪聲點。本研究選取圖2b中γ取值為0.80的Gamma變換,此時不僅可以適當的提高圖像整體亮度,而且提高了目標與背景的對比度。圖3為不同窗口下的中值濾波結果。圖3a中2×2窗口不能完全去除噪聲,圖3c中5×5窗口模糊了奶牛目標邊緣,本研究選取圖3b中3×3窗口的中值濾波,研究發現其具有較好的去噪效果,并且能保持奶牛邊緣特征。

圖3 不同窗口下的試驗結果Fig.3 Test results using different window sizes
1.2.4核密度估計法
(1)無參核密度估計原理
非參數背景模型通過對相鄰視頻幀進行統計學習來建立背景,并通過持續更新樣本集來建立動態背景。核密度估計采用核函數對訓練集中每個像素點的概率密度分布規律進行分析,從而構造整個訓練集在特定空間的樣本分布規律。核密度估計是近年來受到廣泛應用的非參數密度估計方法,通過利用采樣點以及鄰域密度函數值信息的整合來改善概率密度的不連續問題。根據視頻序列中每個像素的N個樣本,基于核密度估計進行背景建模,統計分析每一個像素點的概率密度分布。設x1,x2,…,xN為一個像素特征空間內的N個樣本,則t時刻像素為xt的概率p(xt)為
(2)
式中xt——當前采樣的像素值
N——每個像素采樣的背景像素個數
xi——第i個樣本的像素值
kσ——核函數(非負、積分為1)
p(xt)——t時刻像素為xt的概率
高斯函數在很大程度上可以充分反映隨機變量的概率分布情況,可以生成光滑且連續可微的密度函數,因而本研究選用高斯函數作為核函數。
(3)
式中xtj——當前采樣的像素值xt在j維度上的取值
xij——第i個采樣點的像素值xi在j維度上的取值
d——像素的維度,一般取3
σj——像素在j維度上的方差
Pr(xt)——t時刻高斯核函數估計像素為xt的概率
核函數的窗寬反映了訓練集中每個樣本對采樣點概率密度分布的貢獻度,表征了概率密度曲線的平坦程度,帶寬越大密度曲線越光滑,從而降低了估計的分辨力。帶寬越小概率密度曲線越陡峭且有毛刺,從而概率密度越趨于樣本中心的函數。非參數核密度估計一般根據設置像素點的閾值來提取運動目標,在視頻中背景序列的像素一般不會發生較大變化,通過比較當前圖像像素與背景像素的差異,利用預設的閾值判斷屬于前景還是背景。其數學表達式為
(4)
式中T——閾值
其中,Mt(x,y)為0代表背景像素,Mt(x,y)為1代表運動目標像素。
非結構化奶牛養殖環境中的背景總是不斷變化的,需要不斷更新背景模型以保證運動目標的完整提取。本研究選用先進先出的背景更新模式,隨著視頻幀的更新,不斷地將當前幀加入樣本集并丟棄最遙遠的幀。該更新模式不會產生死鎖現象且算法復雜度低。
(2) 基于自適應核密度估計的運動奶牛目標檢測結果
在核密度估計時,若采用固定的內核來表示整個密度函數則可能導致在低密度區域所有樣本以極低的權重落入內核尾部,而高密度區域將在中心區域聚集過多的樣本,加權已經接近于1。為了解決這一問題,ZIVKOVIC等[24]提出在每個估計點調整核尺寸,為每個新點增加內核的寬度,而不是試圖尋求全局最優核寬度,直到真實核尺寸覆蓋固定數量的數據k。并提出使用k=[0.1N]([·]表示取整運算符)的默認計算方式提升異常值的處理效率[24]。
本研究將ZIVKOVIC等[24]提出的自適應核密度估計背景建模方法應用于運動奶牛目標檢測之中。其中歷史幀數的設定對運動奶牛目標檢測精度的影響如圖4所示。研究發現將歷史幀數設置為150即學習率為1/150時,既可有效減少算法復雜度,又可以提升前景檢測率。本研究中N設定為20,即每個像素采樣的背景像素個數,N太小則學習不充分從而導致較低的前景檢測率,N太大將增加算法的復雜度[24]。本研究中T設定為110,該值用于確定像素是否接近數據樣本,取值太小會有大量的噪聲殘留,取值過大會使得前景圖像過分割,本研究在研究樣本視頻的基礎上,設定閾值為110時,可以較好地實現前景目標分割。

圖4 歷史幀數對前景正檢率的影響Fig.4 Influence of historical frame number on foreground detection rate
利用上述方法進行前景目標檢測的結果如圖5所示。在圖5a中,受到欄桿遮擋的影響,奶牛目標被欄桿分割,無法完整提取奶牛目標。為了解決這一問題,本研究先采用半徑為5的“disk”形結構元素進行開運算濾除噪聲,再利用半徑為5的“disk”形結構元素進行閉運算以實現對欄桿遮擋區域的填充,其檢測結果如圖5b所示,可以發現形態學操作可以更準確地提取奶牛目標。

圖5 檢測結果Fig.5 Pictures of test results
1.2.5結合三幀差法與形態學處理的運動奶牛目標檢測
幀差法利用相鄰幀間灰度上的差異實現運動目標的檢測,其優點是運算速度快,對運動目標邊緣的提取效果好,缺點是易產生鬼影、圖像內部一般具有空洞且無法應對光照突變。如圖6a所示,幀差法提取的奶牛目標存在鬼影,尤其是在后腿部區域,鬼影的產生使得模型將背景誤判斷為前景,不利于目標的準確檢測。

圖6 幀差法檢測結果對比Fig.6 Comparison of frame difference methods results
針對幀差法的不足,三幀差法可以有效地消除鬼影,進而精確提取運動目標的輪廓[29-30]。為了更好地實現目標輪廓的提取,本文在邏輯與操作前對差分結果進行了半徑為3的“disk”形結構元素閉運算,其檢測結果如圖6b所示。對比圖6a,三幀差法有效地消除了鬼影,并提高了奶牛目標輪廓提取的性能。
采用前景正檢率(Target positive rate,VTRP)、前景誤檢率(Target false positive rate,VTFRP)、實時性指標(Real-time indicator,VRI)3個指標對本文算法進行評價。VTRP和VTFRP分別表示目標檢測正確和錯誤的比例,VRI表示算法運行時間與檢測視頻時長的比值,用來評價算法的實時性,其結果越靠近1代表算法的實時性越好。3個指標的計算公式為
VTRP=A1/A×100%
(5)
VTFRP=|A-A1|/A×100%
(6)
VRI=T1/T2
(7)
式中A1——檢測到的奶牛目標面積,像素
A——手工標記的奶牛目標面積,像素
T1——算法耗時,s
T2——視頻時長,s
利用GMM、KDE及本文算法對晴天、雨天以及夜晚3種典型生存環境下的奶牛樣本進行檢測,運動目標提取結果如圖7所示,其中視頻1、視頻6、視頻7分別為晴天、雨天、夜晚環境下采集的奶牛圖像。
由圖7b可以看出,GMM提取結果存在大部分缺失,部分前景被誤判為背景且存在拖影現象。由圖7c可以看出,KDE模型可以適應復雜的非結構化環境,對目標的提取效果較好,但仍存在部分區域像素誤判。本文算法在結合關鍵幀檢測技術的基礎上采用三幀差法對運動目標邊緣具有良好提取效果,與核密度估計背景建模結果結合后再進行形態學填充即可實現運動目標區域的完整提取。可見,本文算法在多種環境下檢測目標均較為完整,表明本文算法對環境變化具有良好的魯棒性,且對運動目標的提取更加完整。

圖7 不同算法運動奶牛提取結果Fig.7 Results of moving cows segmentation by different methods
目標檢測算法的性能主要體現在準確性、魯棒性、快速性方面[14],利用本文算法對試驗樣本進行運動奶牛目標檢測,并與GMM、KDE算法進行對比,結果如表2所示,GMM算法的平均前景正檢率為80.09%,KDE算法的平均前景正檢率為85.09%,本文算法的平均前景正檢率為95.65%,表明將無參數化核密度模型應用于運動奶牛目標的準確提取是可行的。由表2可看出,該算法受視頻中其他干擾因素(光照、遮擋)的影響較小。上述結果表明,與經典的GMM算法相比,本文算法對于奶牛非結構化養殖環境具有更好的魯棒性。

表2 運動奶牛目標檢測結果Tab.2 Cows target motion detection result %
本文在核密度估計算法的基礎上,針對核密度估計背景建模時需要對采樣點周圍多幀圖像像素進行統計分析導致運算量大的缺點,引入視頻關鍵幀的檢測來減少模型的復雜度以滿足算法實時性的要求。表3為GMM、KDE、本文算法實時性指標對比結果。由表3可知,GMM算法復雜度高,實時性較差,平均實時性指標為1.36,在第3、4組試驗中,受到光照突變的影響,復雜度突然增大。KDE算法平均實時性指標為1.18,而本文算法的平均實時性指標為1.11,且試驗中的干擾因素基本對模型實時性沒有影響,這表明應用本文算法實現奶牛運動目標的實時提取基本可行。
為了驗證本文算法在目標跟蹤上的有效性,本文以視頻6為例進行了目標跟蹤有效性分析。采用交并比(Intersection over union,VIOU)和距離VDIST指標對其跟蹤效果進行評價。

表3 算法實時性指標對比Tab.3 Algorithm real-time indicator comparison
VIOU表示本研究檢測出的最大連通域最小外接矩形與人工標記矩形框的重疊比例,其值越大則表明跟蹤效果越好。VDIST指標代表了檢測到的奶牛目標最小矩形質心與所標記矩形框質心的歐氏距離,其值越小則表明跟蹤效果越好。

圖8 運動奶牛跟蹤結果Fig.8 Tracking result of moving cows
如圖8所示,為目標跟蹤有效性分析的結果,VDIST平均值為51像素,VIOU平均值為0.95。利用奶牛視頻中完整的70幀圖像進行分析,可以發現在第10幀以及第62幀附近有較大的波動。研究原始圖像發現,奶牛的運動場景有2個窗,奶牛在運動過程中,鏡面反射以及窗內奶牛的運動被檢測為前景,因與奶牛組成連通域而被檢測出來,導致最小外接矩形框變大,因而在這2個窗口附近的追蹤準確率下降。但總體上本文算法對奶牛目標的跟蹤可行。
本文8組試驗中,第3組和第8組的運動目標前景正檢率比平均前景正檢率低約4.00個百分點,對這2段視頻進行分析發現,由于近景色干擾導致前景圖像缺失。因為本文所用的GMM、KDE算法都是建立動態背景后利用背景減除法提取運動前景目標,而且2種方法都是對圖像像素灰度特性進行分析的基礎上建立的,因此對于近景色目標,算法不能達到良好的檢測效果,示例結果如圖9所示。在圖9a中,視頻3奶牛身體后半部附著泥土,尤其在蹄部幾乎和背景混為一體,因而圖9b的奶牛目標提取結果在對應位置存在缺失。如圖9c所示,視頻8奶牛由于體色大幅度為暗黑色與夜晚下欄桿和背景形成了近景色,因而在圖9d中存在前景缺失現象。本文算法依據像素灰度信息估計得概率分布函數,而該奶牛目標的前景像素點灰度和背景像素點灰度區分度不大,因而導致模型將部分前景誤判為背景,從而造成目標提取結果在近景色區域存在圖像塊缺失的現象,這也揭示了上述奶牛目標前景檢測率較低的原因。

圖9 近景色干擾示例圖Fig.9 Similar-background color interference example diagrams
為了解決奶牛因為運動過程中受到欄桿遮擋導致的目標不完整問題,本文對奶牛身體部位的欄桿采用形態學操作和孔洞填充方法進行了填補,但是奶牛的腿部會受到如圖10a中水泥樁的遮擋,無法構成連通域而導致在圖10b中前景圖像中奶牛腿部缺失。并且在奶牛非結構化生存環境中,會有各種外來因素的干擾,如圖10c、10e所示,鳥的飛入、室內奶牛的運動均會導致圖10d、10f中奶牛前景目標連通域變大,造成前景檢測面積的突然變大,導致運動奶牛前景檢測率增加。這也會使得目標追蹤時外接矩形框變大,從而造成背景被誤判斷為目標,使得目標跟蹤準確率下降。

圖10 遮擋干擾示意圖Fig.10 Blocking interference diagrams
本文所采用的關鍵幀提取方法不能完全代表奶牛目標的全部特征,會導致目標特征的丟失,下一步應結合奶牛的個體特征(顏色特征、紋理特征等)來實現更能代表整段視頻的關鍵幀提取算法。另外,本研究所采用的核密度估計算法中的閾值需要根據所用的視頻序列進行設定,在不同的視頻上并非有最佳的分割效果,下一步將研究自適應閾值的核密度估計模型。
(1)本文算法基于對歷史幀信息的統計分析,估計采樣點的概率密度分布,當目標不存在大幅度區域的近景色時,其他的干擾一般不會對檢測結果產生較大影響,說明將無參數核密度背景建模用于運動奶牛目標檢測是可行的。
(2)通過在核密度背景建模基礎上引入關鍵幀檢測技術,不僅實現了核函數對遙遠幀圖像信息的獲取能力,而且提高了檢測精度,也提高了算法的實時性,結合三幀差法進一步實現了運動目標的完整提取。本文算法平均前景正檢率達95.65%,平均實時性指標為1.11,可以實現運動奶牛目標的準確、實時檢測。
(3)在運動目標檢測的基礎上運用VIOU和VDIST指標實現了目標跟蹤效果的評價,VIOU平均值為0.95,VDIST平均值為51像素。