黃志杰,徐愛俊※,周素茵,葉俊華,翁曉星,項云
(1. 浙江農(nóng)林大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院,杭州 311300;2. 浙江農(nóng)林大學(xué)環(huán)境與資源學(xué)院,杭州 311300;3. 浙江省農(nóng)業(yè)機械研究院,金華 321000)
隨著生豬養(yǎng)殖業(yè)的快速發(fā)展,基于非侵入式身份智能識別的生豬智能飼喂、體尺測量、體重預(yù)估和行為分析等數(shù)字化的智慧養(yǎng)殖方式受到廣泛關(guān)注[1-5]。目前,常見的生豬個體身份識別主要采用侵入式方式,如佩戴耳標、打耳缺、畫標記等。這些方法均有一定的局限性,耳標存在易污染、易損壞、射頻信號距離有限等問題;耳缺會使生豬產(chǎn)生應(yīng)激反應(yīng),造成傷口感染;背部標記符號容易褪色,且勞動力成本較高。近年來,基于豬臉識別的非侵入式生豬身份智能識別成為研究熱點,其中閉集識別方法已經(jīng)有著廣泛深入的研究和探索。然而,在實際應(yīng)用場景下,面對生豬個體數(shù)量增加和數(shù)據(jù)來源多樣化帶來的開放性挑戰(zhàn),需要將閉集識別轉(zhuǎn)換為魯棒性更高的開集識別。在開集識別過程中,必須進行精細、高效的豬臉對齊操作,而在豬臉對齊過程中,豬臉關(guān)鍵點檢測是必要的預(yù)處理環(huán)節(jié)。
隨著計算機視覺技術(shù)與深度學(xué)習技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在人臉識別和面部關(guān)鍵點檢測領(lǐng)域得到較為廣泛應(yīng)用[6-10],但在生豬面部關(guān)鍵點檢測中的應(yīng)用還較少。李向宇等[11]提出一種通過構(gòu)建豬臉人臉匹配數(shù)據(jù)集,訓(xùn)練形變卷積神經(jīng)網(wǎng)絡(luò),使用形變豬臉數(shù)據(jù)集對人臉特征點檢測神經(jīng)網(wǎng)絡(luò)模型進行微調(diào),錯誤率為5.60%,過程較為繁瑣。蔡騁等[12]提出了自適應(yīng)級聯(lián)檢測器定位牛臉位置,用統(tǒng)計迭代模型提取牛臉輪廓的方法,有效抑制了角度變化的誤差,但算法的實時性欠佳。KHAN等[13]構(gòu)建了一個包含350 種動物共22 400 余張圖像構(gòu)成的大規(guī)模動物面部數(shù)據(jù)集AnimalWeb,每個面部有9個關(guān)鍵點,由于動物面部姿態(tài)變化較大,使用人臉對齊的方法檢測關(guān)鍵點效果較差,還需要使用單獨的算法來分析單一種類的動物面部關(guān)鍵點對齊方法。楊家林[14]在羊臉識別過程中,使用G-RetinaFace 模型,檢測羊臉關(guān)鍵點,但并未對關(guān)鍵點的準確性進行評估。王榮等[15]提出了一種適應(yīng)多變環(huán)境的生豬個體識別方法,設(shè)計了多尺度卷積結(jié)構(gòu),融合非對稱卷積,在復(fù)雜場景下模型的識別率為99.81%。謝秋菊等[16]將CBAM 注意力模塊嵌入到精簡的DenseNet 模型中,參數(shù)僅有DenseNet 模型的1/10,生豬個體識別準確率為99.25%。張建龍等[17]探究了育肥豬生長過程中臉部變化對識別模型準確率的影響,但模型需要每天訓(xùn)練且訓(xùn)練數(shù)據(jù)必須提前4 d 獲取,模型的準確率為95.82%。何嶼彤等[18]改進YOLOv3 模型,提升了遠距離豬臉檢測的能力,達到了90.18%的平均精度。秦興[19]選用200 頭豬的2 110個樣本,手動裁剪豬臉圖像,并改進了雙線性卷積神經(jīng)網(wǎng)絡(luò),準確率達到了95.73%。WANG等[20]使用SphereFace 損失函數(shù)[21]度量學(xué)習方法,構(gòu)建了基于殘差連接和注意力機制的豬臉開集識別模型,其數(shù)據(jù)集使用Faster RCNN 對豬臉進行裁剪,通過手動挑選無遮擋的圖像,開集識別準確率為95.28%。WANG等[22]將人體重識別領(lǐng)域的三元組損失應(yīng)用到豬臉識別上,使用EfficientDet d0 作為豬臉檢測器,在復(fù)雜環(huán)境下,使用KNN 對28 頭豬的分類準確率為96%。YAN等[23]提出了一種基于改進CenterNet 的豬臉檢測方法,平均精度為93.61%。綜上,現(xiàn)有關(guān)于生豬及其他動物面部關(guān)鍵點檢測的研究較少,且相關(guān)的面部關(guān)鍵點檢測及個體識別研究中均未考慮動物姿態(tài)變化對模型產(chǎn)生的影響,而是直接將未對齊的動物面部圖像送入分類器進行訓(xùn)練和測試,這種方法難以適用于開集動物個體識別。
為快速準確地采集生豬面部關(guān)鍵點,本文采用YOLOv5Face 作為基礎(chǔ)模型,將單階段關(guān)鍵點回歸的人臉關(guān)鍵點檢測方法進行改進并用于豬臉關(guān)鍵點檢測,構(gòu)建了YOLO-MOB-DFC 模型。模型首先設(shè)計了MOB-DFC模塊,利用重參數(shù)化和解耦全連接注意力機制(decoupled fully connected attention,DFC)實現(xiàn)局部特征和全局特征的融合,在降低模型參數(shù)量的同時提高其檢測精度,再采用輕量級上采樣算子CARAFE 提升關(guān)鍵點檢測的準確性,如期實現(xiàn)實際豬場環(huán)境下生豬面部關(guān)鍵點的高精度、快速檢測,為后續(xù)生豬個體識別奠定良好基礎(chǔ)。
1.1.1 數(shù)據(jù)采集
本文數(shù)據(jù)采集于浙江省杭州市余杭區(qū)瓶窯鎮(zhèn)浙江清渚農(nóng)牧有限公司的配懷舍和育肥舍,配懷舍以養(yǎng)殖丹系母豬為主,育肥舍養(yǎng)殖品種為長白豬。為避免單一設(shè)備采集的圖像使得檢測器的穩(wěn)定性和適應(yīng)性較差的問題,本研究分別選擇iPhone 11 和??低?00W 像素變焦攝像頭作為豬臉數(shù)據(jù)采集設(shè)備,分辨率均為1 920×1 080 像素,共采集后備母豬及懷孕母豬100 頭,面部視頻250 段,每頭豬的視頻拍攝間隔大于7 d。由于母豬限位欄內(nèi)采集到的圖像僅包含單頭生豬,數(shù)據(jù)較為單一,為增加數(shù)據(jù)多樣性,本文另外從育肥舍使用高清攝像頭采集220 張復(fù)雜背景下多頭豬的圖像,并將其添加到數(shù)據(jù)集中,采集環(huán)境及設(shè)備搭建如圖1 所示,左側(cè)攝像頭位于飲水槽上方,吊裝攝像頭距地面約1.5 m。最終,形成了一個包含1 019 張生豬面部圖像的數(shù)據(jù)集,其中訓(xùn)練集圖像719 張,驗證集圖像和測試集圖像各150 張。
圖1 采集環(huán)境及設(shè)備Fig.1 Acquisition environment and equipment
為避免由于采集的視頻幀間相似度較高可能導(dǎo)致模型出現(xiàn)過擬合的問題,將圖像采樣時間間隔設(shè)置為0.5 s,采用結(jié)構(gòu)相似性(structure similarity index measure,SSIM)判斷前后兩張圖像的相似度,通過比較圖像的亮度、對比度和結(jié)構(gòu)過濾掉高相似度的圖像。SSIM 計算式為:
式中 μx、μy為圖像的平均灰度值;σx、σy為圖像灰度標準差;C1、C2、C3為常數(shù),防止分母為0;α、β、γ分別代表了不同特征在SSIM 衡量中的占比,當取值為1 時,將式(1)代入式(2)中得到式(3):
根據(jù)多次試驗結(jié)果,將SSIM 閾值設(shè)置為整段視頻的平均SSIM,即兩張圖像的SSIM 值大于平均SSIM 時,即被認為是相同的圖像,僅保留其中一張,反之保留兩張。
1.1.2 數(shù)據(jù)標注
使用Labelme 工具對數(shù)據(jù)集進行目標框和關(guān)鍵點標注,其中目標框標注范圍為生豬面部。生豬眼睛和額頭部位存在較多特征點,但耳朵由于動作幅度較大不宜被選作特征點[24],因此本文標注的生豬面部關(guān)鍵點包括雙眼、兩側(cè)鼻翼尖端及鼻尖中心。豬臉關(guān)鍵點標注如圖2所示。
圖2 豬臉關(guān)鍵點標注Fig.2 Pig face key points labeling
1.1.3 圖像預(yù)處理
為提高模型的泛化能力和對生豬面部關(guān)鍵點的檢測能力,綜合使用高斯模糊、椒鹽噪聲、位置平移、水平翻轉(zhuǎn)、亮度調(diào)節(jié)、銳化等多種方式對圖像進行增強。經(jīng)過離線增強后的訓(xùn)練數(shù)據(jù)集圖像由719 張擴充到4 302 張,使得數(shù)據(jù)具有更好的多樣性,有助于網(wǎng)絡(luò)學(xué)習到更多特征。數(shù)據(jù)增強結(jié)果如圖3 所示。
圖3 生豬原始圖像及增強圖像Fig.3 Process of pig original images and the image data enhancement
YOLOv5Face 是基于YOLOv5 的一種基于回歸的人臉檢測算法[25]。該算法在YOLOv5 預(yù)測邊界框基礎(chǔ)上,添加5個關(guān)鍵點,由于MTCNN 中L2 損失函數(shù)對小誤差不敏感,將Wing loss 作為損失函數(shù)對關(guān)鍵點進行約束,使用分類損失、定位損失、置信度損失和關(guān)鍵點損失構(gòu)成的損失函數(shù)為:
式(4)中,預(yù)測值的范圍為0~1,ω 用于將非限制性部分的范圍限制在[-ω,ω]區(qū)間內(nèi),ε用于約束非線性區(qū)域的曲率,C=ω-ωln(1+ω/ε)為常數(shù),用來平滑連接分段的線性和非線性部分。式(5)是Wing loss 損失,si為預(yù)測點的點向量,為真實點的點向量,si-表示兩個點向量之間的差異。式(6)為損失函數(shù)整體,λ為損失權(quán)重,Lcls為分類損失,Lobj為置信度損失,Lloc為 定位損失,Llm為關(guān)鍵點損失。
YOLOv5Face 的結(jié)構(gòu)與YOLOv5 基本保持一致,主要區(qū)別在于其網(wǎng)絡(luò)結(jié)構(gòu)進行了優(yōu)化,將YOLOv5 中Focus 模塊替換為更加簡單的Stem 模塊,既降低了計算復(fù)雜度又保持了模型精度。同時,SPP 模塊中使用更小的池化核,將池化核改為3、5、7,提升了檢測精度。
本文基于YOLOv5Face 進行改進,首先將原有的YOLOv5s-Face 骨干替換為MobileOne 重參數(shù)化骨干網(wǎng)絡(luò),再將解耦全連接注意力機制和MobileOne Block 融合,構(gòu)成MOB-DFC(MobileOne Block-DFC)模塊,增強局部特征,捕捉遠距離的空間信息擴大感受野;再將特征金字塔中的上采樣替換為輕量化上采樣算子CARAFE(content-aware reassembly of features,CARAFE)充分利用特征信息,使關(guān)鍵點檢測更加準確;最后利用預(yù)測頭對圖像進行預(yù)測,生成目標的類別和邊界框的坐標、5個關(guān)鍵點的位置信息以及置信度。改進后的模型網(wǎng)絡(luò)YOLO-MOB-DFC 如圖4 所示,其中紅色部分為改進之處,MOB 代表MobileOne Block。
圖4 YOLO-MOB-DFC 模型總體結(jié)構(gòu)圖Fig.4 General structure of YOLO-MOB-DFC model
1.2.1 引入重參數(shù)化骨干網(wǎng)絡(luò)MobileOne
在實際檢測環(huán)境下,由于計算資源的有限性,需要降低模型的復(fù)雜度,即對骨干網(wǎng)絡(luò)Backbone 進行輕量化設(shè)計[26]。MobileOne 模型基于MobileNetV1 設(shè)計,由大量MobileOne Block 構(gòu)成,在MobileOne Block 結(jié)構(gòu)中使用了深度可分離卷積(depthwise convolution)和點卷積(pointwise convolution),吸收了RepVGG 重參數(shù)的思想[27-28]。MobileOne Block 結(jié)構(gòu)如圖5 所示,該結(jié)構(gòu)使用重參數(shù)化的方法,先將k個卷積層和BN 層合并為k個分組數(shù)為d的3×3 卷積,再將這k個3×3 卷積融合為一個卷積層,最后將多個分支結(jié)構(gòu)相加,進入到激活函數(shù)。在模型訓(xùn)練階段,盡可能讓網(wǎng)絡(luò)模型復(fù)雜以提取到更多有效的語義特征。在模型推理階段,將多分支結(jié)構(gòu)進行重參數(shù)化為單分支結(jié)構(gòu),使模型更加簡單,參數(shù)量減少,推理速度更快。
圖5 MobileOne Block 結(jié)構(gòu)圖Fig.5 MobileOne Block structure diagram
1.2.2 融合解耦全連接注意力機制
MobileOne 骨干模型在局部特征提取方面表現(xiàn)良好,但其全局特征提取能力不足。自注意力機制雖擁有長距離建模的能力,但其計算復(fù)雜度與輸入分辨率大小呈二次方增長,使得其無法有效處理高分辨率輸入圖像[29]。為解決此問題,設(shè)計了MOB-DFC 模塊,該模塊由MobileOne Block 和解耦全連接注意力機制構(gòu)成,前者用于提取局部特征,后者用于捕捉遠處空間信息,通過特征圖與注意力地圖對應(yīng)元素乘積的方式增強局部特征的表達能力。由于直接引入解耦全連接注意力機制和MobileOne Block 并行的方式會增加計算成本,因此通過下采樣將特征圖的大小縮小,再通過1×5 和5×1 非對稱卷積提取特征,使用雙線性插值上采樣還原特征圖,以匹配MobileOne Block 分支特征的分辨率大小,再經(jīng)過Sigmoid,將特征值范圍映射到(0,1)之間的概率值。MOBDFC 模塊的結(jié)構(gòu)如圖6 所示,圖6a 所示結(jié)構(gòu)用于輸入圖像和輸出大小相同的圖像,能夠更好學(xué)習局部信息。圖6b 所示結(jié)構(gòu)將輸入通過步長為2 的深度可分離卷積,使得模型特征圖縮小一半,降低計算復(fù)雜度加快處理速度。圖6c 所示的解耦全連接注意力機制中,沿著水平和垂直兩個方向解耦全連接層,分別使用兩個全連接層聚合兩個方向的長距離信息,從而省去推理過程中張量維度變換和矩陣轉(zhuǎn)置等操作,進一步提升了推理速度。
圖6 MOB-DFC 模塊結(jié)構(gòu)Fig.6 MOB-DFC Module structure
式(7)是使用全連接層實現(xiàn)注意力圖的方式,式中元素乘法符號表示兩個矩陣對應(yīng)元素相乘的操作,ahw表示注意力圖輸出的第h行,第w列的元素,F(xiàn)hw,h′w′為可學(xué)習的權(quán)重,其中h和w為注意力圖的索引,h′和w′為輸入特征的空間位置索引。為了避免全連接層的計算復(fù)雜度過高,需將其分解成兩個方向的卷積操作,并分別表示為式(8)和式(9),其中H和W分別表示卷積核的高度和寬度。利用式(8)和式(9)分別對輸入特征圖進行垂直和水平方向的卷積操作,生成特征圖,從而提取局部特征并捕捉遠處的空間信息。式(8)和式(9)中,表示經(jīng)過垂直方向卷積后輸出特征圖中的第h行w列的像素值,zh′w表示第h′行w列的輸入特征圖像素值,代表卷積核在h和h′行之間的權(quán)重值。因此,通過分解全連接層,可以在保持計算效率的同時,提高局部特征的表達能力,并提升模型的檢測速度。
為更加直觀地體現(xiàn)DFC 注意力機制的有效性,使用不同模型的骨干網(wǎng)絡(luò)生成了注意力熱圖,并對其使用XGrad-CAM[30]進行可視化分析,對比結(jié)果如圖7 所示。
圖7 不同模型骨干網(wǎng)絡(luò)的注意力熱圖Fig.7 Attention heat map of backbone networks with different models
由圖7 可知,在YOLOv5s-Face 和MobileOne 的骨干網(wǎng)絡(luò)之后生成的熱圖,生豬面部的關(guān)注區(qū)域相對較小,不能包含生豬完整的面部,并且在圖像的其他部分也存在注意力區(qū)域,而YOLO-MOB-DFC 模型骨干網(wǎng)絡(luò)生成的熱圖中,注意力區(qū)域較完整地包含了生豬面部,提高了特征提取的有效性。
1.2.3 融合輕量上采樣算子CARAFE
特征金字塔中,上采樣操作尤為重要。最近鄰差值和雙線性插值這兩種常用的上采樣方法僅考慮了相鄰的亞像素空間,缺乏語義信息并且感受野較小。反卷積雖然也可以進行上采樣,但因采用了單一的卷積核,限制了對局部變化的差異感知能力,參數(shù)量較大。而感知特征重組上采樣算子CARAFE 可以彌補上述方法的缺陷,能在每個位置都有不同的上采樣卷積核以及在全面感知鄰域內(nèi)聚合上下文信息,從而提升模型檢測能力。CARAFE 算子由上采樣模塊和特征重組模塊組成,首先利用上采樣預(yù)測模塊生成上采樣核,再將特征重組模塊與上采樣核進行重組[31]。
1.2.4 替換EIoU 損失函數(shù)
為使目標框檢測更為精準,將YOLOv5Face 中的CIoU 損失函數(shù)替換為EIoU 損失函數(shù),EIoU 在CIoU 的基礎(chǔ)上,考慮了目標框的重疊面積和中心點距離,分別計算了檢測框?qū)捄透叩牟町愔担〈藱M縱比,同時引入了Focal Loss 解決了難易樣本不平衡的問題,使得目標框回歸過程更專注于錨框的質(zhì)量[32]。EIoU 計算式為:
式中,IoU為真實邊界框與預(yù)測邊界框之間的交并比,ρ2(bp,bgt)是預(yù)測邊界框中心與真實邊界框中心的歐式距離,wp和hp分別為預(yù)測邊界框的寬和高,wgt和hgt分別為真實邊界框的寬和高,c為真實框和預(yù)測框的最小外接矩形的對角線距離。
試驗均在操作系統(tǒng)為Ubuntu 22.04、Intel Core i7-12700KF CPU、顯卡為Nvidia GeForce RTX3090Ti 的Ubuntu 服務(wù)器上進行。訓(xùn)練過程使用CUDA 11.7 加速,訓(xùn)練300 Epoch,批量大小(batch size)根據(jù)不同模型占用顯存進行調(diào)節(jié),共2n個,初始學(xué)習率為0.01,使用一階Adam 優(yōu)化器對模型進行優(yōu)化,采用余弦退火算法調(diào)節(jié)學(xué)習率。
為客觀評價豬臉關(guān)鍵點檢測模型的性能,同時對預(yù)測框和預(yù)測關(guān)鍵點進行評估,采用的評價指標包括精確度(precision,P)、召回率(recall,R)、平均精度(average precision,AP)、計算參數(shù)量(parameters)、標準化平均誤差(normalized mean error,NME,計為ENME)和幀率(frame per second,F(xiàn)PS),各指標計算式如下:
式(11)和(12)中,TP、FP和FN分別表示正確預(yù)測的生豬面部圖像的數(shù)量、非生豬面部圖像預(yù)測為生豬面部圖像的數(shù)量和錯誤地將生豬面部圖像預(yù)測為非生豬面部圖像的數(shù)量。將精確度和召回率構(gòu)成的PR 曲線下方的面積定義為AP,即平均精度。式(14)中,xi為預(yù)測的第i個坐標,為第i個坐標的ground-truth,d為兩眼間距離,即關(guān)鍵點歐氏距離之和與關(guān)鍵點的個數(shù)及兩眼之間距離的乘積之積,該值代表關(guān)鍵點預(yù)測的錯誤率,值越小表示關(guān)鍵點預(yù)測的準確度越高。檢測速度即一秒之內(nèi)處理的圖像幀數(shù),單位為幀/s。
為驗證模型YOLO-MOB-DFC 的性能,使用自建豬臉測試數(shù)據(jù)集,首先與分別采用Resnet50 和MobileNet骨干網(wǎng)絡(luò)的兩種主流人臉關(guān)鍵點檢測模型RetinaFace 進行對比,再與分別采用 YOLOv5s-Face、MobileOne 和RepVGG 骨干網(wǎng)絡(luò)的三種YOLOv5s-Face 模型進行對比,結(jié)果如表1 所示。
表1 不同模型試驗結(jié)果Table 1 Experimental results of different models
由表1 可知,YOLOv5-Face 結(jié)構(gòu)的模型相比RetinaFace 各模型的效果更優(yōu),AP均超過96.6%。相比RetinaFace-Resnet50 模型,YOLO-MOB-DFC的AP提升了5.43%,參數(shù)量降低了78.59%,幀率提升了91.25%,NME 降低了2.774%;相比YOLOv5s-Face,YOLO-MOBDFC 在GPU 上推理速度相近,但參數(shù)量降低了18.29%,AP提升了2.48%;相比MobileOne 骨干,YOLO-MOBDFC的P、R和AP分別提升了4.35%、2.98%、1.22%,NME 降低了0.567%;相比RepVGG 骨干,YOLO-MOBDFC的AP值略有降低,但NME 更小。由于添加了CARAFE 算子,YOLO-MOB-DFC 的推理速度有所下降,但NME 最低,這表明其關(guān)鍵點預(yù)測位置更為精準,且速度和性能有著較好的平衡。
為驗證模型所添加模塊的有效性,本研究進行了消融試驗,以YOLOv5s-Face 作為基本結(jié)構(gòu),分別將特征提取骨干網(wǎng)絡(luò)更換為含有DFC 注意力的MobileOne 骨干、EIoU 損失函數(shù)和CARAFE 算子,消融對比試驗結(jié)果如表2 所示。
表2 消融對比試驗結(jié)果Table 2 Ablation comparison experiment results
由表2 可知,將YOLOv5s-Face 的骨干網(wǎng)絡(luò)中替換了MOB-DFC 模塊后,參數(shù)量相比改進前降低了21%,AP提升了1.8個百分點。將CIoU 替換為EIoU 后,AP值和FPS 變化較小,但NME 提升了0.836%。將原有的最近鄰插值上采樣替換為CARAFE 算子后,參數(shù)量有所提升,推理速度略有下降,NME 僅為1.606%,豬臉關(guān)鍵點預(yù)測位置最精準。與YOLOv5s-Face 相比,改進后模型的AP提升了2.48%,參數(shù)量下降了18.29%,NME 為2.344%,略低于僅含有CARAFE 算子的YOLOv5s-Face模型。由于改進后的模型結(jié)構(gòu)更加復(fù)雜,DFC 注意力機制和CARAFE 算子增加了計算復(fù)雜度,導(dǎo)致檢測速度略有降低。
在實際環(huán)境中,生豬的面部姿態(tài)變化多端,因此本研究對運動中生豬面部關(guān)鍵點進行持續(xù)檢測。為了評估模型的穩(wěn)定性和準確性,選取了一段視頻并截取其中連續(xù)的480 幀進行了豬臉關(guān)鍵點檢測,檢測精度曲線如圖8 所示。
圖8 連續(xù)幀間標準化平均誤差曲線Fig.8 Normalized mean error curves between consecutive frames
在圖8 中出現(xiàn)的波峰,是因為豬臉姿態(tài)多變,出現(xiàn)了大角度側(cè)臉,從而降低了關(guān)鍵點的準確性。對比改進后的模型和YOLOv5s-Face 模型在這段視頻中的表現(xiàn)可知,YOLOv5s-Face 模型的幀間NME 波動較大,改進后的模型連續(xù)幀間的NME 波動更加穩(wěn)定,說明該模型能夠削弱豬臉姿態(tài)多變對關(guān)鍵點提取準確性的影響。
為直觀展示目標框及關(guān)鍵點的檢測效果,將RetinaFace、YOLOv5s-Face 和YOLO-MOB-DFC 進行對比,結(jié)果如圖9 所示。由圖9a~9d 可知,RetinaFace 模型檢測到的生豬雙眼關(guān)鍵點及鼻尖存在著較大誤差;從圖9c中可以看出,第二頭豬的鼻尖關(guān)鍵點誤差較大;圖9f~9g 所示大角度側(cè)臉和近距離圖像中,由于生豬鼻翼兩側(cè)邊緣不明顯,出現(xiàn)了關(guān)鍵點漂移的情況,但圖9 h 表明本文模型能夠降低鼻翼邊緣不明顯對關(guān)鍵點檢測準確性的影響,且模型預(yù)測框的置信度均高于其他模型。上述分析表明,本文模型檢測關(guān)鍵點的準確度更高。
圖9 YOLO-MOB-DFC 模型識別結(jié)果Fig.9 YOLO-MOB-DFC model recognition effect
針對生豬面部姿態(tài)多變導(dǎo)致豬臉關(guān)鍵點檢測誤差較大的問題,本文提出了一種基于YOLOv5Face 模型改進的豬臉關(guān)鍵點檢測方法,構(gòu)建了YOLO-MOB-DFC 模型。該模型通過融合重參數(shù)化的骨干網(wǎng)絡(luò),結(jié)合解耦全連接注意力機制,改進邊框損失函數(shù),采用CARAFE 上采樣算子優(yōu)化深度學(xué)習網(wǎng)絡(luò),實現(xiàn)了豬臉關(guān)鍵點及邊界框的高精度檢測。結(jié)果表明,本文模型的平均檢測精度達到了99.0%,在數(shù)據(jù)集相同的情況下,相比RetinaFace,平均精度提升了5.43%,參數(shù)量降低了78.59%,幀率提升了91.25%,NME 降低了2.774%;相比YOLOv5s-Face模型,平均精度提高了2.48%,參數(shù)量降低了18.29%,NME 降低了0.567%,檢測速度為153 幀/s。本文模型在連續(xù)幀間的標準化平均誤差波動更加穩(wěn)定,削弱了豬臉姿態(tài)多變對關(guān)鍵點檢測精度的影響。因此,本文模型不但能檢測出豬臉,還能準確定位其5個面部關(guān)鍵點,實現(xiàn)了低參數(shù)量、高精度、快速的豬臉關(guān)鍵點檢測,可為后續(xù)生豬面部姿態(tài)評估和個體識別提供一定的技術(shù)參考。未來可進一步深入探究將其他品種的豬作為目標關(guān)鍵點檢測對象,并構(gòu)建適用于生豬面部關(guān)鍵點的對齊方法,以提升模型的普適性,為生豬身份開集識別奠定理論基礎(chǔ)。