前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 NVIDIA CUDA-Pointpillars 检测点云中的对象

使用 NVIDIA CUDA-Pointpillars 检测点云中的对象

作者头像
GPUS Lady
发布2022-02-10 11:44:32
1.4K0
发布2022-02-10 11:44:32
举报
文章被收录于专栏:GPUS开发者

Blog原文:

https://developer.nvidia.com/blog/detecting-objects-in-point-clouds-with-cuda-pointpillars/

点云是坐标系中点的数据集。点包含丰富的信息,包括三维坐标X、Y、Z;颜色; 分类值;强度值;和时间。点云主要来自各种 NVIDIA Jetson 用例中常用的激光雷达,例如自主机器、感知模块和 3D 建模。

关键应用之一是利用远程和高精度数据集来实现感知、映射和定位算法的 3D 对象检测。

PointPillars 是用于点云推理的最常用模型之一。

NVIDIA开源CUDA PointPillars

什么是 CUDA-Pointpillars

在这篇文章中,我们介绍了 CUDA-Pointpillars,它可以检测点云中的对象。过程如下:

  • 基础预处理:生成柱子。
  • 预处理:生成 BEV 特征图(10 个通道)。
  • TensorRT 的 ONNX 模型:一种可由 TensorRT 实现的 ONNX 模式。
  • 后处理:通过解析 TensorRT 引擎的输出生成边界框。

基础预处理

基础预处理步骤将点云转换为基础特征图。它提供以下组件:

  • 基本特征图
  • 支柱坐标:每个支柱的坐标。
  • 参数:柱子的数量。

预处理

预处理步骤将基本特征图(四个通道)转换为 BEV 特征图(10 个通道)。

TensorRT 的 ONNX 模型

OpenPCDet 的原生点柱因以下原因进行了修改:

  • 小操作太多,内存带宽低。
  • TensorRT 不支持某些操作,例如 NonZero。
  • 一些操作,如 ScatterND,性能较低。
  • 他们使用“dict”作为输入和输出,不能导出 ONNX 文件。

为了从原生 OpenPCDet 导出 ONNX,我们修改了模型(图 4)。

您可以将整个 ONNX 文件分为以下几个部分:

  • 输入:BEV 特征图、支柱坐标、参数。这些都是在预处理中生成的。
  • 输出:类、框、Dir_class。这些由后处理解析以生成边界框。
  • ScatterBEV:将点柱 (1D) 转换为 2D 图像,可以作为 TensorRT 的插件使用。
  • 其他:由 TensorRT 支持。

后期处理

后处理解析TensorRT发动机(的输出class,box和dir_class),并输出边界框。图 6 显示了示例参数。

使用 CUDA-PointPillars

要使用 CUDA-PointPillars,请为点云提供 ONNX 模式文件和数据缓冲区:

代码语言:javascript
复制
  std::vector<Bndbox> nms_pred; 
    PointPillar 点柱(ONNXModel_File,cuda_stream);
    pointpillar.doinfer(points_data, points_count, nms_pred);

将 OpenPCDet 训练的原生模型转换为 CUDA-Pointpillars 的 ONNX 文件

在我们的项目中,我们提供了一个 Python 脚本,可以将 OpenPCDet 训练的原生模型转换为 CUDA-Pointpillars 的 am ONNX 文件。exporter.py在/toolCUDA-Pointpillars 目录中找到脚本。

要获取当前目录中的 pointpillar.onnx 文件,请运行以下命令:

代码语言:javascript
复制
$ python exporter.py --ckpt ./*.pth

性能

该表显示了测试环境和性能。

总结

在这篇文章中,我们向您展示了 CUDA-PointPillars 是什么以及如何使用它来检测点云中的对象。

由于原生 OpenPCDet 无法导出 ONNX 并且对于 TensorRT 有太多低性能的小操作,我们开发了 CUDA-PointPillars。此应用程序可以将 OpenPCDet 训练的原生模型导出到特殊的 ONNX 模型,并通过 TensorRT 推断 ONNX 模型。

下载:https://github.com/NVIDIA-AI-IOT/CUDA-PointPillars

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 CUDA-Pointpillars
  • 基础预处理
  • 预处理
  • TensorRT 的 ONNX 模型
  • 后期处理
  • 使用 CUDA-PointPillars
    • 将 OpenPCDet 训练的原生模型转换为 CUDA-Pointpillars 的 ONNX 文件
    相关产品与服务
    图像处理
    图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档