戴百生 ,李潤澤,張逸軒,劉洪貴,劉潤澤
(1 東北農(nóng)業(yè)大學(xué) 電氣與信息學(xué)院,哈爾濱 150030;2 農(nóng)業(yè)農(nóng)村部生豬養(yǎng)殖設(shè)施工程重點(diǎn)實驗室,哈爾濱 150030;3 東北農(nóng)業(yè)大學(xué) 動物科學(xué)技術(shù)學(xué)院,哈爾濱 150030)
隨著生豬養(yǎng)殖規(guī)模化程度的日益提高,養(yǎng)殖標(biāo)準(zhǔn)化、精細(xì)化以及養(yǎng)殖場管理現(xiàn)代化,已成為生豬養(yǎng)殖行業(yè)未來發(fā)展的必然趨勢。實現(xiàn)生豬的精準(zhǔn)養(yǎng)殖與規(guī)模化豬場的現(xiàn)代化管理,亟需對生豬的個體身份、健康狀態(tài)、行為模式進(jìn)行智能化的感知與理解。而生豬臉部正是區(qū)分其個體信息、反應(yīng)其情緒狀態(tài)與行為意圖的重要區(qū)域。利用計算機(jī)視覺技術(shù)對生豬臉部進(jìn)行非接觸式快速、準(zhǔn)確的自動檢測,是實現(xiàn)生豬現(xiàn)代化養(yǎng)殖與管理的重要手段。
目前,國內(nèi)外已有一些關(guān)于生豬臉部檢測與識別方面的研究。Wada 等人通過手工定位并分割出生豬臉部等區(qū)域,借助人臉識別領(lǐng)域經(jīng)典的Eigenfaces 方法,實現(xiàn)對生豬個體的身份識別。秦興等人同樣采用手工定位的方式,在提取出生豬臉部圖像后,通過訓(xùn)練雙線性卷積神經(jīng)網(wǎng)絡(luò)(Bilinear-CNN)對其個體身份進(jìn)行識別。為了提高生豬臉部識別的實用性,Marsot 等人則采用Haar 級聯(lián)分類器,對生豬臉部進(jìn)行自動檢測,針對檢測出的生豬臉部圖像區(qū)域,訓(xùn)練CNN模型完成對生豬個體身份的識別。燕紅文等人為了提高生豬臉部定位精度,進(jìn)一步將注意力機(jī)制與Tiny-YOLO模型相結(jié)合,在實現(xiàn)生豬臉部檢測的同時,識別生豬臉部的不同姿態(tài)。Hansen 等人則利用Mask-RCNN模型,對生豬臉部區(qū)域進(jìn)行檢測與分割,并結(jié)合生豬眼部區(qū)域特征,對生豬情緒狀態(tài)進(jìn)行監(jiān)測,以判斷生豬是否處于焦慮狀態(tài)。
雖然上述研究在生豬臉部檢測方面取得了一定成功,但多數(shù)方法仍不能較好地處理復(fù)雜場景下的生豬臉部檢測,難以滿足不同養(yǎng)殖條件下生豬的實時監(jiān)測需求。特別是在真實飼養(yǎng)環(huán)境中,生豬臉部區(qū)域通常會被養(yǎng)殖設(shè)施和其他個體遮擋,導(dǎo)致在視頻畫面中臉部區(qū)域顯示不完整,或由于生豬自身的運(yùn)動,造成臉部姿態(tài)的旋轉(zhuǎn)、扭曲等視角變化的多樣性。這些因素都會給生豬臉部的自動檢測算法在真實應(yīng)用場景下帶來不利影響。
為了提高生豬目標(biāo)檢測的精度、速度和實用性,本文首先構(gòu)建了包含限位欄和群養(yǎng)兩種真實飼養(yǎng)環(huán)境下的生豬臉部檢測數(shù)據(jù)集,用于生豬臉部目標(biāo)檢測算法的訓(xùn)練與測試;其次,本文基于NanoDet 架構(gòu),提出了一種融合視覺上下文與跨通道信息的生豬臉部輕量化檢測。在應(yīng)用輕量化特征提取骨干網(wǎng)絡(luò)的同時,設(shè)計了Nonlocal-PAN 特征融合模塊,來融合圖像內(nèi)部的上下文信息與跨通道信息,并采用Anchor-Free(無錨點(diǎn))目標(biāo)檢測結(jié)構(gòu),對生豬臉部進(jìn)行檢測,以提高對存在遮擋、視角變化等復(fù)雜情況下的生豬目標(biāo)檢測的準(zhǔn)確性、實時性和實用性。
本文構(gòu)建的生豬臉部檢測圖像數(shù)據(jù),采集自東北農(nóng)業(yè)大學(xué)阿城實驗實習(xí)基地豬場。為獲取不同養(yǎng)殖環(huán)境下的生豬臉部圖像數(shù)據(jù),于2020 年7 月~10 月,分別選取了該豬場限位欄飼養(yǎng)條件下的妊娠豬舍和群養(yǎng)條件下的保育豬舍進(jìn)行視頻和圖像數(shù)據(jù)采集。針對限位欄下的妊娠母豬,通過??低暠O(jiān)控攝像頭,固定角度拍攝5個欄位妊娠母豬共計5個批次的視頻場景數(shù)據(jù);針對群養(yǎng)環(huán)境下的保育豬,利用VIVO手機(jī),非定點(diǎn)移動拍攝12個群養(yǎng)欄中約120 頭保育豬圖像場景數(shù)據(jù)。采集到的限位欄和群養(yǎng)條件下的生豬場景數(shù)據(jù)分別如圖1(a)、(b)所示。
圖1 不同養(yǎng)殖環(huán)境下生豬場景數(shù)據(jù)示例Fig.1 Illustrations of pigs in different breeding condition
針對限位欄下妊娠母豬視頻數(shù)據(jù),對其進(jìn)行視頻幀解析處理,每隔5 s 進(jìn)行視頻幀的抽取,獲得分辨率為2 560×1 440像素的圖像數(shù)據(jù);針對群養(yǎng)環(huán)境下保育豬圖像數(shù)據(jù),將圖像尺寸統(tǒng)一調(diào)整分辨率為768×1 024像素。分別從兩種不同養(yǎng)殖條件下的生豬圖像中,各隨機(jī)選取2 000 幅,共同構(gòu)成生豬臉部檢測數(shù)據(jù)集,共計4 000 幅圖像數(shù)據(jù)。對數(shù)據(jù)集中所有圖像,利用labelImg 圖像標(biāo)注工具,對圖像中不同姿態(tài)、視角和大小的生豬臉部區(qū)域進(jìn)行標(biāo)注,并按照Microsoft COCO 目標(biāo)檢測數(shù)據(jù)集的標(biāo)注格式,存儲生豬臉部目標(biāo)區(qū)域的標(biāo)注信息。
為了訓(xùn)練和驗證本文所提生豬臉部檢測模型,按照9 ∶1的比例將數(shù)據(jù)集劃分為訓(xùn)練集和測試集。其中,訓(xùn)練集3 600 幅,包含11 570個生豬臉部目標(biāo)框;測試集400 幅,包含1 346個生豬臉部目標(biāo)框。
本文提出的生豬臉部檢測模型總體結(jié)構(gòu)如圖2所示,主要由特征提取模塊(Backbone 網(wǎng)絡(luò))、特征融合模塊(Neck 網(wǎng)絡(luò))及目標(biāo)檢測模塊(Head 網(wǎng)絡(luò))組成。特征提取模塊采用輕量化的ShuffleNet v2模型,提取待檢測圖像特征;特征融合模塊設(shè)計了Nonlocal-PAN 結(jié)構(gòu),融合圖像視覺上下文及跨通道信息;目標(biāo)檢測模塊采用輕量化的NanoDet 目標(biāo)檢測頭,實現(xiàn)對生豬臉部目標(biāo)的檢測。
圖2 生豬臉部目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of proposed pig face detection model
為了使生豬臉部檢測模型在保證檢測精度的同時具有易在邊緣計算端部署的輕量化結(jié)構(gòu),以便于該模型在生產(chǎn)現(xiàn)場中進(jìn)行實際應(yīng)用,本文采用輕量化的ShuffleNet v2 網(wǎng)絡(luò)作為檢測模型的特征提取模塊(即Backbone 網(wǎng)絡(luò))。該網(wǎng)絡(luò)提出一種通道分割(Channel Split)和通道隨機(jī)混合(Channel Shuffle)機(jī)制。通過對通道分組并進(jìn)行重新組合,到達(dá)混合信息的效果,實現(xiàn)在減少模型參數(shù)的同時提高網(wǎng)絡(luò)特征提取性能,該網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖3 所示。
圖3 ShuffleNet 基本結(jié)構(gòu)Fig.3 Basic structure of ShuffleNet
該結(jié)構(gòu)改進(jìn)了自殘差網(wǎng)絡(luò)(ResNet)的殘差結(jié)構(gòu)。其中,圖3(a)結(jié)構(gòu)通過通道分割操作,將特征圖的通道分成兩組,左側(cè)分支直接映射,右側(cè)分支通過深度可分離卷積操作,確保輸入通道和輸出通道保持一致,以提高網(wǎng)絡(luò)效率,再將左右兩分支輸出進(jìn)行拼接后,使用通道隨機(jī)混合操作,得到該結(jié)構(gòu)的最終輸出。圖3(b)則通過不進(jìn)行通道分割的量分支結(jié)構(gòu),實現(xiàn)通道數(shù)量的加倍,用以網(wǎng)絡(luò)的降采樣。整個ShuffleNet v2 即通過這些基本結(jié)構(gòu)堆疊而成,在輕量化模型參數(shù)的同時,提高模型計算效率,并利用特征重用的思想提高模型特征提取能力。為了提高對不同尺寸生豬臉部目標(biāo)檢測的性能,本文將ShuffleNet v2 網(wǎng)絡(luò)中體現(xiàn)不同尺度特征的第2、3、4階段的輸出作為后續(xù)特征融合模塊的輸入。
為了提高對存在遮擋和視角多變的生豬臉部目標(biāo)的檢測性能,需要綜合利用生豬軀干、環(huán)境設(shè)施等視覺上下文信息,以及生豬臉部不同視角表現(xiàn)出的不同模式特征,來輔助定位復(fù)雜場景下的生豬臉部區(qū)域。本文提出一種Nonlocal-PAN 結(jié)構(gòu),對提取到的特征進(jìn)行上下文信息融合和通道注意力的加權(quán),該網(wǎng)絡(luò)的具體結(jié)構(gòu)如圖2 中特征融合模塊所示。受YOLO-Nano模型啟發(fā),本文先在現(xiàn)有PAN 網(wǎng)絡(luò)不同尺度的橫向連接(lateral connection)中加入傳統(tǒng)的SE 通道注意力塊,來突出不同視角下生豬臉部表現(xiàn)出來的不同模式特征,進(jìn)而在各尺度特征融合輸出后,加入輕量化的ECA 通道注意力塊。ECA 內(nèi)部結(jié)構(gòu)如圖4 所示。
圖4 ECA 注意力塊結(jié)構(gòu)Fig.4 Structure of ECA attention block
通過自適應(yīng)選擇一維卷積核大小,實現(xiàn)局部跨通道交互,進(jìn)一步提高特征融合能力;并在最終融合特征圖上利用Nonlocal 塊來建模不同尺度特征圖上視覺上下文信息,提高網(wǎng)絡(luò)對存在遮擋的生豬臉部特征提取能力,Nonlocal 塊結(jié)構(gòu)如圖5 所示,其計算過程如下:
圖5 Nonlocal 塊結(jié)構(gòu)Fig.5 Structure of nonlocal block
式中,為輸入特征圖;、是位置索引;為與輸入特征圖大小一致的經(jīng)過非局部操作的輸出;為計算任意兩位置間的特征相似性度量函數(shù);為任意位置處的特征表示函數(shù);()為規(guī)范化因子; W為權(quán)重矩陣;(x)可通過W x形式計算獲得。在本文工作中,相似性度量函數(shù)選用如下形式進(jìn)行計算:
式中,(x)和(x) 可分別通過W x和W x計算獲得。
基于前述特征融合模塊輸出的3個不同尺度上的特征圖,采用輕量化的NanoDet 檢測模塊完成對生豬臉部區(qū)域的檢測。該模塊主要通過ATSS機(jī)制,自動選擇正負(fù)樣本進(jìn)行訓(xùn)練,并引入Generalized focal loss和GIoU loss,對生豬臉部區(qū)域進(jìn)行類別預(yù)測和位置回歸,模型總體損失函數(shù)計算方式如下:
本文使用Pytorch 框架進(jìn)行實驗,采用隨機(jī)梯度下降方法(SGD)作為模型訓(xùn)練的優(yōu)化器,批處理樣本數(shù)(Batch size)為96,迭代次數(shù)(Epoch)為150,初始學(xué)習(xí)率(Learning rate)為0.14,并根據(jù)Epoch 適時調(diào)整學(xué)習(xí)率,調(diào)整因子設(shè)置為0.1,網(wǎng)絡(luò)輸入圖像尺寸統(tǒng)一調(diào)整為512×512 像素。
圖6 給出了訓(xùn)練集上的模型損失函數(shù)曲線,從中可以看出,在生豬臉部目標(biāo)檢測訓(xùn)練集上,本文所采用的損失函數(shù)均能夠有效收斂。
圖6 訓(xùn)練集上不同損失函數(shù)收斂曲線Fig.6 Convergence curves of different model loss on training set
考慮本文主要針對單一類別的生豬臉部目標(biāo)進(jìn)行檢測,故采用該單一類別在不同交并比()水平下的平均精度(,)、平均召回率(,)以及模型大小作為評價本文生豬臉部檢測模型的性能指標(biāo),其中:
式中,為精度;為召回率;為預(yù)測框與真實目標(biāo)框()間的交并比()值。
表1 給出了本文檢測模型與輕量化NanoDet 檢測模型在生豬臉部測試集上的檢測性能對比結(jié)果。在400 張測試圖像共計1 346個生豬臉部目標(biāo)的測試數(shù)據(jù)上,本文模型在為0.5、0.75和0.50:0.95水平下,分別獲得了96.98%、81.16%和67.44%的平均精度,并取得了最大檢測目標(biāo)個數(shù)為100 水平下72.82%的平均召回率。相較于NanoDet模型,本文模型在模型大小僅提升0.5 MB的前提下,在各指標(biāo)上均有一定的提高。在增加Nonlocal-PAN 特征融合模塊輸入與輸出特征通道數(shù)(取192)時,模型檢測性能可以得到進(jìn)一步提升,但隨之模型大小也有相對提升。
表1 本文模型與輕量化NanoDet模型對生豬臉部檢測性能的對比Tab.1 Comparison of pig face detection performance between proposed model and NanoDet model
表2 給出本文模型和文獻(xiàn)[5]中使用的Tiny-YOLO模型在生豬臉部檢測時的不同性能對比。相較于文獻(xiàn)[5]所用數(shù)據(jù)集,本文數(shù)據(jù)中存在遮擋和視角變化情況更為突出,且在模型大小更小的情況下,本文模型仍然取得了較為優(yōu)勢的生豬臉部檢測性能。
表2 不同生豬臉部檢測模型性能對比Tab.2 Comparison of different pig face detection models
本文模型在兩種不同養(yǎng)殖環(huán)景下生豬臉部目標(biāo)檢測結(jié)果如圖7 所示。從圖中可以看出,對于存在遮擋、視角變化的生豬臉部,本文模型在不同養(yǎng)殖環(huán)境下都能較為有效的檢測出其位置。
圖7 不同養(yǎng)殖環(huán)境下生豬臉部目標(biāo)檢測結(jié)果Fig.7 Pig face detection results of different breeding condition
本文提出了一種輕量化的生豬臉部目標(biāo)檢測模型,通過在特征融合網(wǎng)絡(luò)PAN 結(jié)構(gòu)中引入Nonlocal上下文建模與通道注意力機(jī)制,融合了圖像中視覺上下文信息與跨通道信息,提高了對存在遮擋與視角變化的生豬臉部目標(biāo)的檢測性能。與現(xiàn)有輕量化目標(biāo)檢測模型相比,在不同水平下,本文所提模型的平均精度均有所提升,且與現(xiàn)有生豬臉部檢測模型相比,本文所提模型在具有更小模型大小的同時,提升了模型檢測的性能。實驗結(jié)果表明本文模型具有良好的邊緣計算端支持特性和實用性。未來工作將改進(jìn)損失函數(shù)的設(shè)計,進(jìn)一步提高對密集遮擋環(huán)境下的生豬臉部目標(biāo)檢測性能。