近期拜读了facebook的最新力作DETR,不得不说被这极致的暴力美学惊艳到了,对于当下目标检测算法,不管是anchor free 还是anchor based,都存在一大诟病,该算法提出了一条解决思路
首先简要说明该算法的主体思路
之所以称之为暴力美学是因为,该算法几乎抛弃所有的先验规则约束,一句话,网络直接预测坐标,来,直接上图说话
结构相对的明了,但我们依然化繁为简,图片输入后经过常规backbone得到语义空间向量(feature map),之后直接利用该语义空间向量全局回归目标类别以及坐标,是不是好简单,但如果直接用普通的前向网络回归肯定不行,接着我们化简为繁,也是该算法真正精妙的地方。
常规FCN网络,因为卷积的特性,本身就具有位置信息,所以可以对输入具有特异性的位置产生响应(待检测目标存在的区域),但我们直接使用整张feature map进行坐标回归时,位置信息将明显被弱化,此时需要让网络自己去判断哪些是重要的信息,哪些不是,所以算法引入了attention机制,让网络自己去区分feature map上每个像素的重要程度
论文中引入attention机制使用的模块是transformer,第一步先要将feature map投射变换成Q,K,V,Q可以理解为语义空间向量投射变维的输出,K可以理解为字典,V为字典对应的输出,通过Q与K点乘(典型的attention操作)得到V的加权系数,然后对V加权求和,最后经过一个前向网络输出类别和坐标预测,transformer丢失位置信息,所以又添加了一个位置编码(Position Enconding),所谓PE是根据目标的位置坐标,将位置坐标转换为固定维度的编码,转换方式是将位置坐标代入不同波长的三角函数里,三角函数天生具有描述相对位置的作用,而之所以要使用不同波长的三角函数进行计算而不是单波长,是为了描述相对位置同时保存绝对位置,因为波长过小,位置较远的像素将超出同一个周期导致绝对位置丢失,所以大家可以粗略的理解为,小波长精确描述距离较近的相对位置,大波长描述距离较远绝对位置。
说说训练阶段预测结果与gt匹配的方法,这里会引入算法为数不多的超参之一,输出set的个数,假设输出N个set,有n个gt,则挨个计算N 个set与n个gt之间loss的最小组合,组合完毕后,剩下的N-n个预测结果全部认为背景类
最后谈一下前文提到的当前目标检测算法的诟病,不管有没有anchor,当下目标检测算法最大的诟病之一是尺度问题,因为卷积核存在感受野问题,FPN,HRnet,deconv,都是在解决该问题,但不管怎么解决,感受野依然不是穷举解,但该算法却全局回归,真是强迫症的福音
引用 End-to-End Object Detection with Transformers