TPH-yolov5论文解读

这篇具有很好参考价值的文章主要介绍了TPH-yolov5论文解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注:个人愚见,有问题欢迎批评指针。

论文:《TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-captured Scenarios》

  • ICCV 2021 Open Access Repository

代码:GitHub - TfeiSong/tph-yolov5: CBAM-TPH-biFPN-yolov5

TPH:Transformer Prediction Head

总结比较实用的点:
1. tph(transformer prediction head)。能够捕获更多的全局信息和上下文信息(使用的self-attention和全连接)。
2. CBAM提高通道和空间注意力机制。简单有效好嵌入CNN架构。
3. 增加小目标预测head。在大尺寸feature上实现对小目标的预测,提高小目标预测的准确率。
4. self-training classifier。对难区分的类别截取预测框,送小网络训练一个分类器,提高类别预测准确度。
5. ms-testiong。nms融合多个尺度图像的预测结果,提高mAP。
6. 模型集成:训练多个模型,融合多个模型的预测结果,提高mAP。

摘要:无人机拍摄场景下的目标检测最近很时兴。难题:1. 因无人机总是在不同高度拍摄图像,导致目标尺寸变化剧烈,网络不易优化。2. 且高速低空飞行会对密集堆叠的物体产生运动模糊,对区分目标带来更大挑战。解决方法:本文提出TPH-yolov5,在yolov5中使用transformer prediction heads 替换原始的预测头,探索自注意力机制,去检测不同尺寸的目标。同时也整合CBAM模块,稠密目标的关注区域。另外,增加了有效策略:数据增强,多尺度测试,多模型融合,利用额外分类器。测试集:VisDrone2021。之前的sota方法:DPNetV3,提升1.81%。比yolov5提升了7%。

1. 介绍

无人机场景的目标检测主要有三个问题:1.尺寸多变,2.目标高密度,3.目标对象覆盖范围大。

TPH-yolov5论文解读

网络结构框架:

TPH-yolov5论文解读

 整体较yolov5的改变:TPH,CBAM,增加更多头对不同尺寸检测,应用训练技巧(数据增强、多尺度测试、模型集成和自训练分类器)

对于类别相似的图像作者使用了self-trained classifier,把图像裁剪出来作为分类训练集训练模型。

本文贡献:

1. 增加更多的预测头,来处理大尺度变化的目标。

2. 整合TPH模块到yolov5中,提高在稠密场景下位置定位的准确性。

3. 整合CBAM到yolov5中,有利于网络寻找大区域内的感兴趣区域。

4. 对于无人机捕获到的场景使用有效地训练技巧:。

5. 使用自训练分类器,提高区分相似类别的分类能力。

2. 相关工作

2.1 数据增强

扩充不同场景的数据集,提高模型鲁棒性。光学变化增强(hue,saturation and value of the images),几何变化增强(random scaling, cropping, translation, shearing, and rotating),mixup,CutMix,Mosaic。

2.2 多模型集成方法在目标检测上

因为每次训练模型时生成的模型权重文件都是不同的,这就导致不同模型预测结果不同。为了降低差异,联合多个模型的预测结果。联合多个模型的方法是,对多个模型预测的框进行nms,soft-nms,WBF等处理。

2.3 目标检测

目标检测可划分多个类型。

1. one-stage 检测器:YOLOX,FCOS,DETR,Scaled-YOLOv4,EfficientDet。 

2. two-stage 检测器:VFNet,CenterNet2

3. anchor-based 检测器:Scaled-YOLOv4,YOLOv5

4. anchor-free 检测器:CenterNet,YOLOX,RepPoints。

5. 专门针对无人机捕捉场景检测器:RRNet,PENet,CenterNet。

目标检测通常有三部分组成:backbone,neck,prediction head。

backbone:VGG,ResNet,DenseNet,MobileNet,EfficientNet,CSPDarknet53,Swin Transformer等等。

neck:neck设计的目的是为了更好地为backbone提供特征提取能力。通常由bottom-up和top-down形式。最早期的neck是up和down采样快。通常使用路径聚合块:FPN,PANet,NAS-FPN,BiFPN,ASFF,SFAM。neck上还有一些额外的块,比如:SPP,ASPP,RFB,CBAM等。

head:检测头目的是用来检测目标框位置和目标类别的。head一般被分为两种类型:one-stage和two-stage的目标检测器。two-stage目标检测方式一直主导方法,比如RCNN系列。one-stage目标检测器直接预测bounding box和目标类别,比如yolo系列,SSD,RetinaNet等。

3. TPH-YOLOv5

3.1 YOLOv5综述

yolov5共四个模型:yolov5s,yolov5m,yolov5l,yolov5x。

yolov5组成:backbone是CSPDarknet53 + SPP,Neck是PANet,detection head是YOLO head。

数据增强:Mosaic,MixUp,photometric distortions,geometric distortions。

3.2 TPH-YOLOv5

TPH-YOLOv5模型框架如图3所示。本文修改官方的yolov5模型,使她更加适应VisDrone2021数据集。

TPH-yolov5论文解读

 Prediction head for tiny objects:因为比赛数据集VisDrone2021包含了很多极其小的目标,所以增加更多小目标的预测头。共四个预测头,来缓解物体剧烈变化带来的尺寸变化。如图3第一个TPH就是专门用来预测小目标(tiny object)产生的。虽然计算量和内存增加,但是效果也有很大提升。

Transformer encoder block:受transformer启发,本文使用transformer encode block替换convolutional blocks和CSP bottleneck blocks。这个结构如图4所示。

TPH-yolov5论文解读

 作者认为transformer encode block相对于CSPDarknet53块 能够捕获更多的全局信息和丰富的上下文信息。transformer encode block包含两子层:多头注意力层和全连接层。

Convolutional block attention module (CBAM):CBAM是一个轻量级且有效的模块,可轻易嵌入CNN框架中。给出一个特征图,CBAM可以在通道和空间上给出注意力图。CBAM如图5所示。实验表明CBAM对最终效果有巨大的提升。

TPH-yolov5论文解读

Ms-testing and model ensemble:本文在不同视角训练五个不同的模型。推理时,使用ms-testing策略:1. 缩放图像至原图的1.3倍。2. 分别把图像缩小1倍,0.83倍,0.67倍。3. 水平翻转图像。最终获取6个人不同尺度的图像,并使用nms融合预测结果。 不同模型使用相同的ms-testing操作,最终通过WBF融合5个模型的预测结果。

Self-trained classifier:自训练分类器,主要对一些预测的检测框很准确但是对分类能力较差的类别从原图上剪切出来,并resize到64*64大小,使用ResNet18做一个分类网络,最终结果提升0.8%~1.0%的AP。

4. 实验

数据集:VisDrone 2021。

测试集:VisDrone 2021中的testset-challenge,testset-dev

测评指标:mAP([0.5:0.95],AP50)

4.1 实现细节

pytorch版本:1.8.1

算法:TPH-YOLOv5

显卡:NVIDIA RTX3090 GPU (训练和测试)

预训练模型:yolov5x。因为TPH-YOLOv5和YOLOv5共享大部分backbone(block 0~8)和部分head(block 10~13 和 block 15~18)。

训练epoch:65 epoch。因为训练集较少。

warm-up:2 epoch。

优化器:adam optimizer。

初始学习率:3e-4。

schedule:cosine lr。

last epoch学习率:衰减到初始学习率的0.12倍。

输入图像尺寸:最长边1536个像素

batch size:2

数据分析:模型训练前先遍历整个数据,对提高mAP是有很大帮助的。本文分析VisDrone2021训练集的bounding boxes,当输入是1536时,有622 / 342391个label框小于3个像素的,如图7所示。对训练集做预处理:用灰色方块覆盖小目标,在训练的话mAP提高了0.2。

TPH-yolov5论文解读

多尺度测试:训练时使用多种数据增强方式提高模型效果,那么测试时使用数据增强,理论上也能够带来性能的提升。本文使用三种不同尺寸的图像做测试,并且每种尺寸图像做翻转增强,所以一张测试图像共获取6张不同的图像。然后测试这6张不同图像,融合他们的结果,得到最终结果。

4.2 对比sota算法

对比数据集:VisDrone2021-DET testset-challenge。

受比赛服务器的限制,本文只得到了4个模型在测试集挑战上的结果和5个模型集成的最终结果。

效果mAP:39.18(VisDrone2021) > 38.37(VisDrone2020)

比赛排名:5名,比第一名39.43,低了0.25。 如果没有提交次数限制,本算法将获取更高的排名。

table1 是历年VisDrone比赛得分和提交算法的对比。

TPH-yolov5论文解读

4.3 消融实验

测试数据集:VisDrone2021-DET testset-dev。

table 2就是本文算法的消融实验结果,添加对应模块的效果。

TPH-yolov5论文解读

有效额外预测头:增加小目标检测头,yolov5x层的数量有607增加到719。GFLOPs:219.0 -> 259.0。虽然计算量增加了,但是效果也有很大的提升。如图9所示,小目标的检测效果有很大的提升,所以增加计算量是值得的。

TPH-yolov5论文解读

有效的transformer编码块:使用transformer encoder block后,模型层数由719 -> 705,GFLOPs由259.0 -> 237.3。使用transformer encoder block不仅能够提高mAP,还能够降低网络尺寸。同时,在稠密目标和大目标检测中,扮演者重要角色。

有效的模型集成:table 3是5个不同模型在每个分类上的最终融合结果和对比。 每个模型都是不一样的:In training phrase, we use different input image sizes and change the weight of each category to make each model unique.

TPH-yolov5论文解读文章来源地址https://www.toymoban.com/news/detail-445458.html

到了这里,关于TPH-yolov5论文解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【YOLO系列】YOLOv3论文超详细解读(翻译 +学习笔记)

    YOLOv3(《Yolov3:An incremental improvement》)是Joseph Redmon大佬关于YOLO系列的最后一篇,由于他反对将YOLO用于军事和隐私窥探,2020年2月宣布停止更新YOLO。  YOLOv3在YOLOv2的基础上改良了网络的主干,利用多尺度特征图进行检测,改进了多个独立的Logistic regression分类器来取代softmax来

    2024年02月07日
    浏览(55)
  • 【YOLO系列】YOLOv2论文超详细解读(翻译 +学习笔记)

    时隔一年,YOLOv2隆重登场,新的YOLO版本论文叫《YOLO9000: Better, Faster, Stronger》,作者 Joseph Redmon 和 Ali Farhadi 在 YOLOv1 的基础上,进行了大量改进,提出了 YOLOv2 和 YOLO9000,重点解决YOLOv1召回率和定位精度方面的不足。 论文原文:[1612.08242] YOLO9000: Better, Faster, Stronger (arxiv.org) 项

    2023年04月08日
    浏览(50)
  • 【YOLO系列】YOLOv4论文超详细解读2(网络详解)

     上一篇我们一起读了YOLOv4的论文《YOLOv4:Optimal Speed and Accuracy of Object Detection》(直通车→【YOLO系列】YOLOv4论文超详细解读1(翻译 +学习笔记)),有了初步的印象,论文里面涉及到很多tricks,上一篇介绍的比较简略,我们这篇来详细介绍一下。 一、YOLOv4的简介  二、YO

    2024年02月02日
    浏览(41)
  • 【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

    终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯-_-)╯╧╧)。 其实关于YOLOv7的网络结构还有很多细节值得深入研究,以及代码

    2024年02月02日
    浏览(70)
  • 【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)

    从这篇开始,我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍。 本文主要介绍的是YOLOV1,这是由以Joseph Redmon为首的大佬们于2015年提出的一种新的目标检测算法。它与之前的目标检测算法

    2024年02月04日
    浏览(54)
  • 目标检测论文解读复现【NO.21】基于改进YOLOv7的小目标检测

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创

    2023年04月09日
    浏览(46)
  • 目标检测论文解读复现之十六:基于改进YOLOv5的小目标检测算法

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创

    2024年02月03日
    浏览(47)
  • 目标检测论文解读复现之十:基于YOLOv5的遥感图像目标检测(代码已复现)

    前言        此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人

    2024年02月06日
    浏览(40)
  • 英文论文(sci)解读复现【NO.18】基于DS-YOLOv8的目标检测方法用于遥感图像

    此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文 ,并对相应的SCI期刊进行介绍,帮助大家解

    2024年02月21日
    浏览(50)
  • 英文论文(sci)解读复现【NO.6】ASFF-YOLOv5:基于多尺度特征融合的无人机图像道路交通多元检测方法

    此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文 ,并对相应的SCI期刊进行介绍,帮助大家解

    2024年02月12日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包