CenterNet是第一个基于Anchor Free的目标检测模型。解决了基于Anchor Based的检测模型的一直存在的正负样本不均衡问题。
1 基本介绍
2 backbone及级联角池和中心池
2.1 backbone
2.2 反卷积模块Deconv(待补充)
2.3 级联角池(待补充)
2.4 中心池(待补充)
2.5 算法流程
3 heatmap的生成
3.1 heatmap(1x80x128x128)
3.2 高斯函数填充
3.3 高斯园半径的选择
4 损失函数
4.1 heatmap的loss
4.2 中心点偏移值损失
4.3 长宽预测损失
5 重叠物体难检测问题
6 参考文章
训练时在第2步后计算损失即可。
从整个过程来看,我们接下来需要重点总结几个问题:
CenterNet可以完成目标检测,肢体识别和3D目标检测三种任务。
因此,papper提供了三种backbone,分别是Resnet-18, DLA-34和Hourglass-104。
三种backbone的速度和准确率:
backbone | 速度/COCOAP | 准确率/FPS |
---|---|---|
Resnet-18 | 28.1% | 142 |
DLA-34 | 37.4% | 52 |
Hourglass-104 | 45.1% | 1.4 |
目标检测任务是以Resnet作为backbone中的encorde,反卷积模块Deconv作为decorder,可根据实际情况进行更换。
1x80x128x128
,其中1
代表每个类别取1个特征图,80
代表种类数,128x128
代表每个图像最终生成128x128像素的特征图。
若某个坐标处有物体目标的中心点,则在该坐标处产生一个用高斯圆表示的keypoint,如下图所示:
以上图为例,img其实生成了80个特征图。而上图的heatmap展示了类别为猫的特征图,因为img中有两只猫,所以在同一张heatmap上有两个keypoints。若还有一只狗,则类别为狗的特征图上也存在一个keypoints。
上面介绍了类别热图是什么,接下来总结如何利用训练集的真实label生成类别热度图
首先我们要明白为什么选择高斯填充,这里与一位博主总结的openpose中热度图的解释很类似。
假设:
我们有一个13x13的热度图。如果位置(0.0)
是中心点,则其中第一个值是1,其余为0。
但是预测输出的是第二个值是1,其余是0。其实这很像一个非对即错的问题,完全正确不受损失,否则计算的损失一样。但是,这就有些绝对了,因为其实映射到真实图像中这个点非常接近,甚至看不出来,这明显不太合理。因此,采用高斯填充,point点处为最大值,沿着半径向外按高斯函数递减。
实际情况中会取真实GT与预测框之间IOU=0.7,即下图中的overlap=0.7作为临界值,然后分别计算出三种情况的半径,取最小值作为高斯核的半径r
注意,这里我们虽然是按照预测框和真实GT计算的r,但是最终我们用到的还是预测的关键点周围
假设:
第一图关键点是s,那么可以用左上角做内切得到的半径r在S周围画一个圈,里面用高斯函数填充
我们一共预测了三个热度图,损失函数也对应着分成三部分:
其中heatmap的采用改进的focal loss。长宽预测的和目标中心点偏移都采用L1 Loss,而且加上了0.1的权重。
该loss function基于focal loss。其中α和β是超参数,用来均衡难易样本和正负样本。
N是图像的关键点数量(正样本个数),用于将所有的positive focal loss标准化为1。
求和符号的下标xyc表示所有heatmap上的所有坐标点(c表示目标类别,每个类别一张heatmap)。
==为预测值
为真实值。
与focal loss不同的是负样本的loss里面多了平衡参数, 目的是抑制0<<1的负样本的损失(heatmap高斯中心点附近那些点)。
只对正样本的偏移值损失进行计算
表示预测的偏移值。
p为图片中目标中心点坐标
R为缩放尺度
为缩放后中心坐标的整数近似。
例如:
p=(125, 125)
,R=(32)
,P/R=(3.906, 3.906)
,=(3, 3)
,=(0.906, 0.906)
代表GT的着中心偏移值。
在训练过程中,同一类别中的如果某些物体靠的比较近,那么其Ground Truth中心点在下采样时容易挤到一块,导致两个物体GT中心点重叠,使得网络将这两个物体当成一个物体来训练(因为只有一个中心点了)。而在模型预测阶段,如果两个同类物体在下采样后的中心点也重叠了,那么网络也只能检测出一个中心点。这个问题在网络FCOS中得到了解决。
https://www.cnblogs.com/silence-cho/p/13955766.html
https://zhuanlan.zhihu.com/p/360541947