目标检测论文笔记二:CenterNet《Objects as Points》

       论文通过将物体建模成一个物体中心点,使用关键点估计网络来预测物体中心并回归一系列物体属性(长宽高等等)。并且相比于基于anchor的物体检测器,CenterNet 更简单、更快、更准确。 网络的整个运行流程为:在训练时,先将图像送入全卷积神经网络中生成热图,热图中的峰值点就是物体的中心点,每一个峰值点的图像特征用于预测物体框的属性。在预测时,仅为简单的网络前向过程,没有NMS作为后处理。

 

作者认为CenterNet与one stage的基于anchor的目标检测方法十分接近,但是却有几点不同:

① CenterNet 只针对物体的位置分配 “anchor”,而不是基于物体框之间的交并比,因此不需要手动设置前景和背景的分类阈值

② CenterNet 在关键点热图中提取局部峰值点,对于每一个物体,只有一个positive “anchor”,因此不需要NMS作为后处理

③ 相比于传统物体检测(output stride of 16),CenterNet 使用更大的输出分辨率(output stride of 4),这使得CenterNet不需要多个anchor来回归物体的位置

 

(一)网络训练

        输入图像维度, 输出关键点热图维度  ,其中C是类别数,输出步长R默认值设置为4。当检测到物体关键点时 ,当检测点为背景时 。作者尝试了几种不同的全卷积编码-解码网络,用于关键点热图的生成,分别是 A stacked hourglass network(沙漏网络), up-convolutional residual networks (残差网络) , and deep layer aggregation (DLA) 。

       对于每一个类别c的真值关键点 ,计算一个低分辨率的等值 ,然后将所有的真值关键点使用高斯核

 分解到热图  上, 是一个物体大小自适应的标准差。如果同个类别的两个高斯重叠了,则取最大值的那个元素。

 

(二)损失函数

       ① 关键点预测的损失函数采用带 focal loss 的 penalty-reduced pixel-wise 逻辑回归:

                                        

       ② 为了克服由于输出步长带来的离散化误差,作者对每一个中心点额外预测一个局部偏移  ,所有的类别c都共用同一个偏移预测,使用的是 L1 loss 进行训练  ,这个偏移值只在物体关键点位置上作用,在其它地方(背景)将被忽略掉。 

                        

       ③ 对于每一个物体k,回归物体的大小(宽高)  ,并且为了减小计算量,对于所有的物体类别都只使用单一尺寸预测 ,在中心点处也是使用 L1 loss 

        作者并没有对尺度进行归一化或者直接使用原始的像素坐标,而是使用一个常量  来限制损失函数,最终的损失函数定义如下:

                                        

 

(三)网络推理

        首先将每一个类别从热图中提取出峰值点,检测出大于或等于周围八个点的响应值,并且保留前100个响应点。使用表示类别 c 的 n 个检测点的集合 , 每个关键点的位置由整数坐标  给出,使用关键点的值作为检测的置信度,并且生成 bbox 的位置  其中 是预测的偏移值, 是物体预测的大小。

        所有的输出都直接由关键点估计网络生成,而没有任何后处理过程。峰值关键点的提取是NMS的有效替代方案,可以使用3x3的最大池化操作来实现。

 

(四)实现细节

   ①沙漏网络(Hourglass)

            堆叠的沙漏网络将输入图像下采样了四倍,伴随着两个连续的沙漏模块。每个沙漏模块是一个对称的5层上下采样的卷积网络,具有跳跃连接(skip connection),沙漏网络很大,但是能产生最佳的关键点估计性能。

   ②残差网络(Resnet)

            为了节省计算,作者改变三个上采样层的通道数为256、128、64,然后在每个上采样卷积之前添加一个3×3变形卷积层,分别具有通道数256、128、64。 上采样卷积核被初始化为双线性插值。

   ③深层聚合网络(DLA)

            作者使用 DLA 的全卷积上采样版本进行密集预测,该版本使用迭代深度聚合来对称地增加特征图分辨率。作者增强了从低层到输出部分的带有可变形卷积(DCN)的跳连部分,在每一个上采样层都使用3x3的可变行卷积来替代原始的卷积。另外在每一个输出的头部都增加一个256通道的3x3的卷积层,最后使用一个1x1卷积进行输出。

   ④训练细节

            训练图像分辨率为 512*512,所有的模型输出均为 128*128。 数据增强使用 random flip, random scaling (between 0.6 to 1.3), cropping, and color jittering,优化器使用Adam。 

   ⑤推理细节

            设置了三种测试增强:无增强、翻转增强和翻转、多尺度增强(0.5, 0.75, 1, 1.25, 1.5)。对于翻转,我们在解码边界框之前对网络输出进行平均。 对于多尺度,我们使用NMS合并结果。 这些增强产生了不同的速度精度权衡

 

(五)其他

   ① CenterNet的缺点

          当两个不同类别的物体共用同一个中心点时,CenterNet 只能检测出其中的一个物体。

   ② NMS的实验

          为了验证 CenterNet 不需要NMS作为后处理,作者在DLA-34(flip-test)和 Hourglass-104上使用NMS,发现对于DLA网络,AP提升了0.5%(39.2% to 39.7%),而对于 Houglass-104,AP无发生变化。
          其实笔者认为0.5%的提升已经算有效果了.....

 

   ③ 训练和测试分辨率

          训练过程中,作者固定输入分辨率为512*512,在测试时,使用 zero-pad 对图像进行处理,使其满足512*512,而不是直接将图像进行resize到512。实验结果表明,通过 zero-pad 保留图像的原始分辨率取得的精度会比直接resize成512分辨率要高一些。而训练和测试都在384*384分辨率下进行,速度则会是512分辨率的1.7倍,精度下降3AP。

   ④ 回归损失

         作者对比了 vanilla L1 loss 和 Smooth L1 loss 在物体大小回归方面的性能,实验结果表明,vanilla L1 loss 相比于 Smooth L1 loss 要好得多。vanilla L1 loss 在精细尺度上产生了更好的精度,而COCO数据集的评价指标对精细尺度的要求较高。

   ⑤ bbox size的权重

        作者通过实验分析loss权重   ,实验结果表明该值设为0.1可以获得高的精度,对于大的值,会导致AP的急剧下降,因为损失的尺度是从0到输出大小w/R或h/R,而不是0到1。而对于小的值,不会导致AP的急剧下降。

   ⑥ 训练策略

       默认情况下,训练关键点估计网络140轮,并且在90轮的时候下降学习率。而当作者将下降学习率之前的轮数进行翻倍的时候,获得了1.1AP的性能提升。

       

学习单词:

Differentiable 可辨的,可区分的,可微的  surveillance 监督   shape-agnostic 形状不可知的

Combinatorial 组合的  Monocular 单目的   discretization 离散化  solely 唯一地、仅仅

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值