目标检测-One Stage-CenterNet

文章目录

  • 前言
  • 一、CenterNet的网络结构和流程
  • 二、CenterNet的创新点
  • 总结


前言

前文提到的YOLOv3、YOLOv4、YOLOv5都是基于Anchor的算法(anchor-based),这类算法有如下缺点:

  1. 产生大量的预测框,计算量大
  2. 正负样本不平衡问题:产生的预测框大部分是负样本
  3. 对预定义anchor依赖:anchor-based方法的anchor box的尺度是一个超参数,不同的超参设置会影响模型性能

因此出现了anchor-free这类不依赖于预定义锚框的算法,使得模型更灵活,并且在处理各种目标形状和大小时更具鲁棒性,在一些场景下取得了与传统锚框方法相媲美甚至更好的性能。

CenterNet 就是经典的 anchor-free 目标检测算法(CVPR 2019)


提示:以下是本篇文章正文内容,下面案例可供参考

一、CenterNet的网络结构和流程

  1. 图像预处理:对图片进行随机翻转,随机缩放(0.6~1.3倍),图片裁剪和颜色增强。
  2. 将图像输入backbone(Hourglass/ResNet/DLA/…)得到下采样为原来R分之一大小的特征图

ps:

  • Hourglass Network(时钟网络)是一种用于姿态估计和目标检测的神经网络结构,最初由Alejandro Newell等人于2016年提出。它的名字来自于其整体网络结构的形状,看起来像一个沙漏或时钟的形状。
  • Hourglass Network 的主要特点是通过堆叠多个相互连接的 Hourglass 模块,实现对不同尺度特征的提取和整合。Hourglass 模块本身是一个自我包含的网络结构,具有先下采样(down-sampling)然后上采样(up-sampling)的结构,以捕捉底层和高层特征。
    在这里插入图片描述
  1. 将获得的特征图同时输入HeatMap、OffSet、Size三个组件,得到的目标框的分类和回归情况

ps:

  • HeatMap:经过卷积模块,预测特征图中每个像素是否是目标的中心点
  • OffSet:经过卷积模块,以特征图中每个像素为中心点,回归目标边界框中心点的偏移量
  • Size:经过卷积模块,以特征图中每个像素为中心点,回归目标边界框的大小(宽度、高度)
  1. 预测框转换:将上述结果合并,得到预测框的类别和位置信息

ps:

  1. 首先,对HeatMap的通道做Argmax和max处理,得出分类的index和最高得分。根据得分置信度过滤掉低于阈值的物体中心(此时的过滤完的结果已经带有分类信息和物体中心位置的坐标了)。
  2. 将Offset的偏移量加到HeatMap中的物体中心坐标上,进行修正。
  3. 根据上面HeatMap的过滤结果,对置信度高于阈值的WidthHeight进行转换,xyhw -> x1y1x2y2,就得到预测框了。
    最后将预测框结果进行归一化,方便后面预测框转换计算。
  1. 后处理:虽然论文作者一直强调自己这个模型是一个完全端到端的设计,不需要nms等后处理操作。只需要一个3x3的max_pooling层就可以替代nms。但是实际使用中,无论模型的预测结果还是训练数据,都在结果转换后进行nms。

在这里插入图片描述

二、CenterNet的创新点

  1. 用HeatMap预测的目标中心点代替Anchor机制来预测目标,使用更大分辨率的输出特征图(相对于原图缩放了4倍),因此无需用到多层特征,实现了真正的Anchor-Free,训练上更加简便,并且由于无需额外生成anchor,在保证精度的同时,速度显著提升。
  2. 网络可拓展性非常强,论文中介绍了实现3D目标检测和人体姿态估计任务。具体来说对于3D目标检测,直接回归得到目标的深度信息,3D目标框的尺寸,目标朝向;对于人体姿态估计来说,将关键点位置作为中心的偏移量,直接在中心点回归出这些偏移量的值。

总结

CenterNet是anchor-free中的一个里程碑之作。除了目标检测之外,CenterNet还能应用到其他视觉任务中,如人体关键点,姿态预测等。

模型简单而精巧的设计,使得CenterNet在运行速度和精度的平衡上取得了很好的结果。

在这里插入图片描述

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

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

相关文章

矩阵置零【矩阵】

Problem: 73. 矩阵置零 文章目录 思路 & 解题方法复杂度Code 思路 & 解题方法 二维数组简单使用。 复杂度 时间复杂度: 添加时间复杂度, 示例: O ( n m ) O(nm) O(nm) 空间复杂度: 添加空间复杂度, 示例: O ( n m ) O(nm) O(nm) Code class …

信息系统安全——基于 KALI 和 Metasploit 的渗透测试

实验 2 基于 KALI 和 Metasploit 的渗透测试 2.1 实验名称 《基于 KALI 和 Metasploit 的渗透测试》 2.2 实验目的 1 、熟悉渗透测试方法 2 、熟悉渗透测试工具 Kali 及 Metasploit 的使用 2.3 实验步骤及内容 1 、安装 Kali 系统 2 、选择 Kali 中 1-2 种攻击工具&#xff0c…

React入门 - 02(工程目录结构解析)

本章内容 目录 1 外层“文件”说明2 各个“文件夹”说明 接着上一节的内容,我们继续这一节的内容–工程目录文件解析。打开上一节已经建好的工程 react-demo,详细的来了解一些里面的文件。 1 外层“文件”说明 .gitignore — 当我们使用 git 的时候,希…

seata专题

什么是seata Seata是一个开源的分布式事务解决方案,旨在简化分布式事务的实现。它提供了一种简单而强大的方式来管理分布式事务,在分布式应用程序中保持数据的一致性和可靠性。 在传统的单体应用程序中,数据库事务可以很容易地实现。但是…

利用Python实现每日新闻早报推送

本文将介绍如何使用Python编写简单的逻辑,通过调用API接口实现每日新闻推送功能。 步骤: 导入所需的库: 在代码的开头,我们需要导入所需的库。通常,我们会使用requests库来发送HTTP请求,以获取新闻数据。 …

试除法求约数算法总结

知识概览 试除法求一个数的约数的时间复杂度是。 例题展示 题目链接 活动 - AcWing 系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。https://www.acwing.com/problem/content/871/ 题解 用试除法求约数,…

Cadence记录

第三讲原理图的绘制和后续处理 一、绘制原理图 1.同一个页面内创建电气互联 连线方式2种 使用连线(wire) 使用网络名(net alias) 检查网络是否连接,如图显示则好着 2.不同页面之间创建电气互联 左右之分,表示在这个页面的信号是…

vue3用户权限管理(路由控制等)

在前端开发的过程中,我们需要做前端的权限管理,我们需要根据后端提供的信息来控制权限,这时候就需要根据用户的操作来进行权限控制了。逻辑稍微有一点绕,多理解就好了。 用户路由权限管理 大致的实现原理: 一般将路由…

适配器Adapters

1.适配器作用 主要是对底层的东西进行改造 2.适配器种类:容器适配器,迭代器适配器,仿函数适配器 2.1容器适配器: stack,queue他们两的底层结构都为deque,deque有好多功能,而stack&#x…

云卷云舒:【实战篇】Sql Server迁移

1. 简介 部分SQL Server数据库的数据量比较大,无法在业务割接期间完成SQL Server全量数据的迁移,这种场景下,可采用全量增量的方式进行数据迁移。 2. 迁移原理 SQL Server alwayson 1.任何一个SQL Server里都有个叫Log Writer的线程&…

CentOS 7 系列默认的网卡接口名称

CentOS 7 系列默认的网卡接口是随机的,如果要修改网卡名称以 eth 开头,有两种方式。 方法一:安装系统时 在安装界面移动光标到 Install Centos 7.按 TAB 键 在出现的代码的末尾添加:net.ifnames0 biosdevname0.按下回车开始安装即…

mybatis 增删改查

MyBatis 是一种持久化框架,主要用于简化数据库访问代码的编写。它允许开发者使用 XML 或注解来配置 SQL 映射,并提供了自动将数据库操作映射到 Java 对象的功能。以下是 MyBatis 中的基本增删改查操作的示例: 1. 增加(Insert&…

微信管理大杀器:这个让工作高效不费力的利器你值得拥有!

在如今互联网社交时代,微信已经成为了人们生活中不可或缺的一部分。无论是与朋友聊天、分享生活,还是与客户进行商务洽谈,微信都扮演着重要的角色。对于个人而言,拥有一个高效管理微信私域的工具,将极大地提升运营效率…

可在图像中生成任意精准文本,支持中文!阿里开源AnyText

随着Midjourney、Stable Difusion等产品的出现,文生图像领域获得了巨大突破。但是想在图像中生成/嵌入精准的文本却比较困难。 经常会出现模糊、莫名其妙或错误的文本,尤其是对中文支持非常差,例如,生成一张印有“2024龙年吉祥”…

Arrays 数组工具类常用方法

java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法 equals:比较两个数组是否相等 int[] arr1 new int[]{1,2,3}; int[] arr2 new int[]{1,2,3}; boolean equals Arrays.equals(arr1, ar…

Java学习苦旅(二十七)——Java中的集合框架

本篇博客将初略讲解Java中的集合框架及背后的数据结构。 集合框架介绍 Java 集合框架 Java Collection Framework,又被称为容器 (container),是定义在java.util包下的一组接口 interfaces 和其实现类 classes 。其主要表现为将多…

【Linux】宝塔端口不通

1.问题描述:端口不通 以端口16588为例: 服务器16588端口是关闭的,防火墙规则是放通的,是由于服务器内的对应程序没有监听到 对应 的公网上 图1:端口检测 图2: 端口已放行 此时访问仍然不通,但…

基于SpringBoot的考务报名平台的设计与实现,java

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的考务报名平台的设计与实…

EM算法求解男女升高-Python

EM算法求解男女升高-Python 目前关于EM算法理论分析很全了,代码还比较少,一般就停留在最后的似然函数。 问题 现在一个班里有100个男生和女生。我们假定男生的身高服从正态分布,女生的身高则服从另一个正态分布。 求解两个正态分布的参数。…

Vue-6、Vue事件处理

1、点击事件 <!DOCTYPE html> <html lang"en" xmlns:v-model"http://www.w3.org/1999/xhtml" xmlns:v-bind"http://www.w3.org/1999/xhtml"xmlns:v-on"http://www.w3.org/1999/xhtml"> <head><meta charset&quo…