「對(duì)象偵測(cè)」一直是計(jì)算機(jī)視覺的重點(diǎn)項(xiàng)目,已發(fā)展了二十多年,早期利用各種特征提取和比對(duì)來找出人們對(duì)影像中有興趣的像素集合(對(duì)象),如VJ, HOG等。近幾年來,大家則把重點(diǎn)放在了「深度學(xué)習(xí)」的模型上,從剛開始的二階段偵測(cè)器(Two-stage Detector),如RCNN, SPPNet, Fast RCNN, Faster RCNN等,到目前最流行的一階段偵測(cè)器(One-stageDetector),如SSD, RetinaNet, EfficientDet, YOLO等,其中又以YOLO(You OnlyLook Once)系列發(fā)展的最好,一路發(fā)展出YOLOv2, YOLOv3, YOLOv4, YOLOv5, 去年更有ScaledYOLOv4,YOLOX, YOLOR等技術(shù)推出,讓大家有更快推論速度、更高推論精度、更彈性模型架構(gòu),讓同一張影像中大小對(duì)象都能順利被檢出。
「ScaledYOLOv4」這個(gè)模型可依輸入影像大小選擇不同尺度架構(gòu),以往YOLOv4只分標(biāo)準(zhǔn)和tiny兩種,而這里分為tiny, csp, large,而large又分p5, p6, p7,完整的架構(gòu)可參考Fig. 1 & 2。至于模型的運(yùn)作原理[7]寫得頗清楚,這里就不多作說明。從Fig. 1就可明顯看出其效能大幅優(yōu)于YOLOv3, YOLOv4及EfficientDet。
Fig. 1 ScaledYOLOv4和其它模型在COCO數(shù)據(jù)集推論效能比較表。
Fig. 2 ScaledYOLOv4模型架構(gòu)(csp, p5,p6, p7)。
為了讓大家快速上手,這里參考了王建堯博士釋出的PyTorch源碼,
https://github.com/WongKinYiu/ScaledYOLOv4
另外提供了一個(gè)完整的Google Colab范例,說明如何建立環(huán)境及運(yùn)行COCO數(shù)據(jù)集預(yù)訓(xùn)練參數(shù)。而訓(xùn)練及推論自定義數(shù)據(jù)集就留待下回分解。完整范例請(qǐng)參考下列網(wǎng)址。
https://github.com/OmniXRI/Colab_ScaledYOLOv4
由于csp和large(p5)在模型定義的格式略有不同,前者為cfg,后者是采yaml,權(quán)重值亦有不同,前者為weight,后者為pt,所以這里有兩個(gè)范例程序,分別對(duì)應(yīng)csp和large兩種格式,而large又以p5為例,若要執(zhí)行p6, p7則自行修改內(nèi)容即可。
scaled-yolov4-csp_coco_test.ipynb
scaled-yolov4-large_coco_test.ipynb
整個(gè)程序主要有八個(gè)動(dòng)作,如下說明,這里以csp為例。
1. 檢查GPU及CUDA版本
由于后面的程序需要用要Nvidia CUDA,所以要先檢查。執(zhí)行后若顯示failed,則至左上角選單中「編輯」─「筆記本設(shè)定」下「硬件加速器」選擇「GPU」,再重新運(yùn)行一次即可。至于配置到那一種Nvidia GPU則無妨。
!nvidia-smi
2. 檢查系統(tǒng)默認(rèn)安裝套件及版本
建議版本如下所示,若大于下列版本而造成無法順利運(yùn)作則請(qǐng)自行降版后再執(zhí)行后續(xù)工作。
Python3.7.12
opencv-contrib-python4.1.2.30
opencv-python4.1.2.30
tensorboard2.7.0
torch1.10.0+cu111
torchvision0.11.1+cu111
!python--version
!piplist
3. 安裝 mish-cuda
這是ScaledYOLOv4必要組件,一定要安裝,否則無法順利運(yùn)行,預(yù)設(shè)安裝版本 0.0.3。
本范例無法于無Nvidia CUDA環(huán)境下運(yùn)行。
!pipinstall git+https://github.com/JunnYu/mish-cuda.git
!piplist
4. 下載ScaledYOLOv4
依需求下載不同版本(csp, large)的PyTorch ScaledYOLOv4到 /content/ScaledYOLOv4 路徑下。請(qǐng)注意這里 -byolov4-csp 為指定下載csp版本分支,若無-b參數(shù)則為large(default版本)。
!gitclone -b yolov4-csp https://github.com/WongKinYiu/ScaledYOLOv4
%cdScaledYOLOv4
!ls
5. 下載COCO預(yù)訓(xùn)練權(quán)重檔
在 /content/ScaledYOLOv4下新增 /weights 路徑,將Google共享文件COCO預(yù)訓(xùn)練權(quán)重值檔案下載到該路徑下。主要差別在--ld后面的路徑,可自行更換。
yolov4-csp.weights: 1TdKvDQb2QpP4EhOIyks8kgT8dgI1iOWT
yolov4-p5.pt: 1aXZZE999sHMP1gev60XhNChtHPRMH3Fz
yolov4-p6.pt: 1aB7May8oPYzBqbgwYSZHuATPXyxh9xnf
yolov4-p7.pt: 18fGlzgEJTkUEiBG4hW00pyedJKNnYLP3
!mkdirweights
%cdweights
!gdown--id 1TdKvDQb2QpP4EhOIyks8kgT8dgI1iOWT
!ls
6. 下載測(cè)試影像
在 /data 路徑下建立 /images 用于存放測(cè)試影像
隨便從網(wǎng)絡(luò)上下載一張影像并更名為 test01.jpg
%cd/content/ScaledYOLOv4/data
!mkdirimages
%cdimages
!wgethttps://raw.githubusercontent.com/WongKinYiu/PyTorch_YOLOv4/master/data/samples/bus.jpg
!mvbus.jpg test01.jpg
!ls
7. 進(jìn)行推論
根據(jù)下列參數(shù)執(zhí)行推論程序 detect.py
影像大小 640x640, (預(yù)設(shè)csp為640, p5為896, p6為1280, p7為1536)
置信度 0.3, (可自行調(diào)整)
推論裝置(GPU) 0, (第一組GPU)
配置文件, (csp為yolov4-csp.cfg, large為yolov4-p5.yaml)
模型權(quán)重文件, (csp為yolov4-csp.weights,large為yolov4-p5.pt)
來源影像(可指定單張影像、單個(gè)影片、檔案夾等)
%cd/content/ScaledYOLOv4/
!pythondetect.py
--img640
--conf0.3
--device0
--cfgmodels/yolov4-csp.cfg
--weightsweights/yolov4-csp.weights
--sourcedata/images/test01.jpg
8. 顯示推論結(jié)果
推論完成會(huì)將結(jié)果置于 /inference/output 路徑下
使用OpenCV函數(shù)顯示結(jié)果影像
importcv2
fromgoogle.colab.patches import cv2_imshow
img1 =cv2.imread('data/images/test01.jpg')
cv2_imshow(img1)
img2 =cv2.imread('inference/output/test01.jpg')
cv2_imshow(img2)
Fig. 3ScaledYOLOv4運(yùn)行結(jié)果,左:csp,右:large(p5)。
從Fig. 3上可以看出,連右上角的遮擋的很嚴(yán)重的腳踏車都能偵測(cè)到。而左側(cè)穿白外套男人領(lǐng)口的橘色部位在large(p5)被辨識(shí)為領(lǐng)帶,人眼不仔細(xì)看還真的會(huì)誤判,更何況模型。整體來說表現(xiàn)不錯(cuò)。
小結(jié)
這篇文章先幫大家暖暖身,如果你想辨識(shí)的內(nèi)容在COCO數(shù)據(jù)集80類范圍內(nèi)的話,那就直接使用就可以,若需要自己訓(xùn)練自定義的數(shù)據(jù)集,就靜待下回分解啰!
審核編輯 :李倩
-
Google
+關(guān)注
關(guān)注
5文章
1770瀏覽量
57692 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1700瀏覽量
46059 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1209瀏覽量
24772 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5511瀏覽量
121382
原文標(biāo)題:使用Google Colab快速體驗(yàn)ScaledYOLOv4
文章出處:【微信號(hào):易心Microbit編程,微信公眾號(hào):易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論