因为打比赛的需要用到YOLOX算法,专门看了一下YOLOX的论文,做个阅读笔记。
论文链接:https://arxiv.org/abs/2107.08430
YOLOX在YOLO V3的基础之上,加了很多新的方法,特别是使用anchor-free代替了anchor-base,既降低了参数有提升了性能。下面一个一个进行讲解。
Decoupled head
YOLO系列为了简便,使用一个卷积头(coupled head)同时预测cls、reg以及obj,现在已有多种多篇论文证明卷积解耦结构能够提升模型性能,因此在这里使用卷积解耦的方式进行预测,具体的,使用一个分支预测cls,另一个分支预测reg以及obj。
性能提升情况:
性能提升情况:
Strong data augmentation
数据增强能够有效提升模型性能,YOLOX使用了mosaic、mix up作为额外的数据增强。值得注意的是,在训练的最后15个epoch,YOLOX停止了这些这些strong data augmentation。
有两点值得注意:
1、在使用这些数据增强后,使用ImageNet的预训练不能带来性能的提升,因此后续都是从头开始训练模型
2、在训练小模型YOLOX-Nano是,发现使用去除mix up以及减少mosaic的尺寸范围,能够更好的训练模型,这可能与模型的学习能力有关。
Anchor-free
原始的YOLO V3使用anchor-base,但是anchor-base存在着一些问题,首先anchor设置问题,使用聚类等方法得到anchor缺少泛化性能,其次,anchor增加了大大增加了计算量。
因此YOLOX使用anchor-free的方式,YOLOX在FCOS的基础上进行改进,对于location,YOLOX预测相较于grid的左上角的偏移量以及预测的长宽。
Multi positives
FCOS对每个物体只输出一个正样本,而YOLOX将中心区域的3x3作为正样本,也就是center sample,这可以显著提升性能。
SimOTA
重点的重点,还没有看过论文,等看完论文之后再写一篇补上。
消融实验
总的来说,YOLOX并没有给我一种特别惊艳的感觉,与YOLO V4、YOLO V5,只是在YOLO V3的基础上,将多种trick以及验证有效的方法进行拼接。不过这也彰显了YOLO系列的系列的伟大。