【ECCV2018】CornerNet
Introduction
该论文的作者是美国密歇根大学Hei Law ,论文提出了基于左上和右下2个角点的检测框架,该框架先有检测顶点,再有物体边框。整体架构如下图所示:
anchor box
的存在的缺点:
anchor box
太多会导致样本不平衡,anchor box
存在会保证和gt box
有充分的重叠,但是实际过程中只有少部分正样本。anchor box
需要调节的参数太多`,比如说个数,大小,长宽比等等。
- 为什么检测角点比中心点/proposal更好?
- 预测中心依赖于四个边,而角点依赖于两条边。
- 可以密集离散box的空间。
CornerNet 的检测模块如上图所示。上图只表示了top-left部分的结构,bottom-right也有类似的结构。经过backbone之后,首先经过corner pooling操作,输出pooling后的特征图,然后再和Backbone的特征图做融合,最终分为3个分支,分别输出Heatmap,Embedding,Offsets。heatmap主要是预测各类别下top-left角点的位置,Embedding是为了对top-left和bottom-right的角点进行配对,Offsets是为了解决下采样后的特征图与原图对应的问题。
ConerNet
Detecting Corners
该阶段主要生成两种heatmap
,每个都是 H × W × C H\times W\times C H×W×C,其中 C C C为类别数,不包含背景。每个通道都是一个二值图来表示角点的位置,对于每个位置,只有一个通道是gt,其他位置都是负样本,在训练过程中,并不是公平的去惩罚负样本,而是在正样本周围给定一个半径,这个半径内的点都为负样本并且与gt的IoU大于阈值(0.3),惩罚的系数由下式得到,这是因为落在半径内的角点仍然可以生成有效的边界定位框。
y c i j = e − x 2 + y 2 2 σ 2 y_{cij}=e^{-\frac{x^2+y^2}{2\sigma ^2}} ycij=e−2σ2x2+y2
x , y x,y x,y是正样本的位置坐标,其中:
σ = 1 3 r , r = I o U g t , b b o x > 0.3 \sigma = \frac{1}{3}r,r=IoU_{gt,bbox}>0.3 σ=31r,r=IoUgt,bbox>0.3
损失函数是focal loss的变体。
p c i j p_{cij} pcij代表第 c c c类第 ( i , j ) (i,j) (i,j)个位置的得分, N N N是一张图片中的目标个数, α , β \alpha,\beta α,β控制着每个点的贡献,其中所有实验中 α = 2 , β = 4 \alpha=2,\beta=4 α=2,β=4, y c i j y_{cij} ycij正是由高斯函数编码的损失。
举个例子:当一个负样本距离正样本的距离越近,那么带入高斯函数中计算得到的 y c i j y_{cij} ycij越高,此时对该负样本的损失就越小,也就是文章中所说的:
With the Gaussian bumps encoded in y c i j y_{cij} ycij , the ( 1 − y c i j ) (1-y_{cij}) (1−ycij) term reduces the penalty around the ground truth locations.
回顾一下focal loss
, 作者认为一阶段和两阶段的表现主要差异是由前景背景类别不平衡导致的,在双阶段过程中,要么是是在候选框阶段通过score和nms过滤了大量负样本,然后分类和回归阶段也固定了正负样本比例,要么是通过OHEM在线困难挖掘来保证样本平衡。而一阶段会产生上万个候选框,训练被大量负样本所主导。
二分类交叉熵函数:
Focal loss函数:
加入 γ \gamma γ因子从而使训练更关注于困难的样本,降低对于易分类样本的损失,比如对于预测结果为0.95的样本肯定是简单样本,所以该样本的损失就会变得更小。
α \alpha α是平衡因子,用来平衡正负样本本身的比例不均,一般为0.25。
Grouping Corners
该部分的目的是输入图像会有多个目标,相应地生成多个目标的两个顶点,需要对顶点进行分组来确定是不是属于同一个bbox。在该部分作者主要定义了两个loss,一个是为了让同一物体的两个角点吸引的“pull loss”,一个是为了让不同物体的两个角点相互排斥的“push loss”,公式如下图所示,其中 e t k e_{t_k} etk是第 k k k个目标的左上角点, e b k e_{b_k} ebk是第 k k k个目标的右下角点, e k e_{k} e