郭陽陽 洪文浩 丁 屹 黃小平
(1.安徽大學(xué)互聯(lián)網(wǎng)學(xué)院, 合肥 230039;2.農(nóng)業(yè)生態(tài)大數(shù)據(jù)分析與應(yīng)用技術(shù)國家地方聯(lián)合工程研究中心, 合肥 230039)
隨著居民生活水平的不斷提高和消費(fèi)主體的不斷轉(zhuǎn)變,羊肉的需求也日益增加,但當(dāng)下肉羊養(yǎng)殖方式較為傳統(tǒng),產(chǎn)業(yè)化進(jìn)程較緩慢[1]?,F(xiàn)代化農(nóng)業(yè)的發(fā)展,促進(jìn)了畜牧業(yè)向規(guī)?;?、智能化、現(xiàn)代化方向發(fā)展,而信息化是重要標(biāo)志[2],其中動物的目標(biāo)區(qū)域精準(zhǔn)檢測對牧場信息化具有重要意義[3-4]。在目標(biāo)檢測基礎(chǔ)上可進(jìn)一步挖掘動物的深層次信息(體況、行為、疾病等),對實(shí)現(xiàn)動物生長信息和健康狀況監(jiān)測提供了數(shù)據(jù)支撐。
傳統(tǒng)的動物檢測方法常通過電子耳標(biāo)、項(xiàng)圈等集成傳感器設(shè)備給定動物標(biāo)號來實(shí)現(xiàn)動物個體檢測與識別。但隨著時間延長,傳感器設(shè)備會出現(xiàn)脫落、標(biāo)簽?zāi):痊F(xiàn)象,從而造成目標(biāo)信息丟失、誤檢測等情況[5],此外,長時間的佩戴會導(dǎo)致牲畜感染或患上某些疾病,影響動物福利[6-7]。而計(jì)算機(jī)視覺作為一種非接觸式無創(chuàng)傷的目標(biāo)檢測方法在智慧畜牧業(yè)中得到廣泛應(yīng)用。計(jì)算機(jī)視覺技術(shù)主要從圖像或視頻中提取生物視覺相關(guān)特征(例如,形狀、顏色、紋理等),在此基礎(chǔ)上通過機(jī)器學(xué)習(xí)等算法實(shí)現(xiàn)動物區(qū)域檢測,但檢測效果依賴于相關(guān)特征提取的是否充分[8-10]。
深度學(xué)習(xí)技術(shù)的發(fā)展,使其特征的提取能力提高,有效解決外界因素帶來的干擾,滿足現(xiàn)代化畜牧業(yè)的需求[11-12]。目前,深度學(xué)習(xí)技術(shù)已被應(yīng)用到動物目標(biāo)檢測中,其中基于面部特征的目標(biāo)檢測是熱門研究點(diǎn)之一[13-14]。秦興等[15]在雙線性卷積神經(jīng)網(wǎng)絡(luò)(Bilinear-CNN)的基礎(chǔ)上提出了一種非侵入式的豬面部檢測識別模型,豬面部檢測識別準(zhǔn)確率達(dá)到了95.73%。XU等[16]提出了一種孿生密集膠囊網(wǎng)絡(luò)(Siamese DB capsule network,SDBCN)對牛臉圖像進(jìn)行了檢測,檢測準(zhǔn)確率達(dá)到93%。張宏鳴等[17]將通道注意力算法(Efficient channel coalesce spatial information attention,ECCSA)融入到MobileFaceNet的深度卷積層和殘差層中,并采用余弦退火進(jìn)行動態(tài)學(xué)習(xí)率調(diào)優(yōu),構(gòu)建了羊臉檢測識別模型(ECCSA-MFC)。試驗(yàn)結(jié)果表明,該方法在人工篩選的數(shù)據(jù)集中準(zhǔn)確率達(dá)到96.73%。SONG等[18]提出了一種基于YOLO v3模型修剪的羊臉檢測方法(YOLO v3-P)。通過使用羊臉數(shù)據(jù)集對YOLO v3中的錨幀進(jìn)行聚類,mAP從95.3%增加到96.4%,模型尺寸也縮小到原始模型尺寸的1/4。上述研究表明,高質(zhì)量面部數(shù)據(jù)集對面部檢測識別模型的性能提升有至關(guān)重要的作用,但并沒有提升模型在更加復(fù)雜多變的現(xiàn)實(shí)環(huán)境中的檢測性能。此外,羊只通常遍體純色,羊頭靈活,給臉部檢測識別增加了一定難度;羊養(yǎng)殖環(huán)境較為復(fù)雜,遮擋、重疊、光線干擾等會造成漏檢、誤檢問題的發(fā)生,在保證所構(gòu)建模型檢測準(zhǔn)確率的前提下,也應(yīng)滿足牧場實(shí)時性的需求。
本文以黃淮山羊?yàn)檠芯繉ο?構(gòu)建具有多樣性的數(shù)據(jù)集(包含舍內(nèi)、舍外、單頭以及多頭的山羊圖像)?;赮OLO v5s檢測模型,提出一種引入坐標(biāo)注意機(jī)制的山羊面部檢測識別方法。即在YOLO v5s模型的主干網(wǎng)絡(luò)中引入坐標(biāo)注意力機(jī)制,以充分利用山羊臉部的位置信息,從而提高遮擋、小目標(biāo)、多視角樣本的識別準(zhǔn)確率和快速性,改善整體模型的性能。為進(jìn)一步驗(yàn)證本研究方法的魯棒性和應(yīng)用性,構(gòu)建模擬相機(jī)抖動和不同光照(白天、夜間)下的數(shù)據(jù)集,并對模型進(jìn)行測試。
山羊圖像采集于安徽省合肥博大牧業(yè)科技開發(fā)有限公司。在實(shí)際飼養(yǎng)環(huán)境下,通過手機(jī)拍攝并獲取自然狀態(tài)下的黃淮山羊圖像。每幅圖像中包含1~20只山羊不等。圖像格式為jpg格式。數(shù)據(jù)集中包含不同角度、不同場景(舍內(nèi)、舍外)、遮擋、單頭以及多頭等純白色山羊,以充分模擬羊場的復(fù)雜性。采集的部分山羊圖像如圖1所示。
圖1 采集的山羊圖像
為了檢測本研究采用模型的泛化性,從拍攝的圖像中選取400幅作為樣本數(shù)據(jù)集,其中存在遮擋且多頭羊只的樣本量約為300。數(shù)據(jù)集按4∶1分配為訓(xùn)練集與測試集。使用Labelme圖像標(biāo)注工具對羊臉進(jìn)行標(biāo)記,并將得到的json文件轉(zhuǎn)化為txt形式,制作YOLO v5s模型所需格式數(shù)據(jù)集。YOLO v5s的作者在其源代碼中添加了大量的數(shù)據(jù)增強(qiáng)策略,本研究基于Mosaic數(shù)據(jù)增強(qiáng)方式[19],選擇圖像色度、飽和度、亮度隨機(jī)調(diào)整,以及圖像翻轉(zhuǎn)、錯切、縮放、平移等數(shù)據(jù)增強(qiáng)方法,并將由4幅隨機(jī)圖像按照一定的概率轉(zhuǎn)換成單幅圖像作為每次的輸入圖像,從而擴(kuò)大數(shù)據(jù)的多樣性。最終樣本數(shù)據(jù)集擴(kuò)充為4 000幅。從圖2中可知,與單幅圖像的增強(qiáng)變換結(jié)果相比(圖2c~2i),Mosaic圖像增強(qiáng)(圖2b)不僅擴(kuò)充了樣本數(shù)量,也進(jìn)一步豐富了多場景多尺度信息。
圖2 增強(qiáng)圖像示例
YOLO v5屬于輕量級模型,運(yùn)行速度快,可滿足牧場實(shí)時準(zhǔn)確的需求,且模型內(nèi)存占用量小,保證了該模型可移植到移動設(shè)備中,應(yīng)用更加便攜靈活。YOLO v5具有YOLO v5s、YOLO v5m、YOLO v5l、YOLO v5x共4個模型,網(wǎng)絡(luò)寬度和深度依次增大。本研究選擇YOLO v5s作為基礎(chǔ)模型。
YOLO v5s網(wǎng)絡(luò)架構(gòu)由Input、Backbone、Neck、Output 組成,各部分具體組成如下。
Input:采用 Mosaic數(shù)據(jù)增強(qiáng)方式[19],對圖像進(jìn)行縮放、翻轉(zhuǎn)、馬賽克、色彩變化等操作,并自動計(jì)算數(shù)據(jù)集的最佳錨框值。
Backbone:由CSPNet[20]模塊和SPPF[21]模塊組成。CSPNet將基礎(chǔ)層的特征映射成兩部分,并通過局部跨層結(jié)構(gòu)融合,獲取不同層更豐富的特征圖。SPPF模塊進(jìn)行最大池化操作并進(jìn)行張量拼接。
Neck:由PANet[22]模塊組成。PANet自頂向下將高層特征圖中的語義信息與不同層CSP模塊的輸出特征進(jìn)行有效聚合,再采用自底向上路徑聚合結(jié)構(gòu)聚合淺層特征。
Output:采用GIOU_Loss[23]為損失函數(shù),增加了相交尺度的衡量,采用非最大抑制算法去除損失函數(shù)中貢獻(xiàn)值較小的預(yù)測結(jié)果,生成邊界框和預(yù)測類別。
針對實(shí)際飼養(yǎng)環(huán)境下羊只多角度、多尺度等特點(diǎn),且為了進(jìn)一步在山羊圖像中精確地檢測出臉部區(qū)域,本研究在YOLO v5s的基礎(chǔ)上引入坐標(biāo)注意力機(jī)制(Coordinate attention,CA),即YOLO v5s-CA模型,使模型關(guān)注于目標(biāo)區(qū)域位置信息,以提高對遮擋和小目標(biāo)區(qū)域的檢測精度。改進(jìn)后的山羊臉部檢測網(wǎng)絡(luò)結(jié)構(gòu)圖如圖3所示,在主干網(wǎng)絡(luò)每個C3模塊后加入坐標(biāo)注意力機(jī)制模塊。
圖3 改進(jìn)的YOLO v5s結(jié)構(gòu)
注意力機(jī)制作為提升卷積神經(jīng)網(wǎng)絡(luò)模型性能的一種有效方法,得到了廣泛的應(yīng)用[24-26]。其中,坐標(biāo)注意力(Coordinate attention,CA)[27]是一種新的高效注意力機(jī)制,其結(jié)構(gòu)圖如圖4所示。其通過精確的位置信息對通道關(guān)系和長期依賴性進(jìn)行編碼,第1步將坐標(biāo)信息嵌入通道注意力中,對輸入X,采用尺寸(H,1)和(1,W)的池化核沿著水平坐標(biāo)方向和豎直坐標(biāo)方向?qū)γ總€通道進(jìn)行編碼,H、W分別為輸入特征的高度和寬度,因此,高度為h的第c個通道的輸出表達(dá)式為
圖4 坐標(biāo)注意力模塊結(jié)構(gòu)
(1)
xc(h,i)——第i行特征向量
同理,寬度為w的第c個通道的輸出表達(dá)式為
(2)
xc(j,w)——第j列特征向量
利用一維全局池化操作將2個空間方向進(jìn)行特征聚合,使得注意力模塊捕捉到沿著一個空間方向的相關(guān)關(guān)系,并保存沿著另一個空間方向的位置信息,這有助于網(wǎng)絡(luò)更準(zhǔn)確地獲取感興趣的目標(biāo)。第2步生成坐標(biāo)注意力,首先將兩個空間方向的輸出張量進(jìn)行拼接,使用1×1卷積進(jìn)行F1變換操作,表達(dá)式為
f=δ(F1([zh,zw]))
(3)
式中f——在水平方向和豎直方向上編碼空間信息的中間特征圖
δ——非線性激活函數(shù)
F1——1×1卷積變換
zh、zw——編碼輸出
然后將f切分為2個單獨(dú)的張量,再分別利用1×1卷積變換成X相同的通道數(shù),最后利用Sigmoid激活函數(shù)得到注意力權(quán)重矩陣為
gh=σ(Fh(fh))
(4)
gw=σ(Fw(fw))
(5)
式中fh、fw——f在水平方向和豎直方向的切分張量
Fh、Fw——1×1卷積變換
gh、gw——水平、豎直方向的注意力權(quán)重矩陣
σ——Sigmoid激活函數(shù)
最終輸出量yc(i,j)為
(6)
式中xc(i,j)——輸入特征圖
最后獲取的yc(i,j)增強(qiáng)了目標(biāo)位置信息的敏感度,通過自頂向下將改進(jìn)后獲取的各層yc(i,j)進(jìn)行聚合,采用非最大抑制算法去除貢獻(xiàn)值較小的預(yù)測結(jié)果,生成邊界框和預(yù)測類別,實(shí)現(xiàn)羊臉區(qū)域檢測。
本研究試驗(yàn)平臺配置:操作系統(tǒng)為Windows 10;CPU為Intel(R)Core(TM)i5-10200H 2.4 GHz;GPU為NVIDIA GeForce RTX 1650 Ti;CPU顯存為4 GB;內(nèi)存為16 GB;加速環(huán)境為CUDAv10.2;Pytorch 版本為1.9.1;Python 版本為3.9.0。
為了驗(yàn)證YOLO v5s-CA模型的檢測速率和輕量化,將YOLO v5s和YOLO v5s-CA主干網(wǎng)絡(luò)替換成輕量級網(wǎng)絡(luò)MobileNet v3,即構(gòu)建YOLO v5s-MobileNet v3和YOLO v5s-MobileNet v3-CA模型,并與YOLO v5-CA模型進(jìn)行對比分析。此外,為了驗(yàn)證本研究方法的整體性能,選擇Faster R-CNN、YOLO v4和YOLO v5s模型作為對比模型。
采用mAP0.5、mAP0.5:0.95、精確率、召回率、幀速率和內(nèi)存占用量作為模型評價指標(biāo),精確率(Precision,P)表示預(yù)測正樣本中為正樣本的比例,召回率(Recall,R)表示所有正樣本中預(yù)測正確的比例。mAP0.5表示交并比(IOU)為0.5時平均精度均值,mAP0.5:0.95表示IOU從0.5到0.95、間隔為0.05時平均精度均值。幀速率表示目標(biāo)網(wǎng)絡(luò)每秒可以檢測的圖像數(shù)。
在構(gòu)建的數(shù)據(jù)集基礎(chǔ)上,將YOLO v5s-CA與YOLO v5s、YOLO v5s-MobileNet v3和YOLO v5s-MobileNet v3-CA模型進(jìn)行對比研究。由表1可知,將主干網(wǎng)絡(luò)替換成輕量級網(wǎng)絡(luò)MobileNet v3后,模型內(nèi)存占用量明顯下降,檢測速率有所提升,但檢測精度低于原模型(YOLO v5s 94.3%,YOLO v5s-CA 95.6%)。YOLO v5s-CA的幀速率為69 f/s,模型內(nèi)存占用量為13.2 MB,可滿足輕量化實(shí)時性檢測的需求。此外,在YOLO v5s主干網(wǎng)絡(luò)融入坐標(biāo)注意力機(jī)制(CA)后,較YOLO v5s模型的準(zhǔn)確率提升1.3個百分點(diǎn),召回率下降1.1個百分點(diǎn),mAP0.5提升0.8個百分點(diǎn),幀速率下降8 f/s??梢?YOLO v5s-CA模型融合坐標(biāo)注意力機(jī)制犧牲了較小的幀速率但提升了檢測精度。
表1 輕量級網(wǎng)絡(luò)對比
以YOLO v5s為基礎(chǔ)網(wǎng)絡(luò)的模型采用Mosaic數(shù)據(jù)增強(qiáng)方式,圖像輸入尺寸為640像素×640像素,批量大小為8,最大迭代次數(shù)為300,使用隨機(jī)梯度下降(Stochastic gradient descent,SGD)作為優(yōu)化器,權(quán)重衰減為0.000 5,動量為0.937,初始學(xué)習(xí)率設(shè)置為0.01,訓(xùn)練過程中采用余弦退火算法進(jìn)行學(xué)習(xí)率更新。訓(xùn)練過程中各模型驗(yàn)證集損失值及mAP0.5變化如圖5所示。
圖5 訓(xùn)練過程中損失值和mAP0.5變化曲線
可以看出,YOLO v5s-CA與YOLO v5s基礎(chǔ)網(wǎng)絡(luò)收斂速度相近,且二者收斂速度明顯優(yōu)于將主干網(wǎng)絡(luò)替換成MobileNet v3的模型,在mAP0.5方面,YOLO v5s-CA最終超過了YOLO v5s,表現(xiàn)最優(yōu),約100個迭代周期后趨于平穩(wěn),而基于MobileNet v3模型的效果明顯不佳。綜上可知,輕量級網(wǎng)絡(luò)MobileNet v3對于模型性能提升效果不大,在幀速率略高的情況下,檢測精度反而降低,由此可見,YOLO v5s-CA的整體性能在檢測精度和檢測速度方面均取得了不錯的效果。
為了驗(yàn)證本文方法的有效性,與Faster R-CNN、YOLO v4和YOLO v5s模型在測試數(shù)據(jù)集上進(jìn)行了檢測對比分析,結(jié)果如表2所示。由表2可知,YOLO v5s-CA 與Faster R-CNN相比,其檢測精確率提高17.3個百分點(diǎn),召回率提高0.1個百分點(diǎn),mAP0.5提高5.4個百分點(diǎn),幀速率是Faster R-CNN的8.63倍;與YOLO v4相比,其檢測精確率提高27.5個百分點(diǎn),召回率提高10.7個百分點(diǎn),mAP0.5提高21.0個百分點(diǎn),幀速率是YOLO v4的2.03倍??梢钥闯?YOLO v5s-CA相比Faster R-CNN和YOLO v4,其檢測精確率及性能均更優(yōu),且在檢測速度上有明顯的提升。此外,YOLO v5s-CA和YOLO v5s均取得了較優(yōu)的檢測結(jié)果,本研究對YOLO v5s-CA和YOLO v5s的檢測性能結(jié)合檢測結(jié)果圖像進(jìn)一步對比分析,檢測結(jié)果如圖6所示。
表2 不同模型檢測結(jié)果
圖6 YOLO v5s和YOLO v5s-CA的檢測結(jié)果對比
從圖6中可以看出,YOLO v5s和YOLO v5s-CA模型在單只羊的臉部檢測效果均較好,沒有較大差異。而對于多只羊圖像中的羊臉檢測,由于圖像中存在頭部區(qū)域重疊和小目標(biāo),YOLO v5s模型會重復(fù)檢測或漏檢;YOLO v5s-CA融入坐標(biāo)注意力機(jī)制,更好地利用了坐標(biāo)信息從而更精確地獲取感興趣的特征,在檢測多目標(biāo)重疊或小目標(biāo)情況上效果有所提升。
為了適應(yīng)不同光照以及攝像機(jī)抖動帶來的檢測干擾,選擇100幅圖像分別進(jìn)行Gamma(γ=0.5~0.7;γ=1.5~3.5)亮度調(diào)整和采用PIL庫中的BLUP進(jìn)行模糊處理,構(gòu)建數(shù)據(jù)集來模擬不同光照和相機(jī)抖動的情況。在光照增強(qiáng)、光照減弱、模糊3種數(shù)據(jù)集上,對已構(gòu)建的YOLO v5s-CA模型進(jìn)行可行性分析,結(jié)果如表3所示。
表3 不同光照和模糊條件下的檢測結(jié)果
從表3中可以看出,在光照增強(qiáng)和減弱情況下,YOLO v5s-CA的檢測精度略高于YOLO v5s,但在模糊化中略低于YOLO v5s。模糊化后可能導(dǎo)致目標(biāo)區(qū)域邊界不明顯,從而獲取的位置信息略有偏差,但目前硬設(shè)備已較好地解決了抖動問題。圖7為不同情況下的檢測結(jié)果??梢钥闯?對于單只山羊,模型均得到了較好的檢測結(jié)果。而對于多只山羊,在不同光照情況下,YOLO v5s會出現(xiàn)漏檢而YOLO v5s-CA的檢測結(jié)果有所改善。在模糊化情況下,兩個模型檢測結(jié)果相差不大。
圖7 YOLO v5s和YOLO v5s-CA在不同光照和模糊條件下檢測結(jié)果對比
4.4.1數(shù)據(jù)集對檢測結(jié)果的影響
模型檢測效果主要依賴于臉部特征,故臉部特征的有效獲取直接影響檢測的性能。YOLO v5s-CA在引入坐標(biāo)注意力機(jī)制基礎(chǔ)上更加充分地獲取臉部區(qū)域特征。數(shù)據(jù)集中包含多角度、多尺度以及多目標(biāo)等純白色山羊圖像。純白色山羊不具有明顯的花紋和斑塊等特征,給山羊臉部檢測增加了一定的難度。羊頭部存在多角度的現(xiàn)象,當(dāng)頭部扭轉(zhuǎn)、低頭造成的頭部特別是臉部特征的大量丟失,該情況下不能很好地檢測出目標(biāo)區(qū)域;此外,遮擋(外物遮擋、種間遮擋)造成臉部信息的丟失時檢測效果較差。但相對于YOLO v5s模型,YOLO v5s-CA在該數(shù)據(jù)上的檢測效果有所提升。
4.4.2模型應(yīng)用性分析與展望
本研究中的YOLO v5s-CA模型內(nèi)存占用量為13.2 MB,幀速率為69 f/s,檢測精確率為95.6%,故可移植到移動平臺實(shí)現(xiàn)便攜靈活操作。此外,在檢測到羊群的臉部區(qū)域的基礎(chǔ)上,可以作為個數(shù)統(tǒng)計(jì)的輔助手段;其次,羊群中存在攻擊、爬跨等社會行為,這也是生產(chǎn)者比較關(guān)注的行為。攻擊行為存在安全隱患;爬跨行為對應(yīng)發(fā)情行為,這對于生產(chǎn)者都是重要的信息。而這些行為可通過臉部區(qū)域與身體區(qū)域的相對位置關(guān)系來進(jìn)行判斷,例如攻擊行為(圖8黃色框?qū)?yīng)攻擊行為):羊頭低下準(zhǔn)備攻擊,頭部位置相對較低;爬跨行為(圖8紅色框?qū)?yīng)爬跨行為):頭部區(qū)域遠(yuǎn)高于身體區(qū)域。下一步可進(jìn)一步檢測獲取身體區(qū)域來實(shí)現(xiàn)社會行為的識別,但對于密集性羊群、多角度、多尺度的數(shù)據(jù)集中,關(guān)聯(lián)同一只羊的臉部區(qū)域與身體區(qū)域仍具有較大的挑戰(zhàn)。
圖8 羊群社會行為示例
(1)在YOLO v5s的主干網(wǎng)絡(luò)中加入坐標(biāo)注意力機(jī)制,充分獲取目標(biāo)區(qū)的位置信息,提高了對重疊區(qū)域和小目標(biāo)區(qū)域的檢測性能。改進(jìn)YOLO v5s模型的檢測精度為95.6%,召回率為83.0%,mAP0.5為90.2%,幀速率為69 f/s,模型內(nèi)存占用量為13.2 MB。
(2)將YOLO v5s中的主干網(wǎng)絡(luò)替換為MobileNet v3進(jìn)行輕量級網(wǎng)絡(luò)對比分析,結(jié)果表明輕量級網(wǎng)絡(luò)對于模型的整體性能提升不大,其檢測速度有所提升但檢測精度明顯下降,而YOLO v5s-CA在檢測精確率和檢測速度上均較優(yōu)。
(3)改進(jìn)YOLO v5s模型的檢測精確率分別比Faster R-CNN、YOLO v4和YOLO v5s高17.3、27.5、1.3個百分點(diǎn),可以有效改善漏檢、誤檢問題。但在羊群過于擁擠、頭部區(qū)域重疊嚴(yán)重、頭部扭轉(zhuǎn)等造成臉部信息大量丟失時,檢測效果較差,仍有待提高。