CenterNet 详解

CornerNet是anchor-free、one-stage的一种目标检测算法,其baseline是CenterNet。

 

CenterNet

基于CenterNet的算法,是预测左上与右下两个角点的位置。每次预测两个heatmap(两个脚点的)、offset(从heatmap到原图映射)、embedding(两个脚点是否为同一物体)。

但是这种算法的问题在于,会预测出很飘的框,因此本文的作者认为,需要再做处理。

一种方法是对框出来的区域做ROI Pooling,再去判断框出的物体。但是这样运算量很大。

另一种方法就是本文的CornerNet,通过预测中心点的方法去矫正位置。

 

CornerNet

原理图如下:

CenterNet 详解_第1张图片

相比于CenterNet,增加了对中心区域的预测。 增加一个中心点的heat map,并增加对中心点offset的预测。

 

检测步骤

1.筛选top-k scores

2.用相关的offsets将center keypoints重映射到输入图片

3.定义每个bbox的center region,并且查看是否包含center keypoints

4.如果检测到有center keypoints,则将分值改为三点平均;若无,则remove此bbox

 

scale-aware center region

由于center region的选择非常关键,因此本文提出了一种scale-aware center region的方法,去自适应选择center region。对于小的bbox设置相对大的center region,对于大的bbox设置相对小的center region。

CenterNet 详解_第2张图片

bbox小于150,n为3;bbox大于150,n为5。

 

Center pooling

去判断一个点是不是center,若这个keypoint在横竖两项都是maximum 值,则是center keypoint。

 

Cascade corner pooling

通过center pooling去找边界最大值。

 

Training

Loss:

 

Inference

 我们输入原始图片和反转后的图片,并使用不同分辨率,挑选出top70 的bbox;将反转后的图片的bbox反转回来,并取top100的bbox。

你可能感兴趣的:(深度学习)