无锚框(anchor-free)系列的目标检测算法之CenterNet:Keypoint Triplets for Object Detection

简介

上一篇介绍了另一个CenterNet:Objects as Points,今天来给大家介绍下由中科院和华为诺亚方舟实验室出品的一篇文章CenterNet:Keypoint Triplets for Object Detection,进入正题:

文章链接:https://arxiv.org/abs/1904.08189
作者:Kaiwen Duan
单位:中科院、华为诺亚方舟实验室
代码地址:https://github.com/Duankaiwen/CenterNet

CenterNet:Keypoint Triplets for Object Detection是在CornerNet的基础上进行改进的一篇文章,原始的CornerNet仅仅是通过左上角点右下角点来确定目标,没有有效的利用目标的内部特征信息,因此容易产生许多误检。作者在CornerNet基础上添加了一个center keypoint,使得网络具备了感知物体内部信息的能力,从而能有效抑制误检。同样作为一种one-stage方法,在MSCOCO上取得47%mAP,在NVIDIA P100上的测试速度CenterNet511-52(Hourglass),是本文用的所有骨架网络中最快的为每张图270毫秒
无锚框(anchor-free)系列的目标检测算法之CenterNet:Keypoint Triplets for Object Detection_第1张图片

网络结构

无锚框(anchor-free)系列的目标检测算法之CenterNet:Keypoint Triplets for Object Detection_第2张图片
将骨干网络提取的特征图分别送入cascade corner pooling和center pooling中,cascade corner pooling的作用和CornerNet中的corner pooling相同,确定角点和匹配属于一对的角点,从而生成框。 center pooling 用于产生出中心点来筛选框,框中一定中心区域内存在中心点的作为最后的输出结果。但是中心区域的尺度会影响错误框去除效果,中心区域过小导致很多准确的小尺度的目标也会被去除,而中心区域过大导致很多大尺度的错误目标框无法被去除,因此我们提出了尺度可调节的中心区域定义法,为小检测框产生相对较大的中心区域,为大检测框产生相对较小的中心区域,定义的公式如下:
无锚框(anchor-free)系列的目标检测算法之CenterNet:Keypoint Triplets for Object Detection_第3张图片
tlx和tly表示框的左上角坐标,brx和bry表示右下角坐标,而ctlx和ctly表示生成中心区域的左上角坐标,cbrx和cbry为成中心区域的右下角坐标,n表示中心区域的尺度,对于边框小于150的n=3, 对于边框大于150的n=5

cascade corner pooling & center pooling

无锚框(anchor-free)系列的目标检测算法之CenterNet:Keypoint Triplets for Object Detection_第4张图片
cascade corner pooling:
角点通常在物体之外,因此缺少局部外观信息。CornerNet采用Corner Pooling来解决这个问题,如上图,Corner pooling用于找到边界方向上的最大值,它提取物体边界最大值并相加,该方法只能提供关联物体边缘语义信息,对于更加丰富的物体内部语义信息则很难提取到,这样会使得角点对于边界很敏感。为了解决这个问题,应当令角点包含更多物体的视觉信息。cascade corner pooling首先提取物体边界最大值,然后在边界最大值处继续向内部提取提最大值,并与边界最大值相加,以此给角点特征提供更加丰富的关联物体语义信息。Cascade corner pooling 也可通过不同方向上的 corner pooling 的组合实现。

center pooling:
物体的几何中心不一定有非常可识别的视觉信息,因此提出center pooling来获取更加丰富和更具识别性的视觉信息。主干网络输出特征图,为了确定特征图上一点是否是中心关键点,需要找到水平和垂直方向上的最大值,然后将它们加在一起,以此给中心点提供所处位置以外的信息。这一操作使中心点有机会获得更易于区分于其他类别的语义信息。Center pooling可以通过不同方向上的 corner pooling 的组合实现。一个水平方向上的取最大值操作可由 left pooling和right pooling通过串联实现,同理,一个垂直方向上的取最大值操作可由top pooling和bottom pooling通过串联实现

损失函数设计

在这里插入图片描述
无锚框(anchor-free)系列的目标检测算法之CenterNet:Keypoint Triplets for Object Detection_第5张图片

总结

CenterNet:Keypoint Triplets for Object Detection与CornerNet相比实现了很大的提升,主要改进了corner pooling和增加了centerpooling,从而多了一个center keypoint,使得网络具备了感知物体内部信息的能力,从而能有效抑制误检,检测精度有了很大提升,在目前所有的单阶段目标检测算法中精度达到了最高,但是和另一篇CenterNet:Objects as Points相比检测速度方面有所欠缺,提高检测速度是这个网络优化的一个方向

你可能感兴趣的:(Center'Net)