目標(biāo)檢測(cè)-Yolov5的理論與實(shí)踐

      網(wǎng)友投稿 1819 2025-03-31

      一、概念介紹

      目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)項(xiàng)目中非常重要的一部分,而YOLO系列是常用的目標(biāo)檢測(cè)算法,經(jīng)常受到關(guān)注和使用。目前使用較多的是YOLOv3,Yolov4和Yolov5算法,是在Yolov3比較經(jīng)典的one-stage網(wǎng)絡(luò)結(jié)構(gòu)的各個(gè)部分不斷整合創(chuàng)新發(fā)展起來(lái)的。Yolov5的官方代碼中,給出的目標(biāo)檢測(cè)網(wǎng)絡(luò)中一共有四個(gè)版本,分別是Yolov5s、Yolov5m、Yolov5l、Yolov5x四個(gè)模型。

      二、網(wǎng)絡(luò)結(jié)構(gòu)

      Yolov5s網(wǎng)絡(luò)是Yolov5系列中深度最小,特征圖寬度最小的網(wǎng)絡(luò),后面三種網(wǎng)絡(luò)都是在其基礎(chǔ)上不斷加深,不斷加寬得到的。可以通過(guò)學(xué)習(xí)Yolov5s整體的網(wǎng)絡(luò)結(jié)構(gòu)圖,從而對(duì)Yolov5系列的網(wǎng)絡(luò)結(jié)構(gòu)圖有比較清晰的認(rèn)識(shí)。

      yolov5的網(wǎng)絡(luò)結(jié)構(gòu)圖可以用紅框分為輸入端、Backbone、Neck、Prediction四個(gè)部分,其中用藍(lán)框標(biāo)出了CBL、Res unit、CSP1_X、CSP2_X、Focus、SPP六個(gè)基本組件。下面先對(duì)其做一個(gè)簡(jiǎn)單的介紹,后面再進(jìn)行具體的分析。

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

      輸入端:Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、自適應(yīng)圖片縮放

      Backbone:Focus結(jié)構(gòu),CSP結(jié)構(gòu)

      Neck:FPN+PAN結(jié)構(gòu)

      Prediction:GIOU_Loss

      2. 基本組件

      CBL:由Conv+Bn+Leaky_relu激活函數(shù)三者組成

      Res unit:借鑒Resnet網(wǎng)絡(luò)中的殘差結(jié)構(gòu),讓網(wǎng)絡(luò)可以構(gòu)建的更深

      CSP_X:借鑒CSPNet網(wǎng)絡(luò)結(jié)構(gòu),由卷積層和X個(gè)Res unint模塊Concate組成

      Focus:對(duì)圖像進(jìn)行切片后再Concate組成

      SPP:采用1×1,5×5,9×9,13×13的最大池化的方式,進(jìn)行多尺度融合。

      2.1 輸入端

      1. Mosaic數(shù)據(jù)增強(qiáng)

      隨機(jī)使用四張照片,用隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接,可以大大豐富檢測(cè)數(shù)據(jù)集,特別是隨機(jī)縮放會(huì)增加很地盤(pán)小目標(biāo),對(duì)于小目標(biāo)的檢測(cè)效果很好。但是如果數(shù)據(jù)集本身就有很多小目標(biāo),就會(huì)使目標(biāo)變得更小,導(dǎo)致模型泛化能力變差。

      2. 自適應(yīng)錨框計(jì)算

      在Yolo算法中,針對(duì)不同的數(shù)據(jù)集,都會(huì)有初始設(shè)定長(zhǎng)寬的錨框。預(yù)定義錨框就是一組預(yù)設(shè)的邊框,在訓(xùn)練時(shí),以真實(shí)的邊框位置相對(duì)于預(yù)設(shè)邊框的偏移來(lái)構(gòu)建,這就相當(dāng)于先大致在可能的位置框出來(lái)目標(biāo),然后再在這些預(yù)設(shè)邊框的基礎(chǔ)上進(jìn)行調(diào)整。具體來(lái)說(shuō),是在網(wǎng)絡(luò)訓(xùn)練中,網(wǎng)絡(luò)在初始錨框的基礎(chǔ)上輸出預(yù)測(cè)框,進(jìn)而和真實(shí)框groundtruth進(jìn)行比對(duì),計(jì)算兩者差距,再反向更新,迭代網(wǎng)絡(luò)參數(shù)。

      3. 自適應(yīng)圖片縮放

      在常用的目標(biāo)檢測(cè)算法中,不同的圖片長(zhǎng)寬都不相同,因此常用的方式是將原始圖片統(tǒng)一縮放到一個(gè)標(biāo)準(zhǔn)尺寸,再送入檢測(cè)網(wǎng)絡(luò)中,比如Yolo算法中常用416*416,608*608等尺寸。在圖片長(zhǎng)寬比不同的時(shí)候會(huì)先進(jìn)行放縮后再加入黑邊輸入網(wǎng)絡(luò),這時(shí)黑邊填充較多,存在信息冗余,會(huì)導(dǎo)致推理速度變慢。而Yolov5使用的自適應(yīng)圖片縮放可以對(duì)原始圖像自適應(yīng)的添加最少的黑邊,推理速度得到了37%的提升。

      2.2 Backbone

      Focus結(jié)構(gòu)

      Backbone結(jié)構(gòu)主要利用了Focus和CSP的基本組成結(jié)構(gòu),其中Focus結(jié)構(gòu)是Yolov3和Yolov4沒(méi)有出現(xiàn)的結(jié)構(gòu),比較關(guān)鍵的是切片操作。比如Yolov5s的Focus結(jié)構(gòu)最后使用了32個(gè)卷積核,這樣對(duì)原始608*608*3的圖像輸入Focus結(jié)構(gòu),采用切片操作,先變成304*304*12的特征圖,再經(jīng)過(guò)一次32個(gè)卷積核的卷積操作,最終變成304*304*32的特征圖。

      2. CSP_X結(jié)構(gòu)

      2.3 Neck

      Neck部分的FPN+PAN結(jié)構(gòu)可以表示為下圖。

      將FPN+PAN這樣結(jié)合操作,F(xiàn)PN層自頂向下傳達(dá)強(qiáng)語(yǔ)義特征,而特征金字塔包含了PAN結(jié)構(gòu)則自底向上傳達(dá)強(qiáng)定位特征,從不同的主干層對(duì)不同的檢測(cè)層進(jìn)行參數(shù)聚合,借鑒的是18年CVPR的PANet,當(dāng)時(shí)主要應(yīng)用于圖像分割領(lǐng)域。

      2.4 Prediction

      目標(biāo)檢測(cè)任務(wù)的損失函數(shù)一般由Classificition Loss(分類(lèi)損失函數(shù))和Bounding Box Regeression Loss(回歸損失函數(shù))兩部分構(gòu)成。Yolov5采用的是分類(lèi)損失函數(shù)中的GIOU_loss。

      上圖中的黃色框?yàn)轭A(yù)測(cè)框,藍(lán)色框是真實(shí)框,則可以求出紅色框?yàn)樗鼈兊牟⒓{(lán)底框?yàn)樗鼈兊牟罴琁OU為預(yù)測(cè)框與真實(shí)框的交集除以并集,就能求出GIOU_loss。GIoU不僅關(guān)注重疊區(qū)域,還關(guān)注其他的非重合區(qū)域,能更好的反映兩者的重合度,可以通過(guò)最小化GIOU_loss來(lái)使預(yù)測(cè)框和真實(shí)框不斷靠近。

      三、Yolov5實(shí)踐

      可以訂閱ModelArts的Yolov5算法來(lái)入門(mén)和熟悉Yolov5在目標(biāo)檢測(cè)中的使用流程。

      3.1 準(zhǔn)備數(shù)據(jù)集

      在AI Gallery的數(shù)據(jù)中搜索“檢測(cè)”,就能搜索到適合目標(biāo)檢測(cè)算法的訓(xùn)練集,可以點(diǎn)擊helmet訓(xùn)練集。

      點(diǎn)擊“下載”進(jìn)入下一步。

      下載方式可以選擇“對(duì)象存儲(chǔ)服務(wù)(OBS)”和“ModelArts數(shù)據(jù)集”兩種方式,都是將訓(xùn)練集下載到OBS桶內(nèi),所以目標(biāo)位置都需要填寫(xiě)到OBS桶內(nèi)的文件夾。當(dāng)選擇“ModelArts數(shù)據(jù)集”時(shí)可以給數(shù)據(jù)集命名,后面訓(xùn)練可以通過(guò)名稱(chēng)選擇數(shù)據(jù)集。

      下載好的數(shù)據(jù)集是默認(rèn)訓(xùn)練驗(yàn)證集切分比例為1.00,要輸入到AI Gallery的Yolov5算法中需要進(jìn)行切分。在“數(shù)據(jù)管理”的“數(shù)據(jù)集”中選擇對(duì)應(yīng)數(shù)據(jù)名稱(chēng)的“發(fā)布”。

      可以選擇切分比例為0.8。

      3.2 訂閱Yolov5算法

      在算法中選擇物體檢測(cè)-YOLOv5,訂閱后前往控制臺(tái)。

      進(jìn)入控制臺(tái)后會(huì)有不同版本的Yolov5,可以選擇當(dāng)前最新版本并創(chuàng)建訓(xùn)練作業(yè)。

      3.3 訓(xùn)練Yolov5模型

      創(chuàng)建訓(xùn)練作業(yè)后只需要填寫(xiě)數(shù)據(jù)輸入和模型輸出train_url,超參數(shù)據(jù)可以選擇默認(rèn)值,也可以根據(jù)實(shí)際情況修改,創(chuàng)建完畢后點(diǎn)擊“提交”。

      model_name:模型名稱(chēng)(可選項(xiàng)僅有s,m,l,x)

      batch-size:每步訓(xùn)練的圖片數(shù)量(單卡)

      epochs:訓(xùn)練的epochs數(shù)量

      img-size:輸入圖片的shape大小(寬高都必須能整除32)

      workers:Pytorch dataloader的進(jìn)程數(shù)

      rect:是否使用長(zhǎng)方形訓(xùn)練(即訓(xùn)練過(guò)程中將長(zhǎng)寬比相近的圖片除去圖片冗余部分,并置于同一個(gè)batch以加快訓(xùn)練速度,該模式將會(huì)關(guān)閉dataloader的shuffle),默認(rèn)設(shè)置False

      目標(biāo)檢測(cè)-Yolov5的理論與實(shí)踐

      multi-scale:是否使用多尺度訓(xùn)練(即訓(xùn)練過(guò)程中img-size的抖動(dòng)幅度在設(shè)置值的+/- 50%,一般用于提升精度但會(huì)降低訓(xùn)練的性能,注意設(shè)置該模式batch-size一般需要調(diào)小不然容易出現(xiàn)OOM),默認(rèn)設(shè)置False

      cache-images:是否預(yù)先緩存圖片以加快訓(xùn)練速度,默認(rèn)設(shè)置False

      sync-bn:是否使用SyncBatchNorm,該參數(shù)只有在分布式場(chǎng)景下才生效,默認(rèn)設(shè)置False

      訓(xùn)練完畢后可看訓(xùn)練作業(yè)的評(píng)估結(jié)果,以及精度評(píng)估和敏感度分析。

      3.4 在線(xiàn)推理部署

      點(diǎn)擊訓(xùn)練作業(yè)中的“創(chuàng)建模型”。

      選擇“從訓(xùn)練中選擇”-“訓(xùn)練作業(yè)”后就能根據(jù)已經(jīng)訓(xùn)練好的訓(xùn)練作業(yè)來(lái)導(dǎo)入模型。。

      模型導(dǎo)出成功后,選擇在線(xiàn)服務(wù)來(lái)進(jìn)行部署,選擇模型后就能上傳本地文件來(lái)進(jìn)行預(yù)測(cè)。

      四、參考鏈接

      [1] 江大白, "深入淺出Yolo系列之Yolov5核心基礎(chǔ)知識(shí)完整講解", https://zhuanlan.zhihu.com/p/172121380

      [2] 江大白, "深入淺出Yolo系列之Yolov3&Yolov4&Yolov5核心基礎(chǔ)知識(shí)完整講解", https://zhuanlan.zhihu.com/p/143747206

      圖像處理 機(jī)器學(xué)習(xí) 神經(jīng)網(wǎng)絡(luò)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表單元自定義(excel自定義單元格內(nèi)容)
      下一篇:Excel中2010版進(jìn)行表格自動(dòng)分頁(yè)小計(jì)的操作方法(excel表格怎么自動(dòng)分頁(yè))
      相關(guān)文章
      亚洲s色大片在线观看| 99久久精品国产亚洲| 亚洲片一区二区三区| 亚洲av一本岛在线播放| 亚洲va国产va天堂va久久| 亚洲乱码中文字幕手机在线| WWW亚洲色大成网络.COM | 亚洲黄色免费网址| 久久亚洲综合色一区二区三区| 亚洲片一区二区三区| 午夜亚洲国产精品福利| 亚洲综合av一区二区三区不卡| 亚洲乱码一二三四区乱码| 四虎亚洲精品高清在线观看| 自拍偷区亚洲国内自拍| 亚洲欧洲无卡二区视頻| 国产亚洲欧美日韩亚洲中文色| 蜜芽亚洲av无码一区二区三区| 国产午夜亚洲精品不卡| 亚洲人成网站观看在线播放| 亚洲伊人成无码综合网| 亚洲男人的天堂在线va拉文| 亚洲日韩中文字幕日韩在线| 亚洲日韩精品一区二区三区| 亚洲AV无码专区国产乱码电影 | 亚洲精品无码成人片在线观看| 亚洲第一区在线观看| 亚洲成?v人片天堂网无码| 亚洲国产免费综合| 亚洲综合另类小说色区| 亚洲第一AV网站| 久久亚洲AV无码精品色午夜| 亚洲videos| 精品亚洲国产成人av| 亚洲欧洲日本在线| 亚洲AV永久无码区成人网站| 久久亚洲AV成人无码软件| 亚洲国产精品xo在线观看| 亚洲人成网站免费播放| 亚洲国产精品成人AV无码久久综合影院| 亚洲国产人成精品|