譚輝磊, 朱偉興
(江蘇大學(xué)電氣信息工程學(xué)院,江蘇鎮(zhèn)江 212013)
我國是農(nóng)業(yè)大國,農(nóng)業(yè)是我國的支柱產(chǎn)業(yè),是國民經(jīng)濟的基礎(chǔ),而養(yǎng)豬業(yè)是農(nóng)業(yè)生產(chǎn)的重要組成部分。但隨著我國養(yǎng)豬業(yè)集約化、規(guī)?;降牟粩嗵岣撸呙芏鹊娘曫B(yǎng)方式給豬的行為帶來很大影響,在大中型豬場中各種異常行為時常可見,導(dǎo)致這些行為的因素包括食物、環(huán)境、疫病等,這不僅影響豬只的生理和心理健康,也影響豬場的生產(chǎn)效率,因此須要時刻觀察豬只的行為狀態(tài)。水是生命之源,保持良好的供水對于豬只的健康生長尤為重要,但是豬只飲水是24 h不間斷的行為,僅靠人工作業(yè)很難完成監(jiān)控,因此,實現(xiàn)豬舍內(nèi)豬只飲水行為的自動監(jiān)控將有助于及時預(yù)警異常豬只,并減少豬只飼養(yǎng)過程中的人工干擾活動,改善豬只福利。
傳統(tǒng)的豬只行為識別主要采用耳標(biāo)射頻識別(簡稱RFID)技術(shù)[1],但該技術(shù)在一定程度上會干擾豬只的正常生長,因此為了解決這些問題,引入無應(yīng)激的計算機視覺技術(shù)。朱偉興等通過一種改進的運動目標(biāo)檢測算法和基于像素塊對稱特征的圖像識別算法定位具有異常行為的疑似病豬,并將報警圖像通過通用分組無線服務(wù)網(wǎng)絡(luò)傳送至監(jiān)控中心[2]。馬麗等根據(jù)豬腹式呼吸時脊腹部分的起伏特點,構(gòu)建單側(cè)視豬的腹式呼吸表達,并逐段檢測豬視頻腹式呼吸頻次[3]。袁登廳等利用支持向量機理論設(shè)計了多種姿態(tài)分類器,可對豬的正常行走、低頭行走、抬頭行走、躺臥等4種姿態(tài)進行識別[4]。謝徵等提出一種基于幾何參數(shù)特征與決策樹支持向量機的豬只姿態(tài)分類方法,用來研究與豬只行為及精神狀態(tài)相關(guān)的姿態(tài)[5]。陸明洲等結(jié)合射頻標(biāo)志和紅外探測技術(shù)準(zhǔn)確監(jiān)測了母豬的日飲水頻率及水資源的日消耗總量[6]。
現(xiàn)階段采用計算機視覺技術(shù)監(jiān)測豬只飲水行為的研究報道較少,考慮到機器視覺算法在豬只其他行為上的應(yīng)用,研究飲水行為的識別已成為發(fā)展趨勢。本研究提出一種基于輪廓的豬只飲水行為識別方法。首先從原始圖像中分離出飲水區(qū)域,并采取有效圖像處理方法得到目標(biāo)輪廓,建立訓(xùn)練樣本,然后針對該區(qū)域內(nèi)豬個體的輪廓進行多邊形近似,并提取相關(guān)特征,最后計算2個輪廓之間的相似度,從而完成輪廓匹配。
視頻是在江蘇大學(xué)國家重點學(xué)科農(nóng)業(yè)電氣化與自動化的試驗基地——丹陽市榮鑫農(nóng)牧發(fā)展有限公司養(yǎng)豬場采集的。通過改建試驗用豬舍,安裝拍攝俯視視頻的圖像采集系統(tǒng),對群養(yǎng)豬進行持續(xù)視頻監(jiān)控。攝像機位于豬舍正上方,相對地面的垂直高度約為3 m,視頻采集平臺及獲取的視頻幀示例如圖1所示。攝像機采用的是加拿大灰點公司的FL3-U3-88S2C-C(Sony CMOS),它可以采集到包含背景的俯視狀態(tài)下群養(yǎng)豬的紅綠藍(red,green,blue,簡稱RGB)彩色視頻。為了滿足試驗要求,須要獲取豬只種類和數(shù)量盡可能多的視頻片段,豬舍中安放7頭體態(tài)顏色各異的豬。根據(jù)人工觀察以及算法特點,當(dāng)豬只攀爬隔離欄以及豬只之間存在打斗現(xiàn)象時,俯視視頻下的豬體均有部分缺失,會增加識別的不確定性,因而這些視頻幀不作為本研究的試驗對象。
在實際生產(chǎn)中,針對不同類別不同生長階段的豬群,自動飲水器安裝的高度有一定差異。本研究中飲水器安裝在離地55 cm的位置,豬只須要抬頭并咬住水嘴即可完成飲水。針對豬只飲水的固定姿態(tài),本研究提出基于輪廓的豬只行為識別方法,識別流程如圖2所示,首先從原始圖像中分離出飲水區(qū)域并采用二維大津算法(OTSU法)[7]得到初步分割結(jié)果,由于豬舍背景干擾大,還須要對目標(biāo)進行二值化以及形態(tài)學(xué)處理,進而得到目標(biāo)輪廓;然后針對目標(biāo)輪廓采用改進的 Douglas-Peukcer法進行多邊形近似,同時根據(jù)對象特點提取輪廓特征;最后與本研究所采用樣本庫中的樣本進行相似度匹配得出識別結(jié)果。本研究選取滿足條件的430幀視頻圖像作為樣本進行試驗,其中230幀存在豬只飲水情況,另外200幀作為干擾項;選取存在豬只飲水情況的30幀作為訓(xùn)練樣本,剩余400幀作為測試樣本。
Douglas-Peukcer算法由Douglas和Peukcer提出[8],因此又簡稱D-P算法,是一種經(jīng)典的線狀要素化簡算法。該算法可將曲線近似表示為一系列點,并逐步減少點的數(shù)量,從而達到化簡曲線的目的。算法原理如圖3所示,具體步驟如下:(1)連接曲線首尾a、b 2點得到1條直線ab,ab被稱為該曲線的弦;(2)求曲線上所有點到該弦的距離,設(shè)距離最大的點為c,最大距離為dmax;(3)比較dmax和給定閾值T的大小關(guān)系,如果dmax小于T,則將直線段ab作為曲線的近似;如果dmax大于T,則曲線被分割為ac、cb 2段,并重復(fù)步驟(1)、(2)、(3),直到曲線上所有線段處理完畢;(4)連接這些距離最大且滿足步驟(3)的點得到曲線的近似。
豬只在飲水區(qū)域內(nèi)的輪廓可能并不完整,必要時需要對多條曲線進行處理,傳統(tǒng)D-P算法一般采用遞歸的方法來實現(xiàn),同時涉及棧的操作,此時如果繼續(xù)采用傳統(tǒng)D-P算法計算最大距離點,會出現(xiàn)循環(huán)時間偏長甚至棧溢出的情況,從而影響算法效率。因此,本研究對上文提及的傳統(tǒng)D-P算法步驟(2)進行改進,即不再計算曲線上所有點到該弦的距離,而是計算曲率的極大值點。曲率[9]定義為在光滑弧上自點M開始取弧段,弧長為Δs,對應(yīng)切線轉(zhuǎn)角為Δα(圖4),此時點M處的曲率為當(dāng)Δs趨向于0時,|Δα/Δs|的極限值。
曲率體現(xiàn)了曲線的完全程度,其值越大,該處曲線彎曲程度越大。對于飲水豬只頭部而言,曲率的極值點正是進行多邊形近似時須要保留的點。利用改進的D-P算法,采用不同閾值T對一幅待識別圖像的輪廓進行多邊形近似。圖5-a是原輪廓曲線,坐標(biāo)點個數(shù)為733個;圖5-b為閾值T=1的多邊形近似結(jié)果,共保留71個坐標(biāo)點,基本與原輪廓重合,且保留了大部分細節(jié)信息;圖5-c是閾值T=3的多邊形近似結(jié)果,保留的坐標(biāo)點個數(shù)為23個,此時盡管在局部存在一些形狀的細節(jié)丟失,但仍然能反映整體的輪廓特征;圖5-d是閾值T=5的多邊形近似結(jié)果,保留的坐標(biāo)點個數(shù)為15個,可以明顯看出部分曲線的擬合結(jié)果存在嚴(yán)重變形,特別是一些存在凹凸點較多的區(qū)域。為了盡可能保留原輪廓的局部特征點,同時避免無用細節(jié)的影響,本研究選用閾值T=3的多邊形近似結(jié)果作為該輪廓的近似結(jié)果,與原輪廓的733個點相比,在很大程度上減少了計算量,同時保留了輪廓的主要形狀特征。
輪廓特征提取是對近似多邊形所保留的點建立特征量的過程,為了方便進行分類識別,特征量應(yīng)具有尺度不變性和旋轉(zhuǎn)不變性[10],本研究采用角度和距離來構(gòu)建二維特征量。
(1)
(2)
(3)
(4)
P={P1,P2,…,Pk-1}。
(5)
hi(k)=#{(p-qi)∈bin(k)|p∈P,p?qi}。
(6)
判斷圖7-a和圖7-b的相似度,即比較這2個輪廓所對應(yīng)基向量的相似程度。在該對應(yīng)關(guān)系中,首先要求基線段具有相似的描述子,其次要求一對一的映射關(guān)系[11]。因此,可以根據(jù)每個基向量的直方圖,在其他輪廓上找到與其最相似的基向量,然后綜合所有基向量來判定輪廓的相似程度。
根據(jù)直方圖分布特點,采用x2距離統(tǒng)計分布來度量Pi和Qj這2個輪廓特征描述子的匹配代價[12],具體公式為
(7)
該代價值介于0到1之間,其值越小,Pi和Qj的相似程度越大。根據(jù)輪廓所有基向量代價值Cij的集合可以得到總的代價值,且總的代價值越小,說明2個輪廓越相似。這樣就將求解輪廓的相似度轉(zhuǎn)為了求解2個輪廓所有基向量之間的最優(yōu)匹配f,而求解最優(yōu)匹配既是一個最優(yōu)化求解問題,也是一個典型的線性分配問題[13]。在實際應(yīng)用中,通常采用匈牙利算法[14]進行求解。利用匈牙利算法可以得到代價最小的最優(yōu)匹配,并得到輪廓基向量之間的最優(yōu)匹配關(guān)系,當(dāng)最優(yōu)匹配下的基向量之間代價值小于某個閾值T時,即認為該基向量匹配正確,最后計算待匹配輪廓上正確匹配的基向量個數(shù)和訓(xùn)練樣本輪廓上基向量總個數(shù)的比值,從而得到2個輪廓之間的相似度,完成輪廓的匹配工作。
為了證明本算法的有效性,選取滿足條件的430幀視頻圖像作為樣本進行試驗,其中230幀存在豬只飲水情況,另外200幀作為干擾項;選取存在豬只飲水情況的30幀作為訓(xùn)練樣本,剩余400幀作為測試樣本。仿真試驗的軟硬件環(huán)境為CPU Inter(R) Core(TM)i5 2.4GHz,Windows 7,Matlab2014b。
在得到輪廓基向量之間的最優(yōu)匹配關(guān)系后,須要計算基向量之間的代價值,并對該代價值設(shè)定一個閾值T,以判斷是否匹配正確。圖8為不同輪廓圖像,其中S1和S3是同一豬只飲水狀態(tài)下的輪廓,S2是非飲水狀態(tài)下的輪廓,S1和S2選自測試樣本,S3選自訓(xùn)練樣本,在不同閾值T下,將S1和S3、S2和S3進行匹配,得到相應(yīng)的相似度H(Sx,Sy)(表1)。
由表1可知,相似度隨著閾值T的增大而增大,但當(dāng)T=0.3時,相同狀態(tài)下輪廓的相似度達到臨界點,而不同狀態(tài)下輪廓的相似度則繼續(xù)增加,因此本研究選用閾值T=0.3作為經(jīng)驗值。
表1 不同閾值下的相似度比較
采用閾值T=0.3對400幀測試樣本進行試驗,并與人工觀測結(jié)果進行對比。
由表2可知,在豬舍背景存在較大干擾,豬只輪廓存在變形且提取并不十分精確的條件下,本研究算法對飲水行為豬只的識別率達92.00%,對其他行為豬只的識別率達95.50%。通過查看錯誤識別的測試圖像發(fā)現(xiàn),出現(xiàn)錯誤的原因主要有(1)在識別飲水豬只過程中,豬只的耳朵輪廓在豬只不同姿態(tài)下的表現(xiàn)不盡相同;(2)在識別其他豬只過程中,豬只在飲水區(qū)域范圍內(nèi)抬頭可能會被錯誤識別。如果能在預(yù)處理過程中去除耳朵多出身體的部分輪廓,或者對飲水豬只的輪廓區(qū)域大小進行更明確的定位,則會進一步提高識別率。
表2 本算法的識別情況
而如何摒棄干擾并且能夠更快更精準(zhǔn)地得到輪廓圖像也是值得深入研究的問題。
本研究提出一種基于形狀模型的豬只飲水行為識別方法,能夠準(zhǔn)確地識別豬只的飲水行為。結(jié)果表明,本算法的綜合識別率達93.75%,對于豬只飲水行為的識別工作,本研究所建立的形狀模型能夠有效提取特征,該識別方法的研究對于監(jiān)控豬只身體健康有一定的實際應(yīng)用價值, 且該方法原理簡單,在識別速度以及識別質(zhì)量上有一定的突破,今后的主要工作是進一步提高識別速度和識別率,未來還將結(jié)合對豬個體的身份識別來判斷豬只的健康狀況。