曹麗桃,程曼,袁洪波,劉月琴,隨海燕,趙曉霞
(1. 河北農(nóng)業(yè)大學(xué)機(jī)電工程學(xué)院,河北保定,071000; 2. 河北農(nóng)業(yè)大學(xué)動(dòng)物科技學(xué)院,河北保定,071000)
羊養(yǎng)殖業(yè)是畜牧業(yè)的重要組成部分,截至2020年,中國羊出欄量已經(jīng)達(dá)到了31 941.3萬只,養(yǎng)殖方式已經(jīng)過渡到規(guī)?;痆1]和集約化[2]方式為主。伴隨著規(guī)?;B(yǎng)殖的發(fā)展,養(yǎng)殖密度上升易使羊只處于不健康或亞健康狀態(tài),如跛行[3-4]、拉稀等疾病的發(fā)病率呈現(xiàn)出直線上升的趨勢[5],同時(shí)也增加了人畜共患病的風(fēng)險(xiǎn)。羊只行為狀態(tài)能夠直接反映其健康狀況,因此對羊只行為的監(jiān)測與識別是保護(hù)動(dòng)物福利[6]亟待解決的關(guān)鍵問題之一。傳統(tǒng)的監(jiān)測方式主要依賴人工飼養(yǎng)員的直覺和經(jīng)驗(yàn)來判斷,工作效率低下,不適合規(guī)?;酿B(yǎng)殖場。
當(dāng)前對于動(dòng)物行為的自動(dòng)化監(jiān)測方法大致可以分為兩類:基于機(jī)器視覺方法和基于可穿戴裝備方法。機(jī)器視覺方法[7]可以通過對圖像或視頻的處理識別動(dòng)物行為。利用機(jī)器視覺監(jiān)測動(dòng)物行為是一種非接觸方式,能夠避免動(dòng)物出現(xiàn)應(yīng)激反應(yīng)。但是隨著養(yǎng)殖規(guī)模的不斷擴(kuò)大,養(yǎng)殖密度也隨之上升,對于密度較大的圈養(yǎng)情況,動(dòng)物體之間經(jīng)常出現(xiàn)相互遮擋現(xiàn)象,難以準(zhǔn)確的定位和跟蹤某一特定個(gè)體;此外這種方式也容易收到光照等因素的影響[8]。可穿戴裝備[9-11]一般利用RFID技術(shù) 、聲音識別技術(shù)和位姿傳感器[12-14]感知和識別動(dòng)物的行為,該方法屬于一種弱接觸方式,動(dòng)物出現(xiàn)應(yīng)激反應(yīng)不強(qiáng)烈,能夠滿足連續(xù)和實(shí)時(shí)的監(jiān)測要求。RFID技術(shù)一般以標(biāo)簽的形式附著在動(dòng)物的身上,可以實(shí)現(xiàn)多標(biāo)簽的識別,但是由于羊天性好動(dòng),標(biāo)簽掉落的現(xiàn)象時(shí)有發(fā)生;利用聲音識別技術(shù)[15]一般是將錄音筆或者麥克風(fēng)捆綁在嘴巴附近的韁繩上[16],來采集動(dòng)物的聲音信息[17]。但對于群養(yǎng)的動(dòng)物來說難以獲得獨(dú)立個(gè)體的聲音,并且該方法對于音頻質(zhì)量要求比較高。加速度傳感器是在動(dòng)物行為檢測中使用較多的一種位姿傳感器,它可以嵌入可穿戴設(shè)備中獲取多個(gè)維度的傳感器信息,實(shí)現(xiàn)動(dòng)物行為的實(shí)時(shí)檢測和分類[18-20]。
利用可穿戴設(shè)備可以實(shí)時(shí)監(jiān)測并反饋動(dòng)物行為,為高效健康養(yǎng)殖提供數(shù)據(jù)參考。但是對于不同物種的不同行為進(jìn)行監(jiān)測時(shí),傳感器部署位置存在較大差異[21]。為了明確可穿戴設(shè)備用于羊只行為監(jiān)測時(shí)的最優(yōu)部署位置,本文構(gòu)建了一套基于三軸加速度傳感器的可穿戴行為監(jiān)測裝置用于識別羊只靜止、行走和飲食三種行為,并對傳感器的不同部署位置對識別結(jié)果的影響進(jìn)行了對比試驗(yàn)和分析。
試驗(yàn)于2021年2月5日—5月7日在河北省衡水市武邑縣韓莊鎮(zhèn)志豪畜牧科技有限公司種羊養(yǎng)殖基地進(jìn)行。試驗(yàn)選擇12只體況基本一致,健康無病、月齡6個(gè)月左右的小尾寒羊作為試驗(yàn)對象,其中10只作為試驗(yàn)組,2只作為對照組,對照組用于驗(yàn)證佩戴行為監(jiān)測裝置是否會(huì)對小尾寒羊的日常行為產(chǎn)生影響。試驗(yàn)過程中每天07:30~08:00和14:30~15:00分別進(jìn)行一次飼料和飲水的供給。試驗(yàn)全程利用視頻監(jiān)測設(shè)備同步記錄羊只的行為信息,根據(jù)行為發(fā)生的時(shí)間與傳感器采集的數(shù)據(jù)的時(shí)間標(biāo)簽進(jìn)行對照以驗(yàn)證行為識別效果。
可穿戴式羊只行為監(jiān)測裝置由電源模塊、充電控制模塊、傳感器模塊和433無線傳輸模塊組成,如圖1所示。電源模塊為鋰電池,電壓3.7~5 V,容量3 200 mAh。傳感器模塊的核心為MPU9250傳感器,它集成了3軸陀螺儀、3軸加速度計(jì)和3軸磁力計(jì),是檢測羊只行為的核心部件。傳感器采集的數(shù)據(jù)通過無線傳輸模塊,以433 MHZ的頻率發(fā)送到后臺計(jì)算機(jī)進(jìn)行存儲。所有模板集成在一個(gè)長寬高58 mm×51 mm×33 mm 的盒子中,可以利用綁帶固定在羊只軀體上。
(a) 可穿戴裝置外觀 (b) 可穿戴裝置內(nèi)部構(gòu)成
用于羊只行為監(jiān)測時(shí),傳感器可以部署在頭頸、軀干或腿部[22]。因此為了尋找最優(yōu)的位置,結(jié)合傳感器部署的方便程度,試驗(yàn)時(shí)將傳感器分別部署在頸部(NE)、背部靠近前腿處(BL)、前腿(FL)和后腿(HL)四個(gè)部位[23]。如圖2所示,X、Y、Z代表傳感器所在坐標(biāo)系的坐標(biāo)軸方向。試驗(yàn)共分4輪進(jìn)行,以測試傳感器處于不同位置時(shí)的識別效果,每一輪中10只羊均在相同位置佩戴傳感器。
試驗(yàn)?zāi)康臑楦鶕?jù)傳感器采集的信息對羊只靜止、行走和飲食三種行為進(jìn)行識別和監(jiān)測,傳感器將羊只的日常運(yùn)動(dòng)行為以數(shù)據(jù)的形式表征出來,傳感器監(jiān)測的信號包括三維的重力加速度、三維的角速度、三維的角度、三維的磁場、溫度等數(shù)據(jù)。對于靜止、行走、飲食三種行為這12維的數(shù)據(jù)之間存在不同,因此可以利用采集的羊只的運(yùn)動(dòng)行為數(shù)據(jù)來區(qū)分這三種行為。
表1所示為三種行為的定義。由于羊只佩戴行為監(jiān)測裝置會(huì)有適應(yīng)期(NE和BL的適應(yīng)期為24 h,F(xiàn)L和HL的適應(yīng)期為36 h)[24],所以適應(yīng)期內(nèi)不采集數(shù)據(jù)。為了保證試驗(yàn)數(shù)據(jù)的豐富性和全面性,每輪試驗(yàn)中,確保每只羊的每種行為時(shí)間出現(xiàn)時(shí)長不低于2 h。
(a) NE (b) BL
(c) FL (d) HL
表1 羊只日常行為分類Tab. 1 Daily behavior classification of sheep
動(dòng)物的行為都是一系列不同姿態(tài)的組合,即行為是一個(gè)動(dòng)態(tài)和持續(xù)的動(dòng)作表現(xiàn)。因此對某一行為的判定需要考慮行為特征的完整性和冗余度[25],這就要求利用一個(gè)短暫其持續(xù)時(shí)間內(nèi)的全部信號進(jìn)行分析。在試驗(yàn)過程中,當(dāng)羊只行為持續(xù)時(shí)間為1 s時(shí),數(shù)據(jù)的冗余度不高,而且行為特征數(shù)據(jù)質(zhì)量良好,因此以1 s作為一個(gè)時(shí)間單元,在一個(gè)時(shí)間單元內(nèi),傳感器共采集10組數(shù)據(jù),這10組數(shù)據(jù)被稱為一個(gè)基礎(chǔ)數(shù)據(jù)單元(BDU)。由于存在丟包的現(xiàn)象,部分?jǐn)?shù)據(jù)單元中不足10組數(shù)據(jù)。
針對靜止、行走、飲食3種行為,共選取并標(biāo)記了BDU共71 594個(gè),其中NE選取了18 285個(gè)、BL選取了16 987個(gè)、FL選取了17 279、HL選取了19 043個(gè),數(shù)據(jù)樣本的具體分布如表2所示。試驗(yàn)時(shí)從每個(gè)部位的每一類行為中隨機(jī)選取80%作為識別算法的訓(xùn)練樣本,其余20%作為測試樣本。
表2 羊只行為識別試驗(yàn)數(shù)據(jù)樣本分布Tab. 2 Sample distribution of sheep behavior recognition test data
1.4.1 數(shù)據(jù)去噪
傳感器在采集數(shù)據(jù)時(shí),會(huì)受到各種干擾因素的影響,如周圍環(huán)境、羊只的呼吸和打斗等。這些干擾因素會(huì)產(chǎn)生很多噪聲數(shù)據(jù),如果不進(jìn)行濾波,則噪聲數(shù)據(jù)將對分析結(jié)果的準(zhǔn)確性造成一定的負(fù)面影響。本文采用小波降噪對原始數(shù)據(jù)進(jìn)行第一次處理,原始數(shù)據(jù)經(jīng)過小波變換后被分解為含有較大小波系數(shù)的有用信號和較小小波系數(shù)的噪聲信號,利用合適的閾值進(jìn)行低通濾波后噪聲信號被過濾。小波降噪的具體步驟如下所示。
1) 選擇小波基函數(shù)并確定分解的層次。本文中選擇sym7作為小波基函數(shù),分解層次為3層。
2) 確定小波系數(shù),即濾波的閾值進(jìn)行濾波。本文采用Bayes Shrink閾值法,即利用Bayes估計(jì)自動(dòng)分割閾值。
3) 進(jìn)行信號的小波重構(gòu),即對濾波后的信號進(jìn)行小波逆變換。
1.4.2 特征降維
原始傳感器數(shù)據(jù)經(jīng)過小波降噪后雖然過濾掉了大部分的噪聲,但仍然是一種包含了三個(gè)方向的加速度(ax、ay、az)、角速度(wx、wy、wz)、角度(Anglex、Angley、Anglez)和磁場(hx、hy、hz)信息的共計(jì)12維信號。為了準(zhǔn)確地分辨出羊只不同的行為,需要對這些信號進(jìn)行特征降維,因?yàn)楦呔S度的特征會(huì)降低識別的效率,還會(huì)出現(xiàn)“過訓(xùn)練”的現(xiàn)象。因此,濾波后的數(shù)據(jù)需要進(jìn)行第二次處理,利用主成分分析進(jìn)行特征降維。主成分分析就是將多維的特征按照相應(yīng)的比例重新組合在一起,凸顯有效維度并降低干擾因子。主成分分析具體步驟如下。
1) 對本試驗(yàn)中12維的數(shù)據(jù)進(jìn)行中心化處理。利用試驗(yàn)中的12維數(shù)據(jù)生成原始矩陣X,然后將利用公式(1)計(jì)算得到X中每一維數(shù)據(jù)減去該維均值后得到的新矩陣X′。
(1)
式中:xi——矩陣X中12維的樣本;
m——矩陣X的樣本數(shù)量;
j——隨機(jī)數(shù),取值范圍為(0,m]。
2) 利用中心化處理后的新矩陣X′,通過式(2)計(jì)算協(xié)方差矩陣
(2)
3) 計(jì)算C的特征值,對特征值按從大到小進(jìn)行排序,并取前k個(gè)特征值所對應(yīng)的特征向量組成矩陣w。k的取值可以通過式(3)得到
(3)
式中:n——特征值個(gè)數(shù);
k——所取特征值個(gè)數(shù),k的取值范圍為[1,n];
λi——第i個(gè)特征值;
t——主成分的比重閾值,取值范圍為(0,1],本文t的取值為0.9。
可以根據(jù)式(3)計(jì)算出k值,在本試驗(yàn)中k取8。
4) 根據(jù)式(4)得到降維后的數(shù)據(jù)樣本集D。此時(shí)經(jīng)過預(yù)處理之后的數(shù)據(jù)樣本集D就變成了8維,達(dá)到降維的目的。
D=WTxi
(4)
1.5.1 基于k-means均值聚類算法的羊只行為識別方法
k-means均值聚類算法是一種無監(jiān)督學(xué)習(xí)算法[26],它通過將數(shù)據(jù)集劃分成不同的類別,使得每個(gè)類別內(nèi)數(shù)據(jù)更加緊湊,不同類別間數(shù)據(jù)更加獨(dú)立,從而實(shí)現(xiàn)聚類[27]。本文利用MATLAB編寫k-means均值聚類算法的程序,具體試驗(yàn)步驟如下。
1) 選取初始聚類中心。本文識別的羊只行為共有3種,所以聚類中心數(shù)量k=3,靜止、行走和飲食的初始聚類中心分別為c1、c2和c3。
2) 依據(jù)最小距離原則對試驗(yàn)數(shù)據(jù)進(jìn)行分類。所謂的最小距離是指任意一個(gè)樣本數(shù)據(jù)到3個(gè)初始聚類中心的歐式距離,如式(5)所示。
(5)
3) 計(jì)算每個(gè)類別中,每個(gè)數(shù)據(jù)到聚類中心的距離平均值。
4) 變更聚類中心位置,重復(fù)步驟(2)和(3),直到最大迭代次數(shù),或者聚類中心位置不再改變,在本試驗(yàn)中最大迭代次數(shù)設(shè)置為20次。
1.5.2 基于支持向量機(jī)的羊只行為識別方法
支持向量機(jī)(Suppor Vectpor Mchine, SVM)是種機(jī)器學(xué)習(xí)算法[28-30],它通過建立一個(gè)超平面作為決策曲面,使得正例和反例之間的隔離邊緣被最大化,從而實(shí)現(xiàn)分類的目的。本試驗(yàn)利用MATLAB LibSVM工具箱實(shí)現(xiàn)基于SVM的羊只行為識別,該算法支持的是二分類,因此本文需要構(gòu)造多個(gè)二分類器。試驗(yàn)步驟如下所示。
1) 對試驗(yàn)數(shù)據(jù)進(jìn)行歸一化處理,將原始數(shù)據(jù)歸一化到區(qū)間[0,1],歸一化方法如式(6)所示。
(6)
式中:x——任意一個(gè)原始數(shù)據(jù);
y——?dú)w一化數(shù)據(jù);
xmin、xmax——原始數(shù)據(jù)中最小和最大值。
2) 根據(jù)式(7)確定高斯核函數(shù)。
(7)
式中: sgn(x)——符號函數(shù),若x≥1則sgn(x)=1,若x<1則sgn(x)=-1;
w——權(quán)值向量;
xi——隨機(jī)樣本數(shù)據(jù);
yi——?dú)w一化后的數(shù)據(jù);
b*——分類的閾值,由式(8)確定的約束條件可以得到。
ai[yi(wxi+b*)-1]=0
(8)
將歸一化后的數(shù)據(jù)代入以上述核函數(shù)為中心的模型中得出f(x)的值,如式(9)所示。
(9)
當(dāng)f(x)=1時(shí),表示xi為支持向量;當(dāng)f(x)=-1時(shí),則表示xi為不支持該平面的向量。根據(jù)支持向量,可以將數(shù)據(jù)進(jìn)行分類。SVM算法支持的是二分類,因此本文構(gòu)造多個(gè)二分類器進(jìn)行羊只三種行為的識別。
2.1.1 濾波結(jié)果
濾波操作可以去掉噪聲的干擾,圖3所示為濾波前后效果對比。圖3中顯示的為從10只試驗(yàn)對象中隨機(jī)選取的一只羊的一部分隨機(jī)數(shù)據(jù),該數(shù)據(jù)為傳感器部署在NE位置時(shí)采集的一段信息,包括6個(gè)靜止的BDU,6個(gè)行走的BDU,5個(gè)飲食的BDU。
(a) X軸加速度分量去噪前后對比圖
(b) Y軸加速度分量去噪前后對比圖
(c) Z軸加速度分量去噪前后對比圖
從圖3中可以看出加速度的噪聲分量在X軸和Z軸比Y軸多,濾波后比濾波前曲線更平滑,加速度分量的變化趨勢更明顯。
2.1.2 降維結(jié)果
試驗(yàn)采集數(shù)據(jù)時(shí),為了讓行為特征更加全面通常采集多維數(shù)據(jù)以增加信息多樣性。數(shù)據(jù)降維的目的是凸顯主要特征的影響,提高數(shù)據(jù)處理效率。主成分分析的實(shí)質(zhì)是將試驗(yàn)過程中采集的12維數(shù)據(jù)以組合變量的形式進(jìn)行表達(dá),然后提取累計(jì)貢獻(xiàn)率較高的組合。
本試驗(yàn)中共提取了8個(gè)主成分,這8個(gè)主成分的累計(jì)貢獻(xiàn)率超過了90%,圖4所示為8個(gè)主成分的累計(jì)貢獻(xiàn)比較圖,表3所示為成分矩陣。
圖4 8個(gè)主成分累計(jì)貢獻(xiàn)比較圖
表3 成分矩陣Tab. 3 Component matrix
本試驗(yàn)利用MATLAB編寫的k-means均值聚類算法程序,對小尾寒羊的靜止、行走、飲食3種行為進(jìn)行聚類。測試集樣本數(shù)據(jù)的反復(fù)迭代訓(xùn)練20次,最終得到相對穩(wěn)定的聚類中心,如圖5所示。圖5中,綠色、紅色和藍(lán)色點(diǎn)分別代表行走、靜止和進(jìn)食三種行為。從圖5中可以看出,這3種行為的聚類效果不佳,多點(diǎn)堆疊在一起,沒有明確的界限。
圖6為測試集利用k-mean聚類模型識別和分類的混淆矩陣。傳感器部署在NE位置處,羊只三種行為的識別準(zhǔn)確率最高,其中靜止、行走和進(jìn)食的識別率分別為67.34%,90.4%和80.29%。傳感器部署在FL位置處,羊只三種行為的識別準(zhǔn)確率最低,其中靜止、行走和進(jìn)食的識別率分別為40.8%,9.95%和50.07%。從測試結(jié)果看,k-means均值聚類算法對于3種行為的區(qū)分效果不是很好,四個(gè)部署位置的平均識別率為58%。
(a) NE
(b) BL
(c) FL
(d) HL
(a) NE混淆矩陣 (b) BL混淆矩陣
(c) FL混淆矩陣 (d) HL混淆矩陣
圖7為測試集利用SVM分類模型識別和分類的混淆矩陣。傳感器部署在NE位置處,羊只三種行為的識別準(zhǔn)確率最高,其中靜止、行走和進(jìn)食的識別率分別為89.5%,91.1%和97.3%。傳感器部署在FL位置處,羊只三種行為的識別準(zhǔn)確率最低,其中靜止、行走和進(jìn)食的識別率分別為73.14%,71.63%和58%。從測試結(jié)果看,SVM支持向量機(jī)算法對于3種行為的區(qū)分效果較好,4個(gè)部位的平均識別準(zhǔn)確率為75.85%。
利用SVM模型對測試集進(jìn)行識別的結(jié)果如圖8所示。圖8中,綠色、紅色和藍(lán)色點(diǎn)分別代表行走、靜止和進(jìn)食三種行為。從圖8中可以看出,羊只三種行為的分類效果較好,正確分類數(shù)量較多。
(a) NE混淆矩陣 (b) BL混淆矩陣
(c) FL混淆矩陣 (d) HL混淆矩陣
(a) NE
(b) BL
(c) FL
(d) HL
試驗(yàn)中采集是數(shù)據(jù)在預(yù)處理過程中分別經(jīng)過了去噪和降維,表4所示為利用SVM算法對預(yù)處理前后測試數(shù)據(jù)進(jìn)行識別的結(jié)果對比。從表4中可以看出,在不同的部署位置獲取的傳感器數(shù)據(jù)在經(jīng)過預(yù)處理步驟后,識別準(zhǔn)確率全部得到了提升,因此將試驗(yàn)數(shù)據(jù)先預(yù)處理是很有必要的。
表4 數(shù)據(jù)預(yù)處理前后SVM算法識別準(zhǔn)確率對比Tab. 4 Comparison of SVM algorithm recognition accuracy before and after data pretreatment
為了明確傳感器相對優(yōu)化的部署位置,利用k-means 和SVM方法在相同位置的識別結(jié)果進(jìn)行對比,結(jié)果如表5所示。
表5 4個(gè)部署位置k-means算法與SVM算法測試集結(jié)果對比Tab. 5 Comparison of k-means algorithm and SVM algorithm test set results in four deployment locations
由表5可知,傳感器在不同的部署位置時(shí),利用SVM進(jìn)行行為識別的準(zhǔn)確率大于k-means方法。傳感器位于NE部位時(shí),在k-means和SVM兩種方法中識別準(zhǔn)確率均為最高,分別達(dá)到了79.34%和92.63%;傳感器位于BL部位時(shí),利用k-means識別的準(zhǔn)確率為67.2%,高于SVM方法的66.2%;但是在FL和HL部分,SVM的識別率均遠(yuǎn)高于k-means,其中FL部位在不同識別方法中準(zhǔn)確率均相對較低。通過表5可以證明,對于羊只行為的識別,傳感器部署在NE位置,識別效果最佳;此外,SVM的整體識別效果優(yōu)于k-mean方法。
表6所示為傳感器部署于NE位置時(shí),羊只不同行為識別結(jié)果。從表6中可以看出,k-means對于行走的識別率最高,達(dá)到了90.4%;SVM對于進(jìn)食的識別率最高,達(dá)到了97.3%。靜止行為在兩種方法的識別結(jié)果中均為最低,分別時(shí)67.34%和89.5%。但是,k-means 方法對三種行為的識別準(zhǔn)確率相差較大,識別準(zhǔn)確率較高的行走和較低的靜止之間差距達(dá)到了23.06%;而SVM方法對三種行為的識別準(zhǔn)確率差距較小,對于靜止和行走的識別準(zhǔn)確率比較接近。SVM方法中最低的識別率最與k-means方法中最高的識別率也較為相近,這再次證明了SVM方法用于羊只行為識別時(shí)優(yōu)于k-means方法。
表6 NE處測試集k-means和SVM算法識別率比較結(jié)果Tab. 6 Comparison results of recognition rate between k-means and SVM algorithm in NE test set
1) 本文設(shè)計(jì)一種基于加速度傳感器的可穿戴式裝置用于羊只靜止、行走和進(jìn)食三種行為的識別,并針對傳感器的不同部署位置進(jìn)行分析和比較。試驗(yàn)結(jié)果表明,傳感器位于NE位置時(shí),在不同的識別方法中識別準(zhǔn)確率均為最高,且利用SVM方法整體識別準(zhǔn)確率達(dá)到了92.63%。在不同行為的識別中,進(jìn)食的識別準(zhǔn)確率最高,利用SVM方法識別準(zhǔn)確率達(dá)到了97.3%。
2) 利用加速度傳感器進(jìn)行羊只行為的識別是一種行之有效的方法,這種方法中傳感器的部署位置對識別結(jié)果有著明顯的影響,因此明確相對優(yōu)化的部署位置對于構(gòu)建自動(dòng)化的羊只行為識別系統(tǒng)具有現(xiàn)實(shí)意義。此外,數(shù)據(jù)處理和分析方法也是影響識別結(jié)果的關(guān)鍵因素之一,合理的數(shù)據(jù)預(yù)處理方法能夠提高最終的識別率。隨著深度學(xué)習(xí)方法的興起,如何利用深度學(xué)習(xí)算法進(jìn)行數(shù)據(jù)處理,進(jìn)一步提高識別準(zhǔn)確率,并對羊只更多的行為狀態(tài)進(jìn)行識別是本文下一步關(guān)注的重點(diǎn)。
中國農(nóng)機(jī)化學(xué)報(bào)2022年12期