FCOS

titile FCOS: Fully Convolutional One-Stage Object Detection
url https://arxiv.org/pdf/1904.01355.pdf
动机 anchor free 方法
内容 FCOS:
1、fully convolutional one-stage object detector。
2、像素级预测(与分割类似)。
3、anchor free,避免anchor框相关的复杂计算(IOU),降低计算内存占用。避免和anchor框相关的对检测性能非常敏感的超参数。
4、NMS后,FCOS比基于anchor的one-stage object detector出色,更加简单。

anchor方法缺点:
1、检测性能对anchor的尺寸、宽高比、数量十分敏感。RetinaNet中,调整超参数在COCO数据集上影响4%的AP。超参数需要细致调整。
2、anchor框的尺寸和宽高比固定,模型难以处理尺度变化大的目标,如很小的目标。预定义的anchor框妨碍模型的泛化能力,新检测任务需要不同尺寸和宽高比。
3、为了保证召回,anchor模型会密集放置anchor框(输入图像短边长度为800的FPN网络超过180k个anchor),大多数anchor训练时被认为负例,过多的负例使正负样本不平衡。
4、大量anchor框增加计算量和内存占用,尤其在iou阶段。

现有one-stage缺点:
1、YOLOv1:预测目标中心附近点上的bounding box,不使用anchor。接近中心的点会被使用,提高检测质量。但是召回率低。FCOS利用a ground truth bounding box所有点预测bounding box,差的bounding box会被”center-ness“分支抑制。可以达到和anchor based相近的召回率。
2、CornerNet:anchor free,通过检测bounding box的一对角点并且groups them得到检测框。group the pairs of corners belonging to the same instance过程十分复杂,需要额外学习一种距离度量。
3、UnitBox,基于DenseBox。这类模型难以处理重叠框,召回率低。

检测模型优势:
1、检测与其他FCNs任务(如语义分割)统一,便于复用。
2、降低参数量,避免anchor复杂的iou计算和匹配,降低两倍内存占用。
3、模型少量调整可立刻用于解决其他视觉任务。
4、one-stage sota性能,也可用做RPN网络,two-stage取得更好结果。


Fully Convolutional One-Stage Object Detector:
1、已知ground truth bounding boxes。
2、特征图上每个点回退到输入图像位置
3、位置(x,y)落在任意ground truth框内,被认为正样本,否则被认为负样本。除了分类标签,可以得到一个4D真实用于回归的偏移向量t∗=(l∗,t∗,r∗,b∗)。一个位置落在多个边界框(ambiguous sample),选取最小面积的gt。FPN使ambiguous sample个数减少。
FCOS会得到尽可能多的前景点训练。与anchor based不同,后者只会将和ground truth的iou足够大的框认为正样本。这是FCOS优于anchor based的其中一个原因。

Network Outputs:
1、输出80D向量p作为分类标签(coco),4D向量t=(l,t,r,b)作为边界框坐标。
2、训练C个二值分类器,不是一个多类别分类器。
3、特征图后加4个卷积层分别是分类和回归分支。回归目标总是正的,用exp(x)对回归分支上(0,+inf)的所有实数做映射。
4、FCOS网络输出变量数比每个位置9个anchor的anchor based检测器要少9倍。

Loss Function:
Inference:
1、choose the location with px,y > 0.05 as positive samples

Multi-level Prediction with FPN for FCOS:
1、ambiguous sample是导致FCN based模型性能较差的一个原因,FPN一定程度解决这个问题。
2、五层特征图{P3,P4,P5,P6,P7}由主干CNN的特征图C3、C4、C5经过一个1x1卷积横向连接得到,P6、P7分别由P5、P6经过stride=2的卷积得到。分别对应stride 8,16,32,64,128。
3、不同于anchor based不同特征层分配不同尺寸anchor,FCOS直接限制bounding box回归范围。首先计算所有特征图上每个位置的回归目标l∗,t∗,r∗,b∗l ∗。如果某一像素位置满足max(l∗,t∗,r∗,b∗)>mi或max(l∗,t∗,r∗,b∗)4、不同尺寸目标分配不同特征层,大部分重叠发生在尺寸差异比较大的目标之间,所以多层级预测可以缓解二义性问题,提高FCN based检测器的性能,使之接近anchor based。
5、不同特征层共享head网络,可以 detector parameter-efficient,improving the detection performance。但是不同的特征层对应不同的回归尺寸范围(P3是[0,64],P4是[64,128]),因此没有理由使用完全相同的head网络作用在不同的特征层上。所以使用si 可学习的exp(six) 自动调节特征层Pi的指数函数,而不是standard exp(x),提升检测性能。

Center-ness for FCOS:
1、多层级预测,FCOS性能仍和anchor based有一定差距。是由于网络预测了很多低质量的、远离目标中心的bounding box。
2、提出一种简单高效策略抑制低质量bounding box,不引入额外的超参数。增加一个和分类分支并列的单层网络分支预测一个位置的“Center-ness”。给定某一位置的回归目标l∗,t∗,r∗,b∗l∗,Center-ness定义:
开根号:减缓衰减,范围:从0到1,可以使用二值交叉熵(BCE)损失来训练。这个损失加到公式2的损失函数。测试时,最终得分为分类的分和center-ness的乘积。center-ness可以降低远离目标中心bounding box权重,低质量的bounding box大概率会被NMS过滤,提升检测性能。
4、采用两个IOU阈值Tlow,Thige,center-ness可以看做一种soft threshold。训练中被学习,不需要调参。
实验 Training Details.:
resnet50,SGD训练90K次,初始学习率0.01,batchsize=16,学习率在60K和80K次减小10倍,衰减系数1e-4,动量0.9。ImageNet预训练模型,RetinaNet中初始化方法初始化其他参数,输入图像短边固定在800,长边小于等于1333。

Ablation Study:

Multi-level Prediction with FPN
1、Best Possible Recalls。
2、Ambiguous Samples。
3、Detection Performance。
With or Without Center-ness:
FCOS vs. Anchor-based Detectors
Comparison with State-of-the-art Detectors
Extensions on Region Proposal Networks
思考 overlap size相似的box 可能会漏检,因为相对小的gt box会被配对,但是相对大的box没有被回归到,因为size相似只会出现在同一个FPN层,不会在其他层再次出现,产生漏检

你可能感兴趣的:(FCOS)