YOLOv3常用命令集合

1. Ubuntu中创建了虚拟环境后,环境切换命令

workon yolov3_py2  #切换到python2的环境

2. 准备工作

(1)首先手动拷贝VOC2007数据

(2)在darknet/scripts/VOCdevkit/VOC2007文件夹中,打开终端(yolov3_py2环境),运行python xml2txt.py文件,得到Main文件夹中的4个完整txt文件。

(3)在darknet/scripts文件夹中,运行python voc_label.py 在VOC2007文件夹中产生labels文件夹。

(4)修改darknet/cfg文件夹中两个文件:voc.data和yolov3-voc.cfg,修改data下的一各类别名称文件:xxx.names

3. 单GPU训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg weights/darknet53.conv.74 | tee dingall.txt

4.开始测试

(1)准备工作:修改cfg中yolov3-voc.cfg中test中的batchsize = 1,下一行也是1,train中注释掉这两行

(2)测试单张图片

./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights data/xxx.jpg 

(3)训练过程可视化:将darknet文件夹下的dingall.txt拷贝到keshihua文件夹中的IOU_Loss文件夹中的30000文件夹中,与iouLoss.py放在一起,运行这个py文件python iouLoss.py,得到两幅图和两个文件,保存图片至本文件夹。(有时会出现没有pandas模块,解决办法:pip install wheel; pip install pandas)。

5.测试test数据集

(1)清空result文件夹下的文件(不删也行,会覆盖)

(2)首先修改examples/detector.c:validate_detector函数中,约为424行,将comp4_det_val_改成comp4_det_test_,然后重新编译。

(3)批量测试——输出文本检测结果(first) (输出在results文件夹中comp4_det_test_类名.txt)

./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

(4)批量测试——输出图片检测结果(second)(输出在data/out-img文件夹中)

./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights
Enter Image Path: scripts/2007_test.txt

(5)计算recall(执行这个命令需要修改detector.c文件,修改信息请参考“detector.c修改”)

./darknet detector recall cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

(6)计算各类别的AP和mAP:工作环境切换成tensorflow_py3,生成plk文件用于画PR曲线:执行下列命令前一定要注意把darknet/scripts/VOCdevkit/annotations_cache这个文件夹删掉,否则影响新的文件输出(参考

python reval_voc.py --voc_dir /home/dj/dingjing/darknet/scripts/VOCdevkit --year 2007 --image_set test --classes /home/dj/dingjing/darknet/data/dingall.names x #(x是自己新建的文件夹名称,用来保存最后生成的.txt文件)

6. 在此基础上测试其他模型:

(1)终端1(yolov3_py2):批量测试——输出文本检测结果

 ./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

(2)终端2(tensorflow_py3):计算recall

./darknet detector recall cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

(3)终端2(tensorflow_py3):计算各类别的AP和mAP: 屏蔽掉VOCdevkit/annotations_cache这个文件夹

python reval_voc.py --voc_dir /home/dj/dingjing/darknet/scripts/VOCdevkit --year 2007 --image_set test --classes /home/dj/dingjing/darknet/data/dingall.names x

7. 测试val数据集 (与5.测试test数据集类似)

(1)首先修改examples/detector.c:validate_detector函数中,约为424行,将comp4_det_test_改成comp4_det_val_,然后重新编译:

(2)批量测试——输出文本检测结果(first)(输出在results文件夹中comp4_det_val_类名.txt)
./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

(3)(与test数据集没有区别)批量测试——输出图片检测结果(second)(输出在data/out-img文件夹中)
./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights
Enter Image Path: scripts/2007_val.txt

(4)(与test数据集没有区别)计算recall(执行这个命令需要修改detector.c文件,修改信息请参考“detector.c修改”)
./darknet detector recall cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

(5)(切换成python3)计算各类别的AP和mAP:生成plk文件用于画PR曲线:执行下列命令前一定要注意把darknet/scripts/VOCdevkit/annotations_cache这个文件夹屏蔽掉,否则影响新的文件输出(参考https://blog.csdn.net/weixin_41143397/article/details/83831839)
python reval_voc.py --voc_dir /home/dj/dingjing/darknet/scripts/VOCdevkit --year 2007 --image_set val --classes /home/dj/dingjing/darknet/data/dingall.names x(x是自己新建的文件夹名称,用来保存最后生成的.txt文件)

8. 测试视频

./darknet detector demo cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_25000.weights data/1.mp4

9. 断点继续训练

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc.backup | tee dingall.txt

posted on 2020-03-25 08:52  丁错儿  阅读(12)  评论(0编辑  收藏  举报

导航