zoukankan      html  css  js  c++  java
  • 【论文笔记】CenterNet:Objects as Points

    &论文概述

    论文题目:Objects as Points

    作者&出处:Xingyi Zhou, UT Austin; Dequan Wang, UC Berkley; Philipp Krahenbuhl, UT Austin

    获取地址:https://arxiv.org/abs/1904.07850v1

     

    &总结与个人观点

    提出新的表示目标的方法:使用points。CenterNet是一个成功的关键点评估网络,找到目标的中心,回归其size。这个算法简单、快速、精确且没有任何的NMS后处理因此端到端可微。这个想法很普通,且在简单的二维检测之外仍可大范围的应用。CenterNet乐意评估一系列额外的目标属性,如pose、3D方向、depth等。我们的实验对实时目标识别及相关工作开辟了一个新的方向。

    这篇论文是我看到相关方向的一个比较新颖的想法,将目标可做一个points,然后通过这个points的特征,来对相应的属性进行回归。

     

    &贡献

    1) 提出CenterNet,将目标视为点,然后回归出其他的目标的属性;

    2) 结合3D属性、pose属性,取得不错的成果。

     

    &拟解决的问题

    问题:使用轴对齐(axis-aligned)boxes来检测目标:大多成功的目标检测通过枚举一个近乎详尽的潜在目标位置的列表,且对每个box分别进行分类操作。

    分析:而这无疑是浪费的、低效的以及要求额外的后处理(如NMS等)的方法。此外,像NMS这种后处理操作,使得这个过程很难微分与训练,以致于当前大多数的检测器无法实现end-to-end的训练。

    而CenterNet将目标视为单独的点——bbox的中心点。使用keypoint estimate来找到中心点,同时通过中心点回归出其他的目标属性,如:size、3D location、方向乃至pose。

    1) 这种方法相比于基于相应的bbox的检测器而言,可微、更简单、更快甚至更精确。

    2) 与anchor-based one-stage方法相比:CenterNet与其相似,一个中心点可视为一个形状不可知的anchor。但其中仍有不同之处:

     

    • CenterNet使用的“anchor”仅基于location,而不是box的覆盖率,没有对foreground与background设置阈值限制;
    • 每个目标只有一个正“anchor”,不需要使用NMS。这个中心点是从heatmap中提取出的峰值;
    • CenterNet相比于传统的目标检测器(输出stride of 16)使用更大的输出分辨率(输出stride of 4),消除了多anchor的需要。

    3) 与使用keypoint estimate的方法相比,如CornerNet、ExtremeNet,在关键点检测之后需要结合分组的阶段对关键点进行处理,降低了算法的速度。而CenterNet则直接提取每个目标中的中心点而不需要进行分组或其他后处理。

     

    &框架及主要方法

    1、CenterNet的网络结构图

      

    2、如何找到Center Point

    直接将图片输入到全卷积网络中,生成一个heatmap。在heatmap中的峰值就是目标的中心。在每个峰值出的图像特征用来预测目标的bbox的高和宽。

      

    假定输入图像I(【W、H、3】),目的是生成一个keypoint heatmap Y(【W/R、H/R、C】),Y的值在[0, 1],如果为1则为检测到的关键点,为0为背景。其中R是输出的stride,实验中使用4,C是总类别数。如1中图像,实验时使用不同的全卷积编码解码网络来进行预测。

    对每个类别c的真实值的关键点p,计算其低分辨率等式,对Y进行高斯处理:

    使用focal loss来减少像素级逻辑回归的惩罚:

    Local Offset

    对每一个中心点额外预测局部偏移O(【W/R,H/R,2】),所有的类别共享相同的预测偏移。使用L1损失对偏移进行训练:

    只有在关键点p位置处进行监督,其他位置均忽略。

     

    3、如何回归出Object的其他属性(size、3D location etc.)

    Size Regression

    令(x1(k), y1(k), x2(k), y2(k))是类别ck第k个目标的bbox,其中心pk=((x1(k)+x2(k))/2, (y1(k)+y2(k))/2)。使用keypoint estimator Y来预测所有的中心点,此外对k回归其size,sk=(x2(k)-x1(k), y2(k)-y1(k))。为限制计算负担,对所有类别使用单个size预测S(【W/R,H/R,2】)。使用L1 loss来计算其size的loss:

     

    此时总检测损失可表示为:

    到此为止,使用单个网络预测Y、O、S,因此在每个位置网络预测C+4个值,如下图中的3个数据所示。

    下表为CenterNet对于size、keypoint heatmap以及offset间的消融实验,通过与baseline的对比可以看出,每种loss都对结果产生了好的影响。

    Bbox Regression

    使用预测得到的中心点、偏移以及size可以计算出bbox,如下所示:

     

    3D检测

    在对3D检测方面,主要考虑其深度、3D 维度、方向,其中深度d是一个标量,d=1/σ(d)-1,σ表示sigmoid。

    使用separate head Γ(【W/R、H/R、3】),范围在[0, 1],直接回归距离的绝对值。方向默认为单独的标量,但很难回归,最终使用8个标量来表示,其中4个标量表示每个bin。对于每个bin,2个标量使用softmax分类,其他的在每个bin中回归角度。

    Pose estimator

    通过k个关节点预测姿势,预测的数据如下图所示:

     

    &遇到的问题

    1、CenterNet如何提取中心点,或者说是heatmap中的峰值;此外,为什么峰值可以作为中心点?这个keypoint的特征会有很多吗,还是仅是一个点?

    2、找到中心点后,如何回归出边界?

    根据网络的输出可以看出最后的输出是一并进行的,其中对每个location都会输出C+4个值,如此的话,目标属性的回归应当是根据最后的loss计算进行的。提到每个loss只会在峰值出进行计算,如此就可以排除其他的信息影响,通过loss进行反向传播一步步向ground truth逼近。

    3、在论文中以及centernet的网络结构中,体现的都是所有的数据是通过CNN一起输出的,而论文中的中心是从对应的center回归出其他的属性是怎么得来的?

    根据对整体框架以及结构的分析,应当只有共同的loss才能影响到对应的回归部分。

    &思考与启发

    这个想法看起来更像是使用了反向思维的成果,从另一个方向出发来对整体进行评估。但是对于heatmap我暂时还是不太理解,不太明白其机制,需要扩展一下这个方面的知识。

     

  • 相关阅读:
    Python中Random随机数返回值方式
    SQL跨库查询
    正则表达式基本语法
    excel VBA使用教程
    使用某些Widows API时,明明包含了该头文件,却报错“error C2065: undeclared identifier”
    电脑开机后数字键盘为关闭状态
    编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
    变量作用域,不能理解,先记下
    解决MySQL 在 Java 检索遇到timestamp空值时报异常的问题
    Annotation
  • 原文地址:https://www.cnblogs.com/fanzhongjie/p/11595925.html
Copyright © 2011-2022 走看看