• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于改進(jìn)的YOLOv5 算法道路目標(biāo)檢測分類技術(shù)研究

      2023-02-23 03:31:14黃劍翔
      電子設(shè)計(jì)工程 2023年4期
      關(guān)鍵詞:損失函數(shù)目標(biāo)

      黃劍翔,朱 碩

      (1.南京信息工程大學(xué)電子信息與通信工程學(xué)院,江蘇南京 210044;2.無錫學(xué)院電子信息工程學(xué)院,江蘇 無錫 214000)

      近年來,深度學(xué)習(xí)由于具備高準(zhǔn)確度、快速檢測等優(yōu)點(diǎn),已經(jīng)逐步占據(jù)傳統(tǒng)算法的主導(dǎo)地位[1],主要分為兩種方法:一類是基于檢測框和分類器的twostage 算法,如R-CNN[2]、Fast R-CNN[3]等,這系列算法精度相比于其他檢測算法較高,但耗時(shí)較長,難以滿足智慧交通系統(tǒng)所需的實(shí)時(shí)性;另一類是基于回歸的one-stage 算法,如YOLO 系列和SSD[4]等,相比于two-stage 算法,這類算法的推理速度快,可滿足智慧交通系統(tǒng)的實(shí)時(shí)性要求。

      該文采用one-stage 算法YOLOv5 網(wǎng)絡(luò)。對(duì)其IOU 損失函數(shù)、數(shù)據(jù)處理算法進(jìn)行改進(jìn),將改進(jìn)后的網(wǎng)絡(luò)與原有網(wǎng)絡(luò)進(jìn)行檢測對(duì)比,對(duì)比結(jié)果顯示改進(jìn)后的網(wǎng)絡(luò)相比原有網(wǎng)絡(luò)的檢測效果有明顯的提升,具有更廣泛的應(yīng)用價(jià)值。

      1 YOLO網(wǎng)絡(luò)模型

      2020 年5 月30 號(hào),Ultralytics LLC 公司提出 一種新的算法YOLOv5,YOLOv5 的FPS 達(dá)到140,速度快的時(shí)候僅需0.007 s 便可完成圖像的推理,這一點(diǎn)便滿足了實(shí)際情況下實(shí)時(shí)性的要求。相比之前的YOLO 系 列,YOLOv5 網(wǎng)絡(luò)結(jié) 構(gòu)更小。YOLOv5 在 數(shù)據(jù)處理方面不但采取了與YOLOv4 相同的mosaic 數(shù)據(jù)增強(qiáng)算法,同時(shí)在主干網(wǎng)絡(luò)部分進(jìn)行優(yōu)化,使得網(wǎng)絡(luò)能夠滿足對(duì)小目標(biāo)的檢測要求。

      YOLOv5[5]檢測網(wǎng)絡(luò)包括四種不同的結(jié)構(gòu):YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。這四種網(wǎng)絡(luò)結(jié)構(gòu)與YOLOv3 和YOLOv4 不同,YOLOv5 系列均以yaml 格式來呈現(xiàn),而YOLOv3、YOLOv4 則是以cfg 格式承載網(wǎng)絡(luò);YOLOv5 的四種網(wǎng)絡(luò)的寬度系數(shù)和深度系數(shù)各不相同,因此在算法性能上四種結(jié)構(gòu)也有所區(qū)別,部分主要指標(biāo)如表1 所示。

      表1 四種網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)

      其中,YOLOv5s 的權(quán)重文件和YOLOv4 相比,僅僅占YOLOv4 權(quán)重文件的1/9,是四種結(jié)構(gòu)中最小的一個(gè)。相比其他三種網(wǎng)絡(luò)結(jié)構(gòu),YOLOv5x 結(jié)構(gòu)縱深最大,網(wǎng)絡(luò)權(quán)重文件也最大,但其AP精度也是四種網(wǎng)絡(luò)結(jié)構(gòu)中最高的;考慮到消耗時(shí)間及網(wǎng)絡(luò)大小二者的利弊,權(quán)衡之下該文選用YOLOv5x作為基礎(chǔ)網(wǎng)絡(luò)。

      YOLOv5 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[6]主要由三大模塊組成,分別為Backbone、Neck、Head 模塊,如圖1 所示。

      圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)

      1)Backbone[7(]主干網(wǎng)絡(luò)):是YOLOv5 網(wǎng)絡(luò)的主要組成部分,是一個(gè)小型卷積神經(jīng)網(wǎng)絡(luò)[8],能用來形成圖像特征。Backbone 主要包括Focus、CSP、SPP[9]以及relu 激活函數(shù)。其中,F(xiàn)ocus 模塊用于對(duì)input 進(jìn)行切片操作,如圖2 所示。

      圖2 Focus切片操作

      圖2 中,左邊是一個(gè)4×4×1 的圖片,經(jīng)過Focus切片操作之后,變成了右邊所示的2×2×4 結(jié)構(gòu)。以YOLOv5x 模型為例,將[b,3,640,640]的圖像輸入網(wǎng)絡(luò)中,經(jīng)過Focus 切片處理之后,得到[b,12,320,320]的特征圖,經(jīng)過32 個(gè)1×1×12 的卷積核的卷積操作,得到[b,32,320,320]的特征圖。其中,b表示batch,即每次輸入的圖片數(shù),3 和12 表示圖片的通道數(shù),640 和320 表示圖片的長、寬。經(jīng)過Focus 模塊處理,減少了計(jì)算量,為模型大大節(jié)省了計(jì)算機(jī)資源和時(shí)間資源;同時(shí)還不會(huì)導(dǎo)致重要信息的丟失,從而保留圖片下采樣信息,為后面的特征提取部分提供了便利。

      2)Neck 模塊:處于Backbone 和Head 之間的模塊,Neck 模塊存在的目的就是更好地利用Backbone提取出的特征,該模塊分為FPN[10]結(jié)構(gòu)和PAN 結(jié)構(gòu)。FPN 結(jié)構(gòu)流程自上向下,經(jīng)過upsample 和concat將上層特征圖和底層特征圖融合得到待預(yù)測的新特征圖。圖中picture5 位置處獲得的特征圖通過upsample 得到與picture4 特征圖大小相同的上采樣層,再通過concat 融合,得到新的待預(yù)測特征圖。FPN 層后有一個(gè)PAN 層,該層操作方向與FPN 恰恰相反,它是一個(gè)自底向上的特征金字塔。FPN 層自頂向下,PAN 自底向上,二者結(jié)合進(jìn)行參數(shù)聚合。

      3)Head(輸出層):Head 模塊用來提取輸出,利用提取的特征做出預(yù)測。進(jìn)行train 時(shí)考慮到代價(jià)函數(shù)中的錨框機(jī)制以及預(yù)測框篩選的修改,YOLOv5 的輸出層采用GIOU 作為損失函數(shù),通過非極大值抑制(NMS)[10]來篩選目標(biāo)框。

      訓(xùn)練時(shí)預(yù)測值與真實(shí)值之間往往存在著誤差,主要用損失函數(shù)來評(píng)價(jià)二者之間的差異程度,通過損失函數(shù)可衡量一個(gè)模型的好與壞,從而評(píng)價(jià)一個(gè)模型的性能,因此損失函數(shù)的選擇至關(guān)重要。最為常見的損失函數(shù)為IOU_LOSS。

      如圖3 所示,其中A與B分別為兩個(gè)互有重合的矩形框,M為A和B的交集,N表示A與B兩個(gè)集合的并集,IOU[11]即是交集與并集之比,IOU_LOSS 即是N-M與N之比,二者的定義如下:

      圖3 IOU示意圖

      訓(xùn)練的目的就是降低IOU_LOSS 的值,隨著該值的減小,說明模型效果在增加。但當(dāng)兩個(gè)框A、B不相交時(shí),則無法預(yù)測兩個(gè)框之間的距離。

      為了解決這個(gè)問題,在YOLOv5 的預(yù)測中,利用GIOU_LOSS[11]作為物體的邊界框的損失函數(shù)。

      如圖4 所示,N為圖3 中A、B的并集,N+2C表示包住兩個(gè)框的最小的矩形面積,GIOU 及GIOU_LOSS的定義如下:

      圖4 GIOU示意圖

      先計(jì)算出兩個(gè)并集及IOU,再計(jì)算出兩個(gè)框的最小包合矩形面積,然后計(jì)算最小包合矩形面積中N的補(bǔ)集所占面積的比重,最后用IOU 減去該比重得到GIOU,計(jì)算GIOU_LOSS 只需用1 減去GIOU。

      2 基于YOLOv5x網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化

      2.1 損失函數(shù)的優(yōu)化

      該文所使用的YOLOv5 網(wǎng)絡(luò)默認(rèn)選擇上文所說的GIOU 損失函數(shù);相比IOU,GIOU 不僅關(guān)注重疊區(qū)域,同時(shí)也關(guān)注非重合區(qū)域,能很好地反映兩者的重合度,因此能解決IOU 中兩個(gè)框沒有相交這種情況下沒有梯度回傳、無法進(jìn)行學(xué)習(xí)的問題。

      當(dāng)遇到兩個(gè)框A、B彼此存在包含關(guān)系,如圖5(a)所示,GIOU_LOSS 幾乎會(huì)退化成IOU_LOSS,這導(dǎo)致IOU_LOSS 問題會(huì)再次出現(xiàn);此外,在這種情況之下GIOU_LOSS 使得回歸速度很慢,也造成時(shí)間資源的浪費(fèi)。

      GIOU 的工作原理在于先通過增加檢測框的大小使其與目標(biāo)框有重疊,后利用IOU_LOSS 項(xiàng)使兩框重合面積最大。與GIOU 相比,該文選擇的CIOU[11]不僅具備GIOU 的優(yōu)點(diǎn),同時(shí)還將中心點(diǎn)之間的歐式距離、高寬比考慮在內(nèi),如圖5(b)所示。

      圖5 CIOU及GIOU對(duì)比圖

      圖中c代表包含A、B的最小的矩形框的對(duì)角線長度(此處B包含A),d表示矩形框A和矩形框B的兩個(gè)中心點(diǎn)之間的距離,CIOU_LOSS 可定義為:

      其中,υ用來衡量寬高比的一致性,α是正權(quán)衡參數(shù),不必參與求導(dǎo);ωgt和hgt表示目標(biāo)的真實(shí)寬、高;ω和h表示預(yù)測目標(biāo)框的寬、高。

      2.2 訓(xùn)練數(shù)據(jù)預(yù)處理

      在大多數(shù)情況下,設(shè)備采集得到的數(shù)據(jù)集不能直接用于網(wǎng)絡(luò)的訓(xùn)練。倘若所獲得的數(shù)據(jù)集數(shù)量不足,將其直接用于訓(xùn)練,得到的結(jié)果并不具有代表性;再者,獲得的數(shù)據(jù)集尺寸大小[12]不滿足網(wǎng)絡(luò)輸入的要求。

      因此,在進(jìn)行訓(xùn)練前須對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,處理方法主要包括數(shù)據(jù)增強(qiáng)與標(biāo)簽平滑處理。

      數(shù)據(jù)增強(qiáng)的目的:一方面增加數(shù)據(jù)集的數(shù)量借此來提升模型的泛化性能,另一方面可人為給數(shù)據(jù)集增加影響模型分辨的噪聲,借此來提高模型的魯棒性。典型的數(shù)據(jù)增強(qiáng)方法包括翻轉(zhuǎn)、旋轉(zhuǎn)、平移、縮放、裁剪、添加噪聲、修改顏色、修改對(duì)比度等。對(duì)原來的數(shù)據(jù)集采用上面所述的數(shù)據(jù)增強(qiáng)方法,可獲得大量新的訓(xùn)練數(shù)據(jù)。

      該文在選用傳統(tǒng)數(shù)據(jù)增強(qiáng)的方法之外,同時(shí)加入馬賽克拼接法(mosaic)[12],如圖6 所示。

      圖6 mosaic數(shù)據(jù)增強(qiáng)

      從左邊的四張圖中分別提取了一部分打亂進(jìn)行拼接,得到右邊的組合圖,然后將拼接的圖作為新的數(shù)據(jù)進(jìn)行訓(xùn)練。

      人為標(biāo)注時(shí),很多時(shí)候會(huì)產(chǎn)生錯(cuò)誤標(biāo)注的問題,這種問題會(huì)對(duì)實(shí)驗(yàn)結(jié)果產(chǎn)生很大的影響。標(biāo)簽平滑處理(Label Smoothing)是常用于解決這個(gè)問題的辦法。訓(xùn)練時(shí)若是選擇使用one-hot 標(biāo)簽來計(jì)算交叉熵?fù)p失,則只計(jì)算了標(biāo)簽為1 位置的損失,并沒有把標(biāo)簽為0 位置的損失算在內(nèi),最終導(dǎo)致在訓(xùn)練集上能得到不錯(cuò)的效果,預(yù)測過程中因?yàn)榇藭r(shí)數(shù)據(jù)來源不是訓(xùn)練集,所以相比之下預(yù)測效果較差。因此,對(duì)數(shù)據(jù)集采用標(biāo)簽平滑處理是必要的。

      該文實(shí)驗(yàn)過程中,選擇使用二元交叉熵標(biāo)簽平滑(smooth_BCE),其公式為:

      式中,y為數(shù)據(jù)標(biāo)簽的獨(dú)熱編碼,一般表示一個(gè)向量;ε為平滑因子。經(jīng)過平滑處理,將訓(xùn)練集中數(shù)據(jù)的標(biāo)簽無論正確與否都考慮到樣本損失函數(shù)的計(jì)算范疇,導(dǎo)致?lián)p失增大、模型的學(xué)習(xí)能力提高。

      3 實(shí)驗(yàn)流程設(shè)計(jì)

      針對(duì)上述內(nèi)容,該文擬通過實(shí)驗(yàn)對(duì)上述問題進(jìn)行驗(yàn)證,實(shí)驗(yàn)流程如圖7 所示。

      圖7 實(shí)驗(yàn)流程

      將圖片輸入數(shù)據(jù)預(yù)處理模塊對(duì)圖片進(jìn)行處理,處理之后的圖片輸入YOLO 網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在反復(fù)的前向、后向傳播之后,訓(xùn)練完畢得到滿足要求的權(quán)重模型。進(jìn)行檢測時(shí),將圖片輸入到訓(xùn)練獲得的模型中,得到檢測結(jié)果圖。

      4 實(shí) 驗(yàn)

      4.1 數(shù)據(jù)集的制作

      該文數(shù)據(jù)集[13]的制作過程主要分為以下兩步:數(shù)據(jù)集的采集、數(shù)據(jù)集的標(biāo)注。因?yàn)閿?shù)據(jù)的預(yù)處理步驟已經(jīng)嵌入到算法中,所以不予考慮這一步。

      數(shù)據(jù)采集工作是在江蘇集萃深度感知研究所的雷視一體機(jī)上完成的,利用該設(shè)備對(duì)路口監(jiān)控視頻截圖,獲得需要的圖片數(shù)據(jù),目的是檢測識(shí)別出四種道路目標(biāo),分別為大型車、小型機(jī)動(dòng)車、非機(jī)動(dòng)車及行人。

      在進(jìn)行數(shù)據(jù)標(biāo)注工作時(shí),選用vott軟件對(duì)雷視一體機(jī)獲得的圖片數(shù)據(jù)進(jìn)行標(biāo)注,分為四類識(shí)別目標(biāo)。

      經(jīng)過反復(fù)篩選跟檢查,從標(biāo)記出的4 000 張圖片中選出了3 600 張符合要求的圖片組成訓(xùn)練集,其中包括不同路口,在白天、夜晚,有無燈光,晴、雨天氣等不同情況下的圖片樣本,以此擴(kuò)大數(shù)據(jù)來源,確保訓(xùn)練獲得模型[14]的可信度。此外,再提取300 張未標(biāo)記的圖片作為測試集。

      4.2 實(shí)驗(yàn)設(shè)定與訓(xùn)練

      該實(shí)驗(yàn)的環(huán)境如表2 所示。

      表2 實(shí)驗(yàn)環(huán)境配置

      實(shí)驗(yàn)訓(xùn)練參數(shù)設(shè)置如下:初始學(xué)習(xí)率設(shè)置為0.01,SGD 動(dòng)量因子為0.937,權(quán)重衰減系數(shù)為0.000 5,最大迭代次數(shù)設(shè)為200 次,batch-size 設(shè)為2,過大會(huì)導(dǎo)致顯卡超負(fù)荷工作,圖片大小為640 pixel×640 pixel。

      為了進(jìn)一步體現(xiàn)該文改進(jìn)模型的優(yōu)勢,在相同數(shù)據(jù)集的前提下,原始YOLOv5網(wǎng)絡(luò)和改進(jìn)的YOLOv5網(wǎng)絡(luò)的損失函數(shù)曲線如圖8 所示。

      圖8 改進(jìn)前后損失函數(shù)

      由圖8 可以看出,改進(jìn)前的網(wǎng)絡(luò)最終損失值并未達(dá)到0.02,而改進(jìn)后網(wǎng)絡(luò)在第200 個(gè)epoch 時(shí)損失值已經(jīng)達(dá)到了0.02,函數(shù)收斂較為理想,且改進(jìn)的YOLOv5 網(wǎng)絡(luò)收斂速度明顯比原始的YOLOv5 網(wǎng)絡(luò)更快,而且也更加穩(wěn)定。

      改進(jìn)前和改進(jìn)后兩個(gè)網(wǎng)絡(luò)的mAP(mean Average Precision)變化曲線如圖9 所示。

      圖9 改進(jìn)前后mAP對(duì)比

      從圖中可以看出,改進(jìn)后網(wǎng)絡(luò)的mAP 值穩(wěn)定在74.32%左右,比改進(jìn)前提高了近2.76%。

      訓(xùn)練完畢,將最終獲得的權(quán)重參數(shù)使用到目標(biāo)樣本的檢測推理中進(jìn)行對(duì)比,如圖10 所示。

      圖10 改進(jìn)前后兩個(gè)網(wǎng)絡(luò)的目標(biāo)識(shí)別效果

      改進(jìn)后網(wǎng)絡(luò)的識(shí)別率及準(zhǔn)確率明顯比改進(jìn)前高了很多,圖中單個(gè)車輛的檢測分?jǐn)?shù)相比改進(jìn)前的檢測結(jié)果都有了一定的提高;改進(jìn)前的模型檢測時(shí)無法檢測出遠(yuǎn)處的公交車和轎車,但是經(jīng)過改進(jìn)之后,模型能夠輕松檢測出遠(yuǎn)處的車輛并做出標(biāo)記。

      4.3 結(jié)果分析

      在交并比(IOU)閾值為0.5的條件下,原始YOLOv5x網(wǎng)絡(luò)的mAP 值為74.81%,改進(jìn)YOLOv5x 的mAP值為77.57%。四個(gè)類別的AP值如表3所示。

      表3 改進(jìn)前后網(wǎng)絡(luò)AP值對(duì)比

      YOLOv5x 改進(jìn)后,各類別目標(biāo)的AP 值都得到了一定程度的提升。這主要得益于改進(jìn)算法對(duì)排隊(duì)遮擋的車輛以及遠(yuǎn)處目標(biāo)的檢測效果有所提高。原本對(duì)行人檢測效果較低,經(jīng)常將路邊樹干、指示燈誤認(rèn)為行人,針對(duì)這一現(xiàn)象,改進(jìn)后的網(wǎng)絡(luò)對(duì)行人的AP值提升了2.110%。相比其他目標(biāo),大型車的AP 值在兩次檢測中都很低,不過在優(yōu)化后,提升了約2.990%。導(dǎo)致大型車AP 如此低的原因可能是在數(shù)據(jù)集中,大型車的數(shù)量比較少,這一點(diǎn)在后期進(jìn)一步優(yōu)化中可以重點(diǎn)處理。

      如表4 所示,此處的YOLOv4 是原始YOLOv4 網(wǎng)絡(luò)經(jīng)過多次實(shí)驗(yàn)后優(yōu)化來的模型,相比原始YOLOv5網(wǎng)絡(luò)模型,mAP 略高,但是與該文優(yōu)化后的YOLOv5網(wǎng)絡(luò)模型相比,mAP 略低。

      表4 實(shí)驗(yàn)結(jié)果對(duì)比

      5 結(jié)束語

      根據(jù)目前道路目標(biāo)檢測過程中存在的一系列問題,提出以深度學(xué)習(xí)[15]為基礎(chǔ)的道路目標(biāo)檢測識(shí)別方法[16-18]。主要采用mosaic 數(shù)據(jù)增強(qiáng)和標(biāo)簽平滑處理的方式來擴(kuò)充數(shù)據(jù)集,建立了道路目標(biāo)識(shí)別數(shù)據(jù)集。以原始YOLOv5 為基礎(chǔ),構(gòu)建改進(jìn)的YOLOv5 網(wǎng)絡(luò)。使用訓(xùn)練集對(duì)改進(jìn)的檢測網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,經(jīng)過40 個(gè)訓(xùn)練epoch 之后代價(jià)函數(shù)趨于平穩(wěn)。改進(jìn)后的模型最終mAP 達(dá)到77.57%,因?yàn)橛?xùn)練數(shù)據(jù)集中數(shù)據(jù)的多樣性,確保該模型具有很好的適用性。但是該文考慮的識(shí)別目標(biāo)只包括四種類型,對(duì)具體的目標(biāo)沒有進(jìn)行細(xì)分,如非機(jī)動(dòng)車也可分為自行車、電動(dòng)車等,后續(xù)將對(duì)數(shù)據(jù)集做進(jìn)一步完善。

      猜你喜歡
      損失函數(shù)目標(biāo)
      少問一句,損失千金
      二次函數(shù)
      第3講 “函數(shù)”復(fù)習(xí)精講
      胖胖損失了多少元
      二次函數(shù)
      函數(shù)備考精講
      玉米抽穗前倒伏怎么辦?怎么減少損失?
      我們的目標(biāo)
      一般自由碰撞的最大動(dòng)能損失
      新目標(biāo)七年級(jí)(下)Unit?。尘毩?xí)(一)
      常德市| 武义县| 仙居县| 扶余县| 铅山县| 东明县| 铜梁县| 花垣县| 万安县| 瑞昌市| 新密市| 田阳县| 荆门市| 上蔡县| 灵宝市| 汝城县| 临邑县| 通许县| 十堰市| 潍坊市| 尚志市| 桦甸市| 广南县| 蓬溪县| 昆山市| 南投市| 榆中县| 中西区| 禹城市| 宜州市| 罗平县| 乌鲁木齐县| 海淀区| 台州市| 布尔津县| 庆安县| 东乌| 哈密市| 牡丹江市| 平邑县| 宝兴县|