Skip to main content
QUICK REVIEW

[论文解读] Accelerating 3D Deep Learning with PyTorch3D

Nikhila Ravi, Jeremy Reizenstein|arXiv (Cornell University)|Jul 16, 2020
3D Shape Modeling and Analysis参考文献 60被引用 121
一句话总结

Pytorch3D 提供模块化、可微分的 3D 运算符和快速的可微分渲染器,以加速 3D 深度学习,实现无监督的 3D 形状预测以及对网格和点云的可扩展批处理。该库实现高达 10x 的加速,并在 ShapeNet 上实现无 3D 监督的最先进结果。

ABSTRACT

Deep learning has significantly improved 2D image recognition. Extending into 3D may advance many new applications including autonomous vehicles, virtual and augmented reality, authoring 3D content, and even improving 2D recognition. However despite growing interest, 3D deep learning remains relatively underexplored. We believe that some of this disparity is due to the engineering challenges involved in 3D deep learning, such as efficiently processing heterogeneous data and reframing graphics operations to be differentiable. We address these challenges by introducing PyTorch3D, a library of modular, efficient, and differentiable operators for 3D deep learning. It includes a fast, modular differentiable renderer for meshes and point clouds, enabling analysis-by-synthesis approaches. Compared with other differentiable renderers, PyTorch3D is more modular and efficient, allowing users to more easily extend it while also gracefully scaling to large meshes and images. We compare the PyTorch3D operators and renderer with other implementations and demonstrate significant speed and memory improvements. We also use PyTorch3D to improve the state-of-the-art for unsupervised 3D mesh and point cloud prediction from 2D images on ShapeNet. PyTorch3D is open-source and we hope it will help accelerate research in 3D deep learning.

研究动机与目标

  • 解决由于异构数据格式(网格、点云、体素)和可微分性要求带来的 3D 深度学习中的工程挑战。
  • 提供一个基于 PyTorch 的模块化、高效、可微分的 3D 运算符库。
  • 引入一个快速、模块化的网格和点云可微分渲染器,以实现分析–合成和逆渲染。
  • 证明相对于现有实现的加速和内存效率,并在从 2D 图像的无监督 3D 形状预测方面提升到最先进水平。

提出的方法

  • 引入支持具有不同大小和拓扑的 3D 数据批量的 PyTorch3D 数据结构。
  • 开发一个用于网格和点云的模块化、可微分渲染引擎,具有两阶段光栅化和每像素的 K 最近面影响。
  • 公开渲染中间体,使用户能够通过 PyTorch autograd 插入自定义着色器和组件。
  • 实现关键 3D 运算符(Chamfer 损失、图卷积、KNN)的自定义 CUDA 内核,以提高速度和内存使用效率。
  • 与纯 PyTorch 及其他库进行基准测试,以展示高达 10x 的速度/内存提升。
  • 在 ShapeNet 上使用具备 2D 监督的可微分渲染器演示无监督的 3D 形状预测。

实验结果

研究问题

  • RQ1一个模块化、可微分的 3D 渲染引擎是否能够在不牺牲性能的情况下扩展到大规模网格和异构批处理?
  • RQ2用于 3D 运算符的自定义 CUDA 实现是否相对于现有方法提供显著的速度/内存优势?
  • RQ3使用 PyTorch3D 的可微分渲染是否能够提升 ShapeNet 上从 2D 图像的无监督 3D 网格和点云预测?

主要发现

  • PyTorch3D 相对于朴素的 PyTorch 与其他库在速度和内存方面实现显著提升,最高可达 10x。
  • 一个具有可分离光栅化与着色的模块化渲染器,按像素使用 K 最近面,提升效率同时保持性能。
  • 在 ShapeNet 上的实验表明,使用 PyTorch3D 渲染器时,从 2D 图像进行无监督的 3D 网格和点云预测达到更好的最先进水平。
  • 点云和网格渲染器支持异构批处理,在若干设置中仍能达到与 SoftRas 相竞争或更优的结果。
  • 这种方法使在无监督的 3D 学习中能够使用更高的图像分辨率和更复杂的网格,而计算成本并不过高。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。