【点云网络】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,请你统计并返回这个字符串中回文子串的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串是字符串中的由连续字符组成的一个序列。 思路 思路:中心拓展法 中心拓展法的意思是说…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
