facebookresearch/pytorch3d
GitHub: facebookresearch/pytorch3d
FAIR 推出的基于 PyTorch 的 3D 深度学习库,提供可微渲染、网格操作和新视图合成等可复用组件,加速 3D 计算机视觉研究。
Stars: 9931 | Forks: 1463
[](https://circleci.com/gh/facebookresearch/pytorch3d)
[](https://anaconda.org/pytorch3d/pytorch3d)
# 简介
PyTorch3D 为使用 [PyTorch](https://pytorch.org) 进行 3D 计算机视觉研究提供了高效、可复用的组件。
主要功能包括:
- 用于存储和操作三角网格的数据结构
- 针对三角网格的高效操作(投影变换、图卷积、采样、损失函数)
- 可微的网格渲染器
- Implicitron,请参阅[其 README](projects/implicitron_trainer),这是一个通过隐式表示进行新视图合成的框架。([博客文章](https://ai.facebook.com/blog/implicitron-a-new-modular-extensible-framework-for-neural-implicit-representations-in-pytorch3d/))
PyTorch3D 旨在与预测和操作 3D 数据的深度学习方法实现无缝集成。
因此,PyTorch3D 中的所有操作:
- 均使用 PyTorch tensor 实现
- 可以处理异构数据的 minibatch
- 支持求导
- 可以利用 GPU 进行加速
在 FAIR 内部,PyTorch3D 已被用于支持 [Mesh R-CNN](https://arxiv.org/abs/1906.02739) 等研究项目。
请参阅我们的[博客文章](https://ai.facebook.com/blog/-introducing-pytorch3d-an-open-source-library-for-3d-deep-learning/) 以查看更多演示并了解 PyTorch3D。
## 安装
详细说明请参阅 [INSTALL.md](INSTALL.md)。
## 许可证
PyTorch3D 采用 [BSD 许可证](LICENSE)发布。
## 教程
通过尝试以下教程笔记本来开始使用 PyTorch3D。
|
|
|
|:-----------------------------------------------------------------------------------------------------------:|:--------------------------------------------------:|
| [将球体网格变形为海豚](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/deform_source_mesh_to_target_mesh.ipynb)| [Bundle adjustment](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/bundle_adjustment.ipynb) |
|
|
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [渲染带纹理的网格](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/render_textured_meshes.ipynb)| [相机位置优化](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/camera_position_optimization_with_differentiable_rendering.ipynb)|
|
|
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [渲染带纹理的点云](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/render_colored_points.ipynb)| [拟合带纹理的网格](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/fit_textured_mesh.ipynb)|
|
|
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [渲染 DensePose 数据](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/render_densepose.ipynb)| [加载并渲染 ShapeNet 数据](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/dataloaders_ShapeNetCore_R2N2.ipynb)|
|
|
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [拟合 Textured Volume](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/fit_textured_volume.ipynb)| [拟合简单的神经辐射场](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/fit_simple_neural_radiance_field.ipynb)|
|
|
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [在 Implicitron 中拟合 Textured Volume](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/implicitron_volumes.ipynb)| [Implicitron 配置系统](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/implicitron_config_system.ipynb)|
## 文档
通过阅读 PyTorch3D [文档](https://pytorch3d.readthedocs.org/) 来了解更多关于 API 的信息。
我们还有关于几个 API 组件的深入说明:
- [异构批处理](https://github.com/facebookresearch/pytorch3d/tree/main/docs/notes/batching.md)
- [Mesh IO](https://github.com/facebookresearch/pytorch3d/tree/main/docs/notes/meshes_io.md)
- [可微渲染](https://github.com/facebookresearch/pytorch3d/tree/main/docs/notes/renderer_getting_started.md)
### 概览视频
我们制作了一个简短(约 14 分钟)的视频教程,概述了 PyTorch3D 代码库,其中包含几个代码示例。点击下方图片在 YouTube 上观看视频:
## 开发
我们欢迎对 PyTorch3D 提出新的贡献,并且我们将积极维护此库!有关如何运行代码、测试和 linter 以及提交 pull request 的完整说明,请参阅 [CONTRIBUTING.md](./.github/CONTRIBUTING.md)。
## 开发与兼容性
- `main` 分支:积极开发中,不作任何保证,随时可能出现问题
- 注意:这包括基于 `main` 构建的每日构建版本
- 提示:提交历史记录可以帮助定位回归或更改
- 版本之间的向后兼容性:不提供保证。尽最大努力传达破坏性更新,并协助迁移代码或数据(包括模型)。
## 引用
如果您在研究中发现 PyTorch3D 很有用,请引用我们的技术报告:
```
@article{ravi2020pytorch3d,
author = {Nikhila Ravi and Jeremy Reizenstein and David Novotny and Taylor Gordon
and Wan-Yen Lo and Justin Johnson and Georgia Gkioxari},
title = {Accelerating 3D Deep Learning with PyTorch3D},
journal = {arXiv:2007.08501},
year = {2020},
}
```
如果您使用 pulsar 后端进行球体渲染(`PulsarPointRenderer` 或 `pytorch3d.renderer.points.pulsar.Renderer`),请引用以下技术报告:
```
@article{lassner2020pulsar,
author = {Christoph Lassner and Michael Zollh\"ofer},
title = {Pulsar: Efficient Sphere-based Neural Rendering},
journal = {arXiv:2004.07484},
year = {2020},
}
```
## 新闻
请参阅下方按时间倒序排列的代码库更新时间线。我们将分享有关版本发布以及使用 PyTorch3D 构建的研究项目的最新动态。发布的更新日志可在 [`Releases`](https://github.com/facebookresearch/pytorch3d/releases) 中查看,并且可以根据 [INSTALL.md](INSTALL.md) 中的说明使用 `conda` 安装各个构建版本。
**[2023 年 10 月 31 日]:** PyTorch3D [v0.7.5](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.5) 发布。
**[2023 年 5 月 10 日]:** PyTorch3D [v0.7.4](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.4) 发布。
**[2023 年 4 月 5 日]:** PyTorch3D [v0.7.3](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.3) 发布。
**[2022 年 12 月 19 日]:** PyTorch3D [v0.7.2](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.2) 发布。
**[2022 年 10 月 23 日]:** PyTorch3D [v0.7.1](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.1) 发布。
**[2022 年 8 月 10 日]:** PyTorch3D [v0.7.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.0) 发布,包含 Implicitron 和 MeshRasterizerOpenGL。
**[2022 年 4 月 28 日]:** PyTorch3D [v0.6.2](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.6.2) 发布
**[2021 年 12 月 16 日]:** PyTorch3D [v0.6.1](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.6.1) 发布
**[2021 年 10 月 6 日]:** PyTorch3D [v0.6.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.6.0) 发布
**[2021 年 8 月 5 日]:** PyTorch3D [v0.5.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.5.0) 发布
**[2021 年 2 月 9 日]:** PyTorch3D [v0.4.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.4.0) 发布,支持隐式函数、体渲染以及 [NeRF 的重新实现](https://github.com/facebookresearch/pytorch3d/tree/main/projects/nerf)。
**[2020 年 11 月 2 日]:** PyTorch3D [v0.3.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.3.0) 发布,集成了 pulsar 后端。
**[2020 年 8 月 28 日]:** PyTorch3D [v0.2.5](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.2.5) 发布
**[2020 年 7 月 17 日]:** PyTorch3D 技术报告在 ArXiv 上发表:https://arxiv.org/abs/2007.08501
**[2020 年 4 月 24 日]:** PyTorch3D [v0.2.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.2.0) 发布
**[2020 年 3 月 25 日]:** 使用 PyTorch3D 的 [SynSin](https://arxiv.org/abs/1912.08804) 代码库发布:https://github.com/facebookresearch/synsin
**[2020 年 3 月 8 日]:** PyTorch3D [v0.1.1](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.1.1) 错误修复版本发布
**[2020 年 1 月 23 日]:** PyTorch3D [v0.1.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.1.0) 发布。[Mesh R-CNN](https://arxiv.org/abs/1906.02739) 代码库发布:https://github.com/facebookresearch/meshrcnn标签:3D数据处理, 3D渲染, 3D视觉, PyTorch, Vectored Exception Handling, 凭据扫描, 深度学习, 计算机视觉, 逆向工具