劉琪偉 郭小燕 李純斌 楊道涵
關(guān)鍵詞:YOLOv5;牛個體;圖像識別;輕量級
中圖分類號:TP391 文獻(xiàn)標(biāo)志碼:A
0 引言(Introduction)
隨著我國整體生活水平的提高,人們對牛肉制品和牛奶制品的需求日益增大,快速有效地進(jìn)行牲畜個體身份識別是開展精細(xì)化飼養(yǎng)、牲畜體征監(jiān)測、畜產(chǎn)品溯源工作的基礎(chǔ)。目前,識別牛個體圖像的方法主要有接觸式識別和非接觸式機器視覺識別兩種。接觸式識別方法又可以分為永久性識別法(Permanent Identification Methodology,PIM)、半永久性識別法(Semi-permanent Identification Methodology,SIM)及臨時性識別法(Temporary Identification Methodology,TIM)[1]。PIM主要通過耳槽、耳紋、熱鐵標(biāo)記和冷凍烙印等方式識別牛個體,會對牛個體造成不同程度的傷害,容易造成牛個體感染疾病[2]。SIM主要通過耳標(biāo)進(jìn)行牛個體識別,耳標(biāo)的類型有塑料吊墜、塑料條形碼、金屬耳夾等,如果長期使用這些耳標(biāo),會造成牛個體的耳朵腐爛;此外,耳標(biāo)可以復(fù)制、偽造,并且有遺失風(fēng)險,容易造成牛個體的錯誤識別或者無法識別[3]。TIM 包括染色和無線射頻識別技術(shù)(Radio Frequency Identification,RFID)等,基于RFID的耳標(biāo)雖然可快速讀取牛個體的個體信息,但是染色的效果受奶?;ㄉ绊?,同時該技術(shù)識別距離有限且技術(shù)應(yīng)用成本高,因此有較大的局限性[4]。
1 相關(guān)研究(Related research)
隨著計算機視覺與人工智能技術(shù)的發(fā)展,目標(biāo)檢測技術(shù)被廣泛應(yīng)用在牛臉識別等計算機視覺領(lǐng)域。根據(jù)對圖像進(jìn)行識別與定位的特征,目標(biāo)檢測技術(shù)可分為One Stage和TwoStage兩種,其中Two Stage目標(biāo)檢測算法首先對輸入的圖像進(jìn)行區(qū)域推薦(Region Proposal),生成一系列的候選區(qū)域,其次通過卷積神經(jīng)網(wǎng)絡(luò)對這些候選的區(qū)域進(jìn)行分類和回歸[5-6]。典型的算法有RCNN[7]、Fast-RCNN[8]、SPP-Net[9]、Faster RCNN[10]等,它們將其識別過程分為兩個階段,檢測速度較慢。One Stage算法將邊框回歸與目標(biāo)識別合并為一個步驟,擁有更高的檢測速度。其中,代表性的算法有SSD[11-12]系列、FCOS[13]、YOLO[14-15]系列算法,其中YOLO 算法參數(shù)量、計算量較少,因此檢測速度較快,在牛個體圖像識別方面已經(jīng)得到了廣泛應(yīng)用。姜世奇[16]在YOLOv3的基礎(chǔ)上進(jìn)行改進(jìn),使用Microsoft COCO數(shù)據(jù)集進(jìn)行模型預(yù)訓(xùn)練,通過構(gòu)建的目標(biāo)檢測數(shù)據(jù)集進(jìn)行微調(diào)并應(yīng)用于牛面部識別。SHEN等[17]首先將奶牛的側(cè)視圖圖像分割成頭部、軀干和腿部三個部分,其次利用YOLO算法檢測圖像中的奶牛對象,最后使用優(yōu)化的CNN模型進(jìn)行牛個體身份識別,檢測準(zhǔn)確率為96.65%。YOLOv5作為典型的One Stage識別方法,具有復(fù)雜場景下目標(biāo)檢測識別的優(yōu)勢,已經(jīng)被廣泛應(yīng)用于農(nóng)業(yè)目標(biāo)實時檢測與識別中,但其模型的體積較大、參數(shù)多,需要大量的樣本進(jìn)行模型訓(xùn)練,對運算的軟件和硬件設(shè)備要求高,而高質(zhì)量的牛個體樣本數(shù)據(jù)的獲取費時、費力。因此,設(shè)計一個輕量、高效的非接觸式牛個體識別模型,使其可以在樣本數(shù)量有限的情況下,運行于手機、平板電腦等移動設(shè)備中,方便牧民與養(yǎng)殖戶進(jìn)行牛個體身份識別,顯得非常必要。
本文以YOLOv5為基礎(chǔ)模型,設(shè)計了一個輕量級牛個體識別模型(Light YOLO Net,LY-Net),利用輕量級網(wǎng)絡(luò)GhostNet作為主干網(wǎng)絡(luò)模型,并減少C3參數(shù),采用CARAFE作為上采樣算子,采用EIoU Loss作為損失函數(shù),在保證識別精度的情況下實現(xiàn)了減少網(wǎng)絡(luò)參數(shù)、提升識別速度的目標(biāo)。該模型通過對30 頭牛個體,共6 775 幅自建數(shù)據(jù)進(jìn)行測試,識別精確率約為99.6%。實驗表明,該模型在實現(xiàn)輕量化設(shè)計的同時,可以高效、準(zhǔn)確地進(jìn)行牛個體圖像識別。
2 YOLOv5 網(wǎng)絡(luò)模型改進(jìn)(YOLOv5 networkmodel improvements)
本文采用YOLOv5s 6.1版本作為基礎(chǔ)網(wǎng)絡(luò)模型,該模型主要由輸入端Input、Backbone、Neck及Head四個部分組成。與YOLOv5s 5.x相比,YOLOv5s 6.1版本將Backbone Focus層換成一個6×6大小的卷積層,目的是擴大卷積核的感受野;在Neck中將SPP換為SPPF結(jié)構(gòu),提高運行速度。為了進(jìn)一步實現(xiàn)網(wǎng)絡(luò)輕量級的目標(biāo),本文將YOLOv5s 6.1模型的主干網(wǎng)絡(luò)替換為輕量級網(wǎng)絡(luò)Ghost Net,并減少C3參數(shù),在識別精度不受影響的情況下實現(xiàn)了網(wǎng)絡(luò)模型的輕量化、速度提升的目標(biāo),網(wǎng)絡(luò)使用輕量高效的上采樣算子CARAFE,進(jìn)一步減少網(wǎng)絡(luò)參數(shù),采用Focal-EIoU Loss作為損失函數(shù),加速收斂。
2.1LY-Net網(wǎng)絡(luò)結(jié)構(gòu)
首先將一幅經(jīng)過預(yù)處理的大小為3×640×640的RGB圖像進(jìn)行歸一化操作,送入Backbone主干網(wǎng)絡(luò)進(jìn)行特征提取,其次利用Neck將淺層的特征與深層特征進(jìn)行特征融合以豐富網(wǎng)絡(luò)模型的特征信息,在Head輸出20×20、40×40、80×80三種像素的矩形識別區(qū)域,分別對應(yīng)于不同圖像大小的牛個體,圖1為本文所使用的LY-Net模型框架圖。
2.2 輕量級網(wǎng)絡(luò)Ghost Net
YOLOv5主干特征提取網(wǎng)絡(luò)采用C3結(jié)構(gòu),因為參數(shù)量較大,所以影響了檢測速度。C3是刪除BottleneckCSP中的部分Conv模塊后產(chǎn)生的新模塊,C3根據(jù)是否使用Shortcut連接分為C3-False和C3-True兩個模塊。C3模塊能夠增強對淺層特征的提取能力,利用Shortcut連接淺層特征,最終在增強整個神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力的同時降低計算成本。針對本文采用的數(shù)據(jù)集牛個體圖像檢測的特點,本文將YOLOv5模型的主干網(wǎng)絡(luò)替換為輕量級網(wǎng)絡(luò)Ghost Net,并減少C3參數(shù),將Backbone部分中的C3數(shù)量從(3,9,9,3)減少為(2,6,8,2),從而減少特征信息丟失且降低計算量。
相比傳統(tǒng)的卷積,Ghost Net[18]分為兩步走,首先GhostNet采用正常的卷積計算,得到Channel較少的特征圖,其次利用Cheap Operation得到更多的特征圖,最后將不同的特征圖疊加,組合成新的Output。圖2為傳統(tǒng)卷積和Ghost Net卷積的對比圖。
2.3 上采樣算子CARAFE
YOLOv5中默認(rèn)使用最近鄰插值(Neares),也稱為零階插值,這是最簡單的插值方法,僅通過像素點的空間位置決定上采樣核,沒有使用特征圖的語義信息,可以看作是一種“均勻”的上采樣,而且感知域通常很?。ㄗ罱?×1,雙線性2×2)。針對這些問題,本文使用輕量高效的上采樣算子CARAFE,通過少量參數(shù)和計算保持輕量級功能。CARAFE分為兩個主要模塊,分別是上采樣核預(yù)測模塊和特征重組模塊。假設(shè)上采樣倍率為σ,給定一個形狀為H ×W ×C 的輸入特征圖,CARAFE首先利用上采樣核預(yù)測模塊預(yù)測上采樣核,其次利用特征重組模塊完成上采樣,得到形狀為σH ×σW ×C 的輸出特征圖[19]。
2.4Focal-EIoU Loss
YOLOv5使用CIoU Loss作為Bounding Box的損失函數(shù),同時采用Logits損失函數(shù)和二進(jìn)制交叉熵(BCE)分別計算目標(biāo)得分和類概率的損失。CIoU Loss雖然考慮了邊界框回歸的重疊面積、中心點距離、縱橫比,但是縱橫比的差異不是寬高分別與其置信度的真實差異,所以有時會阻礙模型有效地優(yōu)化相似性。針對這一問題,本文采用Focal-EIoU Loss損失函數(shù)替換CIoU Loss損失函數(shù)。將縱橫比的損失項拆分成預(yù)測的寬高分別與最小外接框?qū)捀叩牟钪?,加速了收斂,提高了回歸精度。
Focal-EIoU Loss將縱橫比的損失項拆分成預(yù)測的寬高分別與最小外接框?qū)捀叩牟钪?,加速了收斂,提高了回歸精度,并引入Focal Loss優(yōu)化邊界框回歸任務(wù)中的樣本不平衡問題,即減少與目標(biāo)框重疊較少的大量錨框?qū)ounding Box回歸的優(yōu)化貢獻(xiàn),使回歸過程專注于高質(zhì)量錨框[20]。LEIoU 損失計算公式分別如公式(1)、公式(2)、公式(3)所示:
3 實驗材料處理(Experiment and result analysis)
3.1 數(shù)據(jù)集獲取
本文使用的牛個體圖像數(shù)據(jù)集于2022年5月在甘肅省張掖市某養(yǎng)殖場內(nèi)采集,采集設(shè)備為Nikon D810相機,拍攝圖像分辨率為4 000×2 248像素,圖像格式為JPEG。為滿足在不同地點和時間條件下的檢測需要,分別在生活區(qū)和休閑區(qū)(時間段為早晨、正午和傍晚)進(jìn)行圖像采集。期間共采集有效圖像6 775幅,對圖片進(jìn)行背景模糊等操作,分別以Cow1~Cow30對牛個體進(jìn)行編號,制作了樣本數(shù)據(jù)集。表1為該數(shù)據(jù)集30頭牛個體樣本信息。圖3為數(shù)據(jù)集牛個體樣本圖像。
3.2 數(shù)據(jù)標(biāo)注
使用可視化標(biāo)注工具LabelImg進(jìn)行數(shù)據(jù)集標(biāo)注,以目標(biāo)的最小外接矩形進(jìn)行標(biāo)記,標(biāo)注文件類型為txt格式,以YOLO格式進(jìn)行存儲,存儲信息包括類別代號、標(biāo)注框橫向的相對中心坐標(biāo)x _center、標(biāo)注框縱向的相對中心坐標(biāo)y_center、標(biāo)注框相對寬度w、標(biāo)注框相對高度h[21]。
3.3 數(shù)據(jù)增強
為擴大自建數(shù)據(jù)的數(shù)量,采用Mosaic操作進(jìn)行數(shù)據(jù)增強。首先隨機選擇圖像,分別進(jìn)行翻轉(zhuǎn)、縮放和色域變化等數(shù)據(jù)增廣操作,并粘貼至與最終輸出圖像大小相等掩模的對應(yīng)位置,其次截取包含牛臉部的區(qū)域,最后將4幅圖像拼接成1幅新的圖片。該操作不僅增加了數(shù)據(jù)的多樣性,還豐富了圖片的背景,增強了網(wǎng)絡(luò)的魯棒性,Mosaic處理的訓(xùn)練圖如圖4所示。
4 實驗與結(jié)果分析(Experiment and resultanalysis)
4.1 實驗樣本設(shè)置
同一群體的形態(tài)相近的甘肅省張掖市某養(yǎng)殖場的30頭牛進(jìn)行數(shù)據(jù)集制作,得到有效數(shù)據(jù)6 775幅,包含牛在不同時間、不同地點的活動情況,采用人工方式進(jìn)行牛個體圖像定位與標(biāo)簽設(shè)定,部分標(biāo)簽設(shè)定如0(Cow1)、1(Cow2)和2(Cow3)等30頭牛。
4.2 實驗評價指標(biāo)
不同于其他的目標(biāo)檢測任務(wù),本文對于牛個體的個體識別檢測僅通過準(zhǔn)確度作為評估指標(biāo)是不夠的,還應(yīng)該考慮模型的檢測速度。因此,本文選取了精確率(Precision,P)、召回率(Recall,R)、平均精度均值(Mean Average Precision,mAP)、參數(shù)量(Parameter)和模型計算力(Flops)5個評價指標(biāo)對網(wǎng)絡(luò)模型進(jìn)行評價。P 用來評價模型對牛個體圖像的檢測準(zhǔn)確程度,R 用來評價模型檢測的全面性[22];計算公式分別如公式(4)、公式(5)所示:
4.3 實驗參數(shù)設(shè)置
本文針對牛個體圖像的識別使用的是優(yōu)化的YOLOv5算法,為驗證算法的有效性,在所有超參數(shù)、模型訓(xùn)練環(huán)境相關(guān)參數(shù)均保持一致的情況下,對YOLOv5算法與其在改良后的效果進(jìn)行對比。使用的GPU 為NVIDIA GeForce RTX 3050Laptop GPU,CUDA版本11.2,Pytorch版本1.7.1,Python版本3.7,Windows版本W(wǎng)indows 11家庭中文版。實驗中的參數(shù)設(shè)置如表2所示。
4.4 對比實驗
為了驗證LY-Net模型的可靠性,將LY-Net與YOLOv5模型的訓(xùn)練結(jié)果進(jìn)行對比,表3描述了不同網(wǎng)絡(luò)模型占用內(nèi)存大小和針對本數(shù)據(jù)集的平均識別精確率。由表3 可知,YOLOv5的識別精確率約為99.5%。相比YOLOv5,本文模型的識別精確率約為99.6%,因此在牛個體圖像識別率方面,本文模型有一定的優(yōu)勢。在模型參數(shù)方面,YOLOv5參數(shù)量較大,為7.2 MB。本文模型經(jīng)過訓(xùn)練后的參數(shù)量僅為3.8 MB,因此在模型參數(shù)量方面,本文模型也有一定優(yōu)勢。
表3還給出了本文模型與YOLOv5模型的模型計算力的對比結(jié)果。從結(jié)果來看,本文模型的模型計算力為8.9 B,遠(yuǎn)遠(yuǎn)小于YOLOv5的模型計算力,本文模型在參數(shù)量、模型計算力、精確率方面均占有一定的優(yōu)勢。
如圖5所示,模型訓(xùn)練到50次以后開始慢慢收斂,其中box_loss、obj_loss、cls_loss 已經(jīng)降到了較低的水平。其中,box_loss 是bounding box(邊界框)的定位損失,也就是模型預(yù)測框與真實框的差值,差值越小,說明模型預(yù)測框越準(zhǔn);obj_loss 為置信度損失,損失越小,說明目標(biāo)檢測準(zhǔn)確度越高;cls_loss 為分類損失,數(shù)值越小,說明分類準(zhǔn)確度越高??偟膿p失函數(shù)就是計算三者之和,所以損失函數(shù)的變化就是box_loss、obj_loss 和cls_loss 的變化。算法的整體損失值隨訓(xùn)練輪次迭代減少,其中檢測框回歸損失使用的是Focal-EIoULoss,直接最小化了目標(biāo)盒和錨定盒的寬度和高度之差,這使得更快的收斂速度和更好的定位結(jié)果。
4.5 消融實驗
為了驗證經(jīng)過改進(jìn)模型相對于原始模型的有效性,利用驗證集數(shù)據(jù),對經(jīng)過訓(xùn)練后獲得的YOLOv5數(shù)據(jù),加入GhostNet的數(shù)據(jù)和CARAFE上采樣算子的數(shù)據(jù),與經(jīng)過最終改進(jìn)后的LY-Net模型數(shù)據(jù)進(jìn)行對比驗證,由圖6可以看出,最終改進(jìn)后的模型在識別精確度上高于原模型和其他改進(jìn)的模型,并且更加穩(wěn)定,更早收斂,由此可以得出本文所提改進(jìn)后的模型是成功的、有效的。
4.6 模型識別結(jié)果
使用訓(xùn)練好的LY-Net模型對測試集數(shù)據(jù)進(jìn)行預(yù)測,精確率約為99.6%,召回率約為99.5%,該模型可有效識別出圖像中牛個體的圖像信息。本文模型的輸出為30頭牛個體,識別結(jié)果如表4所示。
由圖7可以看出,本文所提出的LY-Net模型在迭代次數(shù)小于20輪時,模型的精確率、召回率不太理想。但是,隨著迭代輪數(shù)的不斷提升,模型的精確率不斷提升且趨于穩(wěn)定,從而使牛個體的檢測效果提升。對YOLOv5進(jìn)行了更換主干網(wǎng)絡(luò)、替換損失函數(shù)等優(yōu)化操作,令針對牛個體圖像目標(biāo)的檢測效果得到提升,在100輪次的訓(xùn)練下,算法優(yōu)化后的精確率(P)約為99.6%,召回率(R )約為99.5%,mAP @0.5為99.5%,能較為準(zhǔn)確地識別牛個體圖像。
5 結(jié)論(Conclusion)
本文針對傳統(tǒng)牛個體目標(biāo)檢測模型存在資源占用較大、模型體積大、參數(shù)多、受限硬件條件網(wǎng)絡(luò)收斂速度慢的問題,以YOLOv5網(wǎng)絡(luò)為基礎(chǔ)模型,設(shè)計了一個輕量級牛個體識別模型(Light YOLO Net,LY-Net),并自建數(shù)據(jù)集進(jìn)行驗證,模型訓(xùn)練結(jié)果表明,在一定范圍內(nèi),模型的迭代次數(shù)越多,模型的識別精確率越高,但是超過一定范圍,模型的識別精確率不再增長,本文模型在運行速率、模型大小及識別時間方面均優(yōu)于YOLOv5模型。目前,研究仍處于模型優(yōu)化階段,但為未來牧民與養(yǎng)殖戶能夠利用手機、平板電腦等移動設(shè)備進(jìn)行牛個體身份識別的研究奠定了基礎(chǔ)。
作者簡介:
劉琪偉(1998-),男,碩士生。研究領(lǐng)域:圖像識別,目標(biāo)檢測。
郭小燕(1976-),女,博士,教授。研究領(lǐng)域:智能信息處理,智能優(yōu)化算法。本文通信作者。
李純斌(1972-),男,博士,副教授。研究領(lǐng)域:資源利用與環(huán)境變化。
楊道涵(1995-),男,碩士生。研究領(lǐng)域:資源利用與環(huán)境變化。