cornernet,centernet,onenet,fcos
这几篇论文的引用关系(提出先后顺序):
将按照上面的顺序,从背景、标签分配等方面说明区别于联系。
Cornernet:认为使用anchor需要很多的超参数和手动设计选择,网络复杂。而且需要大数量的anchor来确保覆盖gtbox,导致正负样本不平衡,降低训练速度,于是提出不用anchor,将检测目标当做一对关键点(box的左上,右下)来检测。
Centernet:关于anchor的背景和cornernet类似,也是将对anchor的检测转化为对关键点的检测centernet认为cornernet在关键点检测之后还需要对预测左上和右下的检测点进行配对组合,降低了速度。提出将检测目标转为对box中心点的检测。
Onenet:onenet将前人分配标签(正负样本)的方法归纳为:box分配方法,point分配方法。Onenet认为这些方法都是分配样本时只关注了样本与标签的位置损失关系,对一个标签分配多个正样本,才会导致出现冗余的高置信度的框,需要nms进行后处理。提出将分类损失也加入到分配标签过程。
Fcos:关于anchor的背景和前面类似,也提出cornernet需要后处理来组合检测出的左上和右下角点,降低了速度的观点。
这四篇论文都是全卷积神经网络。输出HxWx(C+…)
Cornernet输出:HxWx(2x(C+1+2)),包括heatmap(类别数C),embedding(1),角点的Offset(2):
Centernet输出:HxWx(C+2+2),包括heatmap(类别数C),目标宽高(2),中心点的offset(2):
Onenet输出:HxWx(C+4),包括类别数(C),grid point到四个边的距离(4)
Fcos输出:HxWx(C+1+4),包括类别数(C),比例系数(1)远离gtbox中心的系数低,该位置到bbox的边界的距离预测(4)。类别分数乘比例系数作为最终的分数。
Cornernet:对于类别数为C的目标检测,一个gtbox输入,通过高斯核对gtbox左上和右下角点分别一个HxWxC的heatmap作为标签,heatmap特点如下:
对应类别角点位置为1,远离逐渐减小。
关于类别的损失函数使回归目标为:角点处趋近于1,其余趋近于0。
Centernet:和cornernet类似,对于类别数为C的目标检测,一个gtbox输入,通过高斯核生成对gtbox中心生成一个HxWxC的heatmap作为标签,heatmap特点如下:
对应类别中心点位置为1,远离逐渐减小。
关于类别的损失函数使预测出的HxWxC:gtbox中心点位置处趋近于1,其余趋近于0。
Onenet:取出网络输出HxWx(C+4),C为类别数,4为预测的关键点位置及宽高。如进一个类别为车的gtbox,对对应类(车)的HxW上每一个坐标计算类别损失计算(多分类交叉熵损失)。对gtbox位置(1x1x4),与预测出的HxWx4做位置损失计算。HxW上的类别损失和位置损失之和,找到损失最小的位置作为这个车标签的正样本位置。其余位置均为负样本。
FCOS:对于特征图上的点,映射回原图落在gtbox范围内,则该位置为正样本,其余位置为负样本。
Cornernet和centernet都用到了offset回归,因为特征图重新映射回原图会带来精度误差,而cornernet和centernet都是基与grid cell预测角点直接建立或者通过中心加宽高建立bbox,所以必须进行offset预测。
而onenet和Fcos,不用offset回归,通过grid cell预测到bbox四个边的距离,就算grid cell映射回原图有精度损失,可以通过预测距离补偿。
Cornernet在预测角点位置的基础上,通过为左上和右下各预测一个HxWx1的embedding来组合两个角点。回归的目标为:缩小属于同一个目标(第k个目标)的两个角点的embedding vector距离,embedding的实际值不重要。
Centernet在预测中心位置的基础上,预测bbox的宽高,并与真实的宽高进行L1loss计算并反传。
Onenet在预测关键点的基础上,预测关键点到四个边界的距离,损失函数为坐标的L1loss和giou loss。
Fcos在预测关键点后,还预测关键点到四个边界的距离,与真实距离做回归计算。此外还预测center-ness(HxWx1),真值为:中心点为1,原理中心点减小,筛除远离中心点的低质量框。
都是选取分数最高的top k的grid cell作为关键点,Fcos的选取分数需要乘上center-ness。cornernet,centernet,Fcos用到了nms来筛选冗余的高置信度的框,centernet和cornernet将nms换了一种形式(3x3的maxpooling)。Onenet不用nms,直接选最后的top k作为输出。
Fcos考虑到大的步距会导致recall低,密集的gtbox重叠会导致一些模棱两可(被两个gtbox覆盖的关键点预测哪个gtbox),通过fpn不同的层负责预测不同size的gtbox解决。