張小敏 徐 濤 張延寧 高 源 朱逸航 饒秀勤
(1.浙江大學(xué)生物系統(tǒng)工程與食品科學(xué)學(xué)院, 杭州 310058; 2.浙江省農(nóng)業(yè)智能裝備與機(jī)器人重點(diǎn)實(shí)驗(yàn)室, 杭州 310058)
體質(zhì)量是家禽的重要生長(zhǎng)指標(biāo)之一,也是種雞選育的重要參考依據(jù)。家禽的體質(zhì)量與經(jīng)濟(jì)效益直接相關(guān),體質(zhì)量信息可用于判斷家禽最佳出欄時(shí)間、指導(dǎo)日常飼喂、判斷是否患病等[1-2]。目前家禽體質(zhì)量測(cè)量可分為人工測(cè)量法、稱量裝置測(cè)量法和機(jī)器視覺(jué)監(jiān)測(cè)法。傳統(tǒng)的人工測(cè)量法耗時(shí)、費(fèi)力,易造成家禽的應(yīng)激反應(yīng),且獲得的體質(zhì)量信息不全,不具有時(shí)間連續(xù)性[3]。稱量裝置測(cè)量法不會(huì)引起家禽的應(yīng)激反應(yīng),但此類傳感器存在安裝復(fù)雜、維護(hù)困難等問(wèn)題,且在養(yǎng)殖后期,體質(zhì)量較大的肉雞相比其他肉雞,上秤頻次低,造成體質(zhì)量低估[4]。相比而言,機(jī)器視覺(jué)監(jiān)測(cè)法具有實(shí)時(shí)客觀、非侵?jǐn)_性、可維護(hù)性強(qiáng)等優(yōu)點(diǎn),可以提高測(cè)量效率。
基于機(jī)器視覺(jué)技術(shù)的畜禽體質(zhì)量估測(cè)已取得了一定的進(jìn)展[5-10],但目前主要依靠人工選取家禽理想姿態(tài)幀,主觀性強(qiáng)且耗時(shí)費(fèi)力,難以在家禽體質(zhì)量自動(dòng)估測(cè)中應(yīng)用。因此,研究用于家禽體質(zhì)量估測(cè)的理想姿態(tài)識(shí)別算法具有重要意義。
在動(dòng)物個(gè)體姿態(tài)識(shí)別方面,LEROY等[11]通過(guò)點(diǎn)分布模型擬合蛋雞圖像,描述蛋雞的姿勢(shì)信息,能夠自動(dòng)識(shí)別母雞的站立、行走和抓撓行為。POURSABERI等[12]通過(guò)分析牛的背部姿態(tài)來(lái)識(shí)別跛行,通過(guò)檢測(cè)背部輪廓的弧度并通過(guò)脊椎線上的選定點(diǎn)擬合圓來(lái)檢測(cè)背部姿態(tài)。勞鳳丹等[13]基于10個(gè)特征量使用貝葉斯分類法對(duì)蛋雞行為進(jìn)行識(shí)別,能夠識(shí)別單只蛋雞的拍翅膀、修飾、休息、探索、抖動(dòng)和舉翅膀等行為。勞鳳丹等[14]基于深度圖像對(duì)蛋雞行為識(shí)別進(jìn)行了研究,結(jié)果表明算法對(duì)蛋雞的采食、躺、站和坐的識(shí)別準(zhǔn)確率分別為90.3%、91.5%、87.5%和56.2%。司永勝等[15]提出了一種基于Kinect的豬體理想姿態(tài)檢測(cè)算法以提高圖像利用率和體尺測(cè)量效率,算法利用投影法和差分法識(shí)別頭部和尾部位置,利用骨骼化算法結(jié)合霍夫變換算法檢測(cè)豬體頭部是否歪斜,對(duì)于52 016幀圖像檢測(cè)出理想姿態(tài)2 592幀、漏報(bào)432幀、誤報(bào)0幀。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)技術(shù)在動(dòng)物個(gè)體姿態(tài)識(shí)別領(lǐng)域得到了較多應(yīng)用[16-18]。文獻(xiàn)[19-20]提出了采用單幅圖像識(shí)別豬只立臥姿態(tài)的方法,利用建立的豬只識(shí)別模型和頭尾識(shí)別方法,將待測(cè)豬圖像調(diào)整到水平狀態(tài),構(gòu)建了豬只立臥姿態(tài)識(shí)別模型,精度達(dá)到了95%。LUO等[21]提出了一種輕量級(jí)的通道注意力模型,用于實(shí)時(shí)識(shí)別豬只的站立、趴臥、側(cè)臥、坐姿和攀爬5種姿勢(shì),該算法對(duì)上述5種姿勢(shì)的平均識(shí)別精度分別為97.7%、95.2%、95.7%、87.5%和84.1%,單幅圖像的推理速度約為63 ms。薛月菊等[22]提出了一種融合2D-3D卷積特征的哺乳母豬姿態(tài)轉(zhuǎn)換識(shí)別算法,模型姿態(tài)轉(zhuǎn)換識(shí)別準(zhǔn)確率為97.95%,召回率為91.67%,測(cè)試速度為14.39 f/s。FANG等[23]利用多部位目標(biāo)檢測(cè)方法對(duì)單只肉雞的側(cè)面圖像進(jìn)行姿態(tài)估計(jì),利用ResNet50和特征金字塔(FPN)結(jié)構(gòu)[24]構(gòu)建特征提取器,算法對(duì)單個(gè)肉雞姿態(tài)估計(jì)的準(zhǔn)確率和召回率分別為91.9%和86.5%。
基于機(jī)器視覺(jué)的家禽姿態(tài)識(shí)別相關(guān)研究已取得一定進(jìn)展,但目前依舊存在以下問(wèn)題:當(dāng)雞只處于低頭、展翅、梳理羽毛或坐姿等姿態(tài)時(shí),雞只寬度、體積、背高等特征參數(shù)的提取會(huì)受到影響,易造成體質(zhì)量預(yù)測(cè)的誤差較大;而家禽處于站立姿態(tài)時(shí),身體直立無(wú)多余動(dòng)作,這樣的姿態(tài)對(duì)于特征的提取更加穩(wěn)定,因此站立姿態(tài)可認(rèn)為是家禽體質(zhì)量估計(jì)時(shí)的最理想姿態(tài)[5,7-8],但目前適用于家禽體質(zhì)量估計(jì)的站立姿態(tài)識(shí)別方法缺乏,且由于家禽為非合作對(duì)象,適于體質(zhì)量估計(jì)的理想姿態(tài)在視頻中出現(xiàn)較少,樣本不均衡問(wèn)題突出,研究者難以獲得較好的理想姿態(tài)識(shí)別精度。
針對(duì)上述問(wèn)題,本文以882黃雞為試驗(yàn)對(duì)象,提出SE-ResNet18+fLoss網(wǎng)絡(luò),從視頻中篩選符合體質(zhì)量估計(jì)的姿態(tài)關(guān)鍵幀,模型融合注意力機(jī)制SE模塊和殘差結(jié)構(gòu),并改進(jìn)損失函數(shù),通過(guò)Focal Loss監(jiān)督信號(hào)來(lái)解決樣本不平衡問(wèn)題,同時(shí)引入梯度加權(quán)類激活圖(Gradient-weighted class activation mapping,Grad-CAM)[25]對(duì)末端分類規(guī)則的合理性進(jìn)行解釋,反映每一類姿態(tài)所關(guān)注的重點(diǎn)區(qū)域。在連續(xù)視頻上進(jìn)行模型的驗(yàn)證與黃羽雞姿態(tài)特性的分析,為家禽行為研究提供參考依據(jù)。通過(guò)試驗(yàn)驗(yàn)證本文提出的姿態(tài)關(guān)鍵幀識(shí)別模型對(duì)于提升黃羽雞體質(zhì)量估測(cè)精度的有效性。
試驗(yàn)數(shù)據(jù)采集于浙江省湖州市,共采集4個(gè)批次,采集時(shí)間分別為2019年12月5—6日、2020年8月22—24日、2022年6月4日和2022年6月11日。將4個(gè)批次的數(shù)據(jù)分別標(biāo)記為D1、D2、D3和D4,具體數(shù)據(jù)集如表1所示。其中,D1為單只雞連續(xù)24 h視頻片段;D2為20只雞視頻片段,其中有18只雞平均采集1.5 h,采集時(shí)間為08:00—17:00,其余2只平均采集15 h,采集時(shí)間為17:00—08:00;D3和D4為同一批20只雞的2周次視頻片段,每只雞采集10 min,采集時(shí)間為08:00—12:00,采集視頻的同時(shí),利用電子秤獲得其實(shí)際體質(zhì)量,電子秤為大紅鷹無(wú)線款32 cm×42 cm,精度為0.05 kg。本文的試驗(yàn)對(duì)象為882黃雞,平養(yǎng)于4.50 m×2.50 m的空地區(qū)域,內(nèi)側(cè)配有料槽和飲水器,雞只可自由采食和飲水。當(dāng)采集數(shù)據(jù)時(shí),將待測(cè)雞只轉(zhuǎn)移至試驗(yàn)籠中,試驗(yàn)籠尺寸為1.45 m×0.97 m×1.30 m,光照時(shí)間段為08:00—17:00。
表1 試驗(yàn)數(shù)據(jù)集Tab.1 Datasets of experiment
如圖1所示,試驗(yàn)籠主要由攝像機(jī)、網(wǎng)線、硬盤錄像機(jī)、飲水器、腳墊、飼料槽和糞槽組成?;\子正上方架設(shè)了一臺(tái)??低曤p光譜攝像機(jī)(DS-2TD2636-10型),攝像機(jī)機(jī)芯距離腳墊的高度為1.45 m,攝像機(jī)通過(guò)網(wǎng)線連到硬盤錄像機(jī)(DS-8616N-I8型),以4 f/s的速度拍攝彩色視頻圖像,單次采集僅拍攝一只雞,圖像分辨率為1 920像素×1 080像素,并將采集到的視頻數(shù)據(jù)以avi格式存儲(chǔ)至硬盤錄像機(jī)中,之后導(dǎo)入本地計(jì)算機(jī)進(jìn)行視頻分析,為了方便后續(xù)處理,所有視頻都將解碼為jpg格式的圖像。
圖1 視頻采集示意圖Fig.1 Sketch of video acquisition1.攝像機(jī) 2.網(wǎng)線 3.硬盤錄像機(jī) 4.籠子 5.腳墊 6.糞槽 7.飲水器 8.飼料槽 9.雞只
按照家禽的行為特征,可將黃羽雞姿態(tài)分為站立、低頭、展翅、梳理羽毛和坐姿。其中,坐姿的定義包含了腹臥情況。此外,當(dāng)雞只被遮擋時(shí)也無(wú)法進(jìn)行體尺參數(shù)提取,故將遮擋情況也加入數(shù)據(jù)集進(jìn)行識(shí)別,共6種姿態(tài)情況,表2為每種姿態(tài)情況定義的詳細(xì)說(shuō)明。本文提出只有當(dāng)雞只處于站立姿態(tài)時(shí),當(dāng)前幀才被認(rèn)為是姿態(tài)關(guān)鍵幀,方可進(jìn)行后續(xù)的體尺參數(shù)提取與體質(zhì)量估測(cè)研究。
D1、D2兩批次采集的視頻文件共68個(gè),單個(gè)文件時(shí)長(zhǎng)為80 min左右。將所有視頻解碼為圖像后,從D2批次中挑選4 295幅圖像作為數(shù)據(jù)集,覆蓋每一只雞。最終得到站立、低頭、展翅、梳理羽毛、坐姿和遮擋情況的姿態(tài)圖像數(shù)量分別為1 017、968、74、802、507、927幅,圖像分辨率均為1 920像素×1 080像素。將所有圖像人工標(biāo)注姿態(tài)類別,每個(gè)類別按照7∶2∶1的比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,訓(xùn)練集總計(jì)3 002幅,驗(yàn)證集861幅,測(cè)試集432幅。數(shù)據(jù)集中各個(gè)姿態(tài)類別的數(shù)量如表3所示,觀察表3可知,數(shù)據(jù)集中6種姿態(tài)類別數(shù)量相差較大,會(huì)帶來(lái)數(shù)據(jù)分布不均衡問(wèn)題。此外,D1批次視頻數(shù)據(jù)也作為測(cè)試集以分析雞姿態(tài)分布特性,視頻采樣間隔為1 min/幅,共得到1 935幅圖像。D3和D4批次視頻數(shù)據(jù)作為4.5節(jié)中不同姿態(tài)下體質(zhì)量估測(cè)結(jié)果分析的數(shù)據(jù)集,分別從D3和D4批次視頻數(shù)據(jù)中截取3 min進(jìn)行采樣,采樣間隔為1 s/幅,共得到7 200 幅圖像,用于后續(xù)體質(zhì)量估測(cè)研究。
表2 黃羽雞姿態(tài)情況定義Tab.2 Definition of yellow-feathered chicken posture conditions
建立SE-ResNet18+fLoss模型,將SE模塊[26]與ResNet18[27]進(jìn)行融合,并改進(jìn)損失函數(shù),通過(guò)Focal Loss[28]監(jiān)督信號(hào)來(lái)解決樣本不平衡問(wèn)題,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。SE模塊的核心思想是通過(guò)網(wǎng)絡(luò)根據(jù)損失函數(shù)去學(xué)習(xí)特征權(quán)重,使得有效的特征圖權(quán)重大,而無(wú)效或效果不顯著的特征圖權(quán)重小,篩選出針對(duì)通道的注意力,通過(guò)引入SE模塊,模型能夠從網(wǎng)絡(luò)特征通道層面進(jìn)一步提升網(wǎng)絡(luò)性能。
表3 數(shù)據(jù)集中各個(gè)姿態(tài)類別圖像數(shù)量
圖2 SE-ResNet18+fLoss網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Network architecture of SE-ResNet18+fLoss
在連續(xù)的雞只視頻數(shù)據(jù)中,6類姿態(tài)的數(shù)量分布差異較大,尤其是展翅姿態(tài),數(shù)量較少。針對(duì)樣本類別不平衡問(wèn)題,本文通過(guò)Focal Loss損失函數(shù)減少易分類樣本的權(quán)重,使得模型在訓(xùn)練時(shí)更專注于難分類的樣本。Focal Loss損失是基于標(biāo)準(zhǔn)交叉熵?fù)p失的基礎(chǔ)上修改得到的,對(duì)于二分類問(wèn)題,交叉熵?fù)p失函數(shù)可以表示為
CE(pt)=-lnpt
(1)
(2)
式中pt——預(yù)測(cè)為真實(shí)類別的概率
CE——交叉熵?fù)p失函數(shù)
p——模型對(duì)于類別y=1所得到的預(yù)測(cè)概率
為了解決類不平衡問(wèn)題,F(xiàn)ocal Loss首先添加權(quán)重因子αt,其次,在交叉熵前添加權(quán)重因子(1-pt)γ,以減少置信度很高的樣本損失在總損失中的比重,最終得到Focal Loss為
LF(pt)=-αt(1-pt)γlnpt
(3)
式中αt——權(quán)重因子,用于抑制正負(fù)樣本的數(shù)量失衡,αt∈[0,1]
LF——Focal Loss損失函數(shù)
γ——調(diào)制因子,用于增加難分樣本的損失比例,γ≥0
由于本文的模型為圖像分類網(wǎng)絡(luò),無(wú)法像目標(biāo)檢測(cè)網(wǎng)絡(luò)那樣給出目標(biāo)邊界框,為了對(duì)姿態(tài)識(shí)別結(jié)果進(jìn)行可視化解釋,采用Grad-CAM來(lái)解釋網(wǎng)絡(luò)進(jìn)行分類時(shí)重點(diǎn)關(guān)注的區(qū)域。Grad-CAM相比于CAM更具一般性,其利用網(wǎng)絡(luò)反向傳播的梯度計(jì)算出特征圖每一個(gè)通道的權(quán)重從而得到熱力圖,因此Grad-CAM可以直接用于各種卷積神經(jīng)網(wǎng)絡(luò),無(wú)需重新訓(xùn)練網(wǎng)絡(luò)。
(4)
式中Z——特征圖的像素個(gè)數(shù)
yc——網(wǎng)絡(luò)針對(duì)類別c預(yù)測(cè)的得分,這里沒(méi)有經(jīng)過(guò)softmax激活
(5)
式中Ak——特征層A的第k通道
模型訓(xùn)練平臺(tái)為超威服務(wù)器,CPU為Intel(R) Xeon(R) Gold 6147M 2.50 GHz,GPU為 NVIDIA TITAN RTX,內(nèi)存256 GB,操作系統(tǒng)為Ubuntu 18.04.1,深度學(xué)習(xí)框架為Pytorch,CUDA 版本為10.0。
采用精確率(Precision,P)、召回率(Recall,R)、F1值和識(shí)別速度4個(gè)指標(biāo)來(lái)評(píng)價(jià)模型的識(shí)別性能。精確率表示正確預(yù)測(cè)為正樣本占全部預(yù)測(cè)為正樣本的比例,召回率表示正確預(yù)測(cè)為正樣本占全部實(shí)際為正樣本的比例,F(xiàn)1值為精確率和召回率的調(diào)和平均值,識(shí)別速度為每秒內(nèi)處理的圖像幀數(shù)??紤]到每個(gè)類別樣本數(shù)量不均衡,最終模型的總體評(píng)價(jià)指標(biāo)均采用加權(quán)平均值(weighted avg)。
為了驗(yàn)證本文提出的姿態(tài)關(guān)鍵幀對(duì)于提升黃羽雞體質(zhì)量估測(cè)精度的有效性,進(jìn)一步設(shè)計(jì)了稱量試驗(yàn),對(duì)D3和D4批次視頻數(shù)據(jù)采樣得到的數(shù)據(jù)集進(jìn)行分析,比較不同姿態(tài)下黃羽雞體質(zhì)量估測(cè)的精度。
首先采用Unet網(wǎng)絡(luò)[29]對(duì)D3和D4批次視頻數(shù)據(jù)采樣得到的7 200幅數(shù)據(jù)進(jìn)行分割,Unet模型采用D1和D2兩批次數(shù)據(jù)中采樣得到的1 000幅圖像按照7∶2∶1的比例劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集進(jìn)行訓(xùn)練得到,對(duì)原始雞只彩色圖進(jìn)行分割后的圖像如圖3b所示。接著對(duì)分割后的圖像進(jìn)行一維和二維特征提取,用于后續(xù)黃羽雞體質(zhì)量估測(cè)模型的建立。參照文獻(xiàn)[6-9],本文提取的一維特征包括周齡O,二維特征包括投影面積A、周長(zhǎng)P、寬度D、長(zhǎng)度L、最大內(nèi)切圓半徑R和偏心率E,二維特征提取的示意圖如圖3c所示。其中,投影面積A為分割前景的像素面積,周長(zhǎng)P為分割前景的輪廓像素?cái)?shù),寬度D和長(zhǎng)度L分別為分割前景的最小外接矩形的寬度和長(zhǎng)度,最大內(nèi)切圓半徑R為分割前景的最大內(nèi)切圓半徑,偏心率E為橢圓擬合分割前景的偏心率。
圖3 圖像分割與二維特征提取示意圖Fig.3 Schematics of image segmentation and two-dimensional feature extraction
體質(zhì)量估測(cè)模型采用隨機(jī)森林(Random forest,RF)[30]算法進(jìn)行建立,RF是一種集成學(xué)習(xí)方法,在以決策樹(shù)為基學(xué)習(xí)器構(gòu)建Bagging集成的基礎(chǔ)上,進(jìn)一步引入了隨機(jī)屬性選擇,算法簡(jiǎn)單、高效且計(jì)算開(kāi)銷小。RF回歸算法的具體步驟為:①?gòu)脑紨?shù)據(jù)集中隨機(jī)有放回地抽取n個(gè)訓(xùn)練樣本,重復(fù)T次。②對(duì)于T個(gè)子數(shù)據(jù)集,分別訓(xùn)練一個(gè)CART回歸樹(shù)模型。在訓(xùn)練過(guò)程中,每個(gè)結(jié)點(diǎn)的劃分規(guī)則是先隨機(jī)從所有特征中選取k個(gè)特征,再?gòu)膋個(gè)特征中選擇最優(yōu)屬性用于劃分。③將生成的T棵決策樹(shù)組成隨機(jī)森林,隨機(jī)森林最終的預(yù)測(cè)結(jié)果為所有T棵CART回歸樹(shù)預(yù)測(cè)結(jié)果的均值。
將3.1節(jié)得到的特征參數(shù)(周齡O、投影面積A、周長(zhǎng)P、寬度D、長(zhǎng)度L、最大內(nèi)切圓半徑R和偏心率E)作為輸入,實(shí)際體質(zhì)量作為真實(shí)標(biāo)簽,建立基于隨機(jī)森林的黃羽雞體質(zhì)量估測(cè)模型。數(shù)據(jù)集按照7∶3的比例劃分訓(xùn)練集和測(cè)試集,并采用均方根誤差(RMSE)以及相對(duì)誤差(MRE)對(duì)測(cè)試集中不同姿態(tài)下體質(zhì)量估測(cè)的效果進(jìn)行評(píng)價(jià)。
本文采用小批量的隨機(jī)梯度下降法,對(duì)SE-ResNet18+fLoss模型進(jìn)行訓(xùn)練。訓(xùn)練過(guò)程中,迭代次數(shù)(Epochs)設(shè)置為200次,最小批處理大小(MiniBatch size)為16。學(xué)習(xí)率初始化為0.01,并采用學(xué)習(xí)率衰減訓(xùn)練策略調(diào)整學(xué)習(xí)率,學(xué)習(xí)率調(diào)整如表4所示。
為了解決數(shù)據(jù)分布不平衡的問(wèn)題,使用Focal Loss損失函數(shù)提升分類精度,訓(xùn)練過(guò)程中SE-ResNet18+fLoss模型的損失函數(shù)曲線和驗(yàn)證集準(zhǔn)確率曲線如圖4所示。由圖4可以看出,訓(xùn)練集的損失函數(shù)隨迭代次數(shù)的增加而下降,而準(zhǔn)確率隨迭代次數(shù)的增加而逐漸增加,當(dāng)?shù)螖?shù)達(dá)到100次左右時(shí),模型基本收斂,訓(xùn)練損失函數(shù)曲線和準(zhǔn)確率曲線都趨于平穩(wěn)。
表4 學(xué)習(xí)率調(diào)整策略Tab.4 Learning rate adjustment strategy
圖4 模型訓(xùn)練損失函數(shù)曲線和驗(yàn)證集上準(zhǔn)確率曲線Fig.4 Model training loss function curve and accuracy curve
Focal Loss損失函數(shù)最重要的兩個(gè)參數(shù)是調(diào)制因子γ和權(quán)重因子αt,本文對(duì)于調(diào)制因子γ和權(quán)重因子αt的選取進(jìn)行討論。圖5a為調(diào)制因子γ分別取0、0.5、1.0、2.0、5.0時(shí)模型的訓(xùn)練損失函數(shù)曲線,圖5b為不同調(diào)制因子對(duì)應(yīng)測(cè)試集F1值,當(dāng)γ=0時(shí),F(xiàn)ocal Loss等于標(biāo)準(zhǔn)交叉熵函數(shù),可以發(fā)現(xiàn)隨著γ的增大,損失曲線收斂更快,且越趨近于0,通過(guò)圖5b發(fā)現(xiàn),當(dāng)γ=2.0時(shí),F(xiàn)1值最高,故模型取γ=2.0。圖5c為不同權(quán)重因子αt對(duì)應(yīng)在測(cè)試集上測(cè)試得到的F1值,固定調(diào)制因子γ=2.0,對(duì)于站立、低頭、梳理羽毛、展翅、坐姿和遮擋情況6種類別的權(quán)重比例分別設(shè)置為:α1為1∶1∶1∶1∶1∶1,α2為1∶1∶1∶2∶1∶1,α3為1∶1∶1∶5∶2∶1,α4為1∶1∶1∶10∶2∶1,α5為1∶1∶1∶15∶3∶1,α6為1∶1∶1∶20∶4∶1,由于展翅和坐姿姿態(tài)的圖像數(shù)量明顯較少,本文將展翅和坐姿兩種姿態(tài)的權(quán)重進(jìn)行了增大,當(dāng)權(quán)重因子為α1時(shí),表示未對(duì)正負(fù)樣本的數(shù)量進(jìn)行平衡。從圖5c中可以發(fā)現(xiàn),當(dāng)各姿態(tài)類別的權(quán)重因子比例設(shè)置為α4,即根據(jù)樣本的分布進(jìn)行設(shè)置時(shí),F(xiàn)1值最高,將比值歸一化到[0,1],可得αt=(0.062 5, 0.062 5, 0.062 5, 0.625, 0.125, 0.062 5)時(shí)模型最優(yōu)。此外,還可發(fā)現(xiàn)相比于α1,其他權(quán)重因子對(duì)應(yīng)在測(cè)試集上的F1值都有顯著提高,說(shuō)明Focal Loss損失函數(shù)對(duì)模型分類效果有明顯提升。
圖5 不同調(diào)制因子γ和權(quán)重因子αt的模型性能Fig.5 Model performance with different modulation factors γ and weighting factors αt
圖6為SE-ResNet18+fLoss模型在432幅測(cè)試集圖像上測(cè)試結(jié)果的混淆矩陣,表5為各姿態(tài)情況分類的精確率、召回率及F1值。結(jié)果表明模型對(duì)于站立、低頭、展翅、梳理羽毛、坐姿和遮擋情況6種類別識(shí)別的F1值分別為94.34%、91.98%、76.92%、93.75%、100%和93.68%,6類姿態(tài)的加權(quán)平均F1值達(dá)到93.90%,具有較高的識(shí)別精度和較強(qiáng)的魯棒性,模型對(duì)于夜間昏暗光線場(chǎng)景下的雞只姿態(tài)也能進(jìn)行很好的識(shí)別。進(jìn)一步發(fā)現(xiàn),模型對(duì)于坐姿的識(shí)別效果最好,主要是由于雞只坐姿通常發(fā)生在晚上,光照與白天有明顯不同,而對(duì)于展翅姿態(tài)的識(shí)別性能有待提高,這可能與展翅數(shù)據(jù)本身數(shù)量較少且展翅幅度不定有關(guān)。
圖6 SE-ResNet18+fLoss模型對(duì)雞只姿態(tài)情況 分類的混淆矩陣Fig.6 Confusion matrix of chicken classification based on SE-ResNet18+fLoss model
表5 SE-ResNet+fLoss模型對(duì)雞只不同姿態(tài)分類結(jié)果Tab.5 Classification results of SE-ResNet+fLoss model for different postures of chickens %
由于本文最終旨在識(shí)別出姿態(tài)關(guān)鍵幀(站立姿態(tài))用于后續(xù)體質(zhì)量估測(cè),故將非站立姿態(tài)看作一類,可得到表6所示模型對(duì)于姿態(tài)關(guān)鍵幀的識(shí)別性能,可以看出若僅識(shí)別是否為姿態(tài)關(guān)鍵幀,模型的識(shí)別精度為97.38%、召回率為97.22%、F1值為97.26%,識(shí)別效果較優(yōu)。
表6 SE-ResNet+fLoss模型對(duì)于雞只姿態(tài)關(guān)鍵幀 的識(shí)別結(jié)果Tab.6 Detection results of SE-ResNet+fLoss model for the posture key frame of chicken %
為了更好地解釋本文提出的SE-ResNet+fLoss模型,對(duì)模型的最后一層卷積層的特征圖利用Grad-CAM進(jìn)行可視化,獲得6種姿態(tài)的類激活圖如圖7所示,每一類姿態(tài)包括第1行的原始RGB圖像和第2行的Grad-CAM可視化效果。通過(guò)可視化結(jié)果可以看出,不同姿態(tài)下模型的類激活圖存在差異,反映了每一類所關(guān)注的重點(diǎn)區(qū)域不一致。其中,站立姿態(tài)重點(diǎn)關(guān)注于雞頭部位,而低頭姿態(tài)關(guān)注于雞的尾部和頸部,梳理羽毛姿態(tài)更關(guān)注于扭頭時(shí)雞的頭部與身體部分,展翅姿態(tài)關(guān)注于身體翅膀展開(kāi)部分,坐姿重點(diǎn)關(guān)注于雞坐立時(shí)突出的側(cè)面部分,遮擋情況則更關(guān)注于雞在視場(chǎng)內(nèi)的身體部分,此部分通常處于圖像的邊緣。
圖7 黃羽雞不同姿態(tài)下分類的類激活圖Fig.7 Class activation maps for classification of yellow-feathered chickens in different postures
通過(guò)Grad-CAM可以很好地解釋本文方法分類的依據(jù),即使不采用目標(biāo)檢測(cè)網(wǎng)絡(luò),模型亦能準(zhǔn)確定位雞的位置,尤其是正常姿態(tài)下,如圖8所示,Guided Grad-CAM表現(xiàn)了細(xì)粒度的重要性,可以看出類激活圖更關(guān)注于雞頭部位,這也為弱監(jiān)督的目標(biāo)檢測(cè)提供了參考。
圖8 站立姿態(tài)下雞只姿態(tài)識(shí)別的類激活圖Fig.8 Class activation maps for posture detection of chicken in ‘stand’ pose
本文將SE-ResNet18+fLoss與ResNet18、MobileNet V2、SE-ResNet18進(jìn)行了姿態(tài)識(shí)別對(duì)比試驗(yàn)。其中,MobileNet V2[31]是2018年Google團(tuán)隊(duì)提出的輕量級(jí)網(wǎng)絡(luò)。不同模型均采用相同的試驗(yàn)訓(xùn)練參數(shù),并在相同測(cè)試集上驗(yàn)證模型的性能,識(shí)別速度是在批處理大小為16的情況下進(jìn)行推理得到的,試驗(yàn)結(jié)果如表7所示。從表7可以看出,SE-ResNet+Focal Loss在基礎(chǔ)網(wǎng)絡(luò)中加入了注意力機(jī)制SE模塊和Focal Loss,模型在精確率、召回率和F1值方面相比其他網(wǎng)絡(luò)均最優(yōu),在識(shí)別速度方面ResNet18模型最優(yōu),但SE-ResNet+fLoss的識(shí)別速度與其相差不大。從結(jié)果可以看出本文改進(jìn)的SE-ResNet能較為理想地兼顧識(shí)別性能與識(shí)別速度。
為了進(jìn)一步說(shuō)明不同方法姿態(tài)識(shí)別的結(jié)果,本文可視化ResNet18、MobileNet V2、SE-ResNet18和SE-ResNet18+fLoss在2 h的視頻段上的測(cè)試結(jié)果,如圖9所示,視頻采樣間隔為1 min/幅。從圖9可以看出,ResNet18和MobileNet V2有較多圖像將其他姿態(tài)誤判為站立姿態(tài),這對(duì)于本文進(jìn)行姿態(tài)關(guān)鍵幀識(shí)別是不利的,因?yàn)檫@種誤判將直接導(dǎo)致后續(xù)體質(zhì)量預(yù)測(cè)的誤差較大。與其他3種方法相比,SE-ResNet18+fLoss對(duì)于姿態(tài)的識(shí)別更加準(zhǔn)確,能夠較為全面地覆蓋姿態(tài)轉(zhuǎn)換發(fā)生的時(shí)間區(qū)間。
表7 不同方法結(jié)果比較Tab.7 Comparison of results using different methods
圖9 不同方法部分測(cè)試結(jié)果可視化Fig.9 Visualization of some test results of different methods
圖10為SE-ResNet18+fLoss在連續(xù)24 h視頻段上(2019年12月5日08:00—2019年12月6日08:00)的姿態(tài)自動(dòng)識(shí)別結(jié)果。從圖10可以看出,黃羽雞白天多為站立姿態(tài),而夜間多為坐姿,白天姿態(tài)轉(zhuǎn)換頻率顯著高于夜間姿態(tài)轉(zhuǎn)換頻率。此外,2019年12月5日08:00—16:00期間光照較為明亮,有利于提取雞只的顏色和紋理特征,通過(guò)統(tǒng)計(jì)SE-ResNet18+fLoss在2019年12月5日08:00—16:00視頻段上的姿態(tài)占比結(jié)果(圖11),發(fā)現(xiàn)白天視頻段中有超過(guò)40%的時(shí)間雞只處于站立姿態(tài),這意味著有相當(dāng)一部分視頻數(shù)據(jù)是姿態(tài)關(guān)鍵幀,可以用于體質(zhì)量預(yù)測(cè)。
圖10 SE-ResNet18+fLoss在連續(xù)24 h視頻段上的 姿態(tài)自動(dòng)識(shí)別結(jié)果Fig.10 Automatic recognition result of posture on 24 h continuous video by SE-ResNet18+fLoss model
圖11 SE-ResNet18+fLoss在2019年12月5日08:00— 16:00時(shí)間段的姿態(tài)占比統(tǒng)計(jì)結(jié)果Fig.11 Share statistics results of posture at December 5, 2019, 08:00—16:00 by SE-ResNet18+fLoss model
表8為不同姿態(tài)下黃羽雞的體質(zhì)量估測(cè)結(jié)果,可以發(fā)現(xiàn)當(dāng)使用全部數(shù)據(jù)集時(shí),均方根誤差為0.128 kg,平均相對(duì)誤差為7.481%,而經(jīng)過(guò)SE-ResNet18+fLoss模型對(duì)黃羽雞姿態(tài)關(guān)鍵幀(站立姿態(tài))進(jìn)行篩選后,均方根誤差和平均相對(duì)誤差均有明顯降低,均方根誤差為0.059 kg,平均相對(duì)誤差為3.725%,且站立姿態(tài)相比于其他姿態(tài)的體質(zhì)量估測(cè)精度更高,這也證明了SE-ResNet18+fLoss模型對(duì)于雞只姿態(tài)關(guān)鍵幀識(shí)別的有效性,能夠最終提高體質(zhì)量估測(cè)的精度。由于本文僅提取一維特征和二維特征進(jìn)行體質(zhì)量估測(cè)模型的建立,若在此基礎(chǔ)上,融合三維特征,將會(huì)進(jìn)一步提高雞只體質(zhì)量估測(cè)的精度。
表8 不同姿態(tài)下黃羽雞體質(zhì)量估測(cè)結(jié)果比較Tab.8 Comparison of yellow-feathered chicken weight estimation results in different postures
本研究提出一種用于平養(yǎng)黃羽雞體質(zhì)量估測(cè)的姿態(tài)關(guān)鍵幀識(shí)別模型SE-ResNet18+fLoss,模型融合了注意力機(jī)制SE模塊和殘差結(jié)構(gòu),并改進(jìn)了損失函數(shù),通過(guò)Focal Loss監(jiān)督信號(hào)來(lái)解決樣本不平衡問(wèn)題,同時(shí)引入梯度加權(quán)類激活圖對(duì)末端分類規(guī)則的合理性進(jìn)行解釋。模型在測(cè)試集上對(duì)于黃羽雞的站立、低頭、展翅、梳理羽毛、坐姿和遮擋6類姿態(tài)情況識(shí)別的F1值分別為94.34%、91.98%、76.92%、93.75%、100%和93.68%;若僅識(shí)別是否為雞只姿態(tài)關(guān)鍵幀,識(shí)別精確率為97.38%、召回率為97.22%、F1值為97.26%、識(shí)別速度為19.84 f/s,其識(shí)別精確率、召回率和F1值均優(yōu)于ResNet18、MobileNet V2和SE-ResNet18網(wǎng)絡(luò)。結(jié)果發(fā)現(xiàn)通過(guò)Grad-CAM可以很好地解釋本文方法分類的依據(jù),反映了每一類所關(guān)注的重點(diǎn)區(qū)域,其中,站立姿態(tài)重點(diǎn)關(guān)注于雞頭部位。其次,在連續(xù)視頻上進(jìn)行了模型的驗(yàn)證與雞姿態(tài)特性的分析,發(fā)現(xiàn)白天有較多時(shí)刻黃羽雞被識(shí)別為姿態(tài)關(guān)鍵幀,可用于后續(xù)體質(zhì)量估測(cè)分析。進(jìn)一步通過(guò)試驗(yàn)驗(yàn)證了SE-ResNet18+fLoss模型對(duì)于黃羽雞姿態(tài)關(guān)鍵幀識(shí)別的有效性,能夠提高體質(zhì)量估測(cè)的精度。
農(nóng)業(yè)機(jī)械學(xué)報(bào)2022年12期