目录

1 简介

2 网络结构

3 损失函数

3.1 heatmap loss(改造的Focal Loss)

3.2 长宽预测loss(L1损失函数)

3.3 中心点偏移值loss(L1损失函数)

4 扩展:关节点预测和3D任务

4.1 人体关节点预测

4.2 3D目标检测


1 简介

  • 时间:2019年论文《Objects as Points》
  • 特点:
    • 不需要anchor、也不需要NMS,模型结构简单、速度快、精度高(比yolo3高4个点)!
    • 只需少量修改head,就可以改造成3D目标检测人体关节点检测。

2 网络结构

输入:3 x 512 x 512。

backbone:特征提取器(32倍下采样) + 反卷积(8倍上采样)。

head:3个分支进行预测,每个分支用2个卷积实现。

输出:

  • 80 x 128 x 128:目标分类信息和中心点位置信息,每个类单独在一个热图中,热图中最亮的一些点就是坐标信息。
  • 2 x 128 x 128:所有目标的w和h信息,一个预测w,另一个预测h。每个网格与热图中目标网格一一对应。
  • 2 x 128 x 128:所有目标中心点的x和y偏移量信息。

3 损失函数

因为网络输出3个部分,所以损失函数也有3个部分:

  1. heatmap的loss(改造的Focal Loss)
  2. 目标长宽预测loss(L1损失)
  3. 目标中心点偏移值loss(L1损失)

以下参考:https://www.cnblogs.com/silence-cho/p/13955766.html

3.1 heatmap loss(改造的Focal Loss)

备注:一个目标正样本就一个,负样本指的是热图中心点附近的点。

关于热图,看一个官方源码中生成的一个高斯分布:

每个点的范围是0-1,而1则代表这个目标的中心点,也就是我们要预测要学习的点。

3.2 长宽预测loss(L1损失函数

3.3 中心点偏移值loss(L1损失函数

4 扩展:关节点预测和3D任务

4.1 人体关节点预测

这个问题,本质上,就相当于把人的每类肢体关节点,定义为一个类。

如下图,假如要识别一张图上,所有人的5个关节点,那么网络输出head定义如下:

输入:一张2D图像。

输出:

  • 5 x 128 x 128:5个热图,每类关节点单独在一个热图中。
  • 2 x 128 x 128:所有关节点的w和h信息。
  • 2 x 128 x 128:所有关节点的x和y偏移量信息。

备注:也可以训练centernet直接检测85类目标(80个coco物体类+5个人体关节点类)。

4.2 3D目标检测

3D目标检测,需要在3D数据中,预测出目标(相对拍摄相机)的depth距离、目标的3D bbox框的长宽高信息、bbox的朝向信息。

输入:2D图(但标签包含2D图的3D信息,如自动驾驶KITTI数据集)

输出:

  • class x 128 x 128:每类目标单独在一个热图中。
  • 3 x 128 x 128:长、宽、高信息。
  • 1 x 128 x 128:depth距离信息。
  • 8 x 128 x 128:3D bbox的朝向信息。

效果类似如下:

具体方法参考:https://zhuanlan.zhihu.com/p/350610859

CenterNet算法快速入门相关推荐

  1. 算法快速入门-基于《算法图解》的算法入门教程(3)

    目录 一.问题引入 二.图的介绍 三.广度优先搜索 四.实现图 五.实现算法 1.创建一个队列,用于检查要检查的结点 2.从队列中弹出一个结点 3.检查这个结点是不是原结点的邻居   a)是,则找到目 ...

  2. 【51单片机快速入门指南】4.3.4: MPU6050使用Madgwick AHRS算法实现六轴姿态融合获取四元数、欧拉角

    目录 源码 Madgwick_6.c Madgwick_6.h 使用方法 测试程序 main.c 效果 STC89C516 32MHz Keil uVision V5.29.0.0 PK51 Prof ...

  3. 【51单片机快速入门指南】4.3.3: MPU6050使用Mahony AHRS算法实现六轴姿态融合获取四元数、欧拉角

    目录 源码 Mahony_6.c Mahony_6.h 使用方法 测试程序 main.c 效果 STC89C516 32MHz Keil uVision V5.29.0.0 PK51 Prof.Dev ...

  4. 《算法笔记》2.3小节——C/C++快速入门-选择结构

    <算法笔记>2.3小节--C/C++快速入门->选择结构 Contest100000567 - <算法笔记>2.3小节--C/C++快速入门->选择结构 Conte ...

  5. 算法基础、算法比赛快速入门(java)

    想用Java快速入门算法?这篇文章你得看! 提示:本文章适合想要入门算法,并且想 "快速" 达到一定成果的同学们阅读~ 文章非常非常非常长(可能是你见过最长的算法基础篇章)!!! ...

  6. 处理Excel的Python算法_4.1_:数组导入和整理模块——Panda(快速入门)

    索引 官方网站 QuickStart Pandas概览 数据结构 大小可变与数据复制 快速入门 生成对象 查看数据 选择 缺失值 运算 合并(Merge) 分组(Grouping) 重塑(Reshap ...

  7. 【推荐算法】点击率预估模型(CTR) 快速入门(赋源码)

    CTR 快速入门 本项目主要使用 DeepCTR 进行CTR模型训练. 开源本项目,方便初学者快速进行CTR模型训练. [项目说明] 配置化运行,无需修改代码. 仅需提供训练数据,并通过简单的配置,即 ...

  8. 图文并茂!60页PPT《快速入门python数据分析路线》(附链接)

    一个月不走弯路快速入门学python和python数据分析路线,呕心沥血加班加点做了2天,一共63页,该课件讲的都是路线中的核心知识,今天把该PPT分享给大家,能根据该课件提到的知识有针对性的学,做到 ...

  9. 一文快速入门分库分表中间件 Sharding-JDBC (必修课)

    书接上文 <一文快速入门分库分表(必修课)>,这篇拖了好长的时间,本来计划在一周前就该写完的,结果家庭内部突然人事调整,领导层进行权利交接,随之宣布我正式当爹,紧接着家庭地位滑落至第三名, ...

最新文章

  1. Docker的安装和使用及其Docker容器间通信,云计算技术与应用实验报告
  2. Enable htaccess file work in Apache
  3. Estimathon
  4. 关于restful协议很多人的误解
  5. 生信入门-爱课程上的华中农业大学
  6. flask manage port_后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统...
  7. 小红书成立六周年内部信:月活用户量已经突破8500万
  8. 转https_这个PDF转图片技巧,不用1分钟就能快速上手
  9. @Autowired 与@Resource的区别
  10. mysql查询字段转型_mysql转型
  11. 10分钟就能搭建远程开发环境?你早点怎么不出现(#`n´)!
  12. 答应我,别再靠!= null走天下了可以吗?
  13. 迅雷上如何下载热映的电影大片~~
  14. 体检导检系统服务器系统,喜仕达体检中心导检系统
  15. Mbed TLS 编码规范
  16. 概率论与数理统计 | (16) 方差分析与一元线性回归
  17. Zoommy for mac(图片素材搜索下载软件)
  18. 自己的服务器进不去显示403,HTTP 403错误:含义和解决方法
  19. C++程序设计的技巧-Pimple的使用
  20. 如何在Oracle中检测和修复块损坏

热门文章

  1. Unable to preview the file. Please open a JS, CSS or HML file of the JS UI framework or a layout.xml
  2. List 为什么可以实例化ArrayList
  3. android studio 开发环境搭建
  4. -bash: fultter: command not found
  5. JDBC学习DayTwo
  6. 路由vue-router进阶
  7. 通过修改软链接升高 gcc 版本、降低 gcc 版本
  8. Numpy 多维数组变为常量、增加维度、元素复制、按块复制、横轴竖轴合并数组、连接数组
  9. [BZOJ1572][Usaco2009 Open]工作安排Job
  10. 前端解决跨域问题的8种方案(最新最全)