【论文解读】TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone

Abstract

存在问题
  1. 由于无人机会在不同的高度飞行,物体的尺度变化剧烈,这给网络的优化带来了负担。
  2. 高速和低空飞行对排列密集的物体带来了运动模糊,这对物体的区分带来了巨大挑战。
    【论文解读】TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone_第1张图片

文章提出的解决方法

【论文解读】TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone_第2张图片

  1. 增加一个检测头来检测不同规模的对象
  2. 用Transformer Prediction Heads 来替代原先的检测头
  3. 用CBAM来寻找具有密集对象的场景中的注意区域
  4. 除了以上三点,还使用了一些常用的tricks。例如:数据增强,多尺度测试,多模型集成,额外的分类器。

结果

  1. VisDrone2021挑战赛取得了第五名(AP39.18%)与第一名(AP39.43)差距很小。

Introduction

  1. 无人机场景下的图像主要有以下三个问题
    1. 尺度变化大
    2. 物体密集,造成遮挡
    3. 由于无人机拍摄场景覆盖面积大,图像中包含多种多样的地理元素
  2. 网络组成
    1. Backbone与Neck部分与YOLOv5一致
    2. 在Head部分,额外添加了一个检测头用来检测图片中的Tiny物体,这样整个的TPH-YOLOV5的检测头部分总共有四部分,分别是Tiny,Small,Medium,Large
    3. 将原始的检测头用TPH替代
    4. 加入CBAM,用来寻找感兴趣的区域
  3. 训练策略
    1. 采用数据增强,提升了网络对图像中尺度变化大的问题
    2. 推理阶段,采用多尺度测试和多模型集成策略
    3. 针对网络定位能力强,分类能力弱的问题,引入了一个ResNet18来更好的提高网络分类能力。

TPH-YOLOv5

  1. Prediction head for tiny objects
    作者通过分析VisDrone数据集,发现数据集中存在许多小物体,因此加入了一个用于检测Tiny物体的检测头
  2. Transformer encoder block
    1. 作者认为Transformer能够更好的捕获全局信息,因此替换掉了一些卷积层,得出transformer encoder blocks在处理密集物体场景中拥有更好的表现。
    2. 将transformer encoder blocks 放在backbone的尾部以及head部分的原因是为了特征图分辨率较低,能够有效降低昂贵的计算和内存成本
  3. Convolutional block attention module(CBAM)
    用于网络在处理令人困惑的地理区域时,能够更改好的专注于有用的目标对象
  4. Ms-testing and model ensemble.
    常规操作
  5. Self-trained classifier.
    针对网络定位能力强,分类能力弱的问题,引入了一个ResNet18来更好的提高网络分类能力。

Experiments

  1. Pytorch版本:1.81.
  2. 显卡版本:RTX3090
  3. 训练阶段具体细节
    1. 使用yolo5x预训练好权重,然后在此基础上用TPH-YOLOv5训练
    2. 由于VisDrone数据集比较小,因此只训练65个eopch,前2个用来warm-up
    3. 使用 adam optimizer,初始余弦学习率为3e-4
    4. 最后一个epoch的学习率,衰减到初始学习的0.12
    5. 由于图像分辨率比较大,因此使用的batch-size为2

你可能感兴趣的:(#,论文精读,transformer,pytorch,深度学习)