论文名称: TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-captured Scenarios 论文下载地址:https://arxiv.org/abs/2108.11539 代码运行参考博客:https://blog.csdn.net/zztjl/article/details/123870061添加链接描述
一、摘要
概述了模型解决的问题域,以及tph-yolov5主要模块。
问题域:主要针对无人机图像检测。无人机拍摄图像相比一般目标检测图像的检测难点有:
- 飞行高度变化导致目标尺度变化剧烈,增加模型负担
- 快速低空飞行造成密集目标区域的运动模糊,给目标区分带来挑战。
模型:本文模型在yolov5的基础上,提出了不同的模块以解决上述问题。
- 增加了一个预测头检测不同尺度的目标
- 使用TPH(Transformer Prediction Heads)代替原始预测头,开发自注意力机制的预测潜力(这里后面可以再看看,还是有点不明白)
- 使用CBAM(Convolutional block attention model)发现密集目标的注意区域
- 采用了一系列tricks:数据增强、多尺度测试、多模型融合、额外分类器等
训练集及结果 数据集:VisDrone2021 实验结果:VisDrone2021挑战赛第五名(AP39.18%),与第一名(AP39.43%)差距很小。
二、Introduction
2.1 直接使用常规目标检测模型检测无人机图像存在的挑战:
- 尺度变化问题:飞行高度的改变导致目标尺度变化剧烈
- 高密度:无人机图像包含密集目标对象,对象间产生遮挡
- 困惑目标:无人机图像因为覆盖范围大往往包含许多令人困惑的地理元素
2.2 本文训练过程示意图 网络组成: - backbone: CSPDark-net53;neck:PANet(path aggregation network).和YOLOV5版本一致
- detection heads:tiny、small 、medium、large objects(引入了tiny object dectection head)
- TPH代替原始预测头,可以在高密度场景准确定位目标
- CBAM寻找图片中的attention region
- tricks:训练时采用数据增加,增加模型对目标尺度变化的鲁棒性;推理阶段,采用ms-testing和multi-model ensemble策略;引入了一个自训练分类器(ResNet 18)来提高模型的分类能力。(此分类器的训练数据来自原始训练数据的裁剪补丁???)
三、相关工作
3.1 数据增强:光度畸变、几何畸变;MixUP、Mosaic、传统方法。
3.2 Multi-Model Ensemble Method 就是ensemble来自不同检测模型的boxes方法:NMS、Soft-NMS、WBF。
3.3 TPH-Yolov5
- Prediction head for tiny objects:发现Visdrone2021数据集中存在很多极小实例目标,增加了一个额外的tiny目标检测头用于tiny物体检测。
- Transformer encoder block:捕获全局信息和上下文信息,替换掉一些卷积层,在处理密集场景中的物体时表现更好;将transformer encoder blocks 放在backbone的尾部以及head部分的原因是为了特征图分辨率较低,能够有效降低昂贵的计算和内存成本。
- CBAM:在处理令人困惑的地理区域时,使模型更好的专注于有用的目标对象。
- Ms-testing and model ensemble:模型输入有六种不同的图片尺寸,使用NMS融合预测结果,在不同模型上,使用WBF得到最后结果。
- self-trained classifier:选择ResNet18 作为分类网络,加强网络分类能力。
四、实验
4.1基础环境 Pytorch 1.8.1、显卡:RTX3090 4.2 实现细节
- pre-trained:yolov5x(成本比较高,自己可以用yolov5s,感觉精度相差应该不大)
- 65 epochs,前两个用于warm-up
- 优化器:adam optimizer
- 初始学习率:3e-4,最后一个epoch降为初始的0.12
- 输入图片比较大(1536*1536),batch size为2
4.3 细微调整
|