段青玲 趙芷青 蔣 濤 桂小飛 張宇航
(1.中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院, 北京 100083; 2.農(nóng)業(yè)農(nóng)村部智慧養(yǎng)殖技術(shù)重點(diǎn)實(shí)驗(yàn)室, 北京 100083;3.北京福通互聯(lián)科技集團(tuán)有限公司, 北京 101300)
肉牛是一種以生產(chǎn)牛肉為主的牛,是我國重要的畜禽養(yǎng)殖品種之一。牛肉因富含蛋白質(zhì)和維生素等營養(yǎng)物質(zhì),對人體健康有益而深受消費(fèi)者喜歡[1-2]。在肉牛養(yǎng)殖中,肉?;顒?dòng)過程中所表現(xiàn)出的行為是其健康狀況的綜合體現(xiàn),對疾病防控、自身發(fā)育評估和發(fā)情監(jiān)測有重要意義。快速準(zhǔn)確地識別肉牛爬跨、躺臥、探究、站立、運(yùn)動(dòng)、舔砥和互斗等常見行為能夠幫助養(yǎng)殖者及時(shí)評估肉牛的生理健康狀況,實(shí)現(xiàn)肉牛的精準(zhǔn)化管理。
國內(nèi)外研究學(xué)者開展了肉牛行為識別技術(shù)研究,主要分為基于傳感器的接觸式肉牛行為識別[3-4]和基于計(jì)算機(jī)視覺的非接觸式肉牛行為識別[5-6]兩種方式?;趥鞲衅鞯慕佑|式肉牛行為識別方法是在牛只不同部位佩戴傳感器,根據(jù)采集的肉?;顒?dòng)量、溫度和聲音等數(shù)據(jù),判斷肉牛的不同行為[7-8]。該方法容易造成牛只的應(yīng)激反應(yīng),易損壞傳感器,從而影響牛只行為識別的準(zhǔn)確率。
基于計(jì)算機(jī)視覺的非接觸式肉牛行為識別方法通過采集視頻圖像,利用機(jī)器學(xué)習(xí)技術(shù)對圖像進(jìn)行處理,實(shí)現(xiàn)肉牛行為識別。該方法成本較低,可以避免接觸式識別方法帶來的肉牛應(yīng)激反應(yīng)問題。GUO等[9]提出了基于圖像區(qū)域幾何和光流特征分析的爬跨行為識別方法,首先使用融合顏色和紋理的背景減法獲得奶牛目標(biāo),然后使用幀間差分法提取奶牛的幾何和光流特征,最后使用支持向量機(jī)(Support vector machine,SVM)算法進(jìn)行特征分類,實(shí)現(xiàn)奶牛爬跨行為的識別,識別準(zhǔn)確率為90.9%。JIANG等[10]提出了基于噪聲和雙向長短期記憶模型的跛行檢測方法,首先采用FLYOLO v3(Fliter layer YOLO v3)算法提取奶牛背部位置坐標(biāo),并獲得奶牛目標(biāo),然后提取奶牛背部曲率,采用噪聲和雙向長短期記憶模型,實(shí)現(xiàn)奶牛跛行的識別,識別準(zhǔn)確率為96.1%。劉月峰等[11]提出了基于改進(jìn)YOLO v3的奶牛進(jìn)食行為識別方法,使用幅值迭代剪枝算法對YOLO v3進(jìn)行優(yōu)化,實(shí)現(xiàn)奶牛進(jìn)食行為的識別,識別準(zhǔn)確率為79.9%。王少華等[12]提出了基于改進(jìn)YOLO v3的奶牛發(fā)情行為識別方法,使用錨點(diǎn)框聚類、DenseBlock和邊框損失函數(shù)對YOLO v3進(jìn)行優(yōu)化,實(shí)現(xiàn)奶牛發(fā)情行為的識別。上述方法僅實(shí)現(xiàn)了牛只單一行為的識別,如果要識別多種行為,需要對多個(gè)模型進(jìn)行集成,無法滿足實(shí)際生產(chǎn)的需求。
在多行為識別方面,QIAO等[13]提出了基于C3D(Convolutional 3D)網(wǎng)絡(luò)和ConvLSTM(Convolutional LSTM network)的牛只行為識別方法,實(shí)現(xiàn)了小牛和奶牛的采食、探索、舔砥、行走和站立5種行為的分類,小牛和奶牛分類準(zhǔn)確率分別為90.32%和86.67%。WU等[14]提出了基于卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶網(wǎng)絡(luò)的奶牛行為識別方法,實(shí)現(xiàn)了單只奶牛的躺臥、站立、行走、飲水和反芻5種行為的識別,識別準(zhǔn)確率為97.6%。YIN等[15]提出了基于EfficientNet-LSTM的奶牛行為識別方法,使用雙向特征金字塔網(wǎng)絡(luò)(Bi-directional feature pyramid network,BiFPN)優(yōu)化EfficientNet實(shí)現(xiàn)特征聚合,并使用注意力機(jī)制優(yōu)化雙向長短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間維度的串聯(lián),最后實(shí)現(xiàn)了單只奶牛的行走、站立、躺臥、哺乳和飲水5種行為的識別,識別準(zhǔn)確率為95.2%。MA等[16]提出了基于ReXNet 3D(Rank expansion networks 3D)的奶牛行為識別方法,在ReXNet(Rank expansion networks)中添加時(shí)間信息,實(shí)現(xiàn)了單只奶牛的躺臥、站立和行走3種行為的識別,識別準(zhǔn)確率為95%。上述方法僅實(shí)現(xiàn)了單只牛的多種行為識別,無法直接應(yīng)用在規(guī)?;B(yǎng)殖場多只牛的場景中。
綜上所述,基于計(jì)算機(jī)視覺的非接觸式牛只行為識別是目前研究熱點(diǎn),已開展了大量的相關(guān)研究,但仍存在以下問題:在實(shí)際養(yǎng)殖環(huán)境中存在多只肉牛且行為多種多樣,現(xiàn)有模型無法適用于養(yǎng)殖場的實(shí)際情況;現(xiàn)有模型存在參數(shù)多和模型大的特點(diǎn),不利于在算力有限的邊緣端設(shè)備上部署應(yīng)用。
針對上述問題,本文提出一種基于SNSS-YOLO v7的肉牛行為識別方法,首先在實(shí)際養(yǎng)殖環(huán)境下采集肉牛行為數(shù)據(jù),構(gòu)建肉牛行為數(shù)據(jù)集;其次在YOLO v7頸部采用Slim-Neck結(jié)構(gòu),以減小模型計(jì)算量與參數(shù)量;然后在頭部引入SEAM模塊增強(qiáng)Neck層輸出后的檢測效果;最后使用SimSPPF模塊替換原YOLO v7的SPPCSPC模塊,在增大感受野的同時(shí)進(jìn)一步減少參數(shù)量。
本文試驗(yàn)數(shù)據(jù)通過肉牛養(yǎng)殖基地實(shí)地采集和網(wǎng)絡(luò)抓取兩種渠道獲取。以內(nèi)蒙古錫林郭勒盟正藍(lán)旗鑫源牧場為試驗(yàn)場地,通過視頻攝像設(shè)備(??低旸S-2CD3T86FWDV2-I3S)采集養(yǎng)殖場的肉牛行為數(shù)據(jù)。通過上述兩種渠道獲取肉牛多天的日?;顒?dòng)視頻,人工篩選出具有爬跨、躺臥、探究、站立、運(yùn)動(dòng)、舔砥和互斗7種行為的視頻片段75條,視頻片段長度不等。按照比例8∶2隨機(jī)選擇60條視頻片段做訓(xùn)練集,15條視頻片段做測試集。為避免圖像相似度過高,對視頻片段采取視頻抽幀的方式,每間隔25幀抽取一幅圖像,共獲得訓(xùn)練集圖像1 959幅,測試集圖像501幅,構(gòu)成本文的行為識別數(shù)據(jù)集。表1給出了肉牛7種行為判定標(biāo)準(zhǔn)和數(shù)據(jù)集信息。
表1 肉牛行為判定標(biāo)準(zhǔn)和數(shù)據(jù)集信息Tab.1 Beef cattle behavior recognition criteria and dataset description
為了模擬實(shí)際生產(chǎn)環(huán)境,保證算法的實(shí)用性,構(gòu)建肉牛行為識別數(shù)據(jù)集時(shí)綜合考慮以下因素:①姿態(tài)變化。采集包含肉牛多種姿態(tài)的圖像,以增加樣本的多樣性。②密集程度。采集不同密集程度下的肉牛圖像,每幅圖像中包含多頭肉牛和多種行為,以增加識別算法對不同場景的適應(yīng)性。③光照變化。采集不同自然光照條件下的肉牛圖像,以增加識別算法對不同光照條件的適應(yīng)性。
為了進(jìn)一步增強(qiáng)圖像的復(fù)雜性,本文采用馬賽克增強(qiáng)的方法進(jìn)行數(shù)據(jù)增強(qiáng)。采用LabelImg人工標(biāo)注每幅圖像中肉牛的爬跨、躺臥等7種行為。數(shù)據(jù)集中的部分圖像如圖1所示。其中,圖1a、1d是網(wǎng)絡(luò)抓取的圖像,圖1b、1c、1e、1f是在肉牛養(yǎng)殖基地獲取的圖像。圖中標(biāo)注的目標(biāo)①為爬跨肉牛、目標(biāo)②為躺臥肉牛、目標(biāo)③為探究肉牛、目標(biāo)④為站立肉牛、目標(biāo)⑤為運(yùn)動(dòng)肉牛、目標(biāo)⑥為舔砥肉牛、目標(biāo)⑦為互斗肉牛。
1.2.1肉牛行為識別模型架構(gòu)
YOLO v7算法是優(yōu)秀的目標(biāo)檢測算法,其網(wǎng)絡(luò)模型主要由CBS模塊、ELAN模塊、MP模塊、SPPCSPC模塊以及Concat模塊構(gòu)成,包含大量的普通卷積,內(nèi)存消耗較大,難以部署在邊緣端設(shè)備上。本文提出基于SNSS-YOLO v7的肉牛行為識別模型,首先在網(wǎng)絡(luò)頸部采用Slim-Neck結(jié)構(gòu)輕量化網(wǎng)絡(luò);其次頭部引入SEAM模塊增強(qiáng)Neck層輸出后的檢測效果;最后使用SimSPPF模塊替換原YOLO v7的SPPCSPC模塊。在保持精度的同時(shí)有效減少模型內(nèi)存占用量,從而實(shí)現(xiàn)肉牛行為的準(zhǔn)確識別。
肉牛行為識別模型架構(gòu)如圖2所示。當(dāng)輸入圖像為640像素×640像素時(shí),主干網(wǎng)絡(luò)從輸入圖像中提取80像素×80像素、40像素×40像素和 20像素×20像素共3種特征圖;頸部采用SimSPPF模塊增大感受野,使用Slim-Neck結(jié)構(gòu)對主干網(wǎng)絡(luò)提取的3種不同大小的特征圖進(jìn)行特征融合,且降低網(wǎng)絡(luò)復(fù)雜度;頭部引入SEAM模塊增強(qiáng)Neck層輸出后的檢測效果。通過損失函數(shù)計(jì)算訓(xùn)練損失,使用優(yōu)化器調(diào)整參數(shù),獲得肉牛行為識別模型,并對測試集進(jìn)行結(jié)果預(yù)測。
1.2.2SNSS-YOLO v7模型網(wǎng)絡(luò)結(jié)構(gòu)
基于SNSS-YOLO v7的輕量級肉牛行為識別模型網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 SNSS-YOLO v7網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 SNSS-YOLO v7 network structure
采用Slim-Neck結(jié)構(gòu)輕量化頸部網(wǎng)絡(luò),減輕模型的復(fù)雜度同時(shí)保持精度;引入SEAM模塊增強(qiáng)Neck層輸出后的檢測效果;使用SimSPPF模塊替換原網(wǎng)絡(luò)的SPPCSPC模塊,增加感受野的同時(shí)進(jìn)一步減小參數(shù)量。
(1)Slim-Neck結(jié)構(gòu)輕量化頸部
YOLO v7網(wǎng)絡(luò)使用大量的標(biāo)準(zhǔn)卷積(Standard convolution,SC)提取圖像的特征信息,但是標(biāo)準(zhǔn)卷積會耗費(fèi)大量的時(shí)間,輕量化網(wǎng)絡(luò)Xception[17]、MobileNet[18]和ShuffleNet[19]等使用的深度可分離卷積(Depthwise separable convolution,DSC)可以有效地解決標(biāo)準(zhǔn)卷積的耗時(shí)問題,但模型的檢測精度也隨之降低。GSConv[20]采用SC、DSC以及Shuffle相結(jié)合的方式,其計(jì)算成本僅是標(biāo)準(zhǔn)卷積的60%~70%,但效果與SC不相上下。因此,本文使用GSConv代替原網(wǎng)絡(luò)中Neck層中的標(biāo)準(zhǔn)卷積,并在GSConv的基礎(chǔ)上引入VoV-GSCSP模塊[20]。通過GSConv和VoV-GSCSP模塊所構(gòu)成的Slim-Neck結(jié)構(gòu)對主干網(wǎng)絡(luò)提取的特征進(jìn)行增強(qiáng),在充分提取深層特征和淺層特征信息的同時(shí),既減輕了模型的復(fù)雜度,又保持了模型的精度。GSConv卷積操作和VoV-GSCSP網(wǎng)絡(luò)結(jié)構(gòu)分別如圖4和圖5所示。
圖4 GSConv卷積操作Fig.4 GSConv convolution operation
圖5 VoV-GSCSP網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 VoV-GSCSP structure
(2)SEAM模塊
為進(jìn)一步降低模型復(fù)雜度,本文使用SEAM模塊替換原YOLO v7的Rep結(jié)構(gòu)來增強(qiáng)Neck層輸出部分的響應(yīng)能力。SEAM模塊[21]中使用帶有殘差連接的深度可分離卷積,采用一個(gè)兩層的全連接網(wǎng)絡(luò)來融合每個(gè)通道的信息,以加強(qiáng)所有通道之間的聯(lián)系。通過上一步學(xué)習(xí)到的被遮擋行為與無遮擋行為的關(guān)系來彌補(bǔ)遮擋場景下的損失,可以有效解決行為之間的遮擋問題。
(3)SimSPPF
空間金字塔池化(Spatial pyramid pooling,SPP)[22]是一種將局部特征映射到不同維度空間并將其融合的池化方法,輸入不同大小的圖像可以產(chǎn)生固定大小的特征向量,進(jìn)而有效提取出不同尺度的特征信息。
YOLO v7中的空間金字塔池化使用的是SPPCSPC模塊(圖6a),將輸入分成2個(gè)不同的分支,其中一個(gè)進(jìn)行常規(guī)處理,另一個(gè)進(jìn)行SPP結(jié)構(gòu)處理,最后將兩部分通過Concat操作合并在一起。其中SPP結(jié)構(gòu)處理將輸入分成4部分,其中3部分分別進(jìn)行尺寸為5×5、9×9和13×13的最大池化操作,第4部分輸入與其他3個(gè)經(jīng)過池化操作的輸入通過Concat連接,生成固定尺寸的特征。SPPCSPC模塊雖然有較好的表現(xiàn)效果,但參數(shù)量與計(jì)算量過大。
圖6 SPPCSPC結(jié)構(gòu)和SimSPPF結(jié)構(gòu)Fig.6 SPPCSPC structure and SimSPPF structure
本文使用SimSPPF模塊[23](圖6b)將輸入分為2部分,一部分串聯(lián)3個(gè)尺寸為5×5的最大池化層(Max Pooling)。其中,串聯(lián)2個(gè)5×5的最大池化層和1個(gè)9×9的最大池化層計(jì)算結(jié)果相同,串聯(lián)3個(gè)5×5的最大池化層和1個(gè)13×13的最大池化層計(jì)算結(jié)果相同。通過串聯(lián)最大池化層對輸入進(jìn)行處理,極大地減少了計(jì)算量,提高了速度和效率。另一部分輸入直接與經(jīng)過3個(gè)池化操作的輸出通過Concat連接,生成固定尺寸的特征,在很大程度上增加感受野,起到特征增強(qiáng)的作用。在SimSPPF模塊中使用ReLU激活函數(shù),而SPPCSPC模塊使用SiLU激活函數(shù),單個(gè)CBL速度比CBS快。
為驗(yàn)證本文所提方法的有效性,將本文提出的肉牛行為識別方法與YOLO v6m、YOLO v5m、YOLOX-S、TPH-YOLO v5和Faster R-CNN方法進(jìn)行對比;將本文提出的肉牛行為識別原網(wǎng)絡(luò)與各模塊改進(jìn)后的網(wǎng)絡(luò)進(jìn)行對比,驗(yàn)證本文對原算法改進(jìn)的有效性。
采用精確率(Precision)、召回率(Recall)、平均精度均值(mAP@0.5)、模型內(nèi)存占用量、參數(shù)量和浮點(diǎn)運(yùn)算量(GFLOPs)評估肉牛行為識別模型的性能,平均精度(AP)是肉牛各個(gè)行為識別的平均精度,mAP是AP的平均值,模型內(nèi)存占用量使用模型所占存儲空間來衡量,GFLOPs表示每秒10億次的浮點(diǎn)運(yùn)算數(shù)。
試驗(yàn)服務(wù)器配置如下:操作系統(tǒng)為Ubuntu 18.04,GPU為GeForce RTX 2080Ti,CPU為Intel(R)Xeon(R) Silver 4114,主頻2.2 GHz,內(nèi)存125 GB,深度學(xué)習(xí)庫為PyTorch 1.7.1,運(yùn)算平臺為CUDA 10.0、CUDNN 7.6.1,編程語言為Python。
模型訓(xùn)練過程中參數(shù)設(shè)置有:輸入圖像尺寸為640像素×640像素、Epoch為300、批量大小為8、初始學(xué)習(xí)率為0.01、動(dòng)量參數(shù)為0.937、權(quán)重衰減系數(shù)為0.000 5。
為驗(yàn)證本文提出的SNSS-YOLO v7肉牛行為識別方法對肉牛爬跨、躺臥、探究、站立、運(yùn)動(dòng)、舔砥和互斗7種行為識別效果的優(yōu)越性,將本文方法與原YOLO v7算法進(jìn)行比較,對比結(jié)果如表2所示。
表2 不同目標(biāo)平均精度均值對比結(jié)果Tab.2 Comparison result of mAP@0.5 of different targets
由表2可以看出,本文方法對爬跨行為識別的平均精度均值(mAP@0.5)為99.6%,與YOLO v7相同。本文方法對探究、舔砥和互斗行為的識別平均精度均值(mAP@0.5)分別為92.6%、94.7%和93.4%,較YOLO v7分別提高1.6、0.6、1.8個(gè)百分點(diǎn)。
YOLO v7對7種行為的識別中,運(yùn)動(dòng)行為識別的平均精度均值(mAP@0.5)最低,僅有84.1%,分析其原因是肉牛的站立行為和運(yùn)動(dòng)行為表現(xiàn)相似,模型容易產(chǎn)生混淆,而誤將運(yùn)動(dòng)行為識別成站立行為。本文方法對運(yùn)動(dòng)行為的識別平均精度均值(mAP@0.5)為88.5%,較YOLO v7提高4.4個(gè)百分點(diǎn),對肉牛站立行為識別的平均精度均值(mAP@0.5)為97.8%,較YOLO v7提高1個(gè)百分點(diǎn)。說明本文方法對肉牛運(yùn)動(dòng)和站立相似行為識別能力有所提高。
本文提出的肉牛行為識別方法在測試集上的識別結(jié)果如圖7所示。
圖7a、7d中肉牛行為數(shù)量較少,圖7a中的躺臥、探究和站立行為均被正確識別,圖7d中的爬跨行為被正確識別。圖7b、7e為自然光照條件下存在多只肉牛且存在遮擋行為的圖像,圖7b中由于站立與運(yùn)動(dòng)行為高度相似,導(dǎo)致其中一個(gè)運(yùn)動(dòng)行為被錯(cuò)誤識別成站立行為,其余站立行為與運(yùn)動(dòng)行為均被正確識別,圖7e中的躺臥、站立和探究行為均被正確識別。圖7c、7f為在夜晚存在多只肉牛且存在遮擋行為的圖像,夜晚肉牛行為多表現(xiàn)為躺臥行為, 圖7c 中的躺臥和探究行為均全部被正確識別,圖7f中的躺臥行為均被正確識別??傮w來說,本文方法對肉牛的多種行為均取得較好的識別效果。
為驗(yàn)證提出的基于SNSS-YOLO v7的肉牛行為識別方法對原算法改進(jìn)的有效性,設(shè)計(jì)了消融試驗(yàn)。將原網(wǎng)絡(luò)與進(jìn)行各模塊改進(jìn)后的網(wǎng)絡(luò)在測試集上進(jìn)行測試,對比結(jié)果如表3所示。
表3 消融試驗(yàn)結(jié)果Tab.3 Results of ablation experiments
由表3可以看出,本文方法所做的第1個(gè)改進(jìn)為使用Slim-Neck輕量化Neck結(jié)構(gòu),使精確率提高0.4個(gè)百分點(diǎn),平均精度均值(mAP@0.5)提高0.3個(gè)百分點(diǎn),模型內(nèi)存占用量減小14.3%,參數(shù)量減少14.8%,浮點(diǎn)運(yùn)算量減少13.6%;本文方法所做的第2個(gè)改進(jìn)為使用SEAM模塊替換Rep結(jié)構(gòu),雖然精確率并未提升,但平均精度均值(mAP@0.5)提高0.1個(gè)百分點(diǎn),模型內(nèi)存占用量減小20.4%,參數(shù)量減少18.7%,浮點(diǎn)運(yùn)算量減少12%;本文方法所做的第3個(gè)改進(jìn)為使用SimSPPF模塊替換SPPCSPC模塊,精確率提高0.4個(gè)百分點(diǎn),平均精度均值(mAP@0.5)提高1個(gè)百分點(diǎn),模型內(nèi)存占用量減小23.7%,參數(shù)量減少23.8%,浮點(diǎn)運(yùn)算量減少6.1%。
為驗(yàn)證本文提出的基于SNSS-YOLO v7的肉牛行為識別方法的有效性,將本文方法與YOLO v6m[23]、YOLO v5m、YOLOX-S[24]、TPH-YOLO v5[25]和Faster R-CNN[26]肉牛行為識別方法進(jìn)行對比。其中,YOLO v6m、YOLO v5m、YOLOX-S方法是當(dāng)前主流的目標(biāo)檢測算法,TPH-YOLO v5和Faster R-CNN是在其他文獻(xiàn)中性能較好的算法。為了驗(yàn)證本文方法的優(yōu)越性,所有模型訓(xùn)練過程中參數(shù)設(shè)置均保持一致。對比結(jié)果如圖8所示。
圖8 不同模型識別效果比較Fig.8 Comparison of recognition effect of different models
由圖8可以看出,本文方法與YOLO v6m、YOLO v5m和TPH-YOLO v5方法相比,精確率分別提高1.1、0.8、1.7個(gè)百分點(diǎn),召回率分別提高4.3、1.1、0.4個(gè)百分點(diǎn),平均精度均值(mAP@0.5)分別提高2.2、3.1、1.9個(gè)百分點(diǎn)。與YOLOX-S方法相比,精確率持平,召回率提高9個(gè)百分點(diǎn),平均精度均值(mAP@0.5)提高13.7個(gè)百分點(diǎn)。與Faster R-CNN 方法相比,召回率雖有所下降,但精確率提高19.3個(gè)百分點(diǎn),平均精度均值(mAP@0.5)提高4.5個(gè)百分點(diǎn)。綜上,本文方法在識別效果上優(yōu)于其他方法,驗(yàn)證了本文方法的優(yōu)越性。
為進(jìn)一步驗(yàn)證本文方法是否適合部署在邊緣端設(shè)備上,將本文方法的參數(shù)量和模型內(nèi)存占用量與YOLO v6m、YOLO v5m、YOLOX-S、TPH-YOLO v5、Faster R-CNN模型進(jìn)行對比。對比結(jié)果如表4所示。
表4 不同模型參數(shù)量和模型內(nèi)存占用量比較Tab.4 Comparison of different model parameters and model sizes
由表4可知,本文方法與YOLO v6m方法相比模型內(nèi)存占用量減少45.4%,參數(shù)量減少43.8%;與YOLO v5m方法相比,模型內(nèi)存占用量減少7.6%,參數(shù)量減少7.8%;與YOLOX-S方法相比,參數(shù)量雖然略有提升,但模型內(nèi)存占用量減少43.1%;與TPH-YOLO v5方法相比,模型內(nèi)存占用量減少57.8%,參數(shù)量減少57.6%;與Faster R-CNN方法相比,模型內(nèi)存占用量減少92.5%,參數(shù)量減少了85.9%。綜上,本文方法在識別性能方面優(yōu)于對比方法,驗(yàn)證了本文方法的有效性。
為了驗(yàn)證本文提出的基于SNSS-YOLO v7的肉牛行為識別方法在肉牛不同密集程度下的識別效果,分別對輕微、中度和重度3種密集程度進(jìn)行了測試,測試結(jié)果如表5所示。輕微密集程度的肉牛數(shù)量少于5頭,且肉牛行為之間幾乎無遮擋;中度密集程度的肉牛數(shù)量在5~10頭之間,且部分肉牛行為之間存在遮擋;重度密集程度下的肉牛數(shù)量大于10頭,且肉牛行為之間互相遮擋。
表5 不同密集程度下肉牛行為識別效果對比Tab.5 Comparison of behavior recognition effect under different intensities %
由表5可知,輕微密集和中度密集程度下,本文方法可以較準(zhǔn)確地識別出肉牛行為;在重度密集情況下,肉牛行為的識別效果受到了較大的影響,因肉牛行為之間互相遮擋嚴(yán)重,導(dǎo)致精確率和mAP@0.5有所下降。
圖9為不同密集程度的肉牛行為識別結(jié)果。圖9a為輕微密集環(huán)境,肉牛站立行為和運(yùn)動(dòng)行為均被正確識別。圖9b為中度密集環(huán)境,肉牛站立、舔砥和躺臥行為均被準(zhǔn)確識別。圖9c為重度密集環(huán)境,兩只肉牛因遮擋嚴(yán)重導(dǎo)致躺臥行為被漏檢,其它探究、躺臥、站立、舔砥行為均被正確識別。
圖9 不同密集程度下的肉牛行為識別結(jié)果Fig.9 Results of beef cattle behavior recognition under different intensity levels
為了驗(yàn)證本文提出的基于SNSS-YOLO v7的肉牛行為識別方法的實(shí)用性,對不同光照情況下肉牛行為的識別效果進(jìn)行了測試,測試結(jié)果如圖10所示。
圖10 不同光照情況下肉牛行為識別結(jié)果Fig.10 Recognition results of beef cattle behavior under different lighting conditions
圖10a、10b光照較強(qiáng),圖像中的肉牛行為均被正確識別。圖10c中光線較弱且肉牛重度密集,導(dǎo)致圖像中的兩個(gè)站立行為被漏檢。圖10d中光線較暗且肉牛中度密集,圖像中的行為均被正確識別。
站立、運(yùn)動(dòng)和探究行為雖然相似,但可以反映肉牛的健康狀況,比如,患病的肉牛運(yùn)動(dòng)行為減少,這些相似行為對識別精度有一定影響。如果將站立、運(yùn)動(dòng)和探究行為合并為一類,則肉牛行為可分為爬跨、躺臥、舔砥、互斗及其他5類,測試結(jié)果如表6所示。
表6 不同行為類別數(shù)量識別效果比較Tab.6 Comparison of recognition effect of different behavior categories %
由表6可知,將站立、運(yùn)動(dòng)和探究3類相似行為歸為一類,精確率大幅提高,但無法準(zhǔn)確識別肉牛行為是站立、運(yùn)動(dòng)還是探究,導(dǎo)致無法及時(shí)掌握肉牛的健康狀況。詳細(xì)區(qū)分站立、運(yùn)動(dòng)和探究3類相似行為,精確率和mAP@0.5雖然略有下降,但仍然全部在90%以上,可以及時(shí)發(fā)現(xiàn)肉牛養(yǎng)殖過程中存在的異常情況,對于肉牛健康養(yǎng)殖具有重要作用。
(1)提出了一種基于SNSS-YOLO v7的肉牛行為識別方法。首先在YOLO v7的Neck部分使用Slim-Neck結(jié)構(gòu),有效降低模型復(fù)雜度;其次在YOLO v7的Head引入SEAM模塊,增強(qiáng)對Neck層輸出的響應(yīng)能力;最后使用SimSPPF模塊替換原YOLO v7的SPPCSPC模塊,在減小參數(shù)的同時(shí)進(jìn)一步增大感受野。試驗(yàn)結(jié)果表明,本文方法能有效識別肉牛的爬跨、躺臥、探究、站立、運(yùn)動(dòng)、舔砥和互斗7種行為,平均精度均值為95.2%,模型內(nèi)存占用量為39 MB,參數(shù)量為1.926×107,識別效果較好。
(2)與YOLO v7、YOLO v6m、YOLO v5m、YOLOX-S、TPH-YOLO v5和Faster R-CNN相比,模型內(nèi)存占用量分別減小47.9%、45.4%、7.6%、43.1%、57.8%和92.5%,平均精度均值分別提高1.4、2.2、3.1、13.7、1.9、4.5個(gè)百分點(diǎn)。表明本文方法行為識別效果更好。