网络资料整理个人学习,感谢各位大神!(若侵则删)
问题11:transfomer-目标检测系列问题
参考:【详细解读DETR,基于transformer的目标检测网络】DETR: End-to-End Object Detection with Transformers-CSDN博客
DETR系列 | 端到端Transformer目标检测算法汇总!
https://zhuanlan.zhihu.com/p/680900567
检测算法:DETR
DETR,全称为Detection Transformer,是Facebook在ECCV2020上提出的基于Transformer的端到端目标检测网络
最大的特点就是:不需要预定义的先验anchor,也不需要NMS的后处理策略,就可以实现端到端的目标检测。
但是,DETR大目标检测上性能是最好的,而小目标上稍差,而且基于match的loss导致学习很难收敛(即难以学习到最优的情况)。
DETR的总体框架如下,先通过CNN提取图像的特征;再送入到transformer encoder-decoder中,该编码器解码器的结构基本与transformer相同,主要是在输入部分和输出部分的修改;最后得到类别和bbox的预测,并通过二分匹配计算损失来优化网络。
DETR基本结构如下:简单来说,就是通过CNN提取图像特征(通常 Backbone 的输出通道为 2048,图像高和宽都变为了 1/32),并经过input embedding+positional encoding操作转换为图像序列(如下图所说,就是类似[N, HW, C]的序列)作为transformer encoder的输入,得到了编码后的图像序列,在图像序列的帮助下,将object queries(下图中说的是固定数量的可学习的位置embeddings)转换/预测为固定数量的类别+bbox预测。也就是说Transformer本质上起了一个序列转换的作用。
DETR中的encoder-decoder中与transformer的区别有
1)spatial positional encoding:新提出的二维空间位置编码方法,该位置编码分别被加入到了encoder的self attention的QK和decoder的cross attentio