3D 深度学习函数库 PyTorch3D

3D 深度学习函数库 PyTorch3D

BSD
跨平台
Facebook
2020-02-17
局长

PyTorch3D 是一个用于处理 3D 数据的深度学习函数库,该库高度模块化且经过专门优化,具备独有的功能,旨在通过 PyTorch 简化 3D 深度学习。PyTorch3D 为 3D 数据提供了一组常用的 3D 运算符和快速且可微分的损失函数(loss function),以及模块化的可微分渲染 API。

PyTorch3D 主要特性

  • 用于存储和操作三维物体的数据结构
  • 可在三维物体上进行高效运算,诸如投影变换、图卷积、采样、损失函数等
  • 可微分的三维物体渲染器

PyTorch3D 旨在与深度学习方法平稳集成,以预测和处理 3D 数据。因此,PyTorch3D 中的所有运算符:

  • 使用 PyTorch 张量实现
  • 可以对异构数据进行批量处理
  • 可微分
  • 可以利用 GPU 进行加速

案例与教程

▲ 将球体网格变形为海豚

▲ 渲染纹理网格

▲ 优化相机位置

示例代码

  1. 安装 PyTorch3D
    conda install pytorch torchvision -c pytorch  # OSX only
    conda install pytorch3d -c pytorch3d  # all systems
    
  2. 尝试使用一些 3D 运算符,如计算两个网格之间的倒角损耗( chamfer loss)
    from pytorch3d.utils import ico_sphere
    from pytorch3d.io import load_obj
    from pytorch3d.structures import Meshes
    from pytorch3d.ops import sample_points_from_meshes
    from pytorch3d.loss import chamfer_distance
    
    # Use an ico_sphere mesh and load a mesh from an .obj e.g. model.obj
    sphere_mesh = ico_sphere(level=3)
    verts, faces, _ = load_obj("model.obj")
    test_mesh = Meshes(verts=[verts], faces=[faces.verts_idx])
    
    # Differentiably sample 5k points from the surface of each mesh and then compute the loss.
    sample_sphere = sample_points_from_meshes(sphere_mesh, 5000)
    sample_test = sample_points_from_meshes(test_mesh, 5000)
    loss_chamfer, _ = chamfer_distance(sample_sphere, sample_test)
的码云指数为
超过 的项目
加载中

评论(1)

xiaoshiyue
xiaoshiyue
😁

Facebook 开源 3D 深度学习函数库 PyTorch3D,也可用于二维场景

渲染是计算机图形学中的核心内容,它可将 3D 模型转换为 2D 图像。这也是在 3D 场景属性(scene properties)和 2D 图像像素之间建立桥接的常规手段。不过传统渲染引擎无法进行微分,因此它们...

02/17 08:15

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

暂无博客

返回顶部
顶部