YOLOR 项目介绍
项目背景
YOLOR 是一个实现多任务统一网络的项目,其起源于论文《You Only Learn One Representation: Unified Network for Multiple Tasks》。该项目旨在通过一个网络架构实现多种任务的高效解决,这种统一的网络理念使得在多个任务上都有出色的表现。
特点与性能
YOLOR 在多项测试中显示出其卓越的性能。以下是一些关键模型在 COCO 数据集上的表现:
- YOLOR-CSP: 测试尺寸为640时,平均精度(AP)达到52.8%,在每秒106帧速度下推理时间为3.2毫秒。
- YOLOR-CSP-X: 测试尺寸640时,AP为54.8%,推理速度为每秒87帧,时间为5.5毫秒。
- YOLOR-P6: 测试尺寸1280时,AP为55.7%,速度达到每秒76帧,推理时间为8.3毫秒。
在与 YOLOv4 的对比中,YOLOR 展示了更高的精度和更快的处理速度,这源于其更优化的网络架构和参数配置。
环境搭建
YOLOR 提供了多种环境部署方式,其中推荐使用 Docker 环境以简化安装过程。配置 Docker 环境需要安装一些必要的软件包和依赖库,包括 Python 的 matplotlib 等。对于激活函数使用 "mish" 的需求,可以通过安装 mish-cuda
来支持。此外,对于需要使用小波降采样模块的应用,可以安装 pytorch_wavelets
以获得支持。
数据准备
在进行模型训练和测试之前,需要准备好 COCO 数据集。YOLOR 提供了脚本来自动下载和配置该数据集。此外,用户也需要准备好预训练的权重以便加速训练过程。
模型测试与训练
完成环境和数据准备后,用户可以进行模型的测试和训练。例如,可以通过提供的脚本使用单个或多个 GPU 进行训练。以下是一些训练指令:
- 单个 GPU 训练:
python train.py --batch-size 8 --img 1280 1280 --data coco.yaml --cfg cfg/yolor_p6.cfg --weights '' --device 0 --name yolor_p6 --epochs 300
- 多个 GPU 训练:
python -m torch.distributed.launch --nproc_per_node 2 train.py --batch-size 16 --img 1280 1280 --data coco.yaml --cfg cfg/yolor_p6.cfg --weights '' --device 0,1
模型推理
YOLOR 提供了推理命令,可以对输入的图像进行目标检测,如对图像 horses.jpg
进行推理,命令如下:
python detect.py --source inference/images/horses.jpg --cfg cfg/yolor_p6.cfg --weights yolor_p6.pt --conf 0.25 --img-size 1280 --device 0
关于引用及感谢
在发表学术论文时,可以引用以下内容来表示对 YOLOR 项目的使用和支持:
@article{wang2023you,
title={You Only Learn One Representation: Unified Network for Multiple Tasks},
author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
journal={Journal of Information Science and Engineering},
year={2023}
}
YOLOR 项目的成功得益于多个开源项目的支持与贡献,包括 Darknet、PyTorch YOLOv4 及其变种。这些开源项目为 YOLOR 的开发与实现提供了重要的基础与支持。