高 云 侯鵬飛 熊家軍 許學(xué)林 陳 斌 李 康
(1.華中農(nóng)業(yè)大學(xué)工學(xué)院, 武漢 430070; 2.生豬健康養(yǎng)殖協(xié)同創(chuàng)新中心, 武漢 430070;3.華中農(nóng)業(yè)大學(xué)動物科技學(xué)院, 武漢 430070)
人工集約化養(yǎng)殖梅花鹿作為我國一種半馴化的特種經(jīng)濟(jì)動物,其鹿茸有著極高的藥用價值[1]。雄性梅花鹿在發(fā)情期間,攻擊行為發(fā)生次數(shù)劇增,極易造成鹿茸損傷,打斗激烈時,還會造成鹿只傷殘,甚至死亡,給鹿業(yè)養(yǎng)殖戶造成巨大的經(jīng)濟(jì)損失[2]。目前實際生產(chǎn)中,主要依靠人工觀察鹿只的攻擊行為并進(jìn)行人為干涉。人工觀察攻擊行為費時費力,難以實現(xiàn)長時間監(jiān)控,且容易漏判,不適合大規(guī)模采用。
近年來,機(jī)器視覺技術(shù)在動物動作監(jiān)測和識別領(lǐng)域得到長足的發(fā)展。在傳統(tǒng)攻擊行為識別算法研究中,支持向量機(jī)(SVM)和聚類算法等模式識別方法被用于區(qū)分畜禽攻擊行為。改進(jìn)SVM算法區(qū)分生豬攻擊行為正確率[3]達(dá)到95.70%[4]、97.50%[4]、97.60%[5]。SVM算法也被用于區(qū)分鹿的采食行為,正確率為90.00%[6]。基于分層聚類改進(jìn)生豬攻擊行為識別算法正確率達(dá)85.43%[7],高度攻擊行為識別正確率達(dá)95.80%[8]、97.04%[9],中度正確率能夠達(dá)92.30%[8]、95.82%[9]。聚類算法中的K-means算法可實現(xiàn)種雞打斗、采食、飲水、交配、振翅等行為的識別,正確率達(dá)84.03%[10]。此外,也有學(xué)者選用線性分類器,即采用線性混合模型實現(xiàn)生豬攻擊行為識別,正確率為73.90%和89.00%[11]。隨著神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的高速發(fā)展,其在動物行為識別研究中的應(yīng)用也成為近年來的熱點[12-16]。
注意力機(jī)制于20世紀(jì)90年代初次被引入傳統(tǒng)機(jī)器視覺。2014年后,注意力機(jī)制與深度學(xué)習(xí)相結(jié)合在工業(yè)和農(nóng)業(yè)上都得到了較好應(yīng)用[17]。注意力機(jī)制中自注意力和軟注意力應(yīng)用廣泛。自注意力也稱為內(nèi)部注意力,目的是計算序列的表達(dá)形式。軟注意力更關(guān)注區(qū)域或通道,包含空間域、通道域和混合域(融合空間和通道)等類別。在相關(guān)研究中[18-23],注意力機(jī)制被加入到深度網(wǎng)絡(luò),分別應(yīng)用于圖像中的目標(biāo)識別、圖像分割和視頻中的表情識別,與未加入注意力機(jī)制的網(wǎng)絡(luò)對比,注意力機(jī)制能夠提取重點特征,明顯提升網(wǎng)絡(luò)識別的正確率。如果將注意力機(jī)制加入到動作和行為識別網(wǎng)絡(luò),將會有效提升重點特征的提取,使識別效果更好。
梅花鹿的攻擊行為特征相比其它動物有其特殊性,如常采用鹿角或鹿蹄等部位進(jìn)行攻擊。在行為識別算法的研究中需要專門針對其特點研究可行的識別網(wǎng)絡(luò)。本文結(jié)合光流法和注意力機(jī)制,在長期循環(huán)卷積網(wǎng)絡(luò)(Long-term recurrent convolutional networks, LRCN)[24]的基礎(chǔ)上進(jìn)行改進(jìn),研究梅花鹿行為的分類算法,行為包括攻擊、采食、躺臥和站立等,其中攻擊行為包括角斗、腳踢等特有攻擊性行為動作。本文基于該算法設(shè)計鹿只行為自動識別系統(tǒng),以實現(xiàn)各項行為在線自動監(jiān)測和記錄。
試驗數(shù)據(jù)采集于2020年11月20日至2021年3月10日,采集地點為湖北省某鹿業(yè)有限公司。試驗圈舍尺寸為30 m×12 m(長×寬),其中休息區(qū)96 m2、活動區(qū)264 m2,外墻高2.2 m。圈舍中設(shè)料槽,圈內(nèi)飼養(yǎng) 5~6歲齡、體況相近的42頭雄性梅花鹿。試驗對接種了KISS1-GnRH雙表達(dá)DNA去勢疫苗的雄性梅花鹿的攻擊行為進(jìn)行了測試,42頭雄性梅花鹿隨機(jī)均分為2組,一組進(jìn)行疫苗肌肉注射(試驗組),另一組不做處理(對照組),關(guān)于該疫苗試驗內(nèi)容另撰文描述[25]。
視頻采集選用??低暰W(wǎng)絡(luò)紅外攝像頭(3T56WD-I3型),鏡頭采用8 mm焦距,F(xiàn)1.6定焦光圈鏡頭。攝像頭通過網(wǎng)線連接到服務(wù)器,安裝MySQL數(shù)據(jù)庫服務(wù)器(MySQL 8.0.24,MySQL AB公司,瑞典),同時連接移動硬盤(WDBU6Y0050BBK-WESN 4TB,西部數(shù)據(jù),美國),服務(wù)器可通過瀏覽器對攝像頭和數(shù)據(jù)進(jìn)行訪問。采集圖像尺寸為2 560像素×1 920像素,幀率為4 f/s,以avi格式存儲于移動硬盤。
由于梅花鹿圈舍分為休息區(qū)和活動區(qū)兩部分,為了獲取梅花鹿白天主要的活動,試驗期間攝像頭選擇安裝在鹿只主要活動區(qū)域,即活動區(qū)一角,可以俯視拍攝到院內(nèi)鹿只所有活動。攝像頭安裝位置距圈舍圍墻水平距離6 m,距地面高度約8 m,以俯視15°拍攝,水平視場角為37.5°,垂直視場角為27.8°,對角線視場角為47.5°。為了方便進(jìn)行每日對比,試驗拍攝時間為07:00—18:00,以采集鹿只白天院內(nèi)所有活動。
雄鹿在發(fā)情期間,攻擊行為發(fā)生次數(shù)劇增。鹿只在進(jìn)食時,會頻繁用角頂撞其他鹿只的身體;在站立時,會發(fā)生角斗,即鹿只用鹿角撞擊另一只鹿的角。攻擊期間,鹿只間會前腳互踢,或一只鹿用前腳踢另一只鹿的身體。攻擊末期,還會發(fā)生追逐行為。根據(jù)攻擊發(fā)生的部位和發(fā)生的階段將鹿只的攻擊性行為細(xì)分為撞擊、腳踢、追逐。同時,本文為區(qū)分鹿只的攻擊行為和非攻擊行為,將非攻擊行為細(xì)分為采食、躺臥、站立,各行為的細(xì)分說明如表1所示。
表1 鹿行為定義Tab.1 Definition of deer’s behavior
梅花鹿RGB行為數(shù)據(jù)集采用行為優(yōu)先級(Attacking precedence,AP)的方法制作,優(yōu)先標(biāo)注攻擊行為,其次標(biāo)注采食、站立和躺臥等行為。由于梅花鹿是群居動物,一般表現(xiàn)出群體性行為,而攻擊行為發(fā)生在不少于兩只鹿只之間的小群體性特異行為,持續(xù)時間較短,并且通常發(fā)生于采食、站立和躺臥行為中,采用AP法標(biāo)注有助于訓(xùn)練模型提高對攻擊行為的識別正確度。本研究中采用該方法分別對試驗組和對照組截取圖像的行為進(jìn)行標(biāo)注,網(wǎng)絡(luò)模型優(yōu)先對視頻段中的攻擊行為進(jìn)行學(xué)習(xí)。標(biāo)注鹿群其他日常行為時,多數(shù)鹿只同時發(fā)生的行為標(biāo)注為該群體性行為。由于視頻鄰幀間,鹿只運動幅度較小,所以以1 f/s截取視頻幀。標(biāo)注結(jié)果如圖1所示。上一行為視頻中直接截取的圖像幀,下一行為圖像幀放大后的行為圖像。本次試驗共標(biāo)注視頻10 942段,共310 574幀,標(biāo)注時長5 175.95 min。
圖1 鹿的行為幀F(xiàn)ig.1 Frames of deer’s behavior
針對鹿只運動時身體的變化,采用LK光流算法(Lucas kanade optical flow algorithm)進(jìn)行識別,這是一種計算相鄰圖像幀鹿只運動所產(chǎn)生像素點變化的計算方法。用此方法制作光流數(shù)據(jù)集,并按照3∶1∶1隨機(jī)劃分為訓(xùn)練集、驗證集和測試集,如表2所示。
表2 光流數(shù)據(jù)集劃分Tab.2 Division of optical flow dataset
梅花鹿攻擊行為相比其它動物有其特殊性,如常采用鹿角或鹿蹄等部位進(jìn)行攻擊。為了區(qū)分鹿只攻擊行為與非攻擊行為,解決鹿只之間的遮擋問題,提升視頻識別效率和正確率,在算法中加入光流算法和注意力機(jī)制。設(shè)計光流注意力網(wǎng)絡(luò)(Optical flow attention attacking recognition network, OAAR),改進(jìn)攻擊行為監(jiān)測網(wǎng)絡(luò)來對攻擊行為和其它行為進(jìn)行識別,該網(wǎng)絡(luò)包括前置網(wǎng)絡(luò)、基礎(chǔ)網(wǎng)絡(luò)和時序網(wǎng)絡(luò)。前置網(wǎng)絡(luò)由LK光流算法組成,提取RGB數(shù)據(jù)光流信息;基礎(chǔ)網(wǎng)絡(luò)采用自注意力模塊將ResNet-152網(wǎng)絡(luò)改造為ARNet152(Attention ResNet-152),用于將RGB、光流數(shù)據(jù)集提取特征后輸入時序網(wǎng)絡(luò);時序網(wǎng)絡(luò)采用添加注意力模塊的長短記憶序列(Attention long short term network,ALST),并通過分類器輸出行為得分和分類結(jié)果。
2.1.1前置網(wǎng)絡(luò)
觀察鹿只日常情況可知,相比于背景鹿只的運動,發(fā)生攻擊行為的鹿只前后幀圖像變化較激烈。為了從背景中提取鹿只,并區(qū)分攻擊行為與非攻擊行為,在前置網(wǎng)絡(luò)中設(shè)計LK光流算法,計算鹿只相鄰圖像幀(圖2中相鄰的3幀圖像)之間光流數(shù)據(jù)V。提取光流信息前,先排除圖像不清晰、場景光線暗,或有拖尾的行為幀,共排除435個。將剩余文件接入前置網(wǎng)絡(luò)接口后,根據(jù)鹿只行為發(fā)生時身體上重點發(fā)生變化的位置,計算兩幀之間光流V關(guān)于X、Y兩個方向的信息。
IxVx+IyVy+It=0
(1)
式中Ix、Iy、It——圖像中像素點灰度關(guān)于X、Y、T方向偏導(dǎo)數(shù)
Vx、Vy——X、Y方向光流向量
圖2 光流提取過程示意圖Fig.2 Extracted optical flow
結(jié)合相鄰m×m范圍內(nèi)的像素點,采用最小二乘法計算出最終光流信息,并保存光流幀,如圖2中Flow_X幀和Flow_Y幀。將X、Y方向光流信息結(jié)合生成輸出矢量V并在前一幀圖像上顯示,即圖2中LK Flow幀。將LK Flow幀放大后,黃色點(圖2右圖中小圓點)表示像素起始位置,引出線表示像素點的光流方向??梢灾庇^看到,RGB幀經(jīng)前置網(wǎng)絡(luò)處理后,輸出的光流幀能夠捕獲到運動的鹿只。由此可知,LK光流法能夠關(guān)注行為的位置變化,忽略計算背景光流信息,有效節(jié)約制作光流數(shù)據(jù)集的時間成本。
2.1.2基礎(chǔ)網(wǎng)絡(luò)和時序網(wǎng)絡(luò)
為了快速提取攻擊行為特征信息,如攻擊行為發(fā)生時鹿角、鹿蹄等位置變化,減少背景等非行為特征計算,節(jié)省網(wǎng)絡(luò)計算成本,從而提升視頻識別的效率和正確率,在基礎(chǔ)網(wǎng)絡(luò)和時序網(wǎng)絡(luò)中引入了注意力機(jī)制?;A(chǔ)網(wǎng)絡(luò)和時序網(wǎng)絡(luò)在長期遞歸卷積網(wǎng)絡(luò)(Long-term recurrent convolutional networks, LRCN)[24]的基礎(chǔ)上針對鹿的攻擊行為進(jìn)行改進(jìn)和搭建(圖3a中基礎(chǔ)網(wǎng)絡(luò)和ALST)。長期遞歸卷積網(wǎng)絡(luò)是一種將卷積神經(jīng)網(wǎng)絡(luò)和長短時序網(wǎng)絡(luò)相結(jié)合的網(wǎng)絡(luò),能夠提取序列視頻或圖像特征,并預(yù)測目標(biāo)動作信息。基礎(chǔ)網(wǎng)絡(luò)負(fù)責(zé)計算RGB、光流數(shù)據(jù)集中的行為特征值;時序網(wǎng)絡(luò)基于長短記憶序列建模時序信息,并輸出得分;最終通過分類器按特征權(quán)重的差異分類,輸出攻擊、采食、躺臥和站立4種行為得分。
由于網(wǎng)絡(luò)訓(xùn)練長視頻時,隨著時間維變化會遺忘最初的行為信息,所以本文通過ALST提取行為時序信息。輸入數(shù)據(jù)集視頻幀尺寸為320像素×240像素,每段視頻選取首尾2幀以及中間隨機(jī)的3幀進(jìn)行訓(xùn)練。對數(shù)據(jù)集中每一段RGB幀、光流幀進(jìn)行transformer處理后,尺寸裁剪為3×224×224和2×224×224(深度×幀長×幀寬),并通過pytorch框架的dataloader接口分別傳入基礎(chǔ)網(wǎng)絡(luò)中,調(diào)用forward函數(shù)進(jìn)行訓(xùn)練。
圖3 OAAR結(jié)構(gòu)示意圖Fig.3 Structure diagram of OAAR
基礎(chǔ)網(wǎng)絡(luò)由空間網(wǎng)絡(luò)(Spatial ARNet152)和時間網(wǎng)絡(luò)(Temporal ARNet152)構(gòu)成。RGB幀和光流幀分別經(jīng)過由ARNet152搭建的空間網(wǎng)絡(luò)和時間網(wǎng)絡(luò)提取特征權(quán)重,并將權(quán)重傳入ALST網(wǎng)絡(luò)。ARNet152在ResNet152網(wǎng)絡(luò)基礎(chǔ)上插入自注意力卷積模塊[26](Attention key),即自注意力卷積模塊替換ResNet152中的3×3卷積鍵,自注意力模塊可建模動、靜態(tài)上下文信息,提取鹿只攻擊行為特征,提高鹿只行為識別的精度,如圖3b所示。ARNet152網(wǎng)絡(luò)中,數(shù)據(jù)先經(jīng)過3個卷積核為3×3的卷積鍵卷積計算,第1個2Dconv步長為2,其余卷積層步長為1,填充像素(padding)均為(1,1)。卷積鍵(Convolution key)包含1層2Dconv卷積層、1層GN(Group normalization)層、1層ReLU層,卷積層左邊綠色框為通道數(shù),右邊橙色框為特征圖輸入、輸出尺寸。數(shù)據(jù)依次經(jīng)過包含3、8、36、3個Bottleneck的殘差塊(Blocks)提取特征權(quán)重。經(jīng)過4個循環(huán)提取特征后,通過自適應(yīng)池化層(AvgPool)輸出3×1×1特征圖,并輸入ALST網(wǎng)絡(luò)中。第1至第4循環(huán)的第1個Bottleneck的自注意力卷積模塊和下采樣步長均為2,填充像素均為(1,1),以減少輸入?yún)?shù)量,防止參數(shù)太多數(shù)據(jù)爆炸。Bottleneck由主路徑(main path)和捷徑(shortcut)組成。主路徑包括2個1×1 conv卷積鍵和1個自注意力卷積模塊。自注意力卷積模塊輸入的特征值X重新定義為Key Map、Query和Value Map 3個值。先將Key值進(jìn)行3×3卷積,輸出靜態(tài)上下文建模矩陣K1。融合計算K1和Query值后,進(jìn)行2次1×1卷積計算,輸出動態(tài)上下文Attention矩陣。經(jīng)Attention矩陣與Value值卷積計算后,由Softmax輸出自注意力特征值Y。每個循環(huán)中第1個Bottleneck的捷徑由1個1×1 conv卷積鍵構(gòu)成(圖3b虛線框),實現(xiàn)對數(shù)據(jù)降維,輸出維度即卷積鍵通道數(shù),其余捷徑(圖3b實線框)不經(jīng)過降維,直接將主路徑輸入數(shù)據(jù)與輸出結(jié)果相加,blocks下的數(shù)字表示循環(huán)次數(shù)。
ALST網(wǎng)絡(luò)由2層512個LSTM單元組成的時序結(jié)構(gòu)和1層注意力機(jī)制層組成,注意力機(jī)制層計算公式為
(2)
式中at——源端對齊位置(aligned position)向量
ht——decoder隱狀態(tài)
hs——源端隱狀態(tài)
align()——對齊函數(shù)
每個LSTM單元由輸入門、遺忘門和輸出門構(gòu)成,實現(xiàn)對數(shù)據(jù)特征時序信息的提取計算,注意力機(jī)制層的作用是為了減少遺忘門遺忘量。時序信息建模完成后輸入分類器。分類器(Classifier)由1層全連接層和1層softmax層構(gòu)成,將雙流信息融合計算后,對不同類別的特征權(quán)重分類,最終輸出4類行為得分。
OAAR網(wǎng)絡(luò)的主要改進(jìn)包括:①加入前置網(wǎng)絡(luò)。前置網(wǎng)絡(luò)由LK光流算法提取前后幀中的動作形成光流數(shù)據(jù)幀,增強后續(xù)網(wǎng)絡(luò)輸入的運動信息,減少背景的影響。②用自注意力模塊替換ResNet152網(wǎng)絡(luò)中殘差結(jié)構(gòu)的3×3卷積鍵,同時用GN層替換BN層,加上ReLU層和dropout層組成新的殘差結(jié)構(gòu)。自注意力模塊可建模動、靜態(tài)上下文信息,提取鹿只攻擊行為特征,提高鹿只行為識別的精度。③LSTM層中間插入注意力機(jī)制層,減少LSTM單元中遺忘門的遺忘量,改進(jìn)時序網(wǎng)絡(luò),加強對時序信息的提取。除了對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)外,本文在網(wǎng)絡(luò)訓(xùn)練方式中也進(jìn)行了改進(jìn),每段訓(xùn)練樣本視頻選取首尾2幀以及中間隨機(jī)3幀進(jìn)行訓(xùn)練,突出行為視頻中關(guān)鍵動作特征的提取,同時節(jié)省網(wǎng)絡(luò)訓(xùn)練成本。
2.2.1損失函數(shù)設(shè)置
OAAR結(jié)合雙流信息得分通過標(biāo)準(zhǔn)分類交叉熵?fù)p失(Cross-entropy loss)得到損失函數(shù)。采用交叉熵?fù)p失函數(shù)的優(yōu)勢在于,輸出值和真實值的差值僅與最后一層權(quán)重梯度成正比,能夠加快網(wǎng)絡(luò)收斂速度。同時,網(wǎng)絡(luò)反向傳播的連乘計算,會加快更新整個權(quán)重矩陣。另外,多分類交叉熵?fù)p失函數(shù)求導(dǎo)更易求解,其損失率僅與正確類別的概率相關(guān),降低了網(wǎng)絡(luò)的計算量。損失函數(shù)公式為
(3)
式中yi——類別i的真實值
C——總類別數(shù)L——損失函數(shù)
2.2.2網(wǎng)絡(luò)參數(shù)初始化
網(wǎng)絡(luò)訓(xùn)練平臺使用64位ubantu18.04系統(tǒng),搭建GPU版pytorch框架,采用單GPU(GeForce GTX 1080 12GB,NVIDIA,美國)進(jìn)行訓(xùn)練。網(wǎng)絡(luò)采用隨機(jī)梯度下降法 (SGD) 作為優(yōu)化器,動量設(shè)為0.9,能夠有效抑制振蕩,加快收斂速度。批量大小(Batch size)設(shè)為8,批量大小過小會導(dǎo)致訓(xùn)練速度太慢,過大會導(dǎo)致顯卡占用內(nèi)存溢出。迭代周期(Epoch)設(shè)為100,初始學(xué)習(xí)率設(shè)為1×10-3,Dropout設(shè)為0.8,增加迭代次數(shù),降低學(xué)習(xí)率,能夠使網(wǎng)絡(luò)輸出模型識別效果更精確,提升訓(xùn)練速度。但網(wǎng)絡(luò)訓(xùn)練到一定程度時,模型趨于飽和且學(xué)習(xí)停滯,所以在第30和第60個迭代周期,學(xué)習(xí)率為原來的1/10。
為解決網(wǎng)絡(luò)深度增大時魯棒性差的問題,在正式訓(xùn)練前,先預(yù)訓(xùn)練OAAR網(wǎng)絡(luò)。將空間網(wǎng)絡(luò)加載ImageNet預(yù)訓(xùn)練權(quán)重初始化網(wǎng)絡(luò),輸出空間網(wǎng)絡(luò)權(quán)重后,時間網(wǎng)絡(luò)加載該權(quán)重完成初始化訓(xùn)練。采用pytorch自帶tensorboardX記錄模型訓(xùn)練過程,模型正確率和損失值如圖4所示。由于設(shè)置訓(xùn)練迭代次數(shù)到達(dá)第30和第60個迭代周期時,學(xué)習(xí)率下降至原來的1/10,所以在第30個迭代周期時,正確率出現(xiàn)大幅增加,損失值大幅減??;在到達(dá)第60個迭代周期前訓(xùn)練集正確率和損失值逐漸趨于穩(wěn)態(tài);第60個迭代周期后,訓(xùn)練集正確率繼續(xù)小幅提高,損失值小幅下降。驗證集驗證過程中的正確率、損失值和訓(xùn)練集對應(yīng)的值貼合較好,較為近似。在模型中適當(dāng)調(diào)低學(xué)習(xí)率有助于網(wǎng)絡(luò)加快學(xué)習(xí)速度和對特征點細(xì)節(jié)的繼續(xù)學(xué)習(xí)。最終得出OAAR網(wǎng)絡(luò)模型在訓(xùn)練集上正確率為99.16%,損失值為0.026 4,在驗證集上正確率為97.91%,損失值為0.061 2。
圖4 OAAR網(wǎng)絡(luò)識別正確率和損失值Fig.4 Recognition accuracy and loss value of OAAR
采用正確率(Accuracy)、召回率(Recall)、精確率(Precision)和F1值(F1 score)[15]作為評價模型性能的指標(biāo)。
正確率常被用于評價鹿只所有行為識別正確的比重,但當(dāng)樣本不平衡時,僅依靠正確率不能正確評價模型。因此采用召回率、精確率和F1值對模型進(jìn)行綜合評價。PR曲線中的平衡點(BEP)對應(yīng)F1值的計算結(jié)果,表示模型的綜合性能。
測試集中每類行為包含500段視頻,合計2 000段視頻,其中共1 949段視頻被正確識別,51段視頻未能被正確識別,OAAR網(wǎng)絡(luò)混淆矩陣如圖5所示。模型對攻擊、采食、躺臥、站立行為識別精確率分別為96.00%、96.60%、100%、97.20%。
圖5 OAAR分類結(jié)果混淆矩陣Fig.5 Confusion matrix of OAAR
由圖5可知,攻擊行為的精確率較其它3種行為略低。原因可能是:①鹿只嚴(yán)重重疊或遮擋時,識別較為困難。部分視頻幀中出現(xiàn)鹿只之間嚴(yán)重重疊、遮擋問題,如鹿只的頭部、腳部被其他鹿只或樹等物體全程遮擋時,模型未能檢測到鹿只攻擊動作。②攻擊行為發(fā)生時間極短時難以識別。當(dāng)鹿只攻擊行為持續(xù)時間太短,部分視頻只持續(xù)1~2幀攻擊動作,這部分行為較難被模型識別。③發(fā)生行為時前后幀圖像變化幅度較小時較難識別。攻擊動作發(fā)生的前后兩幀變化幅度很小時,前置網(wǎng)絡(luò)難以獲取其動作,模型的注意力在鹿只的其他行為,導(dǎo)致攻擊行為的置信度低于其他行為,所以分類結(jié)果輸出為非攻擊行為。
從特征可視化角度驗證OAAR網(wǎng)絡(luò)識別效果,如圖6所示。圖中第1行為測試集中隨機(jī)選取的一段連續(xù)的攻擊行為幀,第2行為通過網(wǎng)絡(luò)最后一層卷積操作輸出的特征可視化結(jié)果,第3行在第2行基礎(chǔ)上通過特征注意力機(jī)制生成熱力圖,顏色越偏近暖色表示攻擊動作越激烈。從熱力圖中可以觀察到,高亮部分集中在發(fā)生不同程度攻擊行為的3個區(qū)域。因此,驗證了自注意力模塊能夠有效識別鹿只攻擊行為。
圖6 特征可視化Fig.6 Feature visualization
將網(wǎng)絡(luò)最后1層特征映射在二維空間,如圖7所示。圖中每個點代表測試集的1段視頻,每個行為類別采用一種顏色表示,類別A(攻擊)、F(采食)、L(躺臥)和S(站立)特征映射點分別采用紅色、綠色、藍(lán)色、紫色表示,圖7中不同行為分別聚集于4個角,攻擊行為與躺臥、站立、采食有很少量混雜,且每種行為自身的聚集度較高。特征嵌入圖說明了OAAR網(wǎng)絡(luò)對攻擊、采食、躺臥和站立行為類別的區(qū)分度較高。
圖7 特征嵌入Fig.7 Feature embedding
圖8 ROC曲線Fig.8 ROC curve
4種行為的受試者特性(ROC)曲線如圖8所示。ROC曲線均位于隨機(jī)猜測線左上方,曲線距左上角越近,顯示分類結(jié)果越準(zhǔn)確。采用宏平均和微平均綜合評價網(wǎng)絡(luò)分類性能。宏平均先計算每類行為ROC值,再計算算術(shù)平均值;微平均先計算所有類真正率和假正率的平均值,再作ROC插值。從圖8可知,采食、躺臥和站立行為接近理想指標(biāo),即對某類識別效果極好,攻擊行為趨于理想指標(biāo),各分類的曲線下方面積(AUC)均趨于1。綜上所述,OAAR能夠?qū)Ω黝愋袨檫M(jìn)行較好的識別和分類。
為了驗證OAAR網(wǎng)絡(luò)對梅花鹿行為識別的有效性,選取長短時記憶網(wǎng)絡(luò)(Long short term memory network,LSTM)[27]、雙流I3D網(wǎng)絡(luò)(Two-stream inflated 3d convNets)[28]和雙流ITSN網(wǎng)絡(luò)(Improvement temporal segment network)[29]與OAAR網(wǎng)絡(luò)進(jìn)行對比驗證。LSTM采用decoder和encoder兩個環(huán)節(jié)配合完成行為識別。雙流I3D網(wǎng)絡(luò)采用膨脹3D卷積計算RGB、光流數(shù)據(jù)特征,利用空間感受野融合時間感受野,實現(xiàn)特征信息識別和分類。雙流ITSN基于長范圍時間建模,在原本TSN網(wǎng)絡(luò)的基礎(chǔ)上替換2D卷積為3D卷積。用視頻數(shù)據(jù)集分別訓(xùn)練各網(wǎng)絡(luò),并將各網(wǎng)絡(luò)在測試集上的識別結(jié)果與本文中的OAAR網(wǎng)絡(luò)的分類結(jié)果進(jìn)行對比分析。結(jié)果如表3所示,各網(wǎng)絡(luò)模型正確率分別為82.65%(LSTM)、84.33%(雙流I3D)、96.80%(雙流ITSN)和97.45%(OAAR)。
表3 當(dāng)前常用網(wǎng)絡(luò)模型比較Tab.3 Comparisons with state-of-the-art results
由表3可知,OAAR識別單個視頻的平均時間明顯短于LSTM、雙流I3D和雙流ITSN。由于雙流I3D網(wǎng)絡(luò)基于3D卷積的InceptionV1網(wǎng)絡(luò)提取特征[28],網(wǎng)絡(luò)的參數(shù)量和浮點運算次數(shù)劇增,同時識別單個視頻的時間也會增加。雙流ITSN網(wǎng)絡(luò)中,采用視頻分段的形式訓(xùn)練模型網(wǎng)絡(luò)[29],并使用Resnet3d-50作為提取特征的基礎(chǔ)網(wǎng)絡(luò),基礎(chǔ)網(wǎng)絡(luò)中的殘差結(jié)構(gòu)能夠有效降低實際訓(xùn)練的參數(shù)量和浮點運算次數(shù),同時提升網(wǎng)絡(luò)的識別正確率。LSTM的基礎(chǔ)網(wǎng)絡(luò)采用傳統(tǒng)2D卷積的CNN網(wǎng)絡(luò)[27],提取單幀圖像特征后,傳入LSTM單元中關(guān)聯(lián)前后行為特征信息,參數(shù)量和浮點運算次數(shù)在4種網(wǎng)絡(luò)中最小,但由于基礎(chǔ)網(wǎng)絡(luò)沒有提取到有效的攻擊行為特征,該網(wǎng)絡(luò)的識別正確率較其他網(wǎng)絡(luò)略低。在OAAR網(wǎng)絡(luò)中,基礎(chǔ)網(wǎng)絡(luò)基于注意力機(jī)制模塊和殘差結(jié)構(gòu)搭建的ARNet152,側(cè)重提取鹿角、鹿蹄等攻擊行為特征,同時時序網(wǎng)絡(luò)中的注意力機(jī)制能夠有效減少遺忘門的遺忘量,從而提高了視頻行為識別的效率和正確率,驗證了注意力機(jī)制的有效性。
表4分別列出了4種網(wǎng)絡(luò)對測試集識別的結(jié)果,OAAR精確率為97.45%,召回率為97.46%,遠(yuǎn)高于LSTM精確率(82.65%)、召回率(83.65%)和雙流I3D精確率(86.57%)、召回率(86.58%),略高于雙流ITSN精確率(96.81%)、召回率(96.74%)。相比于LSTM網(wǎng)絡(luò)、雙流I3D網(wǎng)絡(luò)和雙流ITSN網(wǎng)絡(luò),OAAR網(wǎng)絡(luò)主要從4方面優(yōu)化了其性能:①前置網(wǎng)絡(luò)提取了行為隨時間變化的動作特征。前置網(wǎng)絡(luò)提取鹿只身體的位置變化,抑制背景噪聲的影響。通過訓(xùn)練雙流網(wǎng)絡(luò)后,取空間和時間網(wǎng)絡(luò)輸出得分的均值,有效提升網(wǎng)絡(luò)行為識別的準(zhǔn)確度。②自注意力模塊使發(fā)生攻擊行為的鹿只更加突顯。由于在基礎(chǔ)網(wǎng)絡(luò)中使用自注意力卷積模塊加工動、靜態(tài)上下文信息,提取鹿只攻擊行為特征,較大提升了鹿只攻擊行為識別正確率。③殘差結(jié)構(gòu)能夠獲取更多行為特征信息。殘差結(jié)構(gòu)保留了更多的低層特征信息,在網(wǎng)絡(luò)加深的過程中,有效避免了過擬合、梯度爆炸和消失等問題,加快網(wǎng)絡(luò)訓(xùn)練進(jìn)程。④每段視頻選取首尾2幀以及中間隨機(jī)的3幀進(jìn)行稀疏訓(xùn)練。為避免行為視頻過長時導(dǎo)致重要行為特征削弱的現(xiàn)象,每段視頻選取首尾2幀以及中間隨機(jī)的3幀進(jìn)行訓(xùn)練,以便在訓(xùn)練過程中突出視頻中的關(guān)鍵動作特征,節(jié)省訓(xùn)練成本。
表4 各模型性能統(tǒng)計Tab.4 Performance statistics of models %
用精確率-召回率曲線直觀比較4種網(wǎng)絡(luò)識別效果,如圖9所示。點A、B、C、D為4種網(wǎng)絡(luò)的精確率-召回率曲線的平衡點,對應(yīng)各網(wǎng)絡(luò)的F1值。圖9中, OAAR網(wǎng)絡(luò)的平衡點D高于點A、B、C,說明OAAR網(wǎng)絡(luò)識別效果優(yōu)于LSTM網(wǎng)絡(luò)、雙流I3D網(wǎng)絡(luò)和雙流ITSN網(wǎng)絡(luò)。
圖9 精確率-召回率曲線Fig.9 Precision-recall curves
圖10 鹿只行為自動識別系統(tǒng)Fig.10 Sika deer behaviors’ automatically recognition system
基于OAAR網(wǎng)絡(luò)搭建的鹿只行為自動識別系統(tǒng)如圖10所示。該系統(tǒng)采用攝像頭獲取視頻上傳至服務(wù)器,后端框架調(diào)用服務(wù)器中部署的OAAR網(wǎng)絡(luò)模型,計算視頻鹿群中是否發(fā)生包括攻擊、采食、站立、躺臥行為,并進(jìn)行置信度打分,并將鹿群中發(fā)生的行為打上時間戳存儲在服務(wù)器中的MySQL數(shù)據(jù)庫中,相關(guān)信息可通過網(wǎng)頁發(fā)布,并供用戶遠(yuǎn)程訪問。
(1)新增了前置網(wǎng)絡(luò)提取光流數(shù)據(jù)。前置網(wǎng)絡(luò)采用LK光流算法計算光流數(shù)據(jù)幀,提取前后幀中鹿只身體位置的變化,抑制背景噪聲的影響。其輸出的光流數(shù)據(jù)幀與RGB數(shù)據(jù)幀共同作為基礎(chǔ)網(wǎng)絡(luò)的輸入數(shù)據(jù),進(jìn)一步加強了行為特征,削弱了背景噪聲,試驗證明了本文方法能夠有效解決行為被遮擋的問題。
(2)將注意力機(jī)制分別加入基礎(chǔ)網(wǎng)絡(luò)和時序網(wǎng)絡(luò)?;A(chǔ)網(wǎng)絡(luò)中將自注意力卷積模塊替換為ResNet152中的3×3卷積層,分別加工動、靜態(tài)上下文信息。時序網(wǎng)絡(luò)在2層LSTM層中加入注意力機(jī)制層,減少LSTM單元中遺忘門的遺忘量,提升網(wǎng)絡(luò)處理時序信息的能力。
(3)OAAR網(wǎng)絡(luò)在測試集上的識別正確率高達(dá)97.45%,高于LSTM正確率(82.65%)、雙流I3D正確率(84.33%)和雙流ITSN正確率(96.80%)。OAAR精確率和召回率也分別優(yōu)于其它3個網(wǎng)絡(luò)。受試者特性曲線和特征嵌入圖均顯示了OAAR網(wǎng)絡(luò)具有較好的區(qū)分性、泛化和抗干擾能力。
(4)集成OAAR網(wǎng)絡(luò)的鹿只行為自動識別采集系統(tǒng)實現(xiàn)了梅花鹿行為的自動識別功能,為提高梅花鹿養(yǎng)殖生產(chǎn)管理水平和生產(chǎn)效率提供了可行的途徑。