美文网首页机器学习
CenterNet: Keypoint Triplets for

CenterNet: Keypoint Triplets for

作者: ce0b74704937 | 来源:发表于2019-09-22 11:49 被阅读0次

《CenterNet: Keypoint Triplets for Object Detection》发表于CVPR2019

代码地址:https://github.com/Duankaiwen/CenterNet

它是之前一篇《CornerNet: Detecting Objects as Paired Keypoints》文章的改进版,与CornerNet相同的是它们都是one-stage的方法,没有引入anchor的操作。CornerNet是通过预估框的左上角点和右下角点来得到物体的预测框,但centernet认为只预测物体的角点位置并没有很好的利用框内的信息,这样容易导致误检。所以文章提出一种新的检测方式,通过预测出物体的左上角点右下角点和物体的中心点,进而来预测出物体的位置。

下面来看看文章的具体做法

一、网络结构

网络结构和CornerNet一样,采用的是hourglass作为backbone,整体流程如下图所示


1.png

关于backbone的问题不在具体描述,可以参考《CornerNet: Detecting Objects as Paired Keypoints论文详解》

,或者查看作者公开的代码。下面只讨论一下文章的新思路。

1.1 使用三点表示一个检测框

文章采用的是左上角点,右下角点,中心点表示物体的检测框,所以文章的处理流程与CornerNet不太一样。但是角点和中心点的表示和估计方法和CornerNet一致,这里不重复说明,可以先看看《CornerNet: Detecting Objects as Paired Keypoints论文详解》

处理流程描述如下:

  1. 根据网络的输出,选取分数在前k的中心预测点
  2. 根据中心点的offset的估计,将中心点在原图中的精确定位计算出来
  3. 根据预先定义的物体框中心区域,查看中心区域里是否包含上面预测的中心点。(这里提到的中心区域下面会详细说明)
  4. 如果满足3)条件,就保留预测的物体框。

上面提到一个中心区域的问题。看看如何定义这个中心区域,因为对于大框来说预测的中心点更大概率能落在框的中心区域,对于小框来说落在中心区域的概率更小。为了更好的适应框的大小,预测的中心点保证大小框的概率差距不那么大,这里做了如下操作。类似于roi pooling,将预测的框按照3*35*5两种情况等分,其中边框小于150的用3*3划分,大于150的用5*5划分。这里说的150,代码采用的是边框的长宽相乘是否大于22500来表示。
划分操作如下图所示。

2.png
1.2 丰富角点和中心点的信息

对于角点和中心点的信息丰富操作采用的是如下图的方式


3.png

中心点
通过backbone的输出的中心点预测的featuremap,为了更好的确定哪些是真的得中心点,文章提出了center pooling,如上图的a所示,通过将featuremap上的预测点在其水平和竖直方向都找到最大值,然后将两个方向的最大值相加作为预测中心点的值。

角点
不同于CornerNet,文章提出了cascade corner pooling。如上图的b和c,类似于CornerNet先从预测的角点处找到边界上的最大值,然后根据边界上的最大值在相应的方向再次寻找框内部的最大值,最后将两次的最大值相加得到角点的最终值。上面说的相应方向指的是,对于上边界、下边界、左边界、右边界的最大值点来说,分别搜索的方向是竖直向下、水平向右、竖直向上、水平向左。

从上面的描述可以可以看出这些操作可以很容易的通过CornerNet中提出的Corner pooling来扩展。通过原来的Corner pooling扩展出的两种新的pooling方式如下图所示


4.png
二、损失函数

基本和CornerNet相同,只是多了一个中心点的预测loss和中心点位置偏移的loss计算。公式表示如下:
L = L^{co}_{det}+L^{ce}_{det}+\alpha L^{co}_{pull} + \beta L^{co}_push + \gamma (L^{co}_{off}+L^{ce}_{off})

其中L^{co}_{det}L^{ce}_{det}是focal loss,L^{co}_{pull}L^{co}_push同CornerNet是计算角点匹配提出来的loss,L^{co}_{off}L^{ce}_{off}使用的是l1 loss,上式中的\alpha 、 \beta 、\gamma分别取0.1、0.1、1。

原理基本就这些,更多的实验结果可以查看原文。

相关文章

网友评论

    本文标题:CenterNet: Keypoint Triplets for

    本文链接:https://www.haomeiwen.com/subject/gedeuctx.html