粗读概念
1. 论文提出了什么?
- 论文提出了一种不需要anchor boxes的目标检测的方法
- 提出了一种新的corner−pooling操作
- 属于anchor−free的方法
2. 论文为什么提出这种方法?解决了什么问题
-
此前的one−stage detecor需要在图像上生成许多anchorboxes, 但是只有少量的box能够在
覆盖到有目标的地, 过多的negative box导致样本不平衡,从而训练缓慢
-
需要anchorboxes 的方法通常需要设置许多超参数, 例如box数量, 长宽比, 大小等, 这些通常需要一些经验来支持更好的结果
3. 方法描述


通过卷积网络生成一组top−left corner和一组bottom−right corner以及它们对应的embedding vector, 这个vector的作用是匹配属于一个object的左上右下的角点
4. corner pooling
-
作者提出corner pooling是因为实际中, object box的角点通常是在object的外面的, 所以没有本地的依据来进行调整, 如下图所示, 作者提出一种新的cornet pooling 来解决这个问题
-
具体是对角点的水平和垂直两个方向,分别在feature map上取各个channel上的最大值, 然后再加起来
-
但是文中提到的两个feature map是指的什么呢??
以top−left corner为例, 是hourglass network生成feature map分别做水平和垂直pooling生成 tij 和 lij 的, 本质上是一个featuremap

精读部分
3 CornerNet
3.1 overview
CornerNet通过Human Pose Estimation领域中Hourglass Network作为backbone提取初级特征, 然后将初级特征输入到Top−left Corners和Bottom−right Corners两个预测模块中, 经过corner pooling及后续的nn得到Heatmaps, Embeddings, Offsets三个输出, 其中Heatmaps为C×H×W的binary mask, 有C个channels分别对应C个classes, H×W分别对应图上的点是否有Corners, Embeddings用来对预测的两种corners的grouping,也就是配对, Offsets用来微调预测角点的值, 改善网络对小目标的预测结果
3.2 Detecting Corners
这个部分主要讲了两个内容:
-
NegativePosition的定义: 以gt position为中心, radius为半径的圆外的点, 其中radius的大小有gtbbox的大小确定,原则如下图所示,大意是radius中点组成的box与gtbox的IOU最小为t, 文中的括号里0:3没看懂,感觉是笔误,应该是0.3吧(这个不太确定). 对于negativeposition的penalty, 作者使用2DGaussians=e−(x2+y2)/2×σ2生成一个gt heatmap为ycij, 以gt position为中心,方差为radius/3, 从公式可以看到对于生成的heatmap某个点若对应ycij=1(即对应gt position),按照上式求loss, 对于其他negative position,越接近gt position, 那么(1−ycij)则越小, 也就是惩罚越小,来计算loss.

-
Offsets: 许多网络下采样后将预测的左边remap回原始图像时通常会损失一些精确度, 所以作者在CornerNet中设置offsets来微调预测的坐标使结果更准确.其中(2)式为计算偏差公式, 那么οk和ο^k分别对应gt offset与predict offset, 最后通过SmoothL1Loss来学习. SmoothL1Loss是Fast RCNN中提出的,相比L1收敛更快,相比L2对于离群点、异常值更加鲁棒,训练不容易跑飞


3.3 Grouping Corners
这个部分讲如何将预测的corners进行配对,文中写的方法是based on the distance between the embeddings of corners ,但是具体距离的计算公式什么,文中没有给出,也许可以在作者提到的Newell的论文中有提到, 此外作者引用Newell论文中pull−push的方法训练使成对的corner接近,不成对的进行远离.

3.4 Corner Pooling
大概原理如下图所示, 文中说的vector应该指的是1×channel, 也就是从spatial的每个点看向channel方向, 下图是一个channel的top−left corner pooling情形,分别从右往左与从下往上max pooling

4 Experiments
实验中作者验证了论文几个key components的结果,总结如下:
-
不同pooling方式的对比显示cornerpooling在AP上提高2%
-
negative penalty中radius的三种方式对比, 不要radius效果最差, fixed radius提高接近3%, object−dependent radius提高5.5%(这个是文中使用的方法)
-
在backbonenetwork的对比中Hourglass+corners比FPN+corners提到6%多, 性能差别还是挺大的.