YOLOv3訓練自己的資料集pytorch版

2021-10-05 18:41:34 字數 2516 閱讀 7223

參考:

pytorch實現yolov3訓練自己的資料集

pytorch實現yolov3的原始位址(ultralytics版)

環境:

win10+python3.6

pytorch 1.1.0

opencv

tqdm

matplotlib

原始碼中有requirements.txt,安裝直接:

pip3 install -u -r requirements.txt
這裡我用的ultralytics的舊版,這個版本不需要 pycocotools,我的win10下執行pip install pycocotools報錯:

microsoft visual c++ 14.0 is required.安裝還挺麻煩的,就用了這個版本

使用精靈標註助手,傻瓜安裝,感覺比labelimge好用。

標註過程簡單,不再贅述。

注意,資料存放目錄不能有中文!!!不然python中匯入時會報錯:'gbk' codec can't decode byte 0xa2 in position 47...

匯出時,選擇voc格式即可,這裡以紅細胞資料集為例,匯出後大概如下:

2、執行maketxt.py,在imagessets下生成如下四個檔案,儲存的名稱

3、執行voc_label.py後,在labels下生成各個的標籤,例如:

0 0.415625 0.8572916666666667 0.15625 0.21875

0 0.19843750000000002 0.7885416666666667 0.15625 0.21875

每行代表乙個目標,各元素分別是:種類+4個座標

同時在data下生成train.txt,test.txt,val.txt,儲存的具體目錄+名稱。

4、在data檔案下新建rbc.names,存放種類的列表(此處只有1類rbc),內容如下:

rbc
在data檔案下新建rbc.data,存放一些配置資訊,內容如下:

classes=

1train=data/train.txt

valid=data/test.txt

names=data/rbc.names

backup=backup/

eval

=coco

遷移學習,修改cfg檔案中網路的結構,主要是yolo層前一層的conv層的卷積核個數。

需要將filters=255改為filters=18,即: anchor個數3x(種類數+bbox4個座標+bbox信度)。注意三個尺度都要改!

將yolo層的class=80改為class=1,即類數。

.

/darknet partial cfg/yolov3-tiny.cfg yolov3-tiny.weights yolov3-tiny.conv.

1515

修改train.py中main函式的parser引數,主要是yolo.cfg檔案位置,rbc.data檔案位置,還有epochs、batch size等超引數,直接執行就好了。

測試test.py,測試位置預設在data\samples,輸出在outputs資料夾

yolov3訓練自己的資料集

6.測試訓練出的網路模型 訓練好後可以在 backup看到權重檔案 嘗試test前要修改cfg檔案,切換到test模式。可以重新建立乙個測試cfg檔案,如yolov3 voc ball test.cfg 測試 darknet detector test cfg voc ball.data cfg y...

YOLOv3訓練自己的VOC資料集

yolo 一 安裝darknet並借助預訓練權重進行檢測 1.安裝darknetgit clone https pjreddie.com media files yolov3.weights3.執行檢測.darknet detect cfg yolov3.cfg yolov3.weights dat...

YOLOv3目標檢測 訓練自己的資料集

yolov3可以實時地進行端到端的目標檢測,以速度快見長。本課程的yolov3使用darknet,在ubuntu上做專案演示。包括 安裝darknet 給自己的資料集打標籤 整理自己的資料集 修改配置檔案 訓練自己的資料集 測試訓練出的網路模型 效能統計 map計算和畫出pr曲線 和先驗框聚類。da...