从点云重建平滑曲面是创建真实世界对象和场景的数字孪生的基本步骤。表面重建算法出现在各种应用中,如工业模拟、视频游戏开发、建筑设计、医学成像和机器人。
神经核表面重建( NKSR )是一种新的 NVIDIA 算法,用于从大型点云重建高保真表面。 NKSR 可以在几秒钟内处理数百万个点,并在各种基准上实现最先进的质量。 NKSR 是传统泊松曲面重构的一个很好的替代品,它提供了更大的细节和更快的运行时间。
NKSR 利用一种名为神经核场的新型 3D 深度学习方法来实现高质量的重建。由 NVIDIA 多伦多人工智能实验室于 2022 年首次引入的神经核场,预测了一组与数据相关的基函数,用于解决闭合曲面重构问题。这种新方法实现了前所未有的泛化(用于对对象进行训练和重建场景)以及对不同尺度的场景和对象进行多模式训练。要了解更多技术细节,请访问 NKSR 项目页面。
厨房水槽模
在发布代码的同时,我们很高兴引入厨房水槽模型,这是一个在不同规模的数据集上训练的综合模型。通过结合对象级和场景级数据,我们确保了模型在不同场景中的通用性。为了证明其有效性,我们成功地将厨房水槽模型应用于不同的数据集。
图 2 显示了使用稀疏输入点云的房间级重建结果。我们的方法通过生成平滑准确的几何图形而优于其他基线。
图 3 展示了我们的方法在赛道上的应用,图 4 展示了一个社区场景。这些场景是使用配备激光雷达传感器的自动驾驶汽车拍摄的。这两个场景的长度都长达数公里,我们能够在 GPU 上有效地处理它们。
如何使用 NKSR
NKSR 很容易通过 pip 访问, PyTorch 是一个关键依赖项。这种集成实现了包的直接安装,确保了简化的设置过程。
使用以下安装命令:
pip install nksr -f https://nksr.s3.ap-northeast-1.amazonaws.com/whl/torch-2.0.0%2Bcu118.html
使用 GPU 加速了 NKSR 的核心计算操作,从而实现了高速处理和高效性能。部署 NKSR 时,有必要定义输入点云的位置和法线。或者,您可以输入捕捉这些点的传感器的位置。
下面的代码片段演示了使用 NKSR 是多么容易:
import nksr
import torch
device = torch.device("cuda:0")
reconstructor = nksr.Reconstructor(device)
# Note that input_xyz and input_normal are torch tensors of shape [N, 3] and [N, 3] respectively.
field = reconstructor.reconstruct(input_xyz, input_normal)
# input_color is also a tensor of shape [N, 3]
field.set_texture_field(nksr.fields.PCNNField(input_xyz, input_color))
# Increase the dual mesh's resolution.
mesh = field.extract_dual_mesh(mise_iter=2)
# Visualizing
from pycg import vis
vis.show_3d([vis.mesh(mesh.v, mesh.f, color=mesh.c)])
这个过程的高潮是一个三角网格,您可以根据自己的具体需求直接保存或可视化。
如果默认配置(厨房水槽模式)不能充分满足您的要求,则提供培训代码。这个额外的资源提供了训练自定义模型或将 NKSR 集成到现有管道中的灵活性。我们对定制和可用性的承诺确保了 NKSR 能够适应各种应用和场景。
结论
NVIDIA Neural Kernel Surface Reconstruction 提供了一种新颖而前沿的方法,可以从稀疏点云中提取高质量的 3D 曲面。通过采用稀疏神经核场方法, NKSR 厨房水槽模型可以从固定的形状训练集推广到任何规模的任意输入。 NKSR 是完全开源的,带有训练代码和预训练的厨房水槽模型,您可以直接使用 pip 安装。您可以根据特定的数据集和问题域进一步微调 NKSR ,以便在专业应用程序中实现更高的重建质量。
使用 NKSR 有机会赢得免费 GPU
我们想看看你能用 NKSR 做些什么。使用 NKSR 展示您最令人印象深刻的重建结果和迷人的可视化效果,然后参加 NVIDIA NKSR Sweepstakes,截止至 2023 年 9 月 8 日,您将有机会赢得 GeForce RTX 3090 Ti 。