西宁哪里做网站,婚纱摄影网站设计思路,网店装修定制,网站关键词密度太高怎么处理#x1f6a9;#x1f6a9;#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 1、物体检测
说到目标检测你能想到什么 faster-rcnn系列#xff0c;开山之作Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 1、物体检测
说到目标检测你能想到什么 faster-rcnn系列开山之作各种proposal方法 YOLO肯定也少不了都是基于anchor这路子玩的 NMS那也一定得用上输出结果肯定要过滤一下的 如果一个目标检测算法上面这三点都木有你说神不神
faster-rcnn是开山之作15年的物体检测算法yolo系列实际上就是把faster-rcnn做的更加简单了但是源码量确增加了。但是都有问题都是基于anchor做的。
anchor base都会产生一些问题因为会产生多个框多个框就用NMS非极大值抑制过滤一下框。但是框的过滤效率比较低。
在之前Transformer都是作为一个backbone即特征提取的网络主要在他的基础上做下游任务。物体检测这么多年了一直也是faster-rcnn、YOLO、NMS这些没变过如果突然把这些全部打破是不是有点太夸张了
2、DETR DETRDetection Transformer 首先还是和Swin Transformer一样先用CNN把图像转换成Patch 再套用Transformer的self-Attention、Encoder、Decoder那一套直接预测出100个坐标框出来
在编码器中初始化100个向量让这100个向量都预测一个坐标框和一个类别的概率值。 这100个框中有物体和非物体但是在非物体就不管了过滤掉只找出 但是这100个框是并行不是串行的
3、基本架构 通过CNN得到patch再加上位置编码作为Encoder的输入这个输入没有cls
而Decoder初始化100个向量object queriesDecoder利用Encoder的输出去重构这100个向量Decoder输出去预测出100个框这个框有没有物体物体的类别以及框的坐标
4、Encoder作用 为什么前面要用Encoder的输出来重构初始化的向量呢直接用CNN输出的向量来重构不可以吗
论文中这样解释基于注意力的结果可以告诉解码器应该关注图像的哪些区域即哪些区域是物体
如图所示不同的patch提供了不同的注意力左边上图和下图分别注意到了不同的两头牛而右边上图和下图也分别注意到了不同的两头牛这是不同的patch提取到的特征关注到了不同的物体即使图像中的物体有遮挡现象但是还是由于注意力机制还是不影响特征的提取。
5、整体架构 输出层就是100个object queries预测 编码器木有啥特别的正常整就行 解码器首先随机初始化object queries 0位置编码简直惊呆。。。 通过多层让其学习如何利用输入特征
编码器和VIT、Swin Transformer一样没有特别的原始图像CNN提取成patch再生成Q、K、V经过多头注意力机制和MLP中间还有一些残差连接
但是解码器竟然初始化全部都是0然后这个0再加上位置编码这个位置编码和原始图像的位置编码是没有关系的是这100个向量的位置编码。这100个向量生成第一轮的Q、K、V先去做self-Attention。
然后第一轮的输出作为QEncoder的输出作为K、V其中K加上了位置编码V没有加上位置编码然后这里的QKV再去做多头注意力机制这中间还有一些残差连接。
这两轮的输出再经过MLP后一个经过全连接去做分类任务预测类别一个经过全连接去做回归任务预测框
在DETR中的Decoder没有加入mask机制
6、输出匹配 GTGround Truth只有两个但是预测的恒为100个怎么匹配呢 匈牙利匹配完成按照LOSS最小的组合剩下98个都是背景
7、Transformer的神奇之处 这是论文中给出的图片蓝色的是大的大象橙色是小的大象注意力机制所关注到的地方是大象的鼻子和腿即使这个腿的重叠遮挡这么严重还是能够区别出来两头大象
8、论文细节补充 在Decoder的左上角有一个Mx意为多次堆叠这个过程但是论文中提到这个堆叠每一层都做了损失计算也就是说每层都进行了类别的分类预测和框的回归预测。
在每一层都加上监督能够确保这个过程进行的更加好一点。