黃小平 馮 濤 郭陽陽 梁 棟
(1.安徽大學互聯網學院, 合肥 230039; 2.農業生態大數據分析與應用技術國家地方聯合工程研究中心, 合肥 230039)
近年來,畜牧養殖業逐漸成為我國農業的支撐產業之一,規模化養殖逐漸取代了小型零散型養殖方式[1]。在規模化養殖中,動物的身體健康信息不僅有利于智慧養殖、提高動物福利,還有利于提高產品的品質。其中,奶牛作為畜牧養殖中的代表,其體態健康狀況與牛奶品質直接相關[2]。體況評分(Body condition score, BCS)作為評價動物體態健康的重要措施,是對奶牛脂肪沉積程度和能量代謝狀況的綜合評估,也是檢驗和評價牧場飼養管理水平的一項實用指標[3-5]。
傳統的奶牛體態監測往往通過人工觀察測量的手段,易引起牛只應激反應,且主觀性強、誤差大,無法滿足規模化養殖實時高效的發展需求[6-7]。隨著深度學習技術的發展,其在視頻圖像處理過程中實現了快速、批量化處理,可滿足現代化牧場的需求[8]。目前,在規模化養殖中,將基于深度學習框架以及衍生的改進方法應用于實際飼養環境中已成為研究趨勢[9-10]。在動物體況評價研究中常采用3D或2D傳感器設備來獲取奶牛軀體圖像,通過深度學習技術提取與體態相關區域特征,并構建和生成評價模型。文獻[11]在通道上方安裝Kinect v2來獲取奶牛行走的3D圖像,采用SqueezeNet模型來估計BCS,結果表明,在實際BCS的0.50點偏差內實現了97%的整體準確度。文獻[12]基于3D特征圖提出了一種EfficientNet網絡的奶牛體況評分方法,試驗結果表明,該模型的識別分類準確率為73.12%,識別誤差在0.25內的圖像占比為98.6%。上述相關研究中實現了奶牛體況評價,但3D設備成本高,3D數據處理耗時且對設備性能要求較高,這導致在實際農場中推廣有較大難度。基于2D設備的體況評分工作取得了重大進展。文獻[13]采用R-CNN算法構建奶牛體況評價模型,對奶牛尾部圖像進行評估,試驗結果表明,采用VGG19作為R-CNN特征提取層的性能最高,總體準確率為67.39%。文獻[14]采用Faster R-CNN網絡對奶牛體況相關的尾部圖像進行識別定位與分類,相比SSD算法其檢測精度略高,檢測準確率為84%,BCS平均準確率為70%。在奶牛體況評分中采用2D攝像機雖降低了成本,但傳統深度學習模型復雜度較高,故對計算設備的算力有較高的要求。此外,實際環境復雜,存在光照變化、運動模糊、遮擋等因素,模型的實際應用仍需要進一步評估。故在飼養環境中,實現實時高效檢測奶牛身體區域并獲取BCS值仍具有難度,且檢測算法部署于低算力設備的可行性和應用性仍需要進一步探索。
模型輕量化處理可減小網絡模型的占比和模型參數量,提高模型的執行效率,因此得到了廣泛關注[15]。其中相關學者在YOLO系列模型中進行輕量化處理,實現了果實目標區域的檢測[16-18],大幅降低了計算量和模型體積。此外,為提高復雜環境下目標區域的檢測準確率,區域特征的有效表達是重要前提。針對圖像樣本中含有大量無關信息問題,目前常采用引入注意力機制方式,以提高模型對目標區域的關注。該模式在畜牧目標檢測中得到了應用[19]。綜上可知,對深度學習模型輕量化處理并引入注意力機制的方案是可行的,但針對于奶牛體況評價模型仍需進一步研究可部署于實際飼養環境并推廣的模型。
根據現代牧場發展需求,本文采用2D攝像機獲取奶牛尾部區域,并基于YOLO v5s模型提出一種輕量級奶牛體況評分方法。首先,針對輕量化的需求,采用融入坐標注意力機制的MobileNetV3網絡來替代YOLO v5s的主干網絡,在降低模型復雜度的同時增強模型對牛尾區域特征的提取能力。其次,YOLO v5s預測層采用高效交并比損失,以提升模型回歸速度和目標預測框精度,實現模型整體性能的優化。為了進一步驗證本研究方法的魯棒性和應用性,在構建的復雜多樣性的樣本集下進行驗證分析,并在實際牧場中進行應用評估。
圖像視頻采集于安徽省六安市華好生態養殖有限公司與江蘇省淮安市盱眙衛崗牧業有限公司,采集平臺如圖1所示。將海康威視網絡相機安裝在擠奶通道上方,距地面2.4 m,記錄奶牛通過通道的俯視視頻。采集視頻分辨率為1 297像素×720像素,存儲格式為MP4。通道寬度為1 m,有利于奶牛排隊通過,避免了視頻中奶牛擁擠、關鍵部位遮擋等問題。采集樣本示例如圖1c所示。
相關研究表明,奶牛尾根區域是其體膘儲備的主要部位,該部位的體況評估有利于判斷奶牛的脂肪儲備和健康狀況[20]。故以奶牛尾部區域為研究區域,結合規模養殖環境中奶牛體況生長發育周期,構建了奶牛BCS數據集。泌乳期的奶牛最優體況評分在3.25~3.75之間[21]。由于泌乳期的奶牛會消耗其體內能量儲備來增加產奶量,導致體況評分出現0.5~0.75的浮動,故將BCS間隔設置為0.25進行分類。
評分為1.0和2.0的奶牛,其營養缺乏且體況極差,在當下規模化養殖場中很難找到;此外,體況評分在4.5~5.0之間的奶牛屬于高危牛群,易引發多種疾病,嚴重降低牧場經濟效益。故規模化養殖場中的奶牛體況評分數值通常分布在3.25~4.25之間。通過對視頻數據篩選,最終獲取包含300頭奶牛在自然環境下的體況圖像,共8 972幅。結合動物醫學專家的評分經驗,采用LabelImg軟件對奶牛尾部區域進行標注,按BCS為3.25、3.50、3.75、4.00、4.25共5個樣本類別進行分類,樣本類別數據集如圖2所示。
奶牛BCS類別示例如圖3所示,可見隨著BCS的遞增,其尾部的形狀逐漸趨于飽滿。數據集中的5個類別數據分別按照8∶2的比例隨機劃分為訓練集和測試集,其中訓練集樣本為7 178幅,測試集樣本為1 794幅。

圖3 奶牛BCS類別示例Fig.3 Example of BCS category for dairy cow
為進一步驗證本文模型的魯棒性和泛化性,從測試集中的5個類別中分別按50%比例隨機抽取圖像做模糊化處理(模糊核K=32),常規與模糊效果如圖4所示。

圖4 圖像變換效果對比Fig.4 Comparison of image transformation effects
YOLO v5為一種單階段目標檢測算法,主要包括4部分:① Input輸入層:采用Mosaic數據增強,提高訓練樣本量,增加樣本多樣性。② Backbone主干網絡層[22-24]:采用多種特征提取模塊對奶牛區域進行特征提取并生成目標的語義信息等。③ Neck特征融合層[25]:降低網絡深度同時加強奶牛尾部特征信息的融合能力。④ Prediction輸出層:采用邊界框回歸損失和非極大值抑制算法來提高模型對牛尾的識別準確度。其中,YOLO v5s網絡是YOLO v5系列中深度最小、特征圖寬度最小的網絡,可應用于輕量化研究。YOLO v5s網絡結構如圖5所示。

圖5 YOLO v5s網絡結構Fig.5 YOLO v5s network structure
針對模型輕量化的需求,本研究對YOLO v5s模型進行輕量化處理,以減小網絡模型內存占用量、參數量和計算量。此外,由于樣本圖像中存在背景干擾信息,以及牛只背部部分區域與尾部區域的特征具有相似性,模型實際評估能力較低。故本研究在MobileNetV3網絡(一種輕量化網絡)中引入了坐標注意力機制(Coordinate attention network, CANet)[26]構建M3CA網絡,并將M3CA作為YOLO v5s模型的輕量化主干網絡,優化了模型處理速度,增強了模型對奶牛尾部區域坐標位置信息的提取能力。其次,YOLO v5s預測層采用EIoU Loss(高效交并比損失)來融合更多邊界框信息,以優化收斂速度和邊界框回歸精度。基于YOLO v5s改進的YOLO-MCE模型網絡結構如圖6所示。

圖6 YOLO-MCE模型網絡結構Fig.6 YOLO-MCE network structure
2.2.1模型輕量化改進
MobileNet系列網絡由Google團隊在2017年提出,是專注于低算力設備的輕量級卷積神經網絡。其中,MobileNetV3[27]結合了深度可分離卷積和倒殘差結構,刪除計算成本較高的網絡層,融入了通道注意力機制網絡SENet(Squeeze-and-excitation network)[28]。此外,MobileNetV3網絡采用結構重參數化方法融合了卷積層和批量歸一化層,引入易于量化模型的H_Swish激活函數,使得模型具有參數少、推理時間短等優勢,使網絡適用于存儲空間和算力受限的設備。主干網絡中的MobileNetV3結構如表1所示。

(4)
深度可分離卷積(Depthwise separable convolution, DSC)是MobileNet系列的主要特點,網絡結構如圖7所示。深度可分離卷積操作中采用深度卷積(Depthwise convolution, DW)和逐點卷積(Pointwise convolution, PW)對圖像進行特征提取。例如,輸入特征圖尺寸為DF×DF×M,M為特征圖通道數,卷積核尺寸為DK×DK×1,卷積核數量為N。首先輸入特征圖經過深度卷積操作(卷積核的數量與輸入特征圖通道數一致)減少了模型參數量,并生成M個特征圖。其次經過逐點卷積操作(卷積核尺寸:1×1×M)將特征圖進行組合,生成N個特征圖,加深模型通道。可見,該卷積運算會將特征圖在深度方向上進行加權組合,生成新的特征圖。

圖7 深度可分離卷積Fig.7 Depthwise separable convolution
深度可分離卷積參數量PD和計算量QD的計算公式分別為
(1)
(2)
常規卷積參數量PR和計算量QR的計算公式分別為
(3)
深度可分離卷積與普通卷積參數量比值RP與計算量比值RQ的計算式為
(5)
(6)
2.2.2坐標注意力機制
通道注意力機制網絡僅考慮了通道之間的信息,忽略了位置信息。而坐標注意力機制網絡注重特征圖像中坐標信息提取。基于以上兩點考慮,本方法采用高效的CANet替換MobileNetV3中的SENet構建M3CA模塊,其結構如圖8所示。
CANet通過把坐標位置信息嵌入通道注意力,對輸入尺寸為C×H×W的特征圖X,采用平均池化處理生成水平方向尺寸為C×H×1和垂直方向尺寸為C×1×W的特征圖,C為特征圖通道數,H為特征圖高度,W為特征圖寬度,xc為在第c個維度的特征輸入,即高度h和寬度w在第c個維度的特征輸出,計算式分別為
(7)
(8)
由式(7)、(8)分別沿兩個空間方向進行聚合,可計算輸出一對方向可知的特征圖。對比SENet中全局池化壓縮方式,該方式可獲取單方向上的長距離關系,同時保留另一個方向上的空間位置信息,有利于網絡更準確地定位牛尾區域。
隨后將特征圖在空間方向進行拼接,使用1×1卷積、BN進行歸一化處理,再通過非線性激活函數δ(·)進行特征轉化,即
f=δ(F1((z(h),z(w))))
(9)
將f拆分為兩個獨立的特征矩陣f(h)和f(w),采用 1×1卷積和Sigmoid激活函數將特征矩陣維度轉化為與輸入X的維度一致。得出橫縱2個方向上的分量,即
g(h)=σ(Fh(f(h)))
(10)
g(w)=σ(Fw(f(w)))
(11)
最終將輸出的g(h)和g(w)合并成權重矩陣,計算輸出式為
(12)
yc(i,j)強調了水平與垂直坐標編碼相關的位置信息,將奶牛尾部特征橫縱方向的位置信息精確保留,有助于模型更好定位和識別牛尾區域,使得特征提取網絡獲取更大區域的信息且避免了更大的計算開銷。
2.2.3邊界框回歸損失函數
EIoU Loss[29]將縱橫比的影響因子拆開,分別計算目標框和錨框的寬高,考慮了重疊面積、中心點距離以及寬高邊長真實差異問題。EIoU Loss對寬高預測結果進行懲罰的損失函數式為

(13)
式中IoU——邊界框與真實邊界框的交并比
b、b(gt)——預測邊界框、真實邊界框的中心點坐標
ρ2(·)——歐氏距離
cw、ch——包圍兩個邊界框的最小的矩形框的寬度、高度
由3部分組成,包括重疊損失LIoU、中心距離損失Ldis、寬高損失Lasp。本方法在預測層采用EIoU Loss,使模型在回歸過程專注于高質量錨框,加速收斂提高回歸精度。
本試驗在Ubuntu 20.04操作系統和NVIDIA RTX3080顯卡下,通過Pytorch深度學習框架來實現模型的搭建、訓練和驗證,使用CUDA 11.3計算架構,同時將CUDNN添加到環境中加速計算機計算能力。改進模型試驗過程中樣本圖像分辨率為640像素×640像素,訓練批次為16,初始學習率為0.01,初始動量為0.937,所有參照模型均按此參數訓練300個epoch。測試階段參數交并比(IoU)設置為0.5,置信度閾值設置為0.5。試驗過程中采用Mosaic數據增強,擴充試驗樣本同時增強模型的魯棒性和泛化能力。同時,為了驗證YOLO-MCE算法的性能,與Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s進行對比分析。試驗平臺如表2所示。

表2 試驗平臺Tab.2 Experimental platform
本研究選擇目標檢測模型中常用的評價指標:精度(Precision,P)、召回率(Recall,R)、平均精度(Avarge precision, AP)、平均精度均值(Mean avarge precision, mAP)、模型內存占用量、參數量和計算量,對改進后的模型進行綜合評價。
精度和召回率衡量了模型對奶牛尾部樣本BCS分類的能力。AP為不同BCS類別的平均精度;mAP為BCS類別下的AP值總和的平均值,衡量模型在所有BCS類別上的檢測精度。
模型內存占用量、參數量和計算量是深度學習訓練中衡量模型復雜度的指標。模型內存占用量是衡量模型所占用存儲空間的參數。三者數值越小,越容易移植模型到低算力設備中。
為驗證改進模型輕量化處理后的性能,在奶牛BCS數據集基礎上,將改進模型YOLO v5s-MobileNetV3-CA-EIoU(YOLO-MCE)與YOLO v5s、YOLO v5s-MobileNetV3和YOLO v5s-MobileNetV3-CA模型進行了對比試驗分析,其中對比模型采用CIoU Loss。由表3(表中mAP@0.5表示IoU為0.5的平均精度均值)得知,在主干網絡中引入MobileNetV3網絡后,YOLO v5s-MobileNetV3模型相較于原YOLO v5s模型,其復雜度大幅度下降,模型內存占用量為2.95 MB,計算量為2.3×109,但其檢測精度、召回率和平均精度均值均有所降低,其原因在于輕量級網絡參數較少且模型深度較低,導致對奶牛尾部特征細節提取能力較低,即損失部分檢測精度換取了模型的輕量化。故為了進一步提高模型檢測性能,將引入坐標注意力機制的M3CA網絡融入YOLO v5s主干網絡,YOLO v5s-MobileNetV3-CA模型內存占用量為2.28 MB,計算量為2.0×109,相較YOLO v5-MobileNetV3,該模型的復雜度得到進一步下降,其檢測精度和mAP@0.5均有所改善。預測層采用EIOU Loss后,YOLO-MCE模型與YOLO v5s-MobileNetV3-CA模型的復雜度一致,YOLO-MCE模型的檢測精度為93.4%,召回率為85.5%,mAP@0.5為91.4%,較原YOLO v5s模型,其檢測精度降低0.2個百分點,召回率提升3.7個百分點,平均精度均值提升2.1個百分點,模型內存占用量壓縮83.4%。由此得知,YOLO-MCE模型實現了模型的輕量化,并在保持較高檢測精度的同時大幅降低了模型的復雜度。

表3 消融試驗Tab.3 Ablation experiment
本研究在奶牛BCS數據集上進一步將YOLO-MCE與Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s模型進行對比分析。由表4可以得知,YOLO-MCE模型mAP@0.5為91.4%,模型內存占用量為2.28 MB,相比Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s模型,其mAP@0.5分別提升22.4、9.8、15.6、2.1個百分點;其模型內存占用量分別縮小1/137.5、1/45.6、1/141.7和1/6.0。由此可知,YOLO-MCE模型相比Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s模型,其在奶牛BCS數據集上的整體性能最優,且模型復雜度最低,有利于改進的奶牛體況評分模型部署于低算力設備。

表4 各模型檢測性能對比Tab.4 Comparison of detection performance of different models
本研究選取置信度閾值為0.5,IoU閾值為0.5。YOLO v5s和YOLO-MCE模型的精度-召回率曲線如圖9所示。可見在BCS為3.75、4.00、4.25的類別下YOLO-MCE(88.2%、92.2%、95.5%)的分類效果優于YOLO v5s(86.4%、89.1%、88.5%);BCS為3.25、3.50的類別下,YOLO-MCE(92.1%、89.0%)的結果略低于YOLO v5s(92.5%、90.2%)。改進后的模型在類別識別分類的總體性能得到了改善。

圖9 YOLO v5s與YOLO-MCE 的精度-召回率曲線Fig.9 P-R curves of YOLO v5s and YOLO-MCE
為驗證模糊數據集下模型的檢測性能,分別對比分析了BCS不同類別下的YOLO v5s和YOLO-MCE的檢測效果。各類別模糊樣本下的BCS檢測結果如圖10所示。由圖10得知,引入坐標注意力機制和EIoU Loss的YOLO-MCE模型,更好地結合了牛尾區域的位置信息,從而具有良好的特征提取、特征融合以及高質量錨框生成能力。降低了漏檢率、提高了運動模糊狀況下的檢測性能以及目標邊界框定位能力,在牛尾區域模糊的識別分類精度上有所改善。針對YOLO v5s在模糊樣本下出現的漏檢(圖10a、10c、10g)和誤檢(圖10e、10i)情況,改進模型均有所改善,如圖10b、10d、10f、10h、10j所示。試驗結果表明,改進模型相較原模型在模糊樣本下具有更好的檢測和泛化能力。

圖10 YOLO v5s和YOLO-MCE在模糊樣本下 各BCS的檢測效果Fig.10 Detection results of YOLO v5s and YOLO-MCE in each BCS value under motion blur sample
為了更直觀體現模型的注意區域,本研究借助梯度加權類激活映射方法(Gradient-weighted class activation map, Grad-CAM)[30]對牛尾重要特征區域進行顏色可視化。在模型預測層中的最后一個卷積層后引入Grad-CAM方法,直觀展示了模型在牛尾檢測中注意力關注區域的分布情況,如圖11所示。奶牛尾部溝壑區域的凹陷程度對奶牛尾部識別分類做出了關鍵決策。而在BCS為3.25、3.50和3.75時,原模型對牛尾特征感興趣區域較為集中,BCS為4.00和4.25時,感興趣區域較為分散,未能正確學習到牛尾關鍵特征。而改進模型的感興趣區域覆蓋范圍更廣,針對牛尾關鍵特征區域的定位更加精準,使模型對牛尾特征信息的學習更加充分,從而提升了實際檢測效果。

圖11 YOLO v5s和YOLO-MCE的Grad-CAM熱力圖對比Fig.11 Comparison of Grad-CAM heat maps of YOLO v5s and YOLO-MCE
本模型已部署于盱眙衛崗牧業有限公司奶牛養殖場,其工控機配置為CPU:Intel12thGenIntel(R)Core(TM)i5-12400F;GPU:NVIDIA GeForce RTX 3060, Microsoft Basic Render Driver;內存:16 GB;Windows 11系統。工控機現場測試如圖12所示。監視界面中可實時監測奶牛BCS數值。此外,牧場電子耳標記錄奶牛ID信息,可進一步將ID信息與個體BCS數值相關聯。

圖12 工控機現場測試圖Fig.12 Field test diagram of industrial computer1.擠奶通道 2.2D攝像機 3.硬盤錄像機 4.工控機 5.監控界面
(1)提出了一種輕量化奶牛體況評價模型。將融入坐標注意力機制的MobileNetV3網絡作為YOLO v5的主干網絡,優化了目標檢測模型的處理速度,并加強了模型對奶牛尾部區域空間和位置信息的提取能力。預測層采用EIoU Loss來融合更多的邊界框信息,優化了收斂速度和邊界框回歸精度。整體提高了模型在奶牛體況評分領域的檢測性能和實用性。
(2)改進模型的目標檢測精度為93.4%,召回率為85.5%,mAP@0.5為91.4%,模型內存占用量為2.28 MB,參數量為1.02×106,計算量為2.0×109。改進的檢測模型具有較低的模型復雜度,同時具備較高的牛尾區域識別與體況評估性能。
(3)所提方法在檢測精度與實時性較高的情況下,可極大程度地降低模型對硬件設備算力的依賴。通過在實際場景中的測試,本文方法可實現對奶牛體況的高效評分。