楊斷利 王永勝 陳 輝 孫二東 王連增 寧 煒
(1.河北農(nóng)業(yè)大學(xué)信息科學(xué)與技術(shù)學(xué)院,保定 071001; 2.河北省農(nóng)業(yè)大數(shù)據(jù)重點實驗室,保定 071001;3.河北農(nóng)業(yè)大學(xué)動物科技學(xué)院,保定 071001; 4.農(nóng)業(yè)農(nóng)村部肉蛋雞養(yǎng)殖設(shè)施工程重點實驗室,保定 071001;5.河北桃木疙瘩農(nóng)業(yè)科技股份有限公司,保定 074300; 6.河北省蛋雞產(chǎn)業(yè)技術(shù)研究院,邯鄲 056007;7.成都小巨人畜牧設(shè)備有限公司,成都 611435)
我國蛋雞養(yǎng)殖業(yè)發(fā)展迅速,目前已經(jīng)成為雞蛋產(chǎn)量最多的國家[1-2]。隨著物質(zhì)生活的提高,人們對優(yōu)質(zhì)蛋白的市場需求也在不斷擴大,食品安全需要養(yǎng)殖業(yè)減抗、無抗生產(chǎn)[3]。健康養(yǎng)殖是實現(xiàn)無抗養(yǎng)殖的前提,家禽的行為信息與其生理健康狀況密切相關(guān)[4-5]。目前,對蛋雞健康狀況的監(jiān)測主要采用人工觀察的方式,此方法不僅需要大量的勞動力、效率低下,而且易受主觀因素影響。
近年來,國內(nèi)外學(xué)者在機器視覺技術(shù)識別動物行為研究領(lǐng)域開展了大量研究。李麗華等[6]通過K-means聚類算法實現(xiàn)了對本交籠種雞的采食、飲水、打斗、交配和振翅行為的識別。RIDDLE等[7]手動識別了圖像中的蛋雞站立、躺臥、棲息、拍打翅膀、沐浴灰塵等行為。勞鳳丹等[8]通過對蛋雞圖像的分割、形態(tài)學(xué)處理提取參數(shù)、利用貝葉斯分類的方法,實現(xiàn)了對單只蛋雞的運動、飲水、采食、修飾、抖動、休息、拍翅膀、探索、舉翅膀行為的識別。劉修林[9]利用最大類間方差法實現(xiàn)了復(fù)雜背景下的雞體分割,然后根據(jù)位置信息實現(xiàn)了啄食、飲水、運動、靜止行為的識別。XIAO等[10]通過改進活動輪廓模型,分割出籠養(yǎng)雞的圖像技術(shù),提出了一種利用雙目視覺系統(tǒng)獲取行為信息的檢測方法。ZHUANG等[11]首先從復(fù)雜背景中提取家禽目標(biāo),然后計算家禽骨架結(jié)構(gòu)、建立特征向量,對家禽是否處于啄食狀態(tài)進行了分析,同時利用支持向量機方法對家禽的健康狀況進行了評估。上述文獻在動物行為識別方面取得了相應(yīng)的進展,但這些研究方法均具有人工圖像分割、手動提取參數(shù)或特征的特點,分割效果依賴于人的主觀經(jīng)驗,無法保證分割精度的穩(wěn)定性。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,越來越多的學(xué)者開始嘗試將深度學(xué)習(xí)技術(shù)應(yīng)用于動物行為識別。王凱[12]提出了改進YOLO v3模型(TD-YOLO v3),實現(xiàn)了對蛋雞的采食、躺、站立、探索和修飾行為的檢測。WANG等[13]采用YOLO v3模型和遷移學(xué)習(xí)的方法,實現(xiàn)了對籠內(nèi)20只蛋雞的交配、站立、喂食、散步、打架和飲水6種行為的識別。MBELWA等[14]通過改進的卷積神經(jīng)網(wǎng)絡(luò)(CNN),并采用遷移學(xué)習(xí)的方法,通過對雞糞便的識別,實現(xiàn)了對患有疾病雞的檢測。ZHANG等[15]通過改進的ResNet模型(ResNet-FPN),實現(xiàn)了對病雞的檢測。WANG等[16]應(yīng)用RPN+ResNet模型根據(jù)糞便種類,實現(xiàn)對消化疾病的檢測,從而對雞的健康狀況進行預(yù)測。LIN等[17]利用Faster R-CNN模型實現(xiàn)了雞只運動和飲水行為的識別。不僅站立、采食、飲水、探索和梳羽行為能夠反映蛋雞的健康狀況,啄羽行為也能反映蛋雞的健康狀況[18]。上述文獻在蛋雞健康狀態(tài)的行為識別中,雞舍背景簡單且缺少對蛋雞啄羽行為的關(guān)注。
利用深度學(xué)習(xí)技術(shù)識別蛋雞行為,具有網(wǎng)絡(luò)模型自動提取行為特征、不需人工參與的特點,不僅能夠解決人工觀察法耗費大量勞動力的弊端,而且還能夠解決圖像處理法的分割效果依賴于人的主觀性、分割精度不穩(wěn)定的問題[19]。因此,本研究基于深度學(xué)習(xí)技術(shù),選用YOLO v5模型,通過引入SEAM注意力模塊和顯式視覺中心模塊(EVCBlock),對YOLO v5模型進行優(yōu)化,實現(xiàn)遮擋情況下的小個體蛋雞站立、采食、飲水、探索、啄羽和梳羽6種日常行為的自動識別,提升模型的識別精度。在行為識別的基礎(chǔ)上,進一步對蛋雞群體行為的變化規(guī)律進行統(tǒng)計分析。
本試驗于2022年9月7—24日在河北桃木疙瘩農(nóng)業(yè)科技股份有限公司中莊養(yǎng)殖基地長3 m、寬2 m、柱高1.2 m、頂高2 m的移動式雞舍內(nèi)飼養(yǎng)了20只健康狀態(tài)良好的太行山蛋雞,雞舍內(nèi)部放置一個食槽、一個飲水桶和一個產(chǎn)蛋箱,于每日09:00和15:00喂食、拾取雞蛋。試驗采用焦距為 2.8 mm、幀率為25 f/s、分辨率為2 560像素×1 920像素的??低?DS-2CD3T56FWDV2-15)廣角攝像頭對蛋雞每日09:00—18:00間的日常行為進行錄制,并通過網(wǎng)線將數(shù)據(jù)傳輸?shù)饺萘繛?TB的??低暰W(wǎng)絡(luò)硬盤錄像機(DS-7804N-K1/4P(D))中。攝像頭安裝在雞舍內(nèi)部中間頂部,距地面2 m,垂直向下拍攝[20]。采集環(huán)境如圖1所示。
圖1 采集環(huán)境
本文選擇蛋雞站立、采食、飲水、探索、啄羽和梳羽共6種與蛋雞健康狀況評估相關(guān)的行為作為研究對象,蛋雞行為判定標(biāo)準(zhǔn)如表1所示,各行為示例如圖2所示。
表1 蛋雞行為判定標(biāo)準(zhǔn)
圖2 各行為示例圖
利用幀提取的方法每隔30幀提取1幅圖像,隨機選擇不同時間下的圖像作為蛋雞日常行為識別數(shù)據(jù)集。數(shù)據(jù)集中圖像的質(zhì)量會顯著影響模型的訓(xùn)練效果[21],因此,需要對提取出的圖像進行數(shù)據(jù)清洗,去除模糊圖像。最后利用LabelImg工具對蛋雞日常行為識別數(shù)據(jù)集進行標(biāo)注,制作成Pascal VOC[22]格式數(shù)據(jù)集,并按照7∶2∶1的比例劃分為訓(xùn)練集、驗證集和測試集。
為了避免模型過擬合,增強算法的魯棒性[23],本文采用離線增強方式,隨機選擇旋轉(zhuǎn)、縮放、鏡像的方式對訓(xùn)練集中的圖像進行數(shù)據(jù)增強。數(shù)據(jù)增強后的樣本如圖3所示。
圖3 數(shù)據(jù)增強效果圖
經(jīng)過數(shù)據(jù)預(yù)處理后,蛋雞日常行為識別數(shù)據(jù)集共包括3 019幅圖像。如圖3所示,同時對原圖像進行了鏡像、旋轉(zhuǎn)和縮放操作,增加了圖像的多樣性。試驗總體流程圖如圖4所示。
如圖4所示,整個試驗首先進行數(shù)據(jù)采集,獲得蛋雞日常行為圖像,其次對圖像進行預(yù)處理操作,為模型訓(xùn)練做準(zhǔn)備。經(jīng)模型訓(xùn)練后,進行性能測試和結(jié)果分析。
YOLO v5模型兼顧了推理速度和檢測精度[24],根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)的深度和寬度的不同,將YOLO v5模型分為YOLO v5n、YOLO v5s、YOLO v5m、YOLO v5l和YOLO v5x共5個版本。為了選取合適的版本,使用本試驗的蛋雞日常行為識別數(shù)據(jù)集分別訓(xùn)練上述5個模型,利用測試集進行識別效果評估,不同版本的YOLO v5模型檢測精度對比如表2所示。
表2 不同版本的YOLO v5模型檢測精度對比
從表2可知,YOLO v5s模型對蛋雞日常行為識別的精確率為81.55%,召回率為76.52%,F1值為78.95%,平均精度均值為82.31%,參數(shù)量為7.03×106。與YOLO v5n模型相比,精確率、召回率、F1值和平均精度均值分別提升10.73、6.50、8.53、10.25個百分點,參數(shù)量僅增加 5.26×106,與YOLO v5m、YOLO v5l以及YOLO v5x模型相比,雖然平均精度均值降低了0.58、1.26、1.83個百分點,但是參數(shù)量分別減少 1.384×107、3.911×107、7.918×107。綜合模型檢測精度和模型復(fù)雜度,本文選取YOLO v5s模型作為蛋雞日常行為識別基本模型。YOLO v5s模型結(jié)構(gòu)如圖5 所示。
圖5 YOLO v5s模型結(jié)構(gòu)圖
YOLO v5s模型包括輸入、特征提取、特征融合和輸出4部分。輸入部分用于向模型輸入預(yù)先處理好的蛋雞圖像;特征提取部分采用了CSPDarknet53結(jié)構(gòu),用于提取目標(biāo)的語義信息;特征融合部分使用了PAN結(jié)構(gòu),用于對特征提取部分提取到的特征進行處理[25],融合不同尺度信息,增強特征的表達;輸出部分共包括3個分支,特征圖尺寸分別為80像素×80像素、40像素×40像素和 20像素×20像素,分別用于識別小、中、大目標(biāo),并進行輸出。
針對雞只個體目標(biāo)較小、蛋雞之間重疊遮擋導(dǎo)致的有效特征不足、丟失、遺漏、行為識別效果不理想的問題,本文以YOLO v5s模型為基礎(chǔ),通過引入SEAM注意力模塊和顯式視覺中心模塊,構(gòu)建改進YOLO v5s模型(SEEC-YOLO v5s),增強模型特征提取能力,提升行為識別精度。優(yōu)化后的SEEC-YOLO v5s模型結(jié)構(gòu)如圖6所示。
在圖6中的輸出部分加入SEAM注意力模塊[26](圖6中的改進1),將特征融合部分的3個不同尺度輸出層與輸出部分的3個檢測頭進行連接,解決蛋雞之間因為遮擋導(dǎo)致的有效特征丟失問題。在特征融合部分的特征金字塔網(wǎng)絡(luò)(FPN)結(jié)構(gòu)中加入顯式視覺中心模塊(EVCBlock)[27](圖6中的改進2),解決雞只目標(biāo)較小、有效特征不足、容易被遺漏的問題。
2.2.1SEAM注意力模塊
蛋雞個體間的遮擋會導(dǎo)致雞體局部混疊、重要特征缺失[26]。利用SEAM模塊,將YOLO v5s模型特征融合部分的3個不同尺度輸出層與輸出部分的3個檢測頭進行連接,可突出圖像中的蛋雞區(qū)域,弱化背景區(qū)域,實現(xiàn)多尺度下的蛋雞日常行為檢測。SEAM模塊結(jié)構(gòu)圖如圖7所示。
SEAM模塊的第1部分是帶有殘差連接的深度可分離卷積。深度可分離卷積不僅能減少模型的參數(shù)量,而且還可以利用逐通道運算,學(xué)習(xí)多個不同通道的重要特征,提升模型的特征提取能力。但是深度可分離卷積在學(xué)習(xí)不同通道的重要特征時,由于沒有考慮通道之間的特征聯(lián)系,所以對不同通道的特征提取并不充分。因此,為了彌補深度可分離卷積的不足,SEAM模塊在不同深度可分離卷積的輸出后進行了逐點卷積操作,最后通過一個兩層的全連接網(wǎng)絡(luò)融合各通道的特征,實現(xiàn)了所有通道之間的連接。第2部分是將全連接層的輸出結(jié)果通過指數(shù)函數(shù)進行處理,并將取值范圍從[0,1]擴大到[1,e],使得上一步學(xué)習(xí)到的被遮擋蛋雞的有效特征與無遮擋的有效特征相互聯(lián)系,最后將SEAM模塊的輸出作為特征與原始特征相乘,使模型能夠有效地解決蛋雞個體間遮擋帶來的有效特征丟失的問題。
2.2.2顯式視覺中心模塊
蛋雞個體目標(biāo)較小,有效特征不足且容易產(chǎn)生遺漏,致使模型識別精度較低。為了盡可能多地提取蛋雞個體有效特征,本文在特征融合部分的FPN結(jié)構(gòu)中加入了顯式視覺中心模塊(EVCBlock)。EVCBlock模塊結(jié)構(gòu)如圖8所示。
圖8 EVCBlock模塊結(jié)構(gòu)圖
EVCBlock模塊主要包括輕量級MLP和可學(xué)習(xí)的視覺中心機制,輕量級的MLP用來獲取模型中EVCBlock模塊上一層傳入特征X4的全局特征信息,可學(xué)習(xí)的視覺中心機制用于聚合模型中EVCBlock模塊上一層傳入特征X4的局部區(qū)域特征信息。EVCBlock模塊將獲得的全局特征信息和局部區(qū)域特征信息沿著通道維度進行拼接,生成最后的特征。由于EVCBlock模塊學(xué)習(xí)的特征中不僅包括全局的特征信息,還包括局部區(qū)域的特征信息,特征信息較豐富,因此,能夠解決蛋雞個體目標(biāo)較小、特征遺漏的問題。
EVCBlock模塊并未直接對模型中EVCBlock模塊上一層的傳入特征X4進行操作,而是先將上一層的傳入特征X4通過Stem模塊進行操作,然后再對經(jīng)過Stem模塊處理后的特征進行操作。
Stem模塊依次通過卷積核為7×7、輸出通道數(shù)為256的卷積操作、批歸一化(Batch normalization)操作,并使用ReLU作為激活函數(shù)。Stem模塊主要用于對模型中EVCBlock模塊上一層的傳入特征X4進行特征平滑。
EVCBlock模塊的計算公式為
X=Concat(MLP(Xin);LVC(Xin))
(1)
其中
Xin=σ(BN(Conv7×7(X4)))
(2)
式中X——EVCBlock模塊的輸出
Concat()——沿channel維度的特征圖拼接操作
MLP(Xin)——使用輕量級MLP的輸出特征
LVC(Xin)——使用可學(xué)習(xí)的視覺中心機制的輸出特征
Xin——Stem模塊的輸出
σ()——ReLU激活函數(shù)
當(dāng)談到醫(yī)養(yǎng)結(jié)合的現(xiàn)實問題,才40歲出頭的張振美捋了捋頭上的白頭發(fā),“就是為了辦個社區(qū)醫(yī)療機構(gòu)的手續(xù),我都不知道咨詢了多少人,跑了多少腿了?!遍_始時,張振美想在養(yǎng)老服務(wù)中心開設(shè)個醫(yī)務(wù)室或診所,這樣可以解決入住老人的基本醫(yī)護問題。普通人會認為,我只需聘請持證的專業(yè)醫(yī)護人員就可以了,但實際沒這么簡單:“醫(yī)療機構(gòu)的負責(zé)人必須由專人擔(dān)任,比如我想從某家知名大醫(yī)院聘請一位退休醫(yī)療專家來擔(dān)任醫(yī)療機構(gòu)負責(zé)人,按審批相關(guān)規(guī)定,所聘請的這位專家必須先解除與大醫(yī)院的身份關(guān)系,再把關(guān)系轉(zhuǎn)至我們這家內(nèi)設(shè)醫(yī)療機構(gòu)才符合要求,如此這樣一來,我們想聘請有經(jīng)驗的老專家顯然是比較困難的。”
BN()——批歸一化層操作
Conv7×7——卷積核為7×7、步幅為1、輸出通道數(shù)為256的卷積操作
本研究所用的硬件配置和試驗環(huán)境如表3所示。使用相同的蛋雞日常行為數(shù)據(jù)集分別對YOLO v5的5個版本模型、Faster R-CNN、YOLO X-s、YOLO v4-tiny、YOLO v7-tiny以及SEEC-YOLO v5s模型進行訓(xùn)練。試驗所采用的超參數(shù):輸入圖像尺寸為640像素×640像素,訓(xùn)練批量大小(Batch size)為8,迭代周期(Epoch)為100,線程數(shù)(num workers)為8,初始學(xué)習(xí)率(Initial learning rate)為0.01,動量因子(Momentum)為0.937,優(yōu)化器為隨機梯度(SGD),利用最優(yōu)權(quán)重對模型進行評價。
表3 硬件配置和試驗環(huán)境
本文利用精確率(Precision,P)、召回率(Recall,R)、平均精度(Average precision,AP)、F1值、平均精度均值(Mean average precision,mAP)和參數(shù)量對模型性能進行評估。
精確率表示正確檢測出的目標(biāo)與識別出的所有目標(biāo)的比值,召回率表示檢測出為正類且真實類別也為正類的目標(biāo)數(shù)量與真實類別為正類的所有目標(biāo)總數(shù)的比值,平均精度表示對每個類檢測的結(jié)果,F1值表示精確率和召回率的調(diào)和平均值,平均精度均值表示對所有類別的檢測結(jié)果。
在日常生活中,可以對蛋雞群體進行各種行為的持續(xù)時間統(tǒng)計,從而判斷蛋雞的生活習(xí)性,并分析其健康狀況,為蛋雞福利養(yǎng)殖提供借鑒[28]。
通過對幀速率計算公式的變換,可以實現(xiàn)對蛋雞日常行為持續(xù)時間的統(tǒng)計,即利用SEEC-YOLO v5s模型對蛋雞的日?;顒右曨l進行識別,并對各種行為的識別結(jié)果進行統(tǒng)計,通過檢測出的各行為視頻幀數(shù)與視頻幀率的比值,獲得各種日常行為的持續(xù)時間T(單位為min)。
為了驗證不同模型對蛋雞日常行為識別的效果,采用相同的蛋雞日常行為識別數(shù)據(jù)集分別對Faster R-CNN模型、YOLO X-s模型、YOLO v4-tiny模型、YOLO v7-tiny模型、YOLO v5s模型以及本文模型(SEEC-YOLO v5s)進行訓(xùn)練,利用精確率、召回率、F1值、平均精度均值和參數(shù)量進行效果評估,試驗結(jié)果如表4所示。
表4 不同模型識別結(jié)果對比
從表4可以看出,SEEC-YOLO v5s模型對蛋雞日常行為識別的精確率、召回率、F1 值、平均精度均值以及參數(shù)量分別為82.34%、81.30%、81.82%、84.65%和1.279×107。在檢測精度方面,精確率、F1值和平均精度均值比Faster R-CNN模型分別高17.54、9.49、4.30個百分點,比YOLO X-s模型分別高6.60、2.83、3.06個百分點,比YOLO v4-tiny模型分別高5.61、8.39、7.11個百分點,比YOLO v7-tiny 模型分別高5.61、3.93、2.99個百分點,比YOLO v5s模型分別高0.79、2.87、2.34個百分點。SEEC-YOLO v5s模型的召回率略低于Faster R-CNN模型和YOLO X-s模型,與YOLO v4-tiny模型、YOLO v7-tiny模型和YOLO v5s模型相比分別高7.65、2.21、4.78個百分點。在模型復(fù)雜度方面,SEEC-YOLO v5s模型參數(shù)量與其他模型相近,僅為Faster R-CNN模型參數(shù)量的10.70%。因此,從檢測精度和模型復(fù)雜度兩方面綜合來看,SEEC-YOLO v5s模型在蛋雞日常行為檢測方面更有優(yōu)勢。
從表5中可以看出,SEEC-YOLO v5s模型對蛋雞的采食行為的識別精度最高,達到98.46%,對啄羽行為的識別精度最低,僅為67.52%,分析原因可能是啄羽行為在所有行為中屬于少數(shù)異常行為,采集得到的數(shù)據(jù)集中啄羽行為占比只有3.68%,因此基于深度學(xué)習(xí)算法對啄羽行為的識別精度普遍偏低,可通過長時間采集大量啄羽行為訓(xùn)練模型來提升啄羽行為的識別精度。SEEC-YOLO v5s模型對采食、探索、啄羽和梳羽4種行為的識別精度均高于其他模型,SEEC-YOLO v5s模型對4種行為的識別精度最少提高1.23個百分點,最高提高13.37個百分點。SEEC-YOLO v5s模型對站立行為的識別精度比YOLO X-s和YOLO v5s模型低0.47、1.21個百分點,對飲水行為的識別精度比Faster R-CNN和YOLO X-s模型低3.80、0.79個百分點??傮w而言,SEEC-YOLO v5s模型對蛋雞日常行為的識別具有一定的優(yōu)勢。
隨機從本試驗的蛋雞日常行為識別數(shù)據(jù)集中選擇1幅圖像,分別利用Faster R-CNN、YOLO X-s、YOLO v4-tiny、YOLO v7-tiny、YOLO v5s和本文模型(SEEC-YOLO v5s)對此圖像進行識別,識別效果如圖9所示。
通過對比發(fā)現(xiàn),如圖9a中的紅色箭頭所示,Faster R-CNN模型誤將1只蛋雞行為識別為2種行為,如綠色箭頭所示,也誤識別出了雞舍外部不屬于本試驗的蛋雞。如圖9b中紅色箭頭所示,YOLO X-s模型雖然正確識別了蛋雞的行為,但是與圖9f本文模型相比,識別的置信度較低。如圖9c中紅色箭頭所示,YOLO v4-tiny模型存在多處漏檢行為,如藍色箭頭所示,誤將探索和站立的蛋雞識別為了站立和梳羽行為。如圖9d中紅色箭頭所示,當(dāng)?shù)半u被遮擋時,YOLO v7-tiny模型的目標(biāo)置信度較SEEC-YOLO v5s模型更低;如圖9e中紅色箭頭所示,YOLO v5s模型對蛋雞日常行為識別存在多處漏檢行為;圖9f中的SEEC-YOLO v5s模型能夠準(zhǔn)確識別出雞舍內(nèi)部每只蛋雞的行為。
綜上所述,Faster R-CNN模型對蛋雞日常行為識別存在多處將1只蛋雞誤識別為2種行為的情況,表明Faster R-CNN模型對蛋雞日常行為識別能力較差;YOLO X-s和YOLO v7-tiny模型在蛋雞存在遮擋情況下置信度較低,表明YOLO X-s和YOLO v7-tiny模型在遮擋情況下,對目標(biāo)特征的學(xué)習(xí)能力較弱;YOLO v4-tiny和YOLO v5s模型存在多處漏檢情況,表明YOLO v4-tiny和YOLO v5s模型對較小目標(biāo)的識別能力不足。因此,從檢測精度、模型復(fù)雜度和識別效果3方面來看,SEEC-YOLO v5s模型對蛋雞日常行為識別的總體效果最好。
利用本文數(shù)據(jù)集,使用平均精度均值和各類別的平均精度指標(biāo),對YOLO v5s、YOLO v5s+SEAM、YOLO v5s+EVCBlock和 SEEC-YOLO v5s模型,通過消融試驗進行識別效果對比,進一步驗證SEEC-YOLO v5s模型的性能,試驗結(jié)果如表6所示。
表6 消融試驗結(jié)果對比
通過表6可以發(fā)現(xiàn),YOLO v5s+SEAM模型和YOLO v5s+EVCBlock模型對蛋雞6種行為識別的平均精度均值與YOLO v5s模型相比,分別提高0.75、1.91個百分點。其中,YOLO v5s+SEAM模型對站立、采食、飲水和探索行為識別的平均精度較YOLO v5s模型分別提高0.07、0.11、2.69、0.08個百分點;YOLO v5s+EVCBlock模型對站立、采食、飲水、啄羽和梳羽行為識別的平均精度較YOLO v5s模型分別提高1.67、0.97、4.52、1.29、3.60個百分點,表明添加SEAM注意力模塊和EVCBlock模塊后均能對蛋雞日常行為的識別有一定的促進作用。
與YOLO v5s模型相比,SEEC-YOLO v5s模型對站立行為識別的平均精度有所降低,分析原因在于,蛋雞個體間存在遮擋,在視覺上腿部呈現(xiàn)不明顯,致使區(qū)分站立行為的有效特征變少,因此,對站立行為識別結(jié)果有所降低。對采食、飲水、探索、啄羽和梳羽行為識別結(jié)果均有所提升,表明SEEC-YOLO v5s模型對蛋雞日常行為識別效果有明顯提升。
Gard-CAM可以將模型對蛋雞行為特征的學(xué)習(xí)程度以熱力圖的方式顯示[29-30],特征圖可視化也可以直接顯示出模型對重要信息的學(xué)習(xí)能力。因此,為了進一步檢驗本文模型(SEEC-YOLO v5s)對蛋雞日常行為識別的有效性,隨機選擇1幅圖像,分別利用YOLO v5s模型和SEEC-YOLO v5s模型對輸出部分的3種不同尺度的輸出層進行特征圖可視化和熱力圖顯示,結(jié)果分別如圖10、11所示。
圖10 特征圖可視化結(jié)果對比
圖10a~10c為YOLO v5s模型在輸出層P3、P4、P5的可視化結(jié)果,圖10d~10f為本文模型在輸出層P3、P4、P5的可視化結(jié)果。通過對比兩個模型在P3輸出層的可視化結(jié)果發(fā)現(xiàn),本文模型對蛋雞小目標(biāo)特征的識別效果更明顯,學(xué)習(xí)的特征更豐富,在輸出層P4、P5中,本文模型的可視化效果也均優(yōu)于YOLO v5s模型。
圖11a~11c為YOLO v5s模型在上述隨機選擇的圖像上通過Gard-CAM對P3、P4、P5輸出層進行熱力圖顯示的結(jié)果,圖11d~11f為本文模型在上述隨機選擇的圖像上通過Gard-CAM對輸出層P3、P4、P5進行熱力圖顯示的結(jié)果。通過對比兩模型在輸出層P3和P4的熱力圖發(fā)現(xiàn),本文模型對蛋雞目標(biāo)區(qū)域的熱力較高,對無關(guān)區(qū)域的熱力較低,能夠更好地學(xué)習(xí)蛋雞日常行為特征。綜上所述,從識別精度和特征圖可視化以及熱力圖顯示的效果分析,再一次證明了本文模型對蛋雞日常行為識別的效果更優(yōu)。
圖11 熱力圖效果對比
為了驗證本文模型對不同遮擋情況下小個體蛋雞行為的檢測性能,從測試集中隨機選取2幅不同遮擋情況下的蛋雞圖像,并利用YOLO v5s和本文模型(SEEC-YOLO v5s)進行檢測。結(jié)果如圖12所示。
圖12 不同遮擋情況下檢測效果
對比圖12a、12b中黃色圈所標(biāo)注的蛋雞檢測結(jié)果可以發(fā)現(xiàn),在無遮擋的情況下,YOLO v5s模型將處于站立行為的蛋雞誤識別為站立和探索兩種行為,而本文模型準(zhǔn)確識別出了蛋雞的站立行為。對比圖12a、12b中藍色圈所標(biāo)注的蛋雞檢測結(jié)果可以發(fā)現(xiàn),當(dāng)?shù)半u只顯示出了頭部和尾部,身體部分被另一只蛋雞嚴(yán)重遮擋時,YOLO v5s模型雖然識別出了被遮擋蛋雞的行為,但是對蛋雞定位時只定位出了尾部,蛋雞的頭部被遺漏(如圖12a中藍色箭頭處),影響最終的識別精度,本文模型不僅準(zhǔn)確識別出了蛋雞的行為,而且相較于YOLO v5s模型,對被嚴(yán)重遮擋的蛋雞定位也更準(zhǔn)確。
對比圖12c、12d中粉色圈1所標(biāo)注的蛋雞檢測結(jié)果可以發(fā)現(xiàn),當(dāng)某只蛋雞的尾部被其他蛋雞輕微遮擋時,雖然YOLO v5s模型和本文模型均識別出了被遮擋蛋雞的行為,但是YOLO v5s模型識別的置信度(0.85)低于本文模型的置信度(0.87);對比粉色圈2所標(biāo)注的蛋雞檢測結(jié)果可以發(fā)現(xiàn),當(dāng)?shù)半u的腹部被完全遮擋時,YOLO v5s模型出現(xiàn)了誤識別現(xiàn)象,而本文模型準(zhǔn)確識別出了蛋雞所處的行為。
綜上所述,在無遮擋、蛋雞腹部或尾部被其他雞只輕微遮擋或者是蛋雞的身體被嚴(yán)重遮擋,只剩下頭部和尾部情況下,本文模型均能夠準(zhǔn)確檢測出蛋雞的行為,而YOLO v5模型均出現(xiàn)了一定的誤檢現(xiàn)象,表明本文模型在不同遮擋情況下對蛋雞日常行為的檢測效果更優(yōu)。
試驗期間雞群視頻錄制時間為每日09:00—18:00,喂食時間為每日09:00和15:00。為了分析雞群各行為不同時間段的變化規(guī)律,隨機選取連續(xù)4 d的視頻錄像,并將每天錄像每隔30 min劃分1個時間段,共18個時間段。利用本文模型對劃分后的蛋雞視頻錄像進行識別,求得4 d內(nèi)18個時間段的平均值,并按照2.5節(jié)所述的持續(xù)時間統(tǒng)計方法將識別出的幀數(shù)轉(zhuǎn)換為持續(xù)時間并進行分析。結(jié)果如表7和圖13所示。
表7 蛋雞各行為的持續(xù)時間統(tǒng)計
圖13 不同時間段蛋雞各行為持續(xù)時間
觀察表7和圖13發(fā)現(xiàn),蛋雞的飲水、探索和啄羽行為在各時間段持續(xù)時間基本保持穩(wěn)定。站立行為在11:00—15:30時間段持續(xù)時間高于其他時間段,推測可能與溫度有關(guān),溫度較高的時間段,站立行為持續(xù)時間較其他時間段會更長。采食行為在11:00—15:00和16:30—18:00期間持續(xù)時間明顯低于其他時間段。梳羽行為在11:30—16:00區(qū)間內(nèi)持續(xù)時間明顯較低。統(tǒng)計結(jié)果為依據(jù)行為規(guī)律判斷蛋雞健康狀態(tài)奠定了基礎(chǔ)。
為了分析每天09:00—18:00期間蛋雞6種日常行為之間的變化規(guī)律,利用本文模型對選取的連續(xù)4 d視頻錄像進行行為識別,利用2.5節(jié)提出的持續(xù)時間統(tǒng)計方法分別對每天蛋雞6種行為持續(xù)時間進行統(tǒng)計,結(jié)果如表8所示,全天內(nèi)各行為持續(xù)時間對比如圖14所示。
表8 全天內(nèi)蛋雞日常行為發(fā)生時間
圖14 全天內(nèi)各行為持續(xù)時間對比
通過觀察圖14可知,在這4 d中,每天每種蛋雞日常行為持續(xù)時間基本保持相同,站立、采食、飲水、探索、啄羽和梳羽6種行為持續(xù)的平均時間分別為4 534.55、1 723.76、126.64、2 529.88、105.00、1 243.28 min,占蛋雞整天活動時間的比值分別為44.18%、16.80%、1.23%、24.65%、1.02%、12.11%。一天當(dāng)中,站立行為持續(xù)時間最長,飲水和啄羽行為持續(xù)時間最短。站立行為持續(xù)時間比其它5種行為持續(xù)時間分別長2 810.78、4 407.90、2 004.66、4 429.55、3 291.27 min。通過對比可知,在一天當(dāng)中,蛋雞大部分時間會處于站立和探索狀態(tài),這兩種行為占每天活動時間的68.83%,上述統(tǒng)計結(jié)果為通過統(tǒng)計蛋雞各行為持續(xù)時間評估蛋雞健康狀況提供了數(shù)據(jù)依據(jù)。
蛋雞的健康狀態(tài)影響著養(yǎng)殖戶的經(jīng)濟效益,為了便于觀察蛋雞行為,本試驗利用PyQt5對SEEC-YOLO v5s模型進行封裝、打包,制作了蛋雞日常行為識別與顯示系統(tǒng),實現(xiàn)了對蛋雞行為的自動監(jiān)測。
蛋雞日常行為識別與統(tǒng)計系統(tǒng)的總體框架如圖15所示,主要包括數(shù)據(jù)獲取、蛋雞日常行為識別、參數(shù)設(shè)置和顯示。
圖15 蛋雞日常行為識別與顯示系統(tǒng)總體框架圖
數(shù)據(jù)獲取部分是用于選擇數(shù)據(jù)獲取的主要渠道,包括本地文件獲取和攝像頭調(diào)用2種方式。蛋雞日常行為識別部分通過調(diào)用訓(xùn)練好的模型,對數(shù)據(jù)獲取部分送入的數(shù)據(jù)進行識別,并對當(dāng)前幀圖像中識別出的各行為總持續(xù)時間進行統(tǒng)計;參數(shù)設(shè)置部分包括權(quán)重文件選擇、IoU閾值、置信度閾值調(diào)整;顯示部分是對原始數(shù)據(jù)、識別效果和當(dāng)前幀圖像中識別出的各行為持續(xù)時間的顯示。
如圖16所示,用戶進入蛋雞日常行為識別與顯示系統(tǒng)主界面后,在數(shù)據(jù)獲取部分選擇獲取識別數(shù)據(jù)的方式,在參數(shù)設(shè)置部分選擇訓(xùn)練好的權(quán)重文件,并對置信度閾值和NMS閾值進行調(diào)整,通過點擊播放按鈕啟動蛋雞日常行為識別,識別效果會顯示在顯示部分,識別效果如圖17所示。
圖16 系統(tǒng)主界面
圖17 識別效果圖
如圖17所示,當(dāng)完成對蛋雞日常行為識別后,會在系統(tǒng)頁面最左端,“結(jié)果顯示”下方顯示出識別出的各種行為雞只個數(shù)。此幅圖像識別結(jié)果為:探索行為有7只蛋雞,站立行為有7只蛋雞,啄羽行為有2只蛋雞,采食行為有2只蛋雞,梳羽行為有1只蛋雞。
(1)提出了一種基于SEEC-YOLO v5s的蛋雞日常行為識別方法。通過在YOLO v5s模型的輸出部分引入SEAM結(jié)構(gòu),突出了圖像中的蛋雞區(qū)域,弱化了背景區(qū)域,改善了YOLO v5s模型對遮擋目標(biāo)識別精度較低的問題,通過在特征融合部分加入EVCBlock模塊,解決了蛋雞目標(biāo)較小,特征易被遺漏的問題。本文改進的SEEC-YOLO v5s模型對蛋雞6種日常行為識別的平均精度均值為84.65%,其中對采食行為識別的平均精度達到98.46%。對比YOLO v5s、Faster R-CNN、YOLO X-s、YOLO v4-tiny 和YOLO v7-tiny模型,6種行為的平均精度均值分別提高2.34、4.30、3.06、7.11、2.99個百分點。
(2)提出了一種基于視頻幀數(shù)與視頻幀率比值計算蛋雞日常行為持續(xù)時間的統(tǒng)計方法,并分析了一天當(dāng)中不同時間段下的蛋雞群體各行為和一整天內(nèi)蛋雞6種日常行為的變化規(guī)律。試驗結(jié)果表明:每天每種日常行為持續(xù)時間基本保持相同,6種行為平均時間占蛋雞整天活動時間的44.18%、16.80%、1.23%、24.65%、1.02%和12.11%。一天當(dāng)中,站立行為持續(xù)時間最長,飲水和啄羽行為持續(xù)時間最短;蛋雞站立和探索行為占每天活動時間的68.83%。利用PyQt5對本文模型進行了封裝、打包,制作了蛋雞日常行識別與統(tǒng)計系統(tǒng),為蛋雞的日常行為監(jiān)測和健康狀況評估提供了技術(shù)手段。