【点云网络】voxelnet 和 pointpillar
VoxelNet 和 pointpillar 这两个网络可以认为后者是前者的升级版本,都是采用了空间划分的方法, 一个是体素,一个是pillar, 前者是3D卷积处理中间特征,后者是2D卷积处理中间特征。
voxelnet
voxelnet 应该是比较早的onestage的网络了,其网络图如下:
在 VoxelNet 中,网络结构主要分为三个部分:Feature Learning Network、Convolutional Middle Layers 和 Region Proposal Network,以下是这三个部分的详细说明:
1. Feature Learning Network
- 目标:将稀疏的点云数据编码为稠密的体素特征表示。
- 过程:首先,点云数据被划分成 3D 网格的固定大小体素(voxels),每个体素中包含若干个点。然后,将每个体素的点坐标和其他特征(如反射强度)送入 Voxel Feature Encoding (VFE) 层。
- Voxel Feature Encoding (VFE):VFE 是一种多层感知机(MLP),对体素内的每个点进行特征编码,编码的特征会通过 最大池化 操作聚合成单一体素特征,代表体素内所有点的全局信息。最终生成的体素特征图包含了每个体素的高维特征,形成了稠密的三维特征表示。
以上的内容解释如下:
FCN (全卷积网络)
- 输入:点特征输入 ([x, y, z, r, x - v_x, y - v_y, z - v_z])
- (r) => 反射强度
- ((v_x, v_y, v_z)) => 同一体素中所有点的平均值
- 输出:点特征
逐元素最大池化
- 输入:点特征
- 输出:局部聚合特征
点特征连接
- 输入:点特征,局部聚合特征
- 输出:连接后的点特征
2. Convolutional Middle Layers
- 目标:进一步提取和聚合体素特征图,减少计算量并保留空间信息。
- 过程:中间卷积层(Convolutional Middle Layers)使用了 3D 卷积 来提取体素特征。3D 卷积操作沿着 z 轴方向,将体素特征聚合到统一的 x-y 平面上。
- 2D 特征图生成:通过 3D 卷积的特征聚合,三维特征图被转化为二维特征图(x-y 平面),从而简化了后续计算。在二维平面上继续进行卷积可以保留水平空间的信息,同时大大降低了计算复杂度。
3. Region Proposal Network (RPN)
- 目标:生成候选框并完成三维物体检测。
- 过程:在二维特征图的基础上,RPN 使用 2D 卷积 进行目标候选框的生成和分类。这类似于 Faster R-CNN 中的 RPN,但在这里是基于点云特征的二维平面操作。
- 分类和边界框回归:RPN 中包含两个分支,一个用于物体分类(判断是否为物体),另一个用于边界框回归(预测物体的三维边界框参数,如位置和大小)。通过这两个分支,RPN 能够输出物体类别、位置、尺寸和旋转等信息。
-
总结
- Feature Learning Network:通过 VFE 提取每个体素的特征,将稀疏点云转换为稠密的三维特征图。
- Convolutional Middle Layers:使用 3D 卷积沿 z 轴聚合特征,生成 x-y 平面上的二维特征图,保留空间信息并降低计算量。
- Region Proposal Network (RPN):基于二维特征图使用 RPN 生成候选框,并完成物体检测的分类和边界框回归。
这种架构使 VoxelNet 能够在三维点云上高效、准确地进行物体检测。
Pointpillar
创新点主要是将点云看作一个一个垂直的长条(pillar)进行处理,这个是网络结构图
PointPillars 的网络结构分为三个主要部分:Pillar Feature Net、Backbone (2D CNN) 和 Detection Head (SSD)。以下是每个部分的详细解读:
1. Pillar Feature Net
- 目标:将原始点云数据转化为“柱状”特征表示,从而为后续的卷积神经网络提供有效的输入。
- 过程:
- 划分点云为柱(pillars):与 VoxelNet 不同,PointPillars 使用柱状划分,将点云划分为柱(pillar)。每个柱在 (x)-(y) 平面上有固定的分辨率,但在 (z) 轴上不分层。每个柱代表一个二维网格单元,因此柱内的所有点在水平方向上共享位置,但可以有不同的高度。
- 每个柱特征的生成:将每个柱中的点特征(例如,(x)、(y)、(z) 坐标和反射强度等)输入 Pillar Feature Net 中,通过多层感知机(MLP)提取柱的特征。
- 特征聚合:在 Pillar Feature Net 中,对柱内的点特征使用最大池化(Max Pooling)操作,将每个柱内所有点的特征聚合成一个统一的柱特征向量,表示该柱的全局特征。这样可以得到每个柱的固定维度特征表示。
- 输出:最终的 Pillar Feature Net 输出一个二维特征图,在 (x)-(y) 平面上为每个柱生成特征,这些特征将用于后续的二维卷积网络。
具体过程如下:
堆叠柱 (Stacked Pillars)
- (D=9),特征为 ((x, y, z, r, x_c, y_c, z_c, x_p, y_p))
- (r) 表示反射强度
- 下标 (c) 表示到柱中所有点的算术平均值的距离
- 下标 (p) 表示到柱的 (x)、(y) 中心的偏移
- (P) 表示柱的编号
- (N) 表示每个柱中的点数。如果超过 (N) 个点,则进行采样;如果少于 (N) 个点,则补零填充。
迷你 PointNet
- 通过迷你 PointNet,将 (D) 通道特征转换为 (C) 通道(高维特征)
最大池化
- 将 (N) 维度减少到 1。使用最大池化从柱中聚合特征(局部上下文)
散射
- 将特征散射回原始柱的位置,(H) 和 (W) 分别为画布的高度和宽度。
2. Backbone (2D CNN)
- 目标:在二维平面上进一步提取特征,捕获空间上下文信息,为目标检测提供高级别特征。
- 过程:
- 残差网络 (ResNet):Backbone 网络采用了一个由残差模块(ResNet)组成的二维卷积神经网络,用来在 (x)-(y) 平面上进行特征提取。残差模块可以通过跳层连接(skip connections)增强特征提取的效果,使得网络能够捕获多尺度的特征信息。
- 多尺度特征图:为了支持对不同大小的物体进行检测,Backbone 网络生成了多尺度特征图(feature maps),分别代表不同分辨率下的特征信息。
- 特征下采样:Backbone 网络通常会进行几次下采样操作(通过步幅和池化),从而减少特征图的空间分辨率,这可以降低计算复杂度并增大感受野,使得网络可以识别更大范围的物体。
3. Detection Head (SSD)
- 目标:基于提取的特征图生成候选框,完成物体检测和分类。
- 过程:
- 单次多框检测 (Single Shot Detection, SSD):PointPillars 使用了单次多框检测(SSD)作为检测头。SSD 是一种高效的物体检测方法,通过一个单阶段网络直接输出目标类别和边界框位置。
- 检测框生成:检测头中的卷积层为每个特征点生成候选框。每个候选框会进行分类(判断是否为物体及其类别)和边界框回归(确定物体位置和大小)。
- 非极大值抑制 (Non-Maximum Suppression, NMS):在候选框生成后,会使用非极大值抑制来去除重叠度较高的框,从而得到最终的检测结果。
- 输出:Detection Head 输出每个候选框的置信度(分类分数)和边界框位置、尺寸等信息,最终的检测结果由这些候选框组合得到。
总结
- Pillar Feature Net:将点云划分为柱状区域,生成柱的特征表示,使原始点云信息转换为适合二维卷积的输入特征图。
- Backbone (2D CNN):使用二维卷积网络提取多尺度的空间特征,提高检测的鲁棒性和效率。
- Detection Head (SSD):使用单阶段 SSD 结构,直接在特征图上生成目标的候选框,完成检测和分类任务。
这种结构设计使得 PointPillars 可以高效地将稀疏点云转化为二维特征图,并在二维空间内完成检测。
相关文章:

【点云网络】voxelnet 和 pointpillar
VoxelNet 和 pointpillar 这两个网络可以认为后者是前者的升级版本,都是采用了空间划分的方法, 一个是体素,一个是pillar, 前者是3D卷积处理中间特征,后者是2D卷积处理中间特征。 voxelnet voxelnet 应该是比较早的onestage的网…...

HAL库硬件IIC驱动气压传感器BMP180
环境 1、keilMDK 5.38 2、STM32CUBEMX 初始配置 默认即可。 程序 1、头文件 #ifndef __BMP_180_H #define __BMP_180_H#include "main.h"typedef struct {float fTemp; /*温度,摄氏度*/float fPressure; /*压力,pa*/float fAltitude; /*…...

探索Python音频处理的奥秘:Pydub库的魔法
文章目录 探索Python音频处理的奥秘:Pydub库的魔法第一部分:背景介绍第二部分:Pydub是什么?第三部分:如何安装Pydub?第四部分:Pydub的简单函数使用方法1. 打开音频文件2. 播放音频3. 导出音频文…...

LeetCode 热题100(七)【链表】(2)
目录 7.6合并两个有序链表(简单) 7.7两数相加(中等) 7.8删除链表的倒数第N个节点(中等) 7.9两两交换链表中的节点(中等) 7.10k个一组翻转链表(困难) 7.6…...

计算机网络 TCP/IP体系 网络层
一. 网络层的基本概念 网络层主要负责将数据从源端主机发送到目的端主机。在这一过程中,网络层要解决的关键问题是数据包的路由选择,即确定数据包通过互联网的最佳路径。 1.1 网络层的信息类型 数据包:这是网络层传输的主要形式,…...

迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
近日,深圳市遨游通讯设备有限公司(以下简称“遨游通讯”)旗下5G防爆手机——AORO M8,通过了CSA集团的严格测试和评估,荣获国际IECEx及欧盟ATEX防爆认证证书。2024年11月5日,CSA集团和遨游通讯双方领导在遨游…...

实习作假:阿里健康实习做了RABC中台,还优化了短信发送流程
最近有二本同学说:“大拿老师,能帮忙看下简历吗?” 如果是从面试官的角度来看,这个同学的实习简历是很虚假的。 但是我们一直强调的是:校招的实习简历是不能出现明显的虚假。 首先,你去公司做事情&#…...

Unity中IK动画与布偶死亡动画切换的实现
在Unity游戏开发中,Inverse Kinematics(IK)是创建逼真角色动画的强大工具。同时,能够在适当的时候切换到布偶物理状态来实现死亡动画等效果,可以极大地增强游戏的视觉体验。本文将详细介绍如何在Unity中利用IK实现常规…...

java导出word文件(手绘)
文章目录 代码细节效果图参考资料 代码细节 使用的hutool的WordUtil,WordUtil对poi进行封装,但是这一块的官方封装的很少,很多细节都没有。代码中是常见的绘制段落,标题、表格等常用api Word07Writer writer WordUtil.getWriter(…...

ssm070基于SSM框架的校园代购服务订单管理系统的设计与实现+vue(论文+源码)_kaic
毕业设计 题 目: 校园代购服务订单管理系统 作 者: 学 号: 所属学院: 专业年级: 学校导师: 职 称: 班级导师: 职 称: 完成时间…...

Java项目实战II基于Spring Boot的秒杀系统设计与实现(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在互联网电商蓬勃发展的今天࿰…...
FastAPI —— 请求参数验证
1.hello world 给后端船数据 hello world 接口给后端传 COVID-19 感染数据_高性能 FastAPI 框架入门精讲-慕课网 #!/usr/bin/python3 # -*- coding:utf-8 -*- # __author__ __Jack__from typing import Optionalfrom fastapi import FastAPI from pydantic import BaseModel…...

第七篇: BigQuery中的复杂SQL查询
BigQuery中的复杂SQL查询 背景与目标 在数据分析中,我们通常需要从多个数据源中获取信息,以便进行深入的分析。这时,BigQuery提供的JOIN、UNION和子查询等复杂SQL语句非常实用。本文将以Google BigQuery的公共数据集为例,介绍如何…...

【SQL实验】高级查询(难点.三)含附加数据库操作
完整代码在文章末尾【代码是自己的解答,并非标准答案,也有可能写错,文中可能会有不准确或待完善之处,恳请各位读者不吝批评指正,共同促进学习交流】 将素材中的“学生管理”数据库附加到SQL SERVER中,完成以…...

qt QFileSystemModel详解
1、概述 QFileSystemModel是Qt框架中的一个关键类,它继承自QAbstractItemModel,专门用于在Qt应用程序中展示文件系统的数据。这个模型提供了一个方便的接口,使得开发者可以轻松地在应用程序中集成文件和目录的树形结构,并通过视图…...

element plus中修改el-table的样式
文章目录 前情提要相关环境package.jsonvue代码结果 方式一直接看代码 方式二直接看代码 前情提要 因为项目中用到el-table的时候,需要将el-table表格的样式进行修改,将整个表格的背景颜色从白色变成透明,使得表格变得透明之后,展…...
深入理解封装与接口:Java程序设计的核心思想与最佳实践
目录 一、封装的优点 二、接口与默认方法 三、总结 在面向对象编程(OOP)中,封装(Encapsulation)是一个核心概念,Java对其进行了良好的支持。封装不仅有助于提高代码的安全性,还能够增强代码的…...

linux 下调试 mpu6050 三轴加速度
供自己备忘; 1. 参考资料: b 站视频 https://www.bilibili.com/video/BV1cL4y1x7FA/?spm_id_from333.337.search-card.all.click&vd_sourced7a07b8689c9e646f0214227c06f304c csdn 其它博客 https://blog.csdn.net/qq_65198598/article/detail…...

C语言心型代码解析
方法一 心型极坐标方程 爱心代码你真的理解吗 笛卡尔的心型公式: for (y 1.5; y > -1.5; y - 0.1) for (x -1.5; x < 1.5; x 0.05) 代码里面用了二个for循环,第一个代表y轴,第二个代表x轴 二个增加的单位不同,能使得…...
【LeetCode】【算法】647. 回文子串
LeetCode 647.回文子串 题目描述 给你一个字符串s,请你统计并返回这个字符串中回文子串的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串是字符串中的由连续字符组成的一个序列。 思路 思路:中心拓展法 中心拓展法的意思是说…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...