YOLOX

  • YOLOX简介
  • YOLOX源码
  • 1、下载依赖
  • 2、准备COCO数据集
  • 3、测试
  • 参考文献


YOLOX简介

作为单阶段目标检测模型的中流砥柱,YOLO系列模型一直以简洁,快速出名。由于实际生产应用领域有着低硬件成本和高时效性的要求,YOLOV3成为了工业界使用的最多的目标检测模型之一。令人欣喜的是,新一代YOLO在YOLOV3的基础上应用了decoupled head, strong augmentation, anchor-free, multi positives, SimOTA等tricks,相比YOLOV3 ,MAP又有了大幅度提升。

目标检测本源任务理解_深度学习

YOLOX源码

看论文感觉还是学的比较浅,所以我在YOLOX源码上学习一下代码。关于代码结构,个人觉得这篇文章中分析的比较好。YOLOX源码解析–十分详细 读了源码之后还要在COCO数据集上测试一下。因此我在YOLOX源码的Readme这里看到了配置环境和运行程序的方法。不过踩了几脚坑。

1、下载依赖

git clone https://github.com/Megvii-BaseDetection/YOLOX.git
cd YOLOX

OK,源码下载完成,下一步要安装依赖了,读代码可知,安装依赖执行的是setup.py,requirements.txt中是要下载的packages。官方提示是要用pip3 install -v -e . 下载所有依赖但是这里会有一些WARNING和ERROR出现,如果置之不理,后续测试训练模型都会报错。
这里报错有两个关键性因素。
1、这里提示下载的torch是cpu版本的pytorch,不能用gpu训练。而gpu训练速度会快很多。
2、onnx最新版本已经1.12了,requirement.txt里还要下载1.8。

解决第一个问题有点复杂,因为安装gpu版本的pytorch还需要安装对应版本的cuda和cudnn。这里贴出链接,用conda安装gpu版pytorch

配置gpu版本pytorch 之后还需要把requirements.txt修改成下图所示

目标检测本源任务理解_数据集_02


OK,下一步开始安装其中包含的packages

activate [你的环境名称]
pip3 install -v -e .

2、准备COCO数据集

COCO数据集很大,通过网络下载会很慢,这里推荐一个博文,用百度云盘下会快很多。
MS COCO官网数据集(百度云)下载,COCO API、MASK API和Annotation format介绍(来自官网) 下载完成后可以在./datasets/Readme.md中看到数据集文件分布,按要求保持文件名和文件层次相同。

ln -s [你的COCO下载地址] ./datasets/COCO
#创建符号链接

至此我们可以安装官方流程训练测试了。

3、测试

我这里选择先下载yolox_m模型的权重

目标检测本源任务理解_数据集_03


点对应位置的github就可以下载模型的weights

现在可以在COCO测试集上测试了,

python -m yolox.tools.eval -n yolox-m -c [你的权重文件地址] -b 64 --conf 0.001 --fp16 --fuse

目标检测本源任务理解_数据集_04


OK,可以看到出现一堆log,在末尾可以看到YOLOX模型的AP、AR和每个类的AP、AR

目标检测本源任务理解_深度学习_05

参考文献

YOLOX论文