CornerNet论文链接
Hourglass Network论文链接
一.背景
1.anchor-base缺点
(1).anchor的设置对结果影响很大,不同项目这些超参都需要根据经验来确定,难度较大.
(2).anchor太过密集,其中很多是负样本,引入了不平衡.
(3).anchor的计算涉及IOU增加计算复杂度.
二.网络介绍
1.网络结构
网络总共有两个分支,一个分支有三个输出,主要包含heatmap,embedding,offsets.
single hourglass module示例
2.网络推理
预测左上角角点heatmap,右下角角点heatmap和embedding用于匹配角点,从而形成一对, 而offsets用于最终矫正角点.
为什么没有预测中心点?作者认为角点只需要依赖目标的两个方向,而中心点需要依赖目标的四个方向.同时采用corner pooling编码一些角点的先验信息.
3.corner pooling
作者认为box的角点经常超出目标,不太好定位,对于左上角角点,水平方向从右往左替换为看到的最大像素值,垂直方向从下往上替换为看到的最大像素值,在相邻点进行像素相加,从而丰富左上角角点信息.
4.heatmap与相应focal loss(分类)
heatmap就是角点的热力图,通道数为类别数C.
对于角点半径周围与gt box的IOU为0.3的box的负样本,没必要完全贡献loss,因为角点附近的负样本构成的box也能挺好覆盖目标.对于处于框内的角点,loss按照高斯分布来进行分配.
对于heatmap采用focal loss:
pcij:预测 score
ycij:gt heatmap
α,β: 超参用来控制loss
5.embedding与相应loss
用于左上角点与右上角点的匹配,找到距离最小的也就是同一个目标的角点.
etk:左上角点的embedding
ebk:右下角点的embedding
ek :etk和ebk的平均
对于一对匹配的角点,通过Lpull去拉得紧凑.对于不匹配的通过Lpush去分离角点.
6.offsets与相应loss(smooth L1)
用offests来轻微矫正角点位置,从而让检测框更加紧凑.
x,y是原图坐标,n是下采样倍数, 这里从预测图的heatmap恢复到原图就会有精度损失,严重影响小物体,所以采用offsets进行修正.
ok是offset,(xk,yk)是corner坐标.
采用smoothl1loss来学习offset.
7.loss汇总
作者发现α和β为1或者更大的值,产生了不好的效果.
8.缺点
(1):缺失角点,就缺失目标
(2):角点匹配失误,导致目标定位出现错位
三.实验结果