1.數據預處理
准備圖片數據(JPEGImages),標注文件(Annotations),以及划分好測試集訓練集的索引號(ImageSets)
修改代碼中voc_label.py文件中的路徑以及類別,生成test_sample_train.txt 和test_sample_test.txt文件(訓練,測試讀此文件來找到圖片路徑),以及labels文件夾為數據的voc標注文件轉換為txt文件(內容為每個圖片中物體類別,以及框的歸一化位置)
2.訓練
准備cfg(修改yolo層的類別classes(類別個數)和對應的filters((classes+5)× 3)如下圖,data(訓練測試的路徑改為數據預處理生成的文件路徑),names(類別名稱)三個文件
![]()
|
|
![]()
|
|
然后在train.py中修改
--epochs 所有數據共迭代多少次
--cfg 剛才的cfg文件路徑
--data data文件路徑
--weights 預訓練模型(我會和數據一起打包發你)
命令行執行的話,也可以不修改代碼中的這些位置直接輸入下面命令效果一樣
python train.py --epochs 100 --cfg cfg/yolov3_drink.cfg --data drink.data --weights weights/yolov3.weights
3.測試(test.py)
和訓練差不多,修改 --cfg --data --weights(要測試的模型)然后run test.py
或命令行輸入 python test.py --cfg cfg/yolov3_drink.data --data data/drink.data --weights weights/best.pt
運行結束會計算每個類別的map等,以及總體的精度結果
![]()
|
|
4.批量推理圖片(detect.py)
--source 被推理的圖片路徑, --output 推理過后圖片存放路徑
代碼,預訓練模型(darknet53,yolov3兩個),數據(100張voc格式標好的數據)下載鏈接https://download.csdn.net/download/weixin_44562081/11939321