DeepDriving | 经典的目标检测算法:CenterNet

本文来源公众号“DeepDriving”,仅用于学术分享,侵权删,干货满满。

原文链接:经典的目标检测算法:CenterNet

1 前言

CenterNet2019年发表的一篇文章《Objects as Points》中提出的一个经典的目标检测算法,该算法采用Anchor-Free的方式实现目标检测及其他一些扩展任务,非常值得研究。

2 主要思想

CenterNet将目标检测当做一个标准的关键点估计问题,将目标表示为一个在其bounding box中心位置的单独点,其他的一些属性比如目标尺寸、维度、朝向和姿态等则直接从这个中心点位置的图像特征中进行回归。该模型将图像输入到一个全卷积网络中用来生成热力图,热力图的峰值位置即为目标的中心,每个峰值位置的图像特征用来预测目标bounding box的宽度和高度。该模型训练过程采用标准的监督学习方法,推理过程则是简单的网络前向传播而不需要在后处理中做非极大值抑制处理。这篇文章提出的是一个通用的目标检测方法,只需要在中心点的预测中添加一些额外的内容就可以非常简单地扩展到其他任务中去,比如3D目标检测和人体姿态估计。对于3D目标检测任务,是通过回归目标的绝对深度、3D bounding box维度和目标的朝向来实现的;而对于人体姿态估计任务,则是将2D关节位置视为距中心点的偏移量,并且在中心点位置直接回归得到它们。

3 原理

4 损失函数

5 扩展任务

  • 3D目标检测

3D目标检测就是给每个目标去估计一个3维的bounding box,这需要3个额外的属性:深度、3D维度和朝向,这3个属性通过3个独立的分支进行预测。

  • 人体姿态估计

人体姿态估计的目的是找出图像中每个人体实例的个关节位置(COCO数据集k=17)。可以将姿态视为是包含k x 2维属性的中心点,并且通过到中心点的偏移量对每个关键点进行参数化,另外还使用一个热点图预测分支用于对关键点进行提纯。

6 检测结果

以下是用官方的代码和模型跑出来的一些结果。

6.1 2D目标检测

COCO数据集训练的2D目标检测的结果如下:

6.2 3D目标检测

KITTI数据集训练的3D目标检测的结果如下:

6.3 人体姿态估计

COCO数据集训练的人体姿态估计的结果如下:

7 总结

读完Objects as Points这篇文章,我的感觉是文如其名,简单而又优雅。文中提出的目标检测算法CenterNet,模型结构简单,速度快又效果好,而且还方便扩展,确实是非常经典!

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VBA_NZ系列工具NZ08:图表添加标签工具

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…

Python3 笔记:字符串的 encode() 和 bytes.decode()

1、encode() 方法以指定的编码格式编码字符串。 语法:str.encode(encodingUTF-8,errorsstrict) 参数: encoding:要使用的编码,如: UTF-8。 errors:设置不同错误的处理方案。默认为 strict,意为编码错误引起一个Uni…

[Java]讲解@CallerSensitive注解

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/139726506 出自【进步*于辰的博客】 参考笔记三,P53.1。 1、介绍 大家可能没注意过…

micro SD控制——zynq(未完)

文章目录 一、SD基础知识二、SD卡控制器三、文件系统(FATFS)四、 SD卡控制任务:4.1 txt文本任务:4.1.1 硬件部分:4.1.2 软件部分:1.板级支持包中加入FATFS文件系统2.C设计 一、SD基础知识 1.SD卡的类型、协…

跟着刘二大人学pytorch(第---12---节课之RNN基础篇)

文章目录 0 前言0.1 课程视频链接:0.2 课件下载地址: 1 Basic RNN1.1 复习DNN和CNN1.2 直观认识RNN1.3 RNN Cell的内部计算方式 2 具体什么是一个RNN?3 使用pytorch构造一个RNN3.1 手动构造一个RNN Cell来实现RNN3.2 直接使用torch中现有的RN…

Markdown文档转成微信公众号文章的排版

应用场景 写好Markdown文档,希望将其转成微信公众号文章的排版。希望将自己的文章分享到微信公众号,但不想花太多时间排版,希望通过markdown格式来写文章,然后自动生成微信公众号文章的排版。 解决方案 你的这个问题有很多人已…

Java项目之消息队列(手写java模拟实现mq)【七、⽹络通信协议设计、消息队列服务器端实现、客户端实现】✔ ★

⼗⼀. ⽹络通信协议设计 定义 Request / Response /** 表示一个网络通信中的请求对象. 按照自定义协议的格式来展开的*/ public class Request {private int type;private int length;private byte[] payload;public int getType() {return type;}public void setType(int typ…

简单谈谈云服务器私网IP的存在意义及优势

云服务器是基于虚拟化技术的计算资源,可以在云平台上灵活创建和管理。为了满足不同用户的需求,云服务提供商在云服务器上分配了两种类型的IP地址:公网IP和私网IP。其中,私网IP是指在局域网内使用的内部IP地址,无法通过…

机器学习(V)--无监督学习(二)主成分分析

当数据的维度很高时,很多机器学习问题变得相当困难,这种现象被称为维度灾难(curse of dimensionality)。 在很多实际的问题中,虽然训练数据是高维的,但是与学习任务相关也许仅仅是其中的一个低维子空间&am…

SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别

1. 加载时机 - bootstrap.yml - 在Spring应用程序启动的早期阶段加载,早于application.yml。 - 它主要用于加载应用程序的上下文或环境设置,例如配置中心的地址、加密解密信息等。 - 通常在ApplicationContext初始化之前加载,因此适用…

环形链表2证明

解法 快慢指针相遇后,其中一个指回头部,然后同步前进 代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNod…

【gitcode】idea 在本地拉取和push本地代码到gitcode仓库

【首次使用】 1、idea 拉取代码,很容易这里就不记录了。 2、push代码时,总是弹窗登录输入在gitcode.com登录能成功。但是在idea 怎么都不成功。控制台提示 remote: HTTP Basic: Access denied fatal: Authentication failed for ******* 认证失败 3…

3D ToF赋能小米CyberDog 2提升视觉灵敏度

随着科技的进步,智能机器人越来越多地融入我们的日常生活。其中,CyberDog 2作为一款前沿的四足机器人,凭借其出色的视觉灵敏度和多功能技术配备,受到了广泛的关注。本文将重点探讨CyberDog 2的视觉系统,尤其是其四种不同类型的摄像头如何共同提升其视觉灵敏度,以及激光传…

uniapp实现路由拦截——遇到问题(三)

uniapp路由拦截开发过程中遇到问题 文章目录 uniapp路由拦截开发过程中遇到问题App 无法退出应用监听返回数据结构解决方式模拟原生物理返回键提示不提示,直接退出应用 微信小程序 登录成功返回页面报错效果图不同平台来源页面数据结构解决方式 App 无法退出应用 安…

HP惠普暗影精灵10 OMEN Gaming Laptop 16-wf1xxx原厂Win11系统镜像下载

惠普hp暗影精灵10笔记本电脑16-wf1000TX原装出厂Windows11,恢复开箱状态oem预装系统安装包,带恢复重置还原 适用型号:16-wf1xxx 16-wf1000TX,16-wf1023TX,16-wf1024TX,16-wf1025TX, 16-wf1026TX,16-wf1027TX,16-wf1028TX,16-wf1029TX, 16-wf1030TX,16-…

Python写UI自动化--playwright的运行模式

Playwright支持两种运行模式:有头模式(Headful) 和 无头模式(Headless)。这两种模式的主要区别在于是否显示浏览器的图形用户界面(GUI)。 目录 有头模式(Headful) 无头模式(Headless) 具体实现步骤 启用无头模式 有头模式(默认设置) 总…

Autosar诊断-FIM模块功能介绍

文章目录 前言一、FIM模块概述二、FID概念介绍Event ID和DTC之间的关系Event ID与FID之间的关系FIM数据结构三、FiM模块与SW-C模块交互关系四、FIM模块函数调用关系FiM功能模块作用过程前言 Autosar诊断的主体为UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是…

python实战根据excel的文件名称这一列的内容,找到电脑D盘的下所对应的文件位置,要求用程序实现

今天客户需要 根据excel的文件名称这一列的内容,找到电脑D盘的下所对应的文件位置,要求用程序实现 数据样例:记录.xlsx 解决代码: 1、安装必要的库: pip install pandas openpyxl2、编写Python脚本: im…

Modbus为何要转成ProfiNET

Modbus与ProfiNET代表了工业通讯不同阶段的发展,各自具有优缺点。Modbus简单易用,适合小型系统;ProfiNET高效稳定,适用于大型复杂网络。转换Modbus为ProfiNET可提高系统性能和扩展性。实际场景下,升级生产线控制器为Pr…

watch详解

Vue.js中的watch选项允许你监听Vue实例的数据变化,并在数据变化时执行自定义的逻辑。watch的使用场景非常广泛,它可以用来处理诸如数据的验证、异步操作、路由跳转、动画等各种需求。在本文中,我将详细介绍watch的用途以及如何在实际项目中应…