摘要:本文介绍两种端到端训练通用目标检测算法--DETR和DeFCN。
通用目标检测作为计算机视觉中一个基础的任务,对着图像理解、信息提取有着极为重要的意义。对于该任务目前已经发展出了许多方法,如基于全卷积的单阶段方法DenseBox,YOLO,SSD, RetinaNet和CenterNet等,以及更加复杂的多阶段方法RCNN, Fast RCNN, Faster RCNN和 Cascade RCNN等。根据目标检测任务的定义,这些方法需要对图像中出现的目标物体进行定位和分类,为了确保目标的召回率,结合卷积神经网络的采用的滑动窗口预测的特性,上述的方法均使用卷积进行密集的候选区提取和目标预测,因此对于输入的每个目标,往往有多个网络预测值相对应。
这些方法通常使用非极大值抑制方法(NMS)对重复的预测结果进行过滤,从而得到最终预测结果。不同于卷积操作,NMS过程不可导,模型无法对去重的过程进行优化,最终的检测检测模型也由于该操作的存在不能做到完全端到端。
通用目标检测近期的一些进展中,一些方法实现了端到端训练,训练和推理均无需NMS操作。如基于Transformer的DETR[1]和全卷积DeFCN[2], 两种方法采用了较为不同的实现路线,分别具有不同的优势和潜力,下面对这两种方法进行介绍。
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进行了一些针对这些问题做了一些改进,实现了效果的提升。
不同于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凭借简单的设计,容易部署,在密集场景上有较好的应用价值。
参考文献
本文分享自华为云社区《技术综述八:端到端通用目标检测方法介绍》,原文作者:我想静静。
点击关注,第一时间了解华为云新鲜技术~