两种端到端通用目标检测方法
摘要:本文介绍两种端到端训练通用目标检测算法--DETR 和 DeFCN。
通用目标检测作为计算机视觉中一个基础的任务,对着图像理解、信息提取有着极为重要的意义。对于该任务目前已经发展出了许多方法,如基于全卷积的单阶段方法 DenseBox,YOLO,SSD, RetinaNet 和 CenterNet 等,以及更加复杂的多阶段方法 RCNN, Fast RCNN, Faster RCNN 和 Cascade RCNN 等。根据目标检测任务的定义,这些方法需要对图像中出现的目标物体进行定位和分类,为了确保目标的召回率,结合卷积神经网络的采用的滑动窗口预测的特性,上述的方法均使用卷积进行密集的候选区提取和目标预测,因此对于输入的每个目标,往往有多个网络预测值相对应。
这些方法通常使用非极大值抑制方法(NMS)对重复的预测结果进行过滤,从而得到最终预测结果。不同于卷积操作,NMS 过程不可导,模型无法对去重的过程进行优化,最终的检测检测模型也由于该操作的存在不能做到完全端到端。
通用目标检测近期的一些进展中,一些方法实现了端到端训练,训练和推理均无需 NMS 操作。如基于 Transformer 的 DETR[1]和全卷积 DeFCN[2], 两种方法采用了较为不同的实现路线,分别具有不同的优势和潜力,下面对这两种方法进行介绍。
DETR
Transformer 在自然语言处理任务中取得了巨大的成功,DETR 首次将 Transformer 应用到目标检测任务之中,实现了端到端目标检测,并在 COCO 目标检测任务上取得了和高度优化的 Faster RCNN 相当的精度。DETR 对目标、全局信息之间的关系进行推理,无需 NMS 直接并行的输出预测目标集。
如图 1 所示,DETR 将 CNN 和 Transformer 组合的结构,直接并行预测目标集。可见,该方法将检测问题看做是一个集合预测问题。相对于之前基于集合预测的方法,DETR 不同之处在于:使用了二分匹配损失函数;并行的 Transformer 解码结构。这些特性使 DETR 的预测结果具有排列不变性,可以做到并行预测,提高了模型效率。
图 1. DETR 检测流程
图像在 CNN 提取到二维特征后,由于 Transformer 只能处理一维序列,所以需要将二维特征进行铺平,得到一维特征。直接输入到 Transformer 会使特征失去空间编码信息,因此该方法给该特征添加了一个位置嵌入,以保留特征空间信息。注意到展平的特征输入到 Transformer 中将消耗较大的计算量,该方法没有采用 FPN 结构,只使用高层低分辨特征。
如表 1 所示,该方法相对于 Faster RCNN 相当的结果,由于预测过程使用了全局信息,该方法在大目标上拥有较好的效果。同时由于没有采用 FPN 结构,该方法在小目标上结果相对较差。
表 1. DETR 在 COCO 上的实验结果
该方法无需 NMS 操作,但加上 NMS 会对结果有一定的影响。如图 2 所示,加上 NMS 后 AP 值稍有上升,同时随着模型复杂度的提升,提升逐渐变小,这表明在该方法在一定条件下基本没有重复预测,也无需 NMS 操作。
图 2. NMS 对结果的影响
DETR 突破了之前的检测范式,使用集合预测,然而方法优化速度较慢,并且由于计算量的限制,难以使用高分率特征,对小目标检测效果不佳。后续一些方法如 DeformDet 进行了一些针对这些问题做了一些改进,实现了效果的提升。
DeFCN
不同于 DETR 使用了 Transformer,DeFCN 则基于全卷积实现了端到端检测。DeFCN 基于 FOCS 实现,同样使用密集预测但却做到了无需 NMS 操作。在先前的方法中,训练和预测阶段均采用一对多的策略,即每一个目标对应网络输出的多个预测值,这导致测试阶段必须使用 NMS 进行去重。该方法对这个对应策略进行了探讨,提出使用一对一的样本匹配方式,并通过额外的设计使得最终模型在实现一对一预测的同时保持相当的性能。由于无需 NMS, DeFCN 在密集数据集上能突破 NMS 的理论上限,充分体现了该方法的优势。
图 3. DeFCN 的结构图
使用一对一的分配策略最简单的是直接使用目标中心或者锚框作为每个目标唯一的正样本,然而这种方式相对于之前的一对多的设计如 FOCS 会有较大的性能损失。该方法从损失函数和特征两个方面来解决一对一分配带来的性能下降。总体结构如图 3 所示。
对于损失函数,一个要考虑的问题是正样本如何进行定义。由于目标外形的变化,选择目标包围框的中心并不是一个非常好的选择,特别每个目标定义的正样本只有一个,网络优化更容易受到分配策略的影响。受集合损失函数的启发,该方法将样本匹配也看做一个二分图匹配的问题,对集合损失进行一定优化,根据网络输出结果进行正负样本分配。具体的分配策略主要考虑三个方面:正样本分布的位置先验;分类分支的得分;回归的包围盒与 GT 的 IOU。最终正样本选取三者乘积得分的最高者。如公式 2 所示:
使用了一对一的样本分配策略后,模型的性能仍然难以达到先前一对多的方法,因此该方法在训练阶段额外添加了一个辅助损失,不影响推理。该损失的样本分配使用传统的一对多,如表 2 所示,加上该损失后结果有明显提升。
从网络设计方面考虑,该方法基于全卷积网络,而卷积操作是一个线性操作,一对一的策略需要网络输出比较锐利,对于卷积来说具有一定的困难,因此该方法对特征使用了最大池化滤波,并且对 FPN 的多个尺度的信息进行了融合。如表 2 所示,添加了该模块(3DMF)后有明显提升。
表 2. 不同模块对最终结果的影响(COCO)
图 4. DeDCN 响应可视化
如图 4 所示,在网络输出的目标概率图中,FCOS 对于每个目标都有多个响应,需要进行 NMS 去重(如 4(a)),而 DeFCN 随着各模块的添加较好的做到了每个目标对应一个响应(如 4(d)所示)。
表 3. CrowdHuman 性能分析
该方法在密集数据上拥有较强的优势,并且能超过 NMS 的理论上限,对于密集目标不容易出现误过滤。
总的来讲,上述两个端到端检测方法遵循着不同的路线,但是都能做到移除 NMS,做到了网络输入到预测结果之间的完全端到端,两者都展现较好的潜力。DETR 引入 Transformer,在目标关系建模、全局信息理解上有挖掘的潜力。DeFCN 凭借简单的设计,容易部署,在密集场景上有较好的应用价值。
参考文献
Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[J]. arXiv preprint arXiv:2005.12872, 2020.
Wang J, Song L, Li Z, et al. End-to-end object detection with fully convolutional network[J]. arXiv preprint arXiv:2012.03544, 2020.
本文分享自华为云社区《技术综述八:端到端通用目标检测方法介绍》,原文作者:我想静静。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/da637626f485db9f6f0167564】。文章转载请联系作者。
评论