当前位置:网站首页>【三维目标检测】Pointpillars(一)
【三维目标检测】Pointpillars(一)
2022-07-20 19:32:00 【Coding的叶子】
PointPillars是一种基于体素的三维目标检测算法,发表在CVPR2019《PointPillars: Fast Encoders for Object Detection from Point Clouds》。它的主要思想是把三维点云转换成2D伪图像以便用2D目标检测的方式进行目标检测。PointPillars在配置为Intel i7 CPU和1080ti GPU上的预测速度为62Hz,在无人驾驶领域中常常能够使用上它,是一个落地且应用广泛的一个3D快速目标检测网络。
1 源码与输入数据
源码采用的是mmdetection3d框架中的second模型。mmdetection3d安装和调试验证可参考本博客之前的专栏,里面有详细介绍。
数据采用的是kitti,为了快速进行算法调试、训练、评估和验证,以及快速下载,我制作了一个mini kitti数据集,数据集的文件目录结构与完整KITTI数据集保持一致。其中,小型的KITTI数据集,即 mini kitti保存了20个训练样本和5个测试样本。下载地址为:minikitti数据集-深度学习文档类资源-CSDN下载。
下载的数据包含4个部分,即激光雷达数据velodyne、图像数据image_2、校准数据calib和标注数据label_2。如果需要对应的ImageSets,请下载:train_val_testforminikitti-深度学习文档类资源-CSDN下载,将下载的文件夹重名为ImageSets即可。
关于KITTI各个部分的介绍请分别参考以下内容:
KITTI数据集简介(一) — 激光雷达数据_Coding的叶子的博客-CSDN博客_雷达数据集
KITTI数据集简介(二) — 标注数据label_2_Coding的叶子的博客-CSDN博客_kitti数据集标注
KITTI数据集简介(三) — 图像数据image_2_Coding的叶子的博客-CSDN博客
KITTI数据集简介(四) — 图像数据calib_Coding的叶子的博客-CSDN博客
数据预处理部分可以参考Voxelnet的数据处理方式加以理解:【三维目标检测】VoxelNet(二):数据处理_Coding的叶子的博客-CSDN博客。
2 mmdetection3d kitti数据处理
mmdetection3d kitti (持续更新)_Coding的叶子的博客-CSDN博客
python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti
3 Pointpillars简介
Pointpillars本质上是一种基于体素的三维目标检测方法。pillar英文的意思是柱子、柱状物的意思。在pointpillars模型中,体素由一系列柱状网格组成,在Z方向上仅仅只有一个体素,整体相当于一个柱子。在Z方向上只有一个体素,这样便于将三维数据直接转换为二维数据来处理。Pointpillars主要几个关键点如下:
(1)输入的点云数据维度为Nx4,这四个维度分别是坐标和反射强度,x、y、z、r。将输入点云划分成柱状体素,然后将各个体素中点云的坐标减去体素中点云坐标,得到cx、cy、cz。将各个体素中点云的坐标减去体素自身的中心坐标,得到vcx、vcy、vcz。这样输入点云的特征是由x、y、z、r、cx、cy、cz、vcx、vcy、vcz组成的10维特征。
(2)通过PFN层,将点云特征直接投影到体素的XOY平面,将三维点云数据转换为二维数据进行处理。
(3)通过SECOND FPN主干网络进行特征提取。
4 模型结构、推理过程
模型详细结构及推理过程请参考下一篇博客:【三维目标检测】Pointpillars(二)_Coding的叶子的博客-CSDN博客。
5 【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_三维点云深度学习
更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。
边栏推荐
- What engine does MySQL use?
- For development, user experience is the ultimate King (Performance Optimization)
- 微信小程序怎么测试
- 5 种常见的 async/await 误用
- 牛客题目——判断一个链表是否为回文结构、数据流中的中位数、PriorityQueue的常用方法
- 教你炒股票7:给-赚-了指数亏-了-钱的一些忠告
- 单文档的BCG程序,为什么在CMainFrame::OnCreate最后设置工具条的标题,为什么无效?
- DQL where查询
- 三层交换机/路由器OSPF配置详解【华为eNSP实验】
- Fuzzy query placeholder
猜你喜欢
信息系统项目管理师必背核心考点(四十七)项目分包合同
ACL and NAT
【服务器数据恢复】断电导致存储raid6阵列瘫痪的数据恢复案例
13 practical code snippets, recommended collection
Win11 Excel文件变成白板图标怎么解决?
Multi active architecture of King glory mall
Win11 22H2如何创建开始菜单文件夹?
For development, user experience is the ultimate King (Performance Optimization)
主流浏览器版本检测
IReport导出PDF字体加粗失效
随机推荐
How to realize on call customer service
Mysql数据库查询好慢,除了索引,还能因为什么?
Detailed explanation of zero length array in C language (2)
Win11C盘变红怎么办?Win11C盘变红的清理方法
STL 笔记(十):容器适配器——队列和堆栈
Basic understanding of ES6
(22) blender source code analysis: mouse down message to window call process
低代码平台搭建跨部门沟通系统案例分析
A CD and a floppy disk
5 种常见的 async/await 误用
DQL where query
win11微软账户登录一直转圈怎么解决?win11微软账户登录一直转圈
单文档的BCG程序,为什么在CMainFrame::OnCreate最后设置工具条的标题,为什么无效?
Hisilicon AI chip (hi35xx): image JPG to BGR upgrade
Teach you to speculate in stocks 2: there is no Zhuang family, but only winners and losers
王者荣耀商城异地多活架构
STL notes (IX): container BitSet
C# 图像模板匹配并标注
同花顺上开户安全吗,靠谱吗?
【安装PG】