《Objects as Points 论文总结》

  我逐字翻译了CenterNet 之 Objects as points的论文,这里主要整理CenterNet中提到的知识点,以及写下自己的感悟和看法,主要从主干网络、监督方式以及我目前对anchor free的理解。方便后续对CenterNet的复习。

Key Words:Bottom-up、监督方式、Anchor free、推理增强

CVPR, 2019

Agile Pioneer  


文章目录

  • Bottom-up
  • 监督方式
    • 目标检测
    • 姿态估计
  • Anchor free
  • 推理增强
  • 缺点

Bottom-up

  Encoder-Decoder模型结构能cover绝大多数的场景,标准的Encoder-Decoder是对称的网络结构,通过卷积+下采样进行图像编码,得到高层语义信息。而后通过转置卷积或插值等上采样方法进行Decoder。当然这种结构也不限于CNN,也可以用RNN以及全连接之类的进行编解码。

  Encoder-Decoder模型结构可以做图像语义分割Crow CountAutoEncoder以及各种生成模型,其优点在于可以逐像素的进行分类(Focal Loss)或回归(MSE),感觉上监督的范围更广,所以对各种任务的普适性更强。

  CenterNet的主干网络采取了类似于编解码的方式进行预测,target与原图相比下采样了4倍,是一个不对称的编解码模型,这也是借鉴了openpose、hourglass等文章的做法。我理解这样的做法能够降低图像的视觉冗余性,抗噪的同时还降低了运算量,下采样四倍对于目标检测以及关键点估计来说不会有太大的损失。而且这里Center采用了对量化产生的误差加了一项offset回归

  CenterNet在上采样阶段采用的可变形卷积,这对提高精度很有帮助,有空还需要拜读一下可变形卷积v1和v2的论文。

  DLA-34 DenseNet Hourglass-104 都是关键点估计网络不错的backbone选择


监督方式

目标检测

  GroundTruth:对原图下采样4倍,然后对目标中心点位置进行二维高斯和卷积。对于高斯核卷积两个物体的重叠部分,取重叠元素的最大值

  预测head:中心点的类别(K个类别channel的heatMap)、中心点的size(2个channel,W和H)、量化offset(2个channel,X和Y)

  *损失函数




  点变为框的方式

  每个目标仅仅有一个正的锚点,因此不会用到NMS,提取关键点特征图上局部峰值点(local peaks)使用3x3的mac pooling即可。


姿态估计

  损失函数:关键点和目标检测的中心点的损失函数一样,关键点到中心点回归用L1 loss,回归offset也是用L1 loss。

  预测head:「C个类别,K个关键点」

  1. 中心点(C个类别channel)
  2. 中心点的size(2个channel,W、H)
  3. 中心点的量化offset(2个channel,X和Y)
  4. 关键点到中心点的距离(2*K个channel)
  5. 关键点的heatMap(K个channel)
  6. 关键点的offset(2个channel,X和Y)

  技巧:文中说过通过对关键点的回归得到的结果是无法达到SOTA水平的,所以作者巧妙的把回归的结果和bottom up的结果进行了结合,不需要像openpose一样的复杂后处理算法就能够对关键点进行分组,非常值得学习。


Anchor free

   最早一代的Anchor free模型当数yolo v1了,此后进入了SSD为代表的AnchorBased时代,SSD可谓是把anchor机制用到了极致。anchor极致之能够有效的原因是对特征的featureMap上每个点都做了几乎可以涵盖所有目标的预设anchor,预设的越多,运算量越大,模型也就越准确。但实际我们使用的场景里这些预设的anchor的利用率并不高,所以很多的运算其实都是徒劳的,这也就引发了anchor free再度兴起。

   我理解的anchor free没有显式的对每个位置的各种建议框的尺寸和比例进行预设而已,但是位置信息还是有所保留的,比如CenterNet的做法就是在关键点处进行回归,可以理解为这个点其实也是一个"anchor",基于目标的中心进行的回归,也是非常合理的。可以认为anchor-free 和每个位置有一个正方形 anchor 在形式上可以是等价的,也就是利用 FCN 的结构对 feature map 的每个位置预测一个框,这也就是为什么bottom up的模型效果很好的原因。

  anchor-free 的方法由于网络结构简单,对于工业应用来说可能更加友好。对于方法本身的发展,我感觉一个是新的 实例分割流程,因为 anchor-free 天生和 segmentation 更加接近。

  能够用简单的方法来代替目前复杂的目标检测方法是一个质的飞越。


推理增强

  论文的实验中用到了推理增强,这是一个屡见不鲜的技巧,通过损失推理效率来增加精度的方法。

  分类中我们可以对原图进行crop或flip等,然后结果取众数。

  分割中我们也可以对原图进行flip,得到结果后在flip回来,叠加在一起。

  论文中使用的方法是在解码前对推理增强的结果取平均,然后在进行解码。


缺点

   当中心点重合的时候CenterNet就没有办法处理了,如果能保持CenterNet的优势,在想办法解决这个问题,下个中CVPR的可能就是你。

Objects as Points 论文总结相关推荐

  1. Objects as Points论文总结

    <Objects as Points 论文总结>   本人逐字翻译了CenterNet 之 Objects as points的论文,这里主要整理CenterNet中提到的知识点,以及写下 ...

  2. CenterNet:Objects as Points论文阅读笔记

    CenterNet论文阅读笔记 (一)Title (二)Summary (三)Research Objective (四)Problem Statement (五)Method 5.1 Loss Fu ...

  3. CenterNet:Objects as Points论文学习笔记+代码复现(demo+训练数据)【检测部分】

    目录 1.关键部分Heatmap了解 2.Centernet论文细节: 3.尝试复现CneterNet--INSTALL.md安装: 4.尝试复现CneterNet--跑跑demo.py: 5.尝试复 ...

  4. 论文精读——CenterNet :Objects as Points

    论文精读--CenterNet :Objects as Points 论文地址:https://arxiv.org/pdf/1904.07850.pdf 机构:UT Austin,UC Berkele ...

  5. CenterNet :Objects as Points 详解

                                                              论文题目:Objects as Points                     ...

  6. centernet: objects as points

    轻松掌握 MMDetection 中常用算法(七):CenterNet - 知乎文@ 0000070 摘要 在大家的千呼万唤中,MMDetection 支持 CenterNet 了!! CenterN ...

  7. 目标检测系列(八)——CenterNet:Objects as points

    文章目录 摘要 1. 引言 2. 相关工作 3. 准备阶段 4. objects as points 目标即点 4.1 3D检测 5. 实施细节 7. 总结 8. 代码 8.1 训练 8.2 测试 摘 ...

  8. 看代码解读CenterNet :Objects as Points

    文章目录 1. idea 2. 网络结果 2.1 hm分支 2.2 wh分支 2.3 reg分支 3. 数据+loss 4. 推理 结果 reference 摘要: centernet是单阶段的目标检 ...

  9. 【Objects as Points】

    Objects as Points 目录 Abstract Conclusion Introduction Related work Preliminary Objects as Points Imp ...

最新文章

  1. 损失函数之Cross-Entropy介绍及C++实现
  2. 2020-10-29 PYTORCH与Tensorflow速查表
  3. kafka_2.11-0.10.2.1中的auto.offset.reset
  4. oracle多表查询
  5. Command_Of_Windows1
  6. 电脑桌面便签小工具_iPhone12系列售价曝光,苹果手机上有什么好用的便签记事本软件推荐吗...
  7. 权重随机算法的java实现
  8. [周赛第200场][Leetcode][第5477题][第5478题][JAVA][双指针][贪心]
  9. 上位机与基恩士plc以太网通讯_2020湛江AB罗克韦尔PLC主机回收二手或全新
  10. 04 能够使用String类常用方法操纵字符串 0214
  11. 统计学习方法笔记(李航)———第六章(逻辑斯谛回归)
  12. jq上传本地文件到服务器,jq实现前端文件上传
  13. spring security3.x学习(3)_初探过滤器机制和auto-config用法
  14. eclipse、MyEclipse实现批量改动文件编码
  15. Linux之——udp端口测试连接
  16. 阿朱:研发管理者必读文章
  17. the OCD JTAG adapter was detected ,but there is...
  18. SQL SERVER数据库置疑后恢复步骤
  19. 学WORD-替换换行符
  20. CMNET和CMWAP的区别和适用范围

热门文章

  1. junit注释_JUnit注释
  2. hibernate注释映射_Hibernate一对一映射示例注释
  3. python列重命名_Python目录–创建,重命名,删除,列出,更改
  4. nginx配置 负载均衡_如何配置NGINX负载平衡
  5. linux中proc文件系统 -- ldd3读书笔记
  6. React Native项目使用react-apollo实现更新缓存的两种方式
  7. 物联网架构成长之路(18)-接阿里云OSS服务
  8. 将TensorFlow训练的模型移植到Android手机
  9. 【265天】跃迁之路——程序员高效学习方法论探索系列(实验阶段23-2017.10.28)...
  10. 实现微信文章页面 http://mp.weixin.qq.com/s?__biz=MjM5MDI3OTAwMg==amp;mid=200337417amp;idx=1amp;sn=5959ed1...