Kaolin 项目介绍
Kaolin 是由 NVIDIA 推出的一个基于 PyTorch 的库,旨在加速 3D 深度学习的研究。它为处理多种三维表示提供了一整套 API,并包含了一系列 GPU 优化的操作。该库包括模块化的可微分渲染、高速的表示转换、数据加载、3D 检查点、可微分的相机 API 以及使用球谐函数和球形高斯函数的可微分光照系统。此外,Kaolin 还提供了一种称为结构化点云(Structured Point Clouds)的强大四叉树加速结构、专为 Jupyter 笔记本设计的交互式 3D 可视化工具、便捷的批量网格容器等等。Kaolin 是 NVIDIA 更大 3D 深度学习计划的一部分。
安装与入门
自 0.12.0 版本起,Kaolin 支持通过 wheel 文件进行安装。用户需要根据其使用的 PyTorch 和 CUDA 版本替换相应的安装命令:
pip install kaolin==0.17.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html
例如,若要在 PyTorch 2.0.1 和 CUDA 11.8 上安装 Kaolin 0.17.0,可以使用以下命令:
pip install kaolin==0.17.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.1_cu118.html
最新版本功能(0.17.0)
在 Kaolin 0.17.0 版本中,新增了 sample_points_in_volume
函数,用于高斯散点的“密集化”。此功能可用于改进物理模拟。此外,Kaolin 使用 NVIDIA Warp 进一步改进了物理训练和模拟,并在 GLTF 加载器中添加了透射支持。
以下是两个图示,分别是在未启用和已启用密集化功能情况下的效果对比:
未启用密集化 | 启用密集化 |
官方还更新了一系列教程,帮助用户更好地利用新功能进行物理模拟和 3D 渲染。
开源项目中的应用
Kaolin 已在多个外部项目中得到应用,例如 NVIDIA Kaolin Wisp、gradSim、Text2Mesh 等等。这些项目利用了 Kaolin 的摄像头 API、结构化点云、可微分的 DIB-R 光栅化器、灵活的三维渲染功能及其他众多特性,展示了 Kaolin 在实际应用中的强大能力。
许可证
Kaolin 的大部分代码库采用 Apache v2.0 许可证。在 kaolin/non_commercial
目录下的内容则采用 NSCL 许可证,仅限于非商业用途的研究和评估。使用 Kaolin 默认组件可以直接导入 Apache 许可的代码,而非商业组件则需要显式导入。
致谢
欢迎社区的开发者们参与到 Kaolin 的构建中来,并在研究中引用 Kaolin。项目团队包括 Clement Fuji Tsang、Maria Shugrina、Charles Loop 等多位技术专家,他们为 Kaolin 的发展贡献了重要的力量。