windows10+Pytorch中用yolov3训练自己数据记录

yolov3版本:下载地址:https://github.com/ultralytics/yolov3   选择原因pytorch中速度快、可以工业部署、不停的更新维护。后续有yolov5(只在其Github看到,后续可以尝试)windows10+Pytorch中用yolov3训练自己数据记录_第1张图片
环境:windows10
          pytorch1.5(1.4)
           python3.7
          CUDA:10.2  (10.1)
           cuDNN7.6
          Visual Studio Enterprise 2019
1、需重新编译coco的PythonAPI 下载地址  https://github.com/cocodataset/cocoapi ;
cmd管理员权限打开进入coco\PythonAPI文件夹下,编译setup.py    命令:python setup.py build_ext --inplace
发现报错,主要内容为:
cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”
========解决方法============
打开coco\PythonAPI目录下的 setup.py文件,
修改ext_modules  extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
#修改为
#extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
 extra_compile_args=['', '', ''],
然后继续执行:python setup.py build_ext --inplace
继续:python setup.py build_ext install
最后编译结束输出Finished processing dependencies for pycocotools==2.0表示成功

2、apex安装(忘了这个好像不用安装是测试YOLOv3-ASFF中安装的)
TypeError: Class advice impossible in Python3. Use the @Implementer class decorator instead
pip uninstall apex
git clone https://www.github.com/nvidia/apex(需安装git或直接下载)
cd apex
python setup.py install
3、官方模型测试(yolov3-spp-ultralytics.pt)
测试yolov3.weights +yolov3.cfg、 yolov3-spp-ultralytics.pt+yolov3-spp.cfg组合
yolov3-spp-ultralytics.pt(608*608  40ms 在测试推理时间速度要快于YOLOv3-ASFF_800_43.9.pth(https://github.com/ruinmessi/ASFF;YOLOv3-ASFF_800_43.9.pth  608*608  80ms    800*800  120ms);
python detect.py --names data/coco.names --cfg cfg/yolov3-spp.cfg --weights weights/yolov3-spp-ultralytics608.pt测试结果:(
测试图片用国内交通标志数据集的测试图
windows10+Pytorch中用yolov3训练自己数据记录_第2张图片windows10+Pytorch中用yolov3训练自己数据记录_第3张图片
windows10+Pytorch中用yolov3训练自己数据记录_第4张图片windows10+Pytorch中用yolov3训练自己数据记录_第5张图片
视频测试:
windows10+Pytorch中用yolov3训练自己数据记录_第6张图片

4、训练自己的数据

数据集制作:
国内交通标志数据集:共包含1465张640*640的交通标志图片,一共标注了6类交通标志,分别是:直行、左转、右转、禁行、禁鸣、人行横道,("straight", "left","right", "stop ", "nohonk", "crosswalk")。标注信息均保存在xml文件下载地址:https://www.kesci.com/home/dataset/5ea92354366f4d002d730fca 下载解压后的数据集格式:一个是xml何对应的图片。写脚本xml2voc2007转换为voc2007格式;之后采用darknet带的voc_label.py脚本转换为darknet需要的txt格式。总之我所用的数据集格式与darknet版本的一样。
windows10+Pytorch中用yolov3训练自己数据记录_第7张图片
yolov3-spp.cfg重新命名yolov3-sppTR.cfg并修改(共有三处)如下图:33=(num+5)*3
windows10+Pytorch中用yolov3训练自己数据记录_第8张图片
以yolov3-spp-ultralytics.pt作为预训练模型;cmd中执行如下命令即可
python train.py --data data/vocTR.data --cfg cfg/yolov3-sppTR.cfg --weights weights/yolov3-spp-ultralytics.pt --epochs 300

windows10+Pytorch中用yolov3训练自己数据记录_第9张图片
在IDE中只需修改如下图的即可:
windows10+Pytorch中用yolov3训练自己数据记录_第10张图片
windows10+Pytorch中用yolov3训练自己数据记录_第11张图片
我这里默认300 epochs就需要6个小时,运行结果如下图
windows10+Pytorch中用yolov3训练自己数据记录_第12张图片
python detect.py --names data/vocTR.names --cfg cfg/yolov3-sppTR.cfg --weights weights/last.pt:推理检测结果:
windows10+Pytorch中用yolov3训练自己数据记录_第13张图片windows10+Pytorch中用yolov3训练自己数据记录_第14张图片

windows10+Pytorch中用yolov3训练自己数据记录_第15张图片windows10+Pytorch中用yolov3训练自己数据记录_第16张图片


 

你可能感兴趣的:(YOLOV3,PYTORCH)