文檔標(biāo)尺怎么弄出來(lái)?(怎么把標(biāo)尺弄出來(lái))
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
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)容。