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