圖1.1:YOLOv8初始測試
YOLOv8??于 2023年1月10日由Ultralytics發(fā)布。它在計算機視覺方面提供了進展,帶來了對我們感知、分析和理解視覺世界的巨大創(chuàng)新。它將為各個領(lǐng)域帶來前所未有的可能性。
在速度、準確性和架構(gòu)方面進行了相當大的改進。它是從頭開始實現(xiàn)的,沒有使用任何來自YOLOv5的主要模塊(即模型架構(gòu))。它的速度更快,比其先前版本(YOLOv7)更準確,并且在平均精度均值(MAP)方面獲得了53.7的新高。
圖1.2:YOLOv8平均精度均值
在本文中,我們將重點介紹訓練YOLOv8自定義數(shù)據(jù)集所需的步驟。您可以按照下面提到的步驟在自己的數(shù)據(jù)上訓練YOLOv8。所有提到的步驟都經(jīng)過了適當?shù)臏y試,在Windows和Linux操作系統(tǒng)上運行良好。
-
-
安裝模塊
預(yù)訓練的目標檢測
使用自定義數(shù)據(jù)訓練YOLOv8
使用自定義權(quán)重進行推理
-
安裝模塊
YOLOv8發(fā)布了一個名為“ultralytics”的軟件包,您可以使用下面提到的命令進行安裝。
pip install ultralytics==8.0.0
or
# latestversion
pip install ultralytics
以上命令將安裝所有必要的軟件包,以便您可以在自己的數(shù)據(jù)上使用YOLOv8進行檢測和訓練。
注意:請確保您的系統(tǒng)上安裝了Python 3.7.0或更高版本。
預(yù)訓練的目標檢測
如果您只需要運行單個命令來以高效的方式進行目標檢測并提供更準確和快速的結(jié)果,那您會有什么感受呢?
您可以在終端/(命令提示符)中運行以下命令,在所選視頻/圖像上使用預(yù)訓練權(quán)重進行檢測,使用YOLOv8。
#for image
yolo task=detect mode=predict model=yolov8n.pt source="test.png"
#for video
yolo task=detect mode=predict model=yolov8n.pt source="test.mp4"
如果一切順利,您將在當前目錄內(nèi)的“runs/detect/exp”文件夾中獲得結(jié)果。
Fig-1.3: 預(yù)訓練對象檢測(作者提供的圖像)
在自定義數(shù)據(jù)上訓練 YOLOv8
訓練 YOLOv8 對象檢測模型的步驟可以概括如下:
-
-
收集數(shù)據(jù)
標記數(shù)據(jù)
劃分數(shù)據(jù)集(訓練集、測試集和驗證集)
創(chuàng)建配置文件
開始訓練
-
步驟 1:收集數(shù)據(jù)
為 YOLOv8 自定義訓練創(chuàng)建一個數(shù)據(jù)集。如果沒有數(shù)據(jù),可以使用來自 openimages 數(shù)據(jù)庫的數(shù)據(jù)集或以下網(wǎng)站提供的數(shù)據(jù)集:https://medium.com/nerd-for-tech/extraction-of-frames-from-multiple-videos-3ddbced6f3c2
YOLOv8 將標簽數(shù)據(jù)存儲在文本(.txt)文件中,格式如下:
<object-class-id> <x> <y> <width> <height>
步驟 2:標記數(shù)據(jù)
您可以使用 labelImg 工具或 Roboflow 平臺進行數(shù)據(jù)標注,具體取決于您的需求。如果您想了解 labelImg 工具的工作流程,可以查看以下文章:
https://medium.com/nerd-for-tech/labeling-data-for-object-detection-yolo-5a4fa4f05844
步驟 3:劃分數(shù)據(jù)集(訓練集、測試集和驗證集)
當您想在自定義數(shù)據(jù)上訓練計算機視覺模型時,將數(shù)據(jù)分成訓練集和測試集非常重要。訓練集用于教授模型如何進行預(yù)測,而測試集用于評估模型的準確性。常見的分割比例是 80-20%,但實際比例可能取決于數(shù)據(jù)集的大小和您正在處理的具體任務(wù)。例如,如果您有一個小數(shù)據(jù)集,您可能希望使用更高的百分比進行訓練,而如果您有一個大數(shù)據(jù)集,您可以使用較小的百分比進行訓練。
對于數(shù)據(jù)拆分,您可以查看 split-folders,它會將數(shù)據(jù)隨機拆分為訓練集、測試集和驗證集。split-folders鏈接:https://pypi.org/project/split-folders/
文件夾結(jié)構(gòu):
├── yolov8
## └── train
####└── images (folder including all training images)
####└── labels (folder including all training labels)
## └── test
####└── images (folder including all testing images)
####└── labels (folder including all testing labels)
## └── valid
####└── images (folder including all testing images)
####└── labels (folder including all testing labels)
步驟 4:創(chuàng)建配置文件
創(chuàng)建自定義配置文件可以是組織和存儲計算機視覺模型的所有重要參數(shù)的有用方式。
在你已經(jīng)打開終端/(命令提示符)的當前目錄內(nèi)創(chuàng)建一個文件名為“custom.yaml”的文件。將下面的代碼粘貼到該文件中。設(shè)置數(shù)據(jù)集文件夾的正確路徑,更改類及其名稱,然后保存它。
path: (dataset directory path)
train: (Complete path to dataset train folder)
test: (Complete path to dataset test folder)
valid: (Complete path to dataset valid folder)
#Classes
nc: 5# replace according to your number of classes
#classes names
#replace all class names list with your classes names
names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane']
注意:確保設(shè)置正確的訓練和測試目錄路徑,因為訓練過程將完全依賴于該文件。
步驟 5:開始訓練
一旦你完成了預(yù)處理步驟,例如數(shù)據(jù)收集,數(shù)據(jù)標注,數(shù)據(jù)拆分和創(chuàng)建自定義配置文件,你可以使用下面在終端/(命令提示符)中提到的命令開始在自定義數(shù)據(jù)上訓練YOLOv8。
yolo task=detect mode=train model=yolov8n.pt data=custom.yaml epochs=3 imgsz=640
task?= detect(可以是分割或分類)
mode?= train(可以是預(yù)測或驗證)
model?= yolov8n.pt(可以是yolov8s / yolov8l / yolov8x)
epochs?= 3(可以是任何數(shù)字)
imgsz?= 640(可以是320、416等,但請確保它是32的倍數(shù))
圖1.5:在自定義數(shù)據(jù)上訓練YOLOv8
如果有任何圖像損壞,YOLOv8將不會開始在自定義數(shù)據(jù)上進行訓練。如果一些標簽文件損壞,那么訓練不會有問題,因為YOLOv8將忽略這些(圖像和標簽)文件。
等待訓練完成,然后使用新創(chuàng)建的權(quán)重進行推斷。自定義訓練的權(quán)重將保存在下面提到的文件夾路徑中。
[runs/train/exp/weights/best.pt]
使用自定義權(quán)重推理
使用自定義權(quán)重進行推斷時,請使用下面提到的命令進行檢測。
yolo?task=detect?mode=predict?model="runs/train/exp/weights/best.pt"?source="test.png"
or
yolo task=detect mode=predict model="runs/train/exp/weights/best.pt" source="test.mp4"
·? END? ·
文章來源:http://www.zghlxwxcb.cn/news/detail-502212.html
HAPPY?LIFE文章來源地址http://www.zghlxwxcb.cn/news/detail-502212.html
到了這里,關(guān)于基于 YOLOv8 的自定義數(shù)據(jù)集訓練的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!