Skip to content

Files

Latest commit

 

History

History

Yolov3_pytorch

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

重构YOLO v3代码实现


该仓库基于eriklindernorenPyTorch-YOLOv3进行的,非常感谢他无私的奉献。


目前支持:

  • 数据集:COCO
  • 网络:Darknet-52

相比原作者的特点:

  • 所有参数均可在config.py中设置
  • 重新整理结构,并加入大量代码注释
  • 加入visdom可视化

一般项目结构

1、定义网络

2、封装数据集

3、工具类

4、主函数

  • 环境:

    python版本 pytorch版本
    3.5 0.4

Darknet-52网络结构

以下阅读源码有用:

hyperparams

module_list

module_defs


准备数据集:

下载COCO的数据集

$ cd data/
$ bash get_coco_dataset.sh

数据集结构

data/coco
│
└───images
│   │   train2014
│   │   val2014
│   
└───labels
│   │   train2014
│   │   val2014
│   ...
│   ...


Trian:

1、开启Visdom(类似TnsorFlow的tensorboard,可视化工具)

# First install Python server and client
pip install visdom
# Start the server 
python -m visdom.server

2、开始训练

在config.py中设置参数。

在main.py中将运行train()。

由于原仓库保存、加载模型bug,故不支持保存为 .weight官方格式(二进制且仅保存conv和bn层参数,其余参数读取cfg文件即可),训练保存模型为.pt模型(保存整个模型)。


Test:

作用:测试,计算mAP

1、下载官方的预训练模型

$ cd checkpoints/
$ bash download_weights.sh

2、在config.py中load_model_path配置预训练模型的路径

支持官方模型 .weight 和 自训练模型 .pt

3、 在config.py中设置参数。

在main.py中运行test()。
Model mAP (min. 50 IoU)
YOLOv3 (paper) 57.9
YOLOv3 (官方) 58.38
YOLOv3 (this impl.) 58.2


Predict:

功能:可视化预测图片

1、在config.py中load_model_path配置预训练模型的路径

支持官方模型 .weight 和 自训练模型 .pt

2、在config.py中设置参数。

在main.py中将运行detect()。

官方模型效果:

图片说明 图片说明
图片说明图片说明

参考文献:

推荐配合阅读,效果更佳~


关于作者