0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-13 16:42 次阅读

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

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

PointPillars是最常用于点云推理的模型之一。本文将探讨为Jetson开发者提供的NVIDIA CUDA加速PointPillars模型。马上下载CUDA-PointPillars模型。

什么是CUDA-Pointpillars

本文所介绍的CUDA-Pointpillars可以检测点云中的对象。其流程如下:

基本预处理:生成柱体。

预处理:生成BEV特征图(10个通道)。

用于TensorRT的ONNX模型:通过TensorRT实现的ONNX模式。

后处理:通过解析TensorRT引擎输出生成边界框。

图 1 。 CUDA 点柱管道。

基本预处理

基本预处理步骤将点云转换为基本特征图。基本特征图包含以下组成部分:

基本特征图。

柱体坐标:每根柱体的坐标。

参数:柱体数量。

poYBAGJWjTyABlEDAACUw3Ico5I757.png

图 2 。将点云转换为基础要素地图

预处理

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

图 3 。将基本要素地图转换为 BEV 要素地图

用于TensorRT的ONNX模型

出于以下原因修改OpenPCDet的原生点柱:

小型操作过多,并且内存带宽低。

NonZero等一些TensorRT不支持的操作。

ScatterND等一些性能较低的操作。

使用“dict”作为输入和输出,因此无法导出ONNX文件。

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

图 4 。 CUDA Pointpillars 中 ONNX 模型概述。

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

输入:BEV特征图、柱体坐标、参数,均在预处理中生成。

输出:类、框、Dir_class,在后处理步骤中解析后生成一个边界框。

ScatterBEV:将点柱(一维)转换为二维图像,可作为TensorRT的插件。

其他:TensorRT支持的其他部分。

图 5 。将点支柱数据散射到二维主干的二维图像中。

后处理

在后处理步骤中解析TensorRT引擎的输出(class、box和dir_class)和输出边界框。图6所示的是示例参数。

poYBAGJWjW6AY7PjAAE6J47WgR0196.png

图 6 。边界框的参数。

使用 CUDA PointPillars

若要使用CUDA-PointPillars,需要提供点云的ONNX模式文件和数据缓存:

 std::vector nms_pred; PointPillar pointpillar(ONNXModel_File, cuda_stream); pointpillar.doinfer(points_data, points_count, nms_pred);

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

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

可在当前目录下运行以下命令获得pointpillar.onnx文件:

$ python exporter.py --ckpt ./*.pth

性能

下表显示了测试环境和性能。在测试之前提升CPUGPU的性能。


表 1 测试平台与性能

开始使用 CUDA PointPillars

本文介绍了什么是CUDA-PointPillars以及如何使用它来检测点云中的对象。

由于原生OpenPCDet无法导出ONNX,而且对于TensorRT来说,性能较低的小型操作数量过多,因此我们开发了CUDA-PointPillars。该应用可以将OpenPCDet训练的原生模型导出为特殊的ONNX模型,并通过TensorRT推断ONNX模型。

关于作者

Lei Fan 是 NVIDIA 的高级 CUDA 软件工程师。他目前正与 TSE 中国团队合作,开发由 CUDA 优化软件性能的解决方案。

Lily Li 正在为 NVIDIA 的机器人团队处理开发人员关系。她目前正在 Jetson 生态系统中开发机器人技术解决方案,以帮助创建最佳实践。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4796

    浏览量

    102511
  • 数据集
    +关注

    关注

    4

    文章

    1197

    浏览量

    24568
收藏 人收藏

    评论

    相关推荐

    IB Verbs和NVIDIA DOCA GPUNetIO性能测试

    NVIDIA DOCA GPUNetIO 是 NVIDIA DOCA SDK 中的一个库,专门为实时在线 GPU 数据包处理而设计。它结合了 GPUDirect RDMA 和 GPUDirect
    的头像 发表于 08-23 17:03 304次阅读
    IB Verbs和<b class='flag-5'>NVIDIA</b> DOCA GPUNetIO性能测试

    打破英伟达CUDA壁垒?AMD显卡现在也能无缝适配CUDA

    电子发烧友网报道(文/梁浩斌)一直以来,围绕CUDA打造的软件生态,是英伟达在GPU领域最大的护城河,尤其是随着目前AI领域的发展加速,市场火爆,英伟达GPU+CUDA的开发生态则更加稳固,AMD
    的头像 发表于 07-19 00:16 4212次阅读

    英国公司实现英伟达CUDA软件在AMD GPU上的无缝运行

    7月18日最新资讯,英国创新科技企业Spectral Compute震撼发布了其革命性GPGPU编程工具包——“SCALE”,该工具包实现了英伟达CUDA软件在AMD GPU上的无缝迁移与运行,标志着在GPU计算领域,NVIDIA长期以来的市场垄断地位或将迎来重大挑战。
    的头像 发表于 07-18 14:40 489次阅读

    软件生态上超越CUDA,究竟有多难?

    神坛的,还是围绕CUDA打造的一系列软件生态。   英伟达——CUDA的绝对统治   相信对GPU有过一定了解的都知道,英伟达的最大护城河就是CUDACUDA在后端架构上处于绝对的统
    的头像 发表于 06-20 00:09 3365次阅读

    借助NVIDIA Aerial CUDA增强5G/6G的DU性能和工作负载整合

    Aerial CUDA 加速无线接入网 (RAN)可加速电信工作负载,使用 CPU、GPU 和 DPU 在云原生加速计算平台上提供更高水平的频谱效率 (SE)。
    的头像 发表于 05-24 11:10 444次阅读
    借助<b class='flag-5'>NVIDIA</b> Aerial <b class='flag-5'>CUDA</b>增强5G/6G的DU性能和工作负载整合

    NVIDIA 通过 CUDA-Q 平台为全球各地的量子计算中心提供加速

    —— NVIDIA 于今日宣布将通过开源的 NVIDIA CUDA-Q™ 量子计算平台,助力全球各地的国家级超算中心加快量子计算的研究发展。   德国、日本和波兰的超算中心将使用该平台来赋能他们由
    发表于 05-13 15:21 157次阅读
    <b class='flag-5'>NVIDIA</b> 通过 <b class='flag-5'>CUDA</b>-Q 平台为全球各地的量子计算中心提供加速

    Keil使用AC6编译提示CUDA版本过高怎么解决?

    \' ArmClang: warning: Unknown CUDA version 10.2. Assuming the latest supported version 10.1
    发表于 04-11 07:56

    深度解读Nvidia AI芯片路线图

    Nvidia是一个同时拥有 GPU、CPU和DPU的计算芯片和系统公司。Nvidia通过NVLink、NVSwitch和NVLink C2C技术将CPU、GPU进行灵活连接组合形成统一的硬件架构,并于CUDA一起形成完整的软硬件
    发表于 03-13 09:25 752次阅读
    深度解读<b class='flag-5'>Nvidia</b> AI芯片路线图

    OpenCV4.8 C++实现YOLOv8 OBB旋转对象检测

    YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图像的15个类别
    的头像 发表于 02-22 10:15 1229次阅读
    OpenCV4.8 C++实现YOLOv8 OBB旋转<b class='flag-5'>对象</b><b class='flag-5'>检测</b>

    对象检测边界框损失函数–从IOU到ProbIOU介绍

    目标检测损失函数的选择在目标检测问题建模中至关重要。通常,目标检测需要两个损失函数,一个用于对象分类,另一个用于边界框回归(BBR)。
    的头像 发表于 01-24 10:50 2193次阅读
    <b class='flag-5'>对象</b><b class='flag-5'>检测</b>边界框损失函数–从IOU到ProbIOU介绍

    YOLOv8实现旋转对象检测

    YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图像的15个类别
    的头像 发表于 01-11 10:43 1454次阅读
    YOLOv8实现旋转<b class='flag-5'>对象</b><b class='flag-5'>检测</b>

    什么是CUDA?谁能打破CUDA的护城河?

    在最近的一场“AI Everywhere”发布会上,Intel的CEO Pat Gelsinger炮轰NvidiaCUDA生态护城河并不深,而且已经成为行业的众矢之的。
    的头像 发表于 12-28 10:26 1.2w次阅读
    什么是<b class='flag-5'>CUDA</b>?谁能打破<b class='flag-5'>CUDA</b>的护城河?

    OpenCV4.8+CUDA+扩展模块支持编译指南

    OpenCV4.8+CUDA+扩展模块支持编译指南
    的头像 发表于 11-30 16:45 759次阅读
    OpenCV4.8+<b class='flag-5'>CUDA</b>+扩展模块支持编译指南

    基于Anaconda安装pytorch深度学习环境+pycharm安装---免额外安装CUDA和cudnn

    前言最近由于项目需要,之前我们在利用GPU进行深度学习的时候,都要去NVIDIA的官网下载CUDA的安装程序和cudnn的压缩包,然后再进行很繁琐的系统环境配置。不仅环境配置麻烦,而且还特别容易配置
    的头像 发表于 10-10 10:16 1148次阅读
    基于Anaconda安装pytorch深度学习环境+pycharm安装---免额外安装<b class='flag-5'>CUDA</b>和cudnn

    详解对象检测网络性能评价指标mAP计算

    等常见指标,更广义的评价还包括检测率除以精度与敏感性。检测对象的评价多数是基于某测试数据集的,通常称为SUT(System Under Test), 我们在训练时候使用的数据通常被称为GT Sytem(是带有正确标准框的数据)。
    的头像 发表于 10-09 16:41 424次阅读
    详解<b class='flag-5'>对象</b><b class='flag-5'>检测</b>网络性能评价指标mAP计算