YOLOv10(1):初探,訓練自己的數據_yolov10 訓練-CSDN博客
YOLOv10(2):網絡結構及其檢測模型代碼部分閱讀_yolov10網絡結構圖-CSDN博客
YOLOv10(4):損失(Loss)計算及其檢測模型代碼部分閱讀_yolov10損失函數-CSDN博客
YOLOv10(6):YOLOv10基于TensorRT的部署(基于INetworkDefinition)_yolov10網絡結構圖-CSDN博客
目錄
1. 寫在前面
2. 數據集準備
3. 訓練前配置
4. 開始訓練
5. 評估模型
1. 寫在前面
????????我們在YOLOv10初探第一課中,已經涉及到了一些關于如何訓練自己數據集的信息,接下來本節將以VOC數據集(VOC標注形式)來更詳細的帶領小伙伴們走一遍訓練。
2. 數據集準備
????????VOC數據集,全稱為Visual Object Classes數據集,是一種廣泛使用的計算機視覺數據集,主要用于目標檢測、圖像分割和圖像分類等任務。
????????VOC類型的標注一般我們可以使用labelimg軟件完成,標注后所得到的標簽文件一般是XML類型,其中的內容形式如下。其中坐標信息是左上右下的形式。
我們要訓練 YOLOv10,一種方法是轉換成YOLO格式(txt文件形式),其內容參考如下,每一行是一個目標,包含類別ID,中心點和寬高信息(歸一化之后)。
這一步我們可以通過腳本來轉換,參考s1_voc2yolo_convert.py文件。運行該腳本以后,會在指定的數據及路徑下生成labels子文件夾,文件夾中的內容如下所示,每一張圖片對應生成一個txt標注文件。
轉換完成以后,還需要將完整的數據集劃分為測試集、訓練集和評估集,參考腳本s2_split_train_val_test.py。
運行完該腳本以后,會在數據集路徑下生成四個txt文件,分別是test.txt、train.txt、trainval.txt和val.txt,其中內容為完整的圖像路徑,如下。
3. 訓練前配置
經過以上的數據集轉換、處理以后,接下來僅需要進行簡單的配置就可以進行訓練了。
首先是數據集文件,在路徑ultralytics/cfg/datasets路徑下,仿照VOC.yaml創建一個新的文件即可。其內容如下所示。
然后是模型文件,如選擇YOLOv10m,可以直接修改ultralytics/cfg/models/v10/yolov10m.yaml文件,將其中的nc改成對應的類別數。
4. 開始訓練
處理完成數據,完成配置以后,就可以進行訓練了,前面講過,先對./ultralytics/models/yolov10/train進行一些改動,參考如下。
之后就可以開始訓練了,首先進入YOLOv10的頂層路徑,執行如下指令開始訓練。
python3 ./ultralytics/models/yolov10/train.py。
必要時使用sudo。
5. 評估模型
在訓練過程中,每一個epoch訓練完成以后都會進行相應的評估,可以觀察P、R、mAP@0.5、mAP@0.5:0.95等評估參數
也可以通過運行模型,將檢測結果繪制在圖像上進行觀看,具體使用python3 ./ultralytics/models/yolov10/predict.py,完成繪制以后,效果如下。