YOLOv8已至,精度大漲!教你如何在自定義數(shù)據(jù)集上訓(xùn)練它
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
很快啊——
目標(biāo)檢測經(jīng)典模型YOLO的第八個版本就已經(jīng)發(fā)布了。
這次升級不少,包括命令行界面、Python API、backbone結(jié)構(gòu)等,精度相比YOLOv5高了一大截(速度官方還沒公布)。
下面是網(wǎng)友實測,幾個不同規(guī)模的變體在目標(biāo)檢測、實例分割和圖像分類三項任務(wù)上的漲點最高達(dá)到了33.21%。
不知道YOLOv8這一出,v5版本還會“茍”多久?
oh我們還發(fā)現(xiàn)已經(jīng)有人用它在自定義數(shù)據(jù)集上完成了一波訓(xùn)練,效果是這樣滴。
這精準(zhǔn)度和穩(wěn)定性,讓網(wǎng)友狠狠夸贊了一波。
具體怎么玩?我們把教程也搬來了。
在自定義數(shù)據(jù)集上訓(xùn)練YOLOv8
正式教程開始之前,我們還是先來認(rèn)識一下這個新版本。
它的出品公司還是Ultralytics,也就是發(fā)布YOLOv5的那家。
本次的升級主要包括:
- 用戶友好的API(命令行+Python)
- 更快更準(zhǔn)確(由于正式的論文還沒發(fā)表,它和SOTA模型的具體對比數(shù)據(jù)現(xiàn)在還沒有)
- 同時支持目標(biāo)檢測、實例分割和圖像分類三種任務(wù)
- 可擴(kuò)展到以前所有的版本
- 新的backbone網(wǎng)絡(luò)(CSP結(jié)構(gòu)不變,但C2f模塊替換了C3模塊,每個stage的blocks數(shù)改為[3,6,6,3]等)
- 新的Anchor-Freehead
- 新的損失函數(shù)
其中重點說一下第一條。
首先,YOLOv8的開發(fā)者脫離了標(biāo)準(zhǔn)YOLO項目的設(shè)計,將train.py、detect.py、val.py和export.py這四個腳本進(jìn)行了分離。
短期來看,這種改變可能會引起混亂,因為它從YOLOv3就一直沒有變過;但原來這種看起來就好理解的模式在實時處理和跟蹤場景中進(jìn)行部署實在是比較麻煩。
所以還是改用了更加靈活的新設(shè)計,讓YOLOv8可以通過終端獨立使用。
其次,這次新增的CLI可以讓你在各種任務(wù)和版本上進(jìn)行更加方便的模型訓(xùn)練、驗證或推理。
在終端的操作方式與我們熟悉的腳本非常相似,比如利用CLI檢測給定圖像中的對象,這樣就行:
最后,Ultralytics YOLO這次配備的Pythonic模型和訓(xùn)練接口,讓我們用6行代碼就能在自定義Python腳本中用上YOLO模型,操作方式就像這樣:
是不是很簡單,再也不用像以前那樣改一堆了。
那么接下來,我們就正式開始教程部分了——
在自定義數(shù)據(jù)集上訓(xùn)練YOLOv8。
1、首先,安裝上我們的新YOLOv8,“pip”或者“git clone”一下。
or
2、然后開始構(gòu)建自定義數(shù)據(jù)集。
為了不讓這個過程那么痛苦和耗時,我們可以用上Roboflow這個工具(本教程也是由它提供的)。
操作步驟如下:
(1)創(chuàng)建賬戶,新建項目,項目類型選擇“目標(biāo)檢測(Object Detection)”。
(2)上傳圖片將數(shù)據(jù)集導(dǎo)入到項目之中。如果你沒有準(zhǔn)備數(shù)據(jù)集,可以用它們官方提供的(從Roboflow Universe中下載)。
如果你的圖片已經(jīng)帶標(biāo)注,系統(tǒng)可以自動讀?。蝗绻麤]有,可以用它提供的這個非常快捷的標(biāo)注工具現(xiàn)標(biāo)。
(3)然后就能生成數(shù)據(jù)集了?!邦A(yù)處理”和“數(shù)據(jù)增強(qiáng)”兩個選項可以勾上,讓你的模型魯棒性更強(qiáng)。
(4)現(xiàn)在我們就擁有了自己的一個托管數(shù)據(jù)集,將它導(dǎo)出就能直接加載到電腦中進(jìn)行訓(xùn)練了。
記住從Roboflow Universe中下載數(shù)據(jù)集時選擇“YOLO v5 PyTorch”格式,然后在彈出的窗口中看到一段代碼,簡單修改各個參數(shù)即可。?
3、開始訓(xùn)練
使用下面的命令將數(shù)據(jù)集下載片段(snippet)粘貼到你的YOLOv8 Colab notebook中,開始訓(xùn)練。
取決于數(shù)據(jù)集大小和訓(xùn)練方法,過程將持續(xù)幾分鐘或幾小時。
以下是上述足球數(shù)據(jù)集的訓(xùn)練結(jié)果:
(1)返回的混淆矩陣;
(2)跟蹤的關(guān)鍵指標(biāo);
(3)驗證batch上的推理示例。
是不是還不錯?
4、用測試集驗證模型
訓(xùn)練好后開始驗證。創(chuàng)建數(shù)據(jù)集時分成三部分,其中一部分用來當(dāng)測試集:?
評估結(jié)果如下:
5、使用自定義模型進(jìn)行預(yù)測
命令如下:
結(jié)果示例:
。
6、最后一步:導(dǎo)出和上傳權(quán)重
現(xiàn)在我們擁有了一組訓(xùn)練好的權(quán)重,可用于托管API端點,就在項目的“/runs/detect/train/weights/best.pt”文件夾中。
當(dāng)然,也可以使用Roboflow pip包中的Deploy()函數(shù)將它上傳到Roboflow Deploy中,方便自己和他人共享。
單擊Roboflow儀表板側(cè)欄中的“部署(Deploy)”,查看可用的選項,然后就能直接在瀏覽器中測試你的模型了。要共享給他人,發(fā)送一個URL就行。
測試素材可以直接用你測試集里的圖片,也可以上傳新的圖片或視頻,或者粘貼YouTube鏈接、直接用攝像頭。
全部結(jié)束!是不是還不麻煩?
趕緊去檢驗一番YOLOv8的真本事吧~
需要的鏈接都在下面,Have fun!
YOLOv8官方倉庫:https://github.com/ultralytics/ultralytics
?教程原文:??https://blog.roboflow.com/how-to-train-yolov8-on-a-custom-dataset/?