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

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

3天内不再提示

177倍加速!NVIDIA最新开源 | GPU加速各种SDF建图!

3D视觉工坊 来源:计算机视觉工坊 2023-11-09 16:46 次阅读

0. 笔者个人体会

很多SLAM系统为了实时估计位姿,建立的是稀疏地图,这种地图很难用作导航和规划任务。但是建立稠密地图的话,又会降低运算效率。设计GPU加速稠密建图是一个可行方案,但需要使用大量繁琐的CUDA编程,这个工作量巨大!

但最近,NVIDIA和ETHZ就联合提出了nvblox,是一个使用GPU加速SDF建图的库。计算速度非常快,相较CPU计算TSDF甚至快了177倍。更重要的是,因为所有数据都已经存储在GPU上,所以很容易和深度学习方案结合!

对建图速度有要求的小伙伴可以关注一下这项工作。

1. 效果展示

nvblox以2cm的分辨率很快建立了SDF地图:

bd5763cc-7eb0-11ee-939d-92fbcf53809c.png

办公室移动机器人实验,包括一个重建mesh,一个距离场slice,一个占用概率表示的动态目标(人)。其中场景的动态部分随时间衰减,静态部分使用TSDF融合实现精确重建。

bd686442-7eb0-11ee-939d-92fbcf53809c.png

这项工作最大的亮点在于,极大加快速度,又不损失精度。源代码和相应的ROS代码都开源了,感兴趣的小伙伴可以关注一下,下面来看具体的论文信息

2. 摘要

稠密体素地图对于机器人在杂乱空间中的安全导航以及与环境的交互至关重要。对于延迟和鲁棒性,如果这些可以在计算受限的硬件上从相机或基于激光雷达的传感器进行板载计算,则是最好的。以前的工作在基于CPU的机器人地图绘制系统和基于GPU的重建系统之间留下了差距,前者由于计算约束限制了地图分辨率或比例,后者忽略了对机器人路径规划至关重要的特征。我们引入了一个库nvblox,旨在通过GPU加速机器人体素建图来填补这一空白,并针对嵌入式GPU进行了优化。nvblox提供了超越现有技术的显著性能改进,在表面重建方面实现了高达177倍的加速,在距离场计算方面实现了高达31倍的改进,并且是开源的。

3. 算法解析

重述一下问题:

给定RGB-D或LiDAR输入,位姿已知,建立体素地图,将3D点映射为距离、占用、颜色等信息,输出表面重建(占用/TSDF)或距离场(ESDF)。

传统的建图方法有什么问题?

使用CPU建图太慢了!

这项工作是怎么做的?

nvblox希望使用GPU来加速建图,具体架构包括多层地图(TSDF、颜色、占用、Mesh、ESDF,用户自己定义)、帧积分器(添加传感器数据到地图)、格式转换(转换地图格式),最终导出包含ESDF和网格重建的体素网格。使用时还可以增加地图图层,也可以扩展为语义标签等其他类型。

bd828c6e-7eb0-11ee-939d-92fbcf53809c.png

这个ESDF是啥?

ESDF地图是欧几里得符号距离场,场里面的每一个体素都包含了距离它最近的障碍物的欧几里得距离。对于路径规划来说,ESDF比TSDF更合适一些。ETHZ之前的工作voxblox计算的是准欧几里得距离,这样即使地图变化很小,更新计算量也非常大。相比之下,nvblox直接利用GPU计算欧几里得距离。

ESDF加速如何进行?

作者在PBA的基础上二次开发,来加速ESDF计算,算法总流程:

1、在分配块中,输入TSDF层和更新的体素块列表;

2、标记位置(在障碍计算中可以是父体的体素,也就是表面边界上的体素)。也就是说,这个体素的子体素是其最近的表面边界的体素。还需要处理两种常见情况:新占用以及新空闲的体素。新占用的体素可以简单地采用它们的TSDF值,并添加到索引中更新。新空闲的体素需要将它们的距离重置为最大值;

bd996e98-7eb0-11ee-939d-92fbcf53809c.png

3、清除无效值。具体做法是找到其父体不再是一个位置的体素,重新计算距离,选择块索引中最大ESDF距离内的映射子集,然后检查每个体素是否仍然具有有效的父体;

4、降低ESDF体素距离;

5、通过跨块边界通信来更新相邻块,从而协调体素块之间的差异;

6、如果最后一级需要通过体素块边界进行通信,则进行另一次扫描。重复扫描领域更新循环,直到所有块都更新完成。

bda4b97e-7eb0-11ee-939d-92fbcf53809c.png

ESDF加速的可视化结果,该算法的总体思想是迭代计算体素块内的正确距离值,然后将体素块边界上的距离信息传递给领域,实现高度并行化。

bdb516de-7eb0-11ee-939d-92fbcf53809c.png

4. 实验结果

整个实验部分的核心观点是:nvblox可以在提高建图(ESDF)速度的同时,不损失建图精度。实验设备选择了三个平台:台式机(Intel i9 CPU和NVIDIA RTX3090 Ti GPU),笔记本(Intel i7 CPU和RTX3000 Mobile GPU),还有Jetson Xavier AGX。使用的数据集是Replica和Redwood。

首先是各个部分和voxblox(ETHZ之前的工作,使用CPU建图,参考Voxblox: Incremental 3D Euclidean Signed Distance Fields forOn-Board MAV Planning)的耗时对比,其中每4帧执行了生成了一次ESDF和网格,分辨率是5cm。可以发现每部分的加速都非常明显,TSDF甚至加快了177倍!

bdc09bd0-7eb0-11ee-939d-92fbcf53809c.png

增量ESDF计算的定量对比,对比方案包括voxblox和Fiesta,运行设备是桌面GPU。表格数据是重建体素的中值误差,结果显示voxblox和Fiesta的速度分别提高了31倍和4倍,关键是没有损失精度。

bdc8170c-7eb0-11ee-939d-92fbcf53809c.png

查询时间的对比,在GPU上采集3D点,并在GPU上执行ESDF查找,返回它们到最近表面的距离以及可选的距离场梯度。cor表示空间相关,uncor表示不相关。这里也推荐「3D视觉工坊」新课程《彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战》。

bdd30086-7eb0-11ee-939d-92fbcf53809c.png

nvblox的应用示例,重建了一个无人机采集的场景,还是体现实时性。

bddcd052-7eb0-11ee-939d-92fbcf53809c.png

5. 总结

今天笔者为大家介绍了一个GPU加速的体素建图库nvblox,主要工作量是提出了一种新颖的增量式GPU加速方法来计算ESDF。nvblox针对独立和嵌入式GPU都进行了优化,计算速度非常快。对建图速度有要求的小伙伴可以关注一下这项工作。

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

    关注

    206

    文章

    27033

    浏览量

    201400
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4417

    浏览量

    126702
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119908

原文标题:177倍加速!NVIDIA最新开源 | GPU加速各种SDF建图!

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NVIDIA火热招聘GPU高性能计算架构师

    这边是NVIDIA HR Allen, 我们目前在上海招聘GPU高性能计算架构师(功能验证)的岗位,有意向的朋友欢迎发送简历到 allelin@nvidia
    发表于 09-01 17:22

    NVIDIA-SMI:监控GPU的绝佳起点

    .com/nvidia-system-management-interface请参阅此链接以获取手册页以及要使用的各种开关/工具:http://developer.download.nvidia.com/compute/cuda
    发表于 09-04 15:18

    GPU加速XenApp/Windows 2016/Office/IE性能会提高吗

    Shark来查看哪些程序/进程使用GPU(硬件加速)。它看起来不像Internet Explorer 11或Office 2016根本不使用GPU。我已经验证IE和Office都启用了硬件
    发表于 09-12 16:24

    GPU加速matlab程序

    最近遇到了一个加速matlab程序的问题,不知道如何利用GPU,以及使用GPU的先决条件,是不是GPU加速必须要用cuda,最重要的是只用G
    发表于 03-30 11:21

    tengine是如何使用arm的GPU进行加速

    【嵌入式AI】多目标分类检测系统实战中,tengine是如何使用arm的GPU进行加速的,这个原理能详细说明一下吗?
    发表于 09-02 14:18

    NVIDIA加速计算平台:更强大的GPU加速,更简化的部署流程

    NVIDIA加速计算平台和Red Hat OpenShift 4联手助力加速用于AI和数据科学的本地Kubernetes部署。
    的头像 发表于 05-16 11:41 3355次阅读

    NVIDIA宣布一套用于构建GPU加速ARM服务器的参考设计

    在最新的超级计算大会上,NVIDIA创始人兼CEO黄仁勋宣布了一套用于构建GPU加速ARM服务器的参考设计,从而大大扩展GPU加速对于超级计
    的头像 发表于 11-20 15:30 2721次阅读

    NVIDIA推出适用于Python的VPF,简化开发GPU加速视频编码/解码

    NVIDIA推出了适用于Python的开源视频处理框架“VideoProcessingFramework”(VPF)。据悉,VPF 是一组开源的C ++库和Python绑定,可与其封闭源代码Codec SDK进行交互。该框架的功
    的头像 发表于 12-18 14:25 6607次阅读

    NVIDIA GPU加速计算之路

    NVIDIA从提出GPU以及CUDA核心开始,NVIDIA便开始逐步迈出游戏圈,不断向全新的计算领域发起攻势。时至今日,NVIDIA GPU
    的头像 发表于 12-23 09:12 6965次阅读

    NVIDIA GPU助力加速先进对话式AI技术

    NVIDIA Riva 是一种 GPU 加速应用程序框架,允许公司使用视频和语音数据,为自己的行业、产品和客户定制最先进的对话式 AI 服务。
    的头像 发表于 05-06 14:28 1396次阅读
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>GPU</b>助力<b class='flag-5'>加速</b>先进对话式AI技术

    使用GPU加速RELION进行生物结构解析

    NVIDIA 与智东西公开课共同策划推出「GPU 加速高性能计算(HPC)经典应用在线研讨会」。研讨会将聚焦经典高性能计算和科学计算应用,以及如何在 GPU 平台更好的
    的头像 发表于 06-22 10:06 1353次阅读

    NVIDIA GPU加速潞晨科技Colossal-AI大模型开发进程

    通过 NVIDIA GPU 加速平台,Colossal-AI 实现了通过高效多维并行、异构内存管理、大规模优化库、自适应任务调度等方式,更高效快速部署 AI 大模型训练与推理。
    的头像 发表于 10-19 09:39 1176次阅读

    【百万倍加速加速计算重新定义药物研发

    我们将通过《NVIDIA 加速计算,百万倍加速行业应用》系列文章,为您详解 NVIDIA 如何通过数据中心规模的全栈加速计算,助力多个行业实
    的头像 发表于 12-06 19:50 382次阅读

    【百万倍加速加速计算助力基因测序突破极限

    我们将通过《NVIDIA 加速计算,百万倍加速行业应用》系列文章,为您详解 NVIDIA 如何通过数据中心规模的全栈加速计算,助力多个行业实
    的头像 发表于 02-02 11:35 381次阅读

    GTC23 | NVIDIA 发布用于加速量子-经典混合计算的全新系统

    NVIDIA 和 Quantum Machines 发布首个结合 GPU 与量子计算的系统——DGX Quantum,采用全新开源 CUDA Quantum 软件平 台 加利福尼亚州圣克拉拉
    的头像 发表于 03-23 06:55 405次阅读