🆕 你在寻找用 TF2.0 实现的新 YOLOv3 吗?
如果你非常讨厌 TensorFlow1.x,那不用担心!我已经用 TF2.0 实现了一个新的 YOLOv3 仓库,并且还写了一篇关于如何从头开始实现 YOLOv3 目标检测的中文博客。
代码 | 博客 | 问题
第一部分 快速开始
- 克隆此文件
$ git clone https://github.com/YunYang1994/tensorflow-yolov3.git
- 在开始使用这些代码之前,你需要安装一些依赖。
$ cd tensorflow-yolov3
$ pip install -r ./docs/requirements.txt
- 将加载的 COCO 权重导出为 TF 检查点(
yolov3_coco.ckpt
)【百度云】
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py
$ python freeze_graph.py
- 然后你将在根目录下得到一些
.pb
文件,并运行演示脚本
$ python image_demo.py
$ python video_demo.py # 如果使用摄像头,请将 video_path 设置为 0
第二部分 训练你自己的数据集
需要以下两个文件:
xxx/xxx.jpg 18.19,6.32,424.13,421.83,20 323.86,2.65,640.0,421.94,20
xxx/xxx.jpg 48,240,195,371,11 8,12,352,498,14
# image_path x_min, y_min, x_max, y_max, class_id x_min, y_min ,..., class_id
# 确保 x_max < width 且 y_max < height
person
bicycle
car
...
toothbrush
2.1 在 VOC 数据集上训练
下载 VOC PASCAL 训练集和测试数据
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
将所有这些压缩包提取到一个目录中并重命名,应该有以下基本结构。
VOC # 路径: /home/yang/dataset/VOC
├── test
| └──VOCdevkit
| └──VOC2007 (来自 VOCtest_06-Nov-2007.tar)
└── train
└──VOCdevkit
└──VOC2007 (来自 VOCtrainval_06-Nov-2007.tar)
└──VOC2012 (来自 VOCtrainval_11-May-2012.tar)
$ python scripts/voc_annotation.py --data_path /home/yang/test/VOC
然后编辑你的 ./core/config.py
以进行一些必要的配置
__C.YOLO.CLASSES = "./data/classes/voc.names"
__C.TRAIN.ANNOT_PATH = "./data/dataset/voc_train.txt"
__C.TEST.ANNOT_PATH = "./data/dataset/voc_test.txt"
这里有两种训练方法:
(1) 从头开始训练:
$ python train.py
$ tensorboard --logdir ./data
(2) 从 COCO 权重开始训练(推荐):
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py --train_from_coco
$ python train.py
2.2 在 VOC 数据集上进行评估
$ python evaluate.py
$ cd mAP
$ python main.py -na
在 VOC2012 数据集上的 mAP:
第三部分 其他实现
-YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练
- Implementing YOLO v3 in Tensorflow (TF-Slim)