TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-captu

TPH-YOLOv5

image-20210915152942120

参考

Introduciton

image-20210915191939032
  • TPH-YOLOv5的整体架构如上所示,YOLOv5我没怎么看过,不过我们可以直接看它的结构

    • 首先Backbone部分,前8块和之前区别不大,作者的描述是CSPDarknet53 backbone with three transformer encoder blocks at the end,也就是它其实在CSPDarknet53点基础上在SPP模块的后面添加了三个Transformer层
    • 接下来Neck部分,明显是参考了PANet的结构,只不过用上了CBAM和Transformer的结构
    • 然后是Header部分,用的是魔改的TPH(transformer prediction heads),作者的意思是从Transformer开始到检测输出这段都叫TPH,在我看来其实就是用了Transformer模块然后把这块强行叫做TPH模块,可能就类似‘拍了拍 Transformer’?\手动狗头

Structure

CSPDarknet53
Transformer
  • 关于这部分,也有一篇相关记录,是看李宏毅老师的课的笔记,个人觉得李老师讲的很清楚(只看encoder部分即可)

  • image-20210915194430672
  • 这里可以对比下原图和作者给出的Encoder的区别

  • image-20210915194631597
  • 可以看到还是有一丢丢不一样的,比如embedding后原版是直接进Multi-Head Attention的,而作者是先做了LayerNorm(这个东东没有详细提,应该是类似BN的Norm,可参考下图),然后作者的版本还多了一个Dropout的操作,这玩意在我的理解为多个subnetwork防止过拟合同时提高检测性能

  • image-20210915194932963
CBAM
  • 全称是Convolutional block attention module,这玩意的论文还没看,在补了,可以先参考这个:

  • 目前的理解是使得网络的注意力集中在某些channel和spatial上,以提高检测精度

  • image-20210915195556359
Ms-testing and model ensemble.
  • 这玩意就是多尺度检测+合并
Self-trained classifier
  • 所谓Self-trained classifier就是把这部分额外摘出来用相关数据做图像分类的task train一遍,然后合并回去,这。。。

效果

猜你喜欢

转载自blog.csdn.net/symuamua/article/details/120315916