利用神经网络重建三维数字孪生
从点云重建光滑表面是创建真实世界对象和场景的数字孪生的基本步骤。 表面重建算法出现在各种应用中,例如工业模拟、视频游戏开发、建筑设计、医学成像和机器人技术。
神经核表面重建 (NKSR) 是新的 NVIDIA 算法,用于从大型点云重建高保真表面。 NKSR 可以在几秒钟内处理数百万个点,并在广泛的基准测试中达到最先进的质量。 NKSR 是传统泊松曲面重建的绝佳替代品,可提供更多细节和更快的运行时间。
NKSR 利用一种称为神经核场的新型 3D 深度学习方法来实现高质量的重建。 神经核场由 NVIDIA 多伦多人工智能实验室于 2022 年首次推出,它预测了一组依赖于数据的基函数,用于解决封闭形式的表面重建问题。 这种新方法实现了前所未有的泛化(用于训练对象和重建场景)以及对不同规模的场景和对象进行多模态训练。 有关该方法的更多技术细节,请访问 NKSR 项目页面。
厨房水槽模型
除了代码发布,我们还很高兴地推出厨房水槽模型,这是一个在不同规模的数据集上训练的综合模型。 通过合并对象级和场景级数据,我们确保了模型在不同场景中的通用性。 为了证明其有效性,我们已成功地将厨房水槽模型应用于各种数据集。
下图显示了使用稀疏输入点云的房间级重建结果。 我们的方法通过生成平滑和准确的几何图形优于其他基线。
下图展示了我们的方法在赛道上的应用,展示了邻里场景。 这些场景是使用配备激光雷达传感器的自动驾驶汽车拍摄的。 这两个场景都跨越几公里长,我们能够在 GPU 上高效地处理它们。
如何使用 NKSR
NKSR 可以通过 pip 轻松访问,PyTorch 是关键依赖项。 这种集成可以直接安装软件包,确保简化安装过程。
使用以下安装命令:
pip install nksr -f https://nksr.s3.ap-northeast-1.amazonaws.com/whl/torch-2.0.0%2Bcu118.html
NKSR 的核心计算操作使用 GPU 加速,从而实现高速处理和高效性能。 部署 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 可以适应各种应用程序和场景。