|PyTorch版YOLOv4更新了,适用于自定义数据集


机器之心报道
作者:陈萍
距离YOLO v4 的推出 , 已经过去 5 个多月 。 YOLO 框架采用 C 语言作为底层代码 , 这对于惯用 Python 的研究者来说 , 实在是有点不友好 。 因此网上出现了很多基于各种深度学习框架的 YOLO 复现版本 。 近日 , 就有研究者在 GitHub 上更新了基于 PyTorch 的 YOLOv4 。

|PyTorch版YOLOv4更新了,适用于自定义数据集
本文插图

从今年 4 月 YOLOv4 发布后 , 对于这个目标检测框架 , 问的最多的问题或许就是:「有没有同学复现 YOLOv4 的 ,可以交流一下么」 。 由于原版 YOLO 使用 C 语言进行编程 , 光凭这一点就让不少同学望而却步 。 网上有很多基于 TF/Keras 和 Caffe 等的复现版本 , 但不少项目只给了代码 , 并没有给出模型在 COCO、PASCAL VOC 数据集上的训练结果 。
近日 , 有研究者在 GitHub 上开源了一个项目:基于 PyTorch 深度学习框架的 YOLOv4 复现版本 , 该版本基于 YOLOv4 作者给出的实现 AlexeyAB/darknet , 并在 PASCAL VOC、COCO 和自定义数据集上运行 。
项目地址:https://github.com/argusswift/YOLOv4-PyTorch
除此以外 , 该项目还向主干网络添加了一些有用的注意力方法 , 并实现了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4 。
attentive YOLOv4
该项目向主干网络添加了一些注意力方法 , 如 SEnet、CBAM 。
|PyTorch版YOLOv4更新了,适用于自定义数据集
本文插图

SEnet (CVPR 2017)
|PyTorch版YOLOv4更新了,适用于自定义数据集
本文插图

CBAM (CVPR 2018)
mobilenet YOLOv4
该研究还实现了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4(只需更改 config/yolov4_config.py 中的 MODEL_TYPE 即可) 。
下表展示了 mobilenetv2-YOLOV4 的性能结果:
|PyTorch版YOLOv4更新了,适用于自定义数据集
本文插图
【|PyTorch版YOLOv4更新了,适用于自定义数据集】

现在我们来看该项目的详细内容和要求 。
环境要求
Nvida GeForce RTX 2080TI
CUDA10.0
CUDNN7.0
windows 或 linux 系统
python 3.6
特性
DO-Conv (https://arxiv.org/abs/2006.12030) (torch>=1.2)
Attention
fp_16 training
Mish
Custom data
Data Augment (RandomHorizontalFlip, RandomCrop, RandomAffine, Resize)
Multi-scale Training (320 to 640)
focal loss
CIOU
Label smooth
Mixup
cosine lr
安装依赖项
运行脚本安装依赖项 。 你需要提供 conda 安装路径(例如 ~/anaconda3)以及所创建 conda 环境的名称(此处为 YOLOv4-PyTorch) 。
需要注意的是:安装脚本已在 Ubuntu 18.04 和 Window 10 系统上进行过测试 。 如果出现问题 , 请查看详细的安装说明:https://github.com/argusswift/YOLOv4-PyTorch/blob/master/INSTALL.md 。
准备工作
1. git 复制 YOLOv4 库
准备工作的第一步是复制 YOLOv4 。
然后更新配置文件「config/yolov4_config.py」中「PROJECT_PATH」 。
2. 数据集准备
该项目准备了 Pascal VOC 和 MSCOCO 2017 数据集 。 其中 PascalVOC 数据集包括 VOC 2012_trainval、VOC 2007_trainval 和 VOC2007_test , MSCOCO 2017 数据集包括 train2017_img、train2017_ann、val2017_img、val2017_ann、test2017_img、test2017_list 。


推荐阅读