3D检测:从pointnet,voxelnet,pointpillar到centerpoint
记录centerpoint学习笔记。目前被引用1275次,非常高。
地址:Center-Based 3D Object Detection and Tracking (thecvf.com)
GitHub - tianweiy/CenterPoint
CenterPoint:三维点云目标检测算法梳理及最新进展(CVPR2021)_哔哩哔哩_bilibili 作者解释。
CenterPoint 是一种用于激光点云的3D目标检测与跟踪算法框架,由2021年CVPR论文《Center-based 3D Object Detection and Tracking》提出。与以往算法不同,CenterPoint使用关键点而不是边界框来表示、检测和跟踪3D目标。
具体来说,CenterPoint算法分为两个阶段:
-
第一阶段:使用关键点检测器检测目标的中心点,然后基于中心点特征回归出目标的3D尺寸、朝向和速度等属性。
-
第二阶段:基于目标额外的点特征,对第一阶段得到的属性进行优化。
CenterPoint算法的优点包括简单高效,在nuScenes和Waymo数据集上都取得了state-of-the-art的性能表现。此外,目标跟踪被简化为一个简单的最近点匹配过程。
2D目标检测:
2D目标检测需要输出每个对象的类别(如人、车、猫等)以及一个包围框(bounding box),该包围框在图像中精确地定位了对象的位置。常见算法有基于区域提议(region proposal)的两阶段检测算法(如Faster R-CNN)和基于单阶段检测(one-stage detection)的算法(如YOLO、RetinaNet)
anchor
anchor(锚点)通常是指在目标检测任务中使用的一系列预定义的边界框(bounding boxes)。这些锚点具有不同的尺寸和宽高比,以覆盖图像中可能出现的各种形状和大小的目标。
锚点机制的工作流程如下:
- 在训练阶段,网络首先生成一系列锚点,这些锚点覆盖了图像中可能出现的各种形状和大小的目标。
- 然后,网络预测每个锚点内部是否包含一个目标,如果是,则进一步预测目标的类别和锚点需要调整的偏移量,以更好地匹配目标的真实边界框。
- 在推理阶段,网络使用这些锚点作为初始猜测,快速检测图像中的目标
缺点:不是end2end,需要nms后处理。
NMS
NMS(Non-Maximum Suppression,非极大值抑制)是一种在目标检测任务中常用的后处理步骤,用于去除冗余的检测边界框,确保每个目标只被检测一次。
NMS的主要步骤如下:
-
排序:首先,根据检测边界框的置信度(通常由检测算法给出)对所有边界框进行降序排序。
-
选择最高置信度的边界框:选择置信度最高的边界框作为当前考虑的边界框。
-
抑制与当前边界框高度重叠的边界框:计算当前边界框与其他所有边界框的交并比(IoU,Intersection over Union),如果IoU超过某个预定义的阈值(例如0.5),则将这些边界框抑制(即移除或忽略)。
-
重复步骤2和3:从剩余的边界框中选择置信度最高的边界框,重复步骤3,直到所有的边界框都被处理过。
-
输出最终检测结果:最后,剩下的边界框就是NMS处理后的检测结果,每个目标只被检测一次。
NMS在目标检测算法中起着关键作用,可以显著减少冗余的检测结果,提高检测的准确性和效率。然而,NMS也有一些局限性,例如可能会抑制一些具有高置信度但与当前边界框重叠的边界框,这可能导致一些真正的目标被遗漏。为了解决这个问题,研究者们提出了改进的NMS算法,如Soft-NMS、Softer-NMS等,它们通过更柔和的抑制策略来减少误抑制。
3D目标检测:
3D目标检测是计算机视觉领域的一项重要任务,其目标是在三维空间中检测和定位图像中的各种对象。与2D目标检测相比,3D目标检测不仅需要输出每个对象的类别和位置,还需要输出其在三维空间中的尺寸、方向和姿态等信息。
为了实现3D目标检测,研究者们提出了多种算法,包括基于深度学习的端到端检测算法和基于几何学的算法。近年来,基于深度学习的3D目标检测算法取得了显著的进展,特别是基于点云(如PointNet、PointNet++)和基于体素(如VoxelNet)的方法。
2D的预测:xy,wh(宽高),cls类别
3D的预测:xyz,lwh(长宽高),θ朝向角度,cls类别
pointnet
PointNet是一种用于点云处理的深度学习模型,由2017年CVPR论文《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》提出。该模型的主要思想是将点云数据作为输入,通过神经网络对其进行处理,以实现对点云数据的深度学习分析。
PointNet的关键创新点包括:
-
对称函数(Set Abstraction):为了处理点云的无序性,PointNet引入了对称函数,也称为集合函数。该操作将无序的点集表示为固定长度的向量。在PointNet中,集合函数的实现形式是基于最大池化(max)。
-
T-Net:为了获得点云的几何变换不变性,PointNet通过学习几何变换的参数,对点云数据进行对齐和变换。T-Net通过生成变换矩阵对原始点云数据进行变换,以更好地进行特征学习和提取。
-
多层感知器(MLP):PointNet使用多层感知器(MLP)对点云进行特征提取和分类/分割。
PointNet的主要应用包括:
- 3D物体分类:给定N个3D的点云,通过PointNet进行分类。
- 3D物体分割:对点云进行语义分割或实例分割。
PointNet的优势在于其简单高效的设计,能够直接处理点云数据,而无需将其转换为其他表示形式(如体素或网格)。这使得PointNet在基于点云的3D物体检测和分割任务中取得了当时最先进的性能。
voxelnet
VoxelNet是一种用于基于点云的3D物体检测的端到端学习框架,由2018年CVPR论文《VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection》提出。该框架的主要思想是将稀疏的点云数据转换成密集的体素表示,然后使用3D卷积网络进行特征提取和物体检测。
VoxelNet框架主要包括以下步骤:
-
点云预处理:将稀疏的点云数据转换成规则的体素网格表示。这一步通过将点云划分成规则的体素,并对每个体素内的点进行统计(如最大值、最小值、平均值等)来实现。
-
体素特征提取:使用3D卷积网络从体素网格中提取特征。这些特征能够描述体素内的点云分布和结构信息。
-
区域提议网络(RPN):基于提取的体素特征,使用RPN生成候选物体的3D边界框提议。RPN是一个全卷积网络,能够输出一系列3D边界框提议以及每个提议的置信度。
-
边界框回归和分类:对RPN生成的边界框提议进行回归和分类,以获得最终的物体检测结果。这一步通常使用3D卷积网络实现。
pointpillar
PointPillar是一种用于基于激光雷达(LiDAR)点云的3D物体检测的算法,由2019年CVPR论文《PointPillars: Fast Encoders for Object Detection from Point Clouds》提出。该算法的主要思想是将稀疏的点云数据转换成伪图像表示(每一个pixel不仅有原始的2D信息还包括了高度信息),然后使用2D卷积网络进行特征提取和物体检测。voxelnet很慢也很占内存。
PointPillar框架主要包括以下步骤:
-
点云预处理:将稀疏的点云数据转换成规则的伪图像表示。这一步通过将点云划分成规则的柱体(pillars),并对每个柱体内的点进行统计(如最大值、最小值、平均值等)来实现。
-
伪图像特征提取:使用2D卷积网络从伪图像中提取特征。这些特征能够描述每个柱体内的点云分布和结构信息。
-
区域提议网络(RPN):基于提取的伪图像特征,使用RPN生成候选物体的3D边界框提议。RPN是一个全卷积网络,能够输出一系列3D边界框提议以及每个提议的置信度。
-
边界框回归和分类:对RPN生成的边界框提议进行回归和分类,以获得最终的物体检测结果。这一步通常使用3D卷积网络实现。
PointPillar的创新之处在于其高效的计算方式,能够将稀疏的点云数据转换为密集的伪图像表示,从而利用成熟的2D卷积网络进行特征提取。这使得PointPillar在基于激光雷达的3D物体检测任务中取得了当时最先进的性能。
centerpoint
当anchor感应到附件有目标物体的时候,就会有一个很大的激活值,就是上面红色部分。
当物体是旋转的时候,anchor会误匹配,主要是因为anchor是正的,不能斜着
中心点的表征是热力图(关键点检测的loss):CLS*H*W,热力图的局部最大值认为是有目标obj
相关文章:

3D检测:从pointnet,voxelnet,pointpillar到centerpoint
记录centerpoint学习笔记。目前被引用1275次,非常高。 地址:Center-Based 3D Object Detection and Tracking (thecvf.com) GitHub - tianweiy/CenterPoint CenterPoint:三维点云目标检测算法梳理及最新进展(CVPR2021ÿ…...
使用canvas内置api完成图片的缩放平移和导出和添加提示
最近挺忙的,几乎没有时间去更新博客,今天正好在学习新东西,正好和大家分享一下。 最近要做一个使用canvas完成图片平移,缩放,添加标注的需求,完成的效果大概如下: 使用canvas内置api完成图片的缩…...

数据结构——二叉树——堆
前言: 在前面我们已经学习了数据结构的基础操作:顺序表和链表及其相关内容,今天我们来学一点有些难度的知识——数据结构中的二叉树,今天我们先来学习二叉树中堆的知识,这部分内容还是非常有意思的,下面我们…...

算法学习——LeetCode力扣图论篇3(127. 单词接龙、463. 岛屿的周长、684. 冗余连接、685. 冗余连接 II)
算法学习——LeetCode力扣图论篇3 127. 单词接龙 127. 单词接龙 - 力扣(LeetCode) 描述 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> … -> sk: 每一对相…...
状态模式详解:管理对象状态的利器
在软件设计中,我们经常会遇到需要根据对象的不同状态来执行不同行为的情况。为了优雅地管理这些状态及其对应的行为,状态模式(State Pattern)应运而生。本文将深入探讨状态模式的使用条件、Java代码实现,并结合现实社会…...

探索----------------阿里云
目录 一、阿里云四大件 1、云服务器ECS 2、云数据库RDS 3、负载均衡SLB 4、对象存储OSS 5、其他的云计算产品 1)内容分发网络CDN 2)专有网络 VPC 二、linux发行版本 三、你平时对系统会怎么优化(五大负载) 1、cpu 使用率…...

Tidb和MySQL性能简单测试对比
一、单SQL性能对比 由于TiDB的并发能力优秀,但是单个SQL执行延迟较差,为了客观对比,所以只用1个线程来压测tidb和mysql,以观察延迟情况 二、并发SQL性能对比 TiDB:v6.5.2 MySQL:8.0.26 (单机) 三、结论 …...
2024.2.6力扣每日一题——魔塔游戏
2024.2.6 题目来源我的题解方法一 贪心优先队列 题目来源 力扣每日一题;题序:LCP 30 我的题解 方法一 贪心优先队列 思路:使用贪心的思想,从左到右遍历,若遇到加上当前房间的生命值后小于等于0,由于需要…...
C# OAuth单点登录的实现
原理 单点登录(Single Sign-On,简称SSO)是一种身份验证技术,它允许用户使用一组凭据(如用户名和密码)登录多个相关但独立的系统,而无需在每个系统中都进行登录操作。下面是一个简单的SSO实现示…...

AtCoder Beginner Contest 347 (ABCDEF题)视频讲解
A - Divisible Problem Statement You are given positive integers N N N and K K K, and a sequence of length N N N, A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\ldots,A_N) A(A1,A2,…,AN). Extract all elements of A A A that are multiples of K K K, divi…...

【vue2+antvx6】报错Cannot read properties of undefined (reading ‘toUpperCase‘)
我的代码是这样的 <el-collapseref"collapse"v-model"active"accordionclass"collapseStart"change"collapsechange"><el-collapse-item:name"String(index 1)"v-for"(i, index) in List":key"in…...
主流的开发语言、环境及其特点
主流的开发语言及其特点: 1. Python:以其简洁的语法和强大的库支持而闻名,适用于数据科学、人工智能和网络开发等领域。 2. Java:跨平台的编程语言,广泛应用于企业级应用、Android 开发和大型系统开发。 3. C…...
Android知识 - 代码混淆ProGuard规则介绍
ProGuard 的规则及示例 规则概述 ProGuard 是一个代码优化工具,它通过移除未使用的代码、重命名类、字段和方法等方式来减小应用的大小。在 ProGuard 的配置文件中,我们可以定义一系列的规则来控制优化和混淆的过程。 规则语法 ProGuard 的规则通常包…...
【Linux的进程篇章 - 冯诺依曼的体系结构】
Linux学习笔记---005 Linux冯诺依曼体系结构理解1、冯诺依曼体系结构1.1、冯诺依曼体系结构1.2、硬件层面1.3、数据层面1.4、那么冯诺依曼体系能干什么呢? 2、操作系统(Operastor System)2.1、概念2.2、操作系统层的核心功能 3、进程的初步理解 Linux冯诺依曼体系结…...
flask-(数据连接池的使用,定制命令,信号的使用,表关系的建立和查询)
文章目录 连接池实例flask定制命令flask 缓存的使用flask信号的使用sqlalchemy原生操作sqlalchemy操作表flask orm操作表一对多的增加和跨表查询 (一对一只需要关联字段加上 ,uniqueTrue)多对多关系的增加和查询多对多基本的增删改查 连接池 import pymy…...

设计模式学习笔记 - 设计模式与范式 -行为型:2.观察者模式(下):实现一个异步非阻塞的EventBus框架
概述 《1.观察者模式(上)》我们学习了观察者模式的原理、实现、应用场景,重点节介绍了不同应用场景下,几种不同的实现方式,包括:同步阻塞、异步非阻塞、进程内、进程间的实现方式。 同步阻塞最经典的实现…...

数据挖掘|贝叶斯分类器及其Python实现
分类分析|贝叶斯分类器及其Python实现 0. 分类分析概述1. Logistics回归模型2. 贝叶斯分类器2.1 贝叶斯定理2.2 朴素贝叶斯分类器2.2.1 高斯朴素贝叶斯分类器2.2.2 多项式朴素贝叶斯分类器 2.3 朴素贝叶斯分类的主要优点2.4 朴素贝叶斯分类的主要缺点 3. 贝叶斯分类器在生产中的…...

Linux文件(系统)IO(含动静态库的链接操作)
文章目录 Linux文件(系统)IO(含动静态库的链接操作)1、C语言文件IO操作2、三个数据流stdin、stdout、stderr3、系统文件IO3.1、相关系统调用接口的使用3.2、文件描述符fd3.3、文件描述符的分配规则3.3、重定向3.4、自制shell加入重…...

CI/CD实战-jenkins结合ansible 7
配置主机环境 在jenkins上断开并删除docker1节点 重新给master添加构建任务 将server3,server4作为测试主机,停掉其上后面的docker 在server2(jenkins)主机上安装ansible 设置jenkins用户到目标主机的免密 给测试主机创建用户并…...

内网渗透-(黄金票据和白银票据)详解(一)
目录 一、Kerberos协议 二、下面我们来具体分析Kerberos认证流程的每个步骤: 1、KRB_AS-REQ请求包分析 PA-ENC-TIMESTAMP PA_PAC_REQUEST 2、 KRB_AS_REP回复包分析: TGT认购权证 Logon Session Key ticket 3、然后继续来讲相关的TGS的认证过程…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...

抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...