FCOS:Fully Convolutional One-stage Object Detection论文阅读笔记

(一)Title

image-20201103204152423

(二)Summary

本文提出一种fully convolutional one-stage object detector(FCOS),以每像素预测(per-pixel prediction)的方式解决目标检测,类似于语义分割

几乎所有的state-of-the-art object detectors,如RetinaNet、SSD、YOLOv3和Faster R-CNN,都依赖于pre-defined anchor boxes。相比之下,我们论文中提出的FCOSanchor free的,同时也是proposal free。通过消除预定义的anchor boxes sets(比如说YOLOv3中的3种不同scale对应的3种anchor的size,听同学说是对Ground Truth聚类得到的),同时FCOS完全避免了与anchor boxes相关的复杂计算,例如在训练期间计算overlapping。更重要的是,我们还避免了所有与anchor boxes相关的超参数,这些超参数往往对最终的检测性能非常敏感。唯一的后处理只有非最大抑制(NMS),

性能表现

配有ResNeXt-64x4d-101的FCOS在single-model和single-scale测试的AP中达到44.7%,超越了以前的one-stage detector,同时更加简单。又简单呀精度又高

作者的工作量体现

  • FCN架构上有了相当的精度。使用FCN完成检测任务,和语义分割使用相同的框架,并且达到了使用anchor的精度水平,同时在训练上相对简单
  • anchor free,proposal free,去掉anchor之后,与anchor相关的IOU计算以及anchor boxes和ground-truth boxes进行配对都不需要了。减少了训练内存消耗,并且训练和测试都相对较快
  • 可扩展/移植性:作者提出的FCOS网络还可以作为两阶段detectors的RPN(Region Proposal Networks)网络,FCOS通过稍微修改扩展到其他的视觉任务当中:语义分割,实例分割以及关键点检测

(三)Research Objective

作者借助FPN解决使用特征图中的空间位置进行回归时存在的不知道回归到哪个目标的问题,同时引入一个center-ness分支用于解决(目标的边界距离目标中心很远时,作者之前的方法会产生很多low-quality的预测bounding boxes这个问题),这个center-ness分支用于预测the deviation of a pixel to the center of its corresponding bounding box,从而对这些low-quality的预测bounding boxes降低权重,从而能够通过NMS将这些low-quality的框删掉。这是本论文中的两个关键改进方法。

  • Multi-level FPN
  • center-ness branch

(四)Problem Statement

几乎所有主流的detectors比如说Faster R-CNN,SSD,YOLOv2,v3都依赖一组预先定义的anchor boxes,并且这种使用anchor boxes是detectors能够成功的关键这种想法被研究者广泛的接受,然而基于anchor的detectors存在着缺点:anchor boxes超参数较多,anchor boxes 长宽/size固定不适应objects形状变化较大的检测任务,anchor boxes的方法在训练过程中的负样本较多,利用anchor boxes的方法需要使用一些后处理操作,计算IoU等比较耗时。

目标检测由于使用了anchor boxes成了the only one偏离了the neat fully convolutional per-pixel prediction framework结构的,类似物理上的波粒二相性的情况,大胆假设目标检测也是能够利用全卷积per-pixel预测框架获得很好的结果的。这种情况下基本的视觉任务就可以统一到one single framework的框架下了。

作者沿着做出FCN-based detector的思路出发,希望能够得到相比于anchor-based方法更优的detectors。

Simpler,Better

而当前基于全卷积架构的目标detectors-DenseBox,在a level of feature maps中的每一个空间位置上,都预测一个4维向量还有类别信息,如下图中的左图,这个4维向量 ( l , t , r , b ) (l,t,r,b) (l,t,r,b)是相对于特征图上某一个空间位置的相对偏移,这种架构除了需要预测1个4维向量外,其他的和语义分割没什么两样,并且DenseBox使用了图像金字塔,违背了FCN一次计算所有卷积的哲学思想,同时使用全卷积架构的目标detectors往往在处理目标高度重叠的情况上检测效果不好,主要原因在于不清楚这个特征图上的空间位置(下图中的橙色点)需要回归到的是到底是人还是球拍。

image-20201106104437968

此外一些anchor free的方法:比如YOLOv1存在着recall的问题(作者认为是由于YOLOv1中仅仅使用了在目标中心的那些点来产生bounding boxes),而在FCOS中使用在Ground Truth bounding boxes中的所有点来预测bounding boxes,并通过center-ness分支来抑制掉低质量的检测bounding boxes。CornerNet中存在着复杂的后处理过程(产生生成Embedding层来对左上和右下角点进行分组)

(五)Method

​ 作者首先在FCN框架上定义目标检测任务,令特征图上在Ground Truth内的每一个点回归到对应的Ground Truth上,不过存在的问题是有可能一个点对应着多个真实框,作者采用的方法是取那个面积比较小的框,同时借助FPN的思想,使用5个特征图做预测,每个特征图负责预测不同尺寸的目标,但是得到的效果也不是很满意,和anchor-based的方法之间还存在着较大的差异,寻找问题的原因可能是一些大目标生成的框的数量很多,而且大部分的质量很差,我们需要把这些框滤掉,我们选择增加一层网络Center-ness来生成一个类别的权重,让分类的score乘上这个权重得到一个新的score,我们再使用NMS来对结果进行挑选。

整体的网络架构如下

image-20201107172306317

(六)Experiment

实验的一些设置情况:

trainval35K split用于训练,minival split用于验证,测试时在评估服务器上对test_dev进行测试

backbone采用ResNet-50,网络权重加载的在ImageNet上训练的

训练策略采用SGD,训练了90K,mini batch 为16,学习率在60K和80K的时候分别降低了10倍,权重衰减为0.0001,动量为0.9

输入图像短边resize到800,长边要么比1333小,要么就是1333

inference的图像size和训练时相同,在后处理过程中使用了和RetinaNet相同的超参数,没有再进行后处理参数的调优

因为我们使用了Multi-level Prediction with FPN以及Center-ness网络,还有就是我们的方法是anchor free的,我们想要看看我们使用Multi-level prediction以及Center-ness的作用是什么?并且我们的anchor free方法和anchor-based方法有什么区别?

实验1

FCN网络存在的问题是:low recall以及特征图上点面临可以回归到多个bounding boxes时,我们应该回归到哪个真实的真实框上呢?我们要体现我们使用multi-level prediction怎么能够改善这两个问题的?

对于Low Recall来说,我们是通过和其他的FCN架构的网络的参数进行对比。

image-20201108164910256

在FCOS中仅仅使用了 P 4 P_4 P4特征,FCOS已经取得了95.55%的BPR,比RetinaNet使用IOU>=0.4的recall都高不少,同时使用multi-level prediction得到的98.40%,这非常接近基于anchor-based检测器使用所有低质量匹配可以实现的最佳BPR。并且由于当前检测器的best recall都远小于90%,因此和anchor-based差的1%实际上不会影响检测器的性能。

实验2

对于存在的ambiguous samples的问题,我们可以看看使用了Multi-level prediction之后,这些样本减少量,从而可以体现我们使用multi-level prediction的有效性。

image-20201108170348547

这里表格中为什么特征图上的点需要回归到同一类的不同框时,这个特征图上的点不是ambiguous samples呢?

在minival split上ambiguous samples和所有positive samples之比是23.16%(仅仅使用特征图 P 4 P_4 P4),使用了multi-level特征图后,变成了7.14%,作者认为同一类别的对象之间的重叠导致的ambiguous samples并不重要

如果同一类别的对象A和对象B有重叠,无论重叠中的位置预测哪个对象,预测都是正确的,因为它总是与同一类别匹配。丢失的对象可以通过仅属于它的位置来预测。

进一步在inference实验中,我们发现最终生成的detected bounding boxes 中只有2.3%是来自那些ambiguous locations的,去掉相同类比的ambiguous locations,这个比例下降到1.5%,这1.5%的区域是通过面积最小来选择回归的,也就是说这些位置上存在着无法回归到较大objects的情况.但是这种情况通过实验也没有影响到我们的性能。

实验3

考察Center-ness的作用是什么?

image-20201108172136270

我觉得这里的using the center-ness computation from the predicted regression vector说的是我们在预测回归分支上直接多一个特征图通道的输出作为Center-ness,但是这样并不能提升性能。使用单独分支来于预测center-ness。使用center-ness来抑制掉低分辨率的框比使用IOU阈值(使用两个阈值来分正/负样本)来说不会引入超参数。

我这里的问题是使用单独分支到地是在参数上和使用预测回归分支有区别,还是因为使用预测分支会受到回归边界框的影响呢所有导致性能无法提升呢?

实验4 和anchor-based(RetinaNet)方法的比较

image-20201108183800143

我们方法的两个不同点在于:

  • 我们在新added 的卷积层除了最后一个prediction layers采用了Group Normalization(GN),啥是GN?这样使得训练更加稳定
  • 我们使用 P 5 P_5 P5而不是 C 5 C_5 C5 P 5 P_5 P5 C 5 C_5 C5经过一个 1 × 1 1\times 1 1×1卷积后得到的),这样能够稍微提升性能

结果的展示中:FCOS移除掉GN(Group Normalization)在detectors中使用 C 5 C_5 C5依然能够达到AP36.3%优于RetinaNet,这是超参数我们还没有进行调优的情况下的结果。

we encourage the community to rethink the necessity of anchor boxes in object detection.

实验5 和state-of-art detectors的比较

image-20201108185052052

我们的FCOS在AP中的表现比具有相同backbone的ResNet-101-FPN的RetinaNet高出2.4%,同时使用ResNeXt-64x4d-101-FPN 作为backbone,达到了43.2%的AP,加上表3中的改进,我们网络的性能可以达到44.7%,并且和CornerNet相比,我们的网络更加简单,因为CornerNet中需要用嵌入向量对角点进行分组.

实验6

我们证明了在我们的FCOS可以代替RPNs从而实现更高的性能。

image-20201109090836156

这里作者选取的是使用了RPNs的FPN网络,将其中的anchor boxes的方法使用FCOS来代替,并且在FPN heads中增加了一个GN(Group Normallization),即使是在没有使用center-ness的情况下,FCOS仍然可以起到促进作用,当使用了center-ness之后,性能提升了不少。

实验7

我们的FCOS和RetinaNet在不同IoU阈值下的AP表现

image-20201109095030646

​ 我们的FCOS获得了比anchor-based的RetinaNet更好的性能。此外,值得注意的是,在更严格的IoU阈值情况下,FCOS比RetinaNet网络有更大的改进。

实验8

image-20201109100130111

​ 左图中可以看到有很多高置信度,但是和真实框的IoU之间相差较大,通过将置信度分数和center-ness分数相乘之后,可以将这些高置信度但是和真实框之间IoU相差较大的boxes抑制掉,变成上图左图的情况,从而使得最终的检测结果得到提升。

实验9 展示定性结果(严格上不是实验)

为了展示我们的效果,同时为了能够占用更大的论文篇幅,我们将最终的结果显示检测结果图片显示如下:

image-20201109112900975

(七)关于我们论文的一些探讨内容

1. 我们论文的Center-ness和IoUNet之间的关系

他们之间有共同的思想,不过IoUNet就是要将IoUNet训练一个独立的网络来预测预测边界框和基础真值框之间的IoU分数

Center-ness仅仅只有一层,并且是和detector联合训练的,相比于IoUNet来说要简单很多,并且Center-ness并不是直接评价这个bounding boxes的好坏,而是直接评价一个location(位置)预测高质量bounding-boxes的能力。

2. 关于Ambiguous samples的分析

  • 当A和B属于同一类别,但是存在overlap的时候,无论重叠中的位置预测哪一个对象,预测都是正确的,而遗漏的一个可以通过只属于它的位置来预测。
  • 在A和B不属于同一个类的情况下,重叠中的一个位置可能预测A的类别,但回归的是B的边界框(bounding boxes),这是一个错误的决定。

(八)Notes

1. 使用Anchor-based方法存在的问题是什么?

  • detectors的检测性能对anchor boxes的大小、长宽比和数量很敏感,这些超参数需要进行实验选择
  • 即使经过精心挑选,由于anchor boxes的大小和长宽比保持固定不变,检测器在处理具有较大形状变化的objects时也会遇到困难,尤其是对于小对象。
  • 预定义的锚盒还会妨碍检测器的泛化能力,因为需要针对新的数据集重新设计新的anchor boxes大小和长宽比
  • 为了使objectors有一个较高的recall率,我们需要在输入图像上密集的放置anchor boxes。(在FPN中,对于短边为800的图像,有超过180K个anchor boxes),并且大多数的anchor boxes都是负样本,导致了训练过程中正负样本的不均衡
  • Anchor-based的方法还涉及到比较复杂的计算,比如IoU的计算

2. anchor boxes的超参数有哪些?

  • anchor boxes shapes(数量,大小,长宽比)
  • 对于anchor box划分成(positive,negative以及ignored样本)的超参数,比如说positive anchor就是(anchor boxes和ground-truth boxes之间的IOU超过0.5),可是这些超参数对于最终精度的影响很大。

3. 作者本篇论文的思路

  1. 首先将目标检测问题使用FCN框架进行描述
  2. YOLOv1中的low recall以及特征点不知回归到哪一个目标的问题,我们是怎么解决的(multi-level prediction)
  3. 对于我们提出方法存在的问题(出现low-quanlity detected bounding boxes),我们又是怎么解决的?(center-ness分支)

4. 怎么将目标检测的问题移植到FCN的框架上?

4.1 Notations
  • 特征图的定义 F i ∈ R H × W × C F_{i} \in \mathbb{R}^{H \times W \times C} FiRH×W×C表示的是CNN的第 i i i层backbone网络,并且相比于整个输入图像来说,该特征图相比于原图来说,它的步长为 s s s
  • Ground Truth的定义 { B i } \left\{B_{i}\right\} {Bi} i i i表示第 i i i个Ground Truth。 B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) y 1 ( i ) , c ( i ) ) ∈ R 4 × 1 , 2 , . . , C B_{i}=\left(x_{0}^{(i)}, y_{0}^{(i)}, x_{1}^{(i)} y_{1}^{(i)}, c^{(i)}\right) \in \mathbb{R}^4 \times{1,2,..,C} Bi=(x0(i),y0(i),x1(i)y1(i),c(i))R4×1,2,..,C,其中 ( x 0 ( i ) , y 0 ( i ) ) , ( x 1 ( i ) y 1 ( i ) ) , c ( i ) (x_{0}^{(i)}, y_{0}^{(i)}),( x_{1}^{(i)} y_{1}^{(i)}),c^{(i)} (x0(i),y0(i)),(x1(i)y1(i)),c(i)分别对应着左上角+右下角+类
4.2 作者得到bounding box的思路

​ 作者是将特征图上的点看成是训练样本,也就是利用特征图通道的厚度来预测该位置对应的boxes,和语义分割中使用利用特征图的厚度代表类别来对图片每一个像素进行分类。这里作者给我的感觉是他最终得到的是和输入图像相同大小的特征图(但实际上并不是),然后在这个特征图上,特征图的厚度为网络预测的该位置对应的bounding boxes参数需要的个数,利用在ground truth框中的点来回归到真实框上。

4.2.1 如何定义特征图上的正负样本?

我们对需要对特征图上的点进行分类,判断其是否为正样本,可是我们现在在特征图上,我们的Ground Truth在原始的输入图像上,我们需要将特征图上点映射到原始输入图像上。

利用上面的信息,我们可以将在特征图 F i F_i Fi上的点 ( x , y ) (x,y) (x,y)映射到输入图像上的 ( ⌊ s 2 ⌋ + x s , ⌊ s 2 ⌋ + y s ) (\lfloor \frac{s}{2}\rfloor+xs,\lfloor \frac{s}{2}\rfloor+ys) (2s+xs,2s+ys),这个点我们可以看成是特征图上点 ( x , y ) (x,y) (x,y)的感受野中心。

如果映射到输入图像上的点在Ground-truth box中,则该点就是一个正样本,并且类别标签为Ground Truth对应的类别标签,否则就是一个负样本,类别标签为0(表示背景类别)。

如果映射到输入图像上它落在了多个bounding boxes中,那么它就会被看成是一个ambiguous sample,我们将具有最小面积的那个bounding box作为它的回归目标

4.2.2 网络预测输出是什么?

网络该特征图的某一个位置除了输出类别外,同时还会有一个4D的向量用来表示该位置对应的回归目标: t ∗ = ( l ∗ , t ∗ , r ∗ , b ∗ ) \boldsymbol{t}^{*}=\left(l^{*}, t^{*}, r^{*}, b^{*}\right) t=(l,t,r,b),分别表示该位置(应该是映射后的 ( ⌊ s 2 ⌋ + x s , ⌊ s 2 ⌋ + y s ) (\lfloor \frac{s}{2}\rfloor+xs,\lfloor \frac{s}{2}\rfloor+ys) (2s+xs,2s+ys))到bounding box四条边的距离,对于真实框 B i = ( x 0 ( i ) , y 0 ( i ) , x 1 ( i ) y 1 ( i ) , c ( i ) ) B_{i}=\left(x_{0}^{(i)}, y_{0}^{(i)}, x_{1}^{(i)} y_{1}^{(i)}, c^{(i)}\right) Bi=(x0(i),y0(i),x1(i)y1(i),c(i))来说,我们的网络输出 t ∗ {t}^{*} t的真值应该表示为:
l ∗ = x − x 0 ( i ) , t ∗ = y − y 0 ( i ) r ∗ = x 1 ( i ) − x , b ∗ = y 1 ( i ) − y \begin{array}{l} l^{*}=x-x_{0}^{(i)}, \quad t^{*}=y-y_{0}^{(i)} \\ r^{*}=x_{1}^{(i)}-x, \quad b^{*}=y_{1}^{(i)}-y \end{array} l=xx0(i),t=yy0(i)r=x1(i)x,b=y1(i)y
对于COCO数据集来说,作者使用的网络输出一个80维的向量 p \mathbb p p作为类别标签,还有一个40维的向量 t = ( l , t , r , b ) \mathbb t=(l,t,r,b) t=(l,t,r,b),这里作者不是训练一个多类的分类器,而是训练C个二类分类器。作者在backbone上增加了4个卷积层来进行回归和分类,在回归分支上对回归网络的输出使用 e x p ( x ) exp(x) exp(x)变换到 ( 0 , ∞ ) (0,\infty) (0,)

4.2.3 网络的损失函数

L ( { p x , y } , { t x , y } ) = 1 N p o s ∑ x , y L c l s ( p x , y , c x , y ∗ ) + λ N p o s ∑ x , y 1 { c x , y ∗ > 0 } L r e g ( t x , y , t x , y ∗ ) , \begin{aligned} L\left(\left\{\boldsymbol{p}_{x, y}\right\},\left\{\boldsymbol{t}_{x, y}\right\}\right) &=\frac{1}{N_{\mathrm{pos}}} \sum_{x, y} L_{\mathrm{cls}}\left(\boldsymbol{p}_{x, y}, c_{x, y}^{*}\right) \\ &+\frac{\lambda}{N_{\mathrm{pos}}} \sum_{x, y} \mathbb{1}_{\left\{c_{x, y}^{*}>0\right\}} L_{\mathrm{reg}}\left(\boldsymbol{t}_{x, y}, \boldsymbol{t}_{x, y}^{*}\right), \end{aligned} L({px,y},{tx,y})=Npos1x,yLcls(px,y,cx,y)+Nposλx,y1{cx,y>0}Lreg(tx,y,tx,y),

其中 N p o s {N_{\mathrm{pos}}} Npos为正样本数, L c l s L_{\mathrm{cls}} Lcls是focal loss, L r e g L_{\mathrm{reg}} Lreg是IOU损失,这里求和是对特征图 F i F_i Fi上的所有x,y来做的

4.2.4 网络的Inference

特征图 F i F_i Fi上的每一个点都会有一个类别分数 p x , y \boldsymbol{p}_{x, y} px,y以及回归预测 t x , y \boldsymbol{t}_{x, y} tx,y,我们认为 p x , y > 0.05 \boldsymbol{p}_{x, y}>0.05 px,y>0.05的就是正样本

到目前为止,应该是作者想到的最初的思路

4.3 作者接下来如何使用Multi-level Prediction with FPN改进这个网络的呢?

当前存在的两个问题是

  • CNN最后一层的特征图相比于原图来说,下采样过大 ( 16 × ) (16 \times) (16×)会导致一个low best possible recall(BPR),但是呢,我们的FCOS牛,我们的BPR很好(和在Detectron实现的RetinaNet比起来),即使在大stride情况下,所以这个不是我们的一个问题,并且我们使用multi-level FPN能够提升BPR,额
  • 对于ambiguous point的问题,我们使用multi-level prediction可以在很大程度上解决

我们的Multi-level Prediction架构是怎么样的

image-20201107172306317

我们使用了5个特征图 { P 3 , P 4 , P 5 , P 6 , P 7 } \left\{ P_3,P_4,P_5,P_6,P_7 \right\} {P3,P4,P5,P6,P7}其中 { P 3 , P 4 , P 5 } \left\{ P_3,P_4,P_5\right\} {P3,P4,P5}是由 { C 3 , C 4 , C 5 } \left\{ C_3,C_4,C_5\right\} {C3,C4,C5}在top-down connections之后跟着一个 1 × 1 1 \times 1 1×1的卷积得到的,在 P 5 P_5 P5上使用一个步长为2的卷积得到 P 6 P_6 P6,在 P 6 P_6 P6上使用一个步长为2的卷积得到 P 7 P_7 P7,相比于输入图像来说, { P 3 , P 4 , P 5 , P 6 , P 7 } \left\{ P_3,P_4,P_5,P_6,P_7 \right\} {P3,P4,P5,P6,P7}的步长分别为 { 8 , 16 , 32 , 64 , 128 } \left\{8,16,32,64,128\right\} {8,16,32,64,128},我们使用了不同尺度的特征图,也就是说在不同尺度的特征图上关注不同的对象,这里我们不使用预先定义anchor数量,大小以及长宽比的方法,而是限制网络输出 t ∗ \boldsymbol t^* t的范围实现的(直接限制每个级别的包围盒回归范围)。具体的实现上:

首先计算所有level的特征图上的所有位置(each position)回归目标 l ∗ , t ∗ , r ∗ , b ∗ l^*,t^*,r^*,b^* l,t,r,b,对于 max ⁡ ( l ∗ , t ∗ , r ∗ , b ∗ ) > m i \max \left(l^{*}, t^{*}, r^{*}, b^{*}\right)>m_{i} max(l,t,r,b)>mi以及 max ⁡ ( l ∗ , t ∗ , r ∗ , b ∗ ) < m i − 1 \max \left(l^{*}, t^{*}, r^{*}, b^{*}\right)<m_{i-1} max(l,t,r,b)<mi1的情况,看成是负样本。这里的 m i m_i mi是第i个特征图需要回归的最大距离

在本文中 m 2 m_2 m2 m 3 m_3 m3 m 4 m_4 m4 m 5 m_5 m5 m 6 m_6 m6 m 7 m_7 m7分别为0,64,128,256,512以及 ∞ \infty .这里的这些距离也是超参数啊,只是相比于原来的anchor boxes的参数减少了不少而已。这样设置一方面减少了ambiguous 特征点的出现,但是还是会有,此时我们选择回归到面积较小的那个bounding box

我们在特征图后面接的是什么呢?

一开始我们从论文[14,15]中的做法,对于不同的feature levels共享heads,认为这样不仅使检测器参数高效,而且提高了检测性能,但是实际实验下来,效果不好,我们解释原因为:因为我们不同level的特征图用于预测不同size([0,64],[64,128],…)的bounding boxes,因此使用相同的heads实际上是不合理的,因此为了改善当前的效果,我们在做exp变换时插入了一个可训练的参数:

原来是 e x p ( x ) exp(x) exp(x)变换成了 e x p ( s i x ) exp(s_ix) exp(six),其中 s i s_i si是可训练参数,从而改善我们的检测性能

4.3 我们Center-ness是怎么做的?从而抑制掉了这些low quality的bounding boxes

image-20201107212356413

在使用了Multi-level预测之后,我们发现和anchor-based的方法之间还存在着较大的性能差异,我们需要找到问题所在,然后我们观察实验结果,发现了有很多low-quality的预测bounding boxes在那些目标的边界远离中心点的位置。为了抑制掉这些边界框,

我们增加了一个single layer branch,和分类branch,分成两个分支,这个分支用于预测一个位置的center-ness:center-ness用于描绘了从该位置(特征图上的位置)到该位置所负责的对象(需要回归到的对象)的中心的归一化距离,对于该点需要回归的真实框 ( l ∗ , t ∗ , r ∗ , b ∗ ) \left(l^{*},t^{*},r^{*}, b^{*}\right) (l,t,r,b),需要的centerness真值为

c e n t e r n e s s ∗ = min ⁡ ( l ∗ , r ∗ ) max ⁡ ( l ∗ , r ∗ ) × min ⁡ ( t ∗ , b ∗ ) max ⁡ ( t ∗ , b ∗ ) ​ centerness^* =\sqrt{\frac{\min \left(l^{*}, r^{*}\right)}{\max \left(l^{*}, r^{*}\right)} \times \frac{\min \left(t^{*}, b^{*}\right)}{\max \left(t^{*}, b^{*}\right)}}​ centerness=max(l,r)min(l,r)×max(t,b)min(t,b)

center ness的范围是从0到1的,因此用BCE(二值交叉熵)损失来训练,真值并不是0和1啊?这里怎么使用的二值交叉熵函数的?

在预测的时候,将分类的score和center ness相乘得到一个新的分类score,这个分类score用于最后的NMS。

总结:这篇文章整体来说Center-ness的提出是比较惊艳的,同时,进行anchor boxes回归的思想也是本篇论文的关键之处。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值