?目錄
一、前期準(zhǔn)備+所需環(huán)境配置?
1.1. 虛擬環(huán)境創(chuàng)建
1.2 下載yolov8源碼,在pycharm中進(jìn)行配置
1.2.1 下載源碼
1.2.2 在pycharm終端中配置conda
1.3?在pycharm的terminal中激活虛擬環(huán)境?
1.4 安裝requirements.txt中的相關(guān)包
1.5 pip安裝其他包
1.6 預(yù)訓(xùn)練權(quán)重的下載?
1.7 驗(yàn)證環(huán)境配置是否成功
二、數(shù)據(jù)集的準(zhǔn)備?
2.1?coco128數(shù)據(jù)集下載
?2.2?coco128數(shù)據(jù)集格式
2.2.1 數(shù)據(jù)集文件夾
2.2.2 coco數(shù)據(jù)集的yaml文件
2.3 自建數(shù)據(jù)集?
2.3.1 數(shù)據(jù)集格式
2.3.2 yaml文件
三、訓(xùn)練自己的數(shù)據(jù)集
3.1 輸入運(yùn)行命令
3.2 訓(xùn)練結(jié)果
??編輯
3.3 驗(yàn)證
yolov8源碼下載地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 ?? in PyTorch > ONNX > OpenVINO > CoreML > TFLite
yolov8使用文檔:?
Home - Ultralytics YOLOv8 Docs
教學(xué)視頻參考:?包會(huì)!YOLOv8訓(xùn)練自己的數(shù)據(jù)集_嗶哩嗶哩_bilibili
一、前期準(zhǔn)備+所需環(huán)境配置?
1.1. 虛擬環(huán)境創(chuàng)建
先用conda prompt創(chuàng)建一個(gè)虛擬環(huán)境,我的叫yolov8, python版本用3.10
conda create -n yolov8 python=3.10
1.2 下載yolov8源碼,在pycharm中進(jìn)行配置
1.2.1 下載源碼
源碼地址:
GitHub - ultralytics/ultralytics: NEW - YOLOv8 ?? in PyTorch > ONNX > OpenVINO > CoreML > TFLite
下載好解壓之后用pycharm進(jìn)行打開,然后把interpreter設(shè)置為剛剛創(chuàng)建的虛擬環(huán)境
1.2.2 在pycharm終端中配置conda
關(guān)于如何在pycharm終端中配置虛擬環(huán)境可以看這篇:?
pycharm終端配置,使用Anaconda_pycharm設(shè)置terminal打開anaconda的命令行窗口顯示找不到本地終端-CSDN博客
具體:把settings-> Tools -> Terminal中的shell path換成你的conda prompt的位置
- 在屬性中找到anaconda prompt的目標(biāo)位置,把cmd.exe開始的后面所有內(nèi)容都復(fù)制下來
?
- 粘貼到shell path中的對(duì)應(yīng)位置,重啟就OK啦
?PS: 如果還是出現(xiàn)了CommandNotFoundError錯(cuò)誤可以參考如下文章解決,我的錯(cuò)誤就是根據(jù)這個(gè)解決的
CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘. If using_aoimono的博客-CSDN博客
1.3?在pycharm的terminal中激活虛擬環(huán)境?
使用conda activate命令激活虛擬環(huán)境,激活成功的標(biāo)志就是命令行前面的(base)換成了你的虛擬環(huán)境的名字
1.4 安裝requirements.txt中的相關(guān)包
pip install -r requirements.txt
1.5 pip安裝其他包
安裝代碼運(yùn)行所需的ultralytics和yolo包
pip install ultralytics
pip install yolo
?
1.6 預(yù)訓(xùn)練權(quán)重的下載?
源碼下載界面中的readme文件中往下翻,找到y(tǒng)olovn8的預(yù)訓(xùn)練權(quán)重,點(diǎn)擊下載,然后把下載好的文件放在項(xiàng)目代碼的根目錄下。
?把權(quán)重文件放在根目錄處
1.7 驗(yàn)證環(huán)境配置是否成功
?復(fù)制下面的代碼來驗(yàn)證一下是否可以運(yùn)行
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg'
PS:我在運(yùn)行過程中遇到了ImportError: cannot import name '***' from 'collections'和No such command 'predict'兩個(gè)問題,都已經(jīng)解決了,解決方案如下:
[解決] 問題:ImportError: cannot import name ‘Callable‘ from ‘collections‘-CSDN博客
YOLOv8報(bào)錯(cuò)Error: No such command ‘predict‘.-CSDN博客
?運(yùn)行命令后可以實(shí)現(xiàn)檢測,結(jié)果保存在runs->detect->predict文件夾下
?可以看到已經(jīng)完成了目標(biāo)框和類別概率的顯示和繪制
二、數(shù)據(jù)集的準(zhǔn)備?
2.1?coco128數(shù)據(jù)集下載
下載coco128文件:
https://ultralytics.com/assets/coco128.zip
下載之后再跟根目錄下新建一個(gè)datasets文件夾,然后把coco128數(shù)據(jù)集放在下面。
?2.2?coco128數(shù)據(jù)集格式
2.2.1 數(shù)據(jù)集文件夾
- images:下面的子文件夾為train2017,存放所有的訓(xùn)練圖片;
- labels:下面的子文件夾為labels2017,存放所有的標(biāo)注標(biāo)簽。
自己的數(shù)據(jù)集的命名和排列方式也要按這個(gè)格式來。
2.2.2 coco數(shù)據(jù)集的yaml文件
coco128數(shù)據(jù)集的yaml文件如下所示,可以看到給出了數(shù)據(jù)集的路徑、訓(xùn)練集和驗(yàn)證集所在的位置,所以仿照該文件寫一個(gè)我們自己的yaml文件;
2.3 自建數(shù)據(jù)集?
2.3.1 數(shù)據(jù)集格式
我使用了一個(gè)蘋果樹葉數(shù)據(jù)集,一共有4個(gè)病害類[insert,mlb,mossaic],使用labelimg標(biāo)注了103張圖片,然后存放在Apple文件夾下
- 圖像如下所示:
- ?標(biāo)簽文件如下所示:
2.3.2 yaml文件
??apple.yaml文件如下所示,存放在Apple數(shù)據(jù)集的根目錄下
# Ultralytics YOLO ??, AGPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco128 ← downloads here (7 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: E:\code_MWY\yolov8\ultralytics-main\datasets\Apple # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: alternaria
1: insert
2: mlb
3: mossaic
三、訓(xùn)練自己的數(shù)據(jù)集
3.1 輸入運(yùn)行命令
設(shè)置好需要訓(xùn)練的數(shù)據(jù)集路徑、所使用的具體yolo模型要加載的預(yù)訓(xùn)練權(quán)重文件,并且設(shè)置所需的epoch數(shù)量。
- data =?datasets/Apple/apple.yaml
- model =?yolov8n.yaml
- pretrained =?ultralytics/yolov8n.pt
- epoch = 100
在terminal中輸入下面的命令 ;
yolo detect train data=datasets/Apple/apple.yaml model=yolov8n.yaml pretrained=ultralytics/yolov8n.pt epochs=100 batch=4 lr0=0.01 resume=True
開始運(yùn)行,等待結(jié)果。
3.2 訓(xùn)練結(jié)果
訓(xùn)練結(jié)束后訓(xùn)練結(jié)果都保存在runs這個(gè)文件夾下,可以看到有所有的指標(biāo)曲線的可視化;
還有模型訓(xùn)練出來的權(quán)重,best.pt為訓(xùn)練的最好的一組權(quán)重,后面可以使用。
?
訓(xùn)練100個(gè)epoch后的結(jié)果如下所示:?
可視化結(jié)果:?
每一個(gè)epoch對(duì)應(yīng)的損失值?
3.3 驗(yàn)證
?輸入下面的命令進(jìn)行模型的驗(yàn)證,這里的models為訓(xùn)練的最好的那一組權(quán)重;
yolo detect val data=datasets/Apple/apple.yaml model=runs/detect/train/weights/best.pt batch=4
結(jié)果如下所示:?
3.4 預(yù)測結(jié)果
?輸入下面的命令預(yù)測如下名為insert的圖片
yolo predict model=runs/detect/train/weights/best.pt source=insert.jpg
?可以看到模型完成預(yù)測,標(biāo)注出來了所屬的類別、位置并且給出了概率值。文章來源:http://www.zghlxwxcb.cn/news/detail-752697.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-752697.html
到了這里,關(guān)于適合小白的超詳細(xì)yolov8環(huán)境配置+實(shí)例運(yùn)行教程,從零開始教你如何使用yolov8訓(xùn)練自己的數(shù)據(jù)集(Windows+conda+pycharm)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!