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