|
|
51CTO旗下网站
|
|
移动端

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

近日,FaceBook 博客更新了一篇新的文章,介绍了团队开发的针对 3D 计算机视觉的框架——PyTorch3D。

作者:一鸣、Jamin来源:机器之心|2020-02-07 16:31

PyTorch 进军三维计算机视觉了,专用库已出炉。

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

3D 计算机视觉是一个重要的课题,如何选择合适的框架进行计算,使得处理效果更好、更高效?近日,FaceBook 博客更新了一篇新的文章,介绍了团队开发的针对 3D 计算机视觉的框架——PyTorch3D。这是一个基于 PyTorch 的库,在 3D 建模,渲染等多方面处理操作上有更好的表现。

项目地址:https://github.com/facebookresearch/pytorch3d

基于 PyTorch 的 3D 计算机视觉处理库

据项目介绍,PyTorch3d 是一个高效、可复用的 3D 计算机视觉库。在这一项目中,开发者实现了以下新特性:

1. 他们提出了新的 3D 数据结构——Meshes,这种数据结构可以更好地存储和修改三角网格的数据;

2. 高效处理三角网格的算子,如投影变换、图卷积、采样、损失函数等;

3. 一个可微分的网格生成器;

由于是基于 PyTorch 的,这个框架主要面向的是深度学习方面的模型。项目目标是将 3D 计算机视觉和深度学习结合,用于对三维数据的预测和计算。在 PyTorch3D 中,所有的算子都:

1. 使用 PyTorch 的算子;

2. 可以使用异构的批数据;

3. 可微分;

4. 能够使用 GPU 加速;

这样一来,PyTorch3D 吸收了深度学习框架的优势,同时能够专门针对 3D 建模渲染等进行计算,有着很好的性能和应用优势。

主要特性

PyTorch3D 主要有三个值得注意的新特性,这些特性在 FaceBook 的博客中进行了介绍。

3D 网格数据的新格式:Meshes

由于三维网格包含顶点坐标以及面的索引这两者的集合,因此在批量处理不同尺寸的三维网格时会需要进行一些调整。为了解决这个问题,研究者们提出了 Meshes,一种在深度学习应用中可以批量处理异构网络的数据结构。

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

Mesh 的数据结构。

这种数据结构使得研究人员很容易将底层的网格数据转换为合适的格式,从而让相应的算子能够匹配到最高效的数据表示。Pytorch3D 为用户提供了在不同的表示视图间高效切换的方法,同时还可以获得不同数据表示的属性,具有很好的灵活性。

对 3D 数据的高效处理

团队已经完成了部分工作,如优化一些常用运算符、优化三维数据的损失函数,以及支持异构批数据输入等。

这说明,用户可以在 Pytorch3D 中直接导入这些算子,以便于更快的进行实验。这些算子包括倒角损失(chamfer loss),它是一种用于比较两组点云的方法,可以用作三维网格的损失函数。开发团队还使用 CUDA 内核为这个损失函数创建了一个算力资源密集型的最近邻计算优化方法。

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

通过对倒角损失等进行收敛,从而建模。

可微的图像渲染方法

将 3D 模型渲染为 2D 图像是这一领域的核心部分。这种渲染采用的思路是将 3D 的场景属性转换为 2D 图像的像素点信息。传统的渲染方法一般是不可微的,因此无法和深度学习结合。可微的渲染方法是一个新的研究领域,而研究者希望通过 PyTorch3D 来实现。

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

将 3D 模型转换为 2D 图像的过程。

在项目中,研究者采用了高效、模块化且可微的渲染器(renderer)。而且,这些都是可以扩展的,用户可以很容易地进行定制,比如在渲染的时候改变光影效果。而在计算密集的模型转像素点阶段,计算可以在 PyTorch、C++和 CUDA 上并行化,还能够全面地进行测试,验证其准确性。和其他 PyTorch3D 的算子一样,渲染器也是支持异构批量数据的。

使用教程

除了在博客中介绍了项目之外,项目研究者还提供了四个相关教程。

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

将球形点云分解为海豚: https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/deform_source_mesh_to_target_mesh.ipynb

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

渲染带有材质的点云:https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/render_textured_meshes.ipynb

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

网格调整:https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/bundle_adjustment.ipynb

FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

相机视角优化:https://github.com/facebookresearch/pytorch3d/blob/master/docs/tutorials/camera_position_optimization_with_differentiable_rendering.ipynb

【编辑推荐】

  1. 用数据告诉你,新型冠状病毒传染性有多强_技术栈微信半月刊第58期
  2. 微软开源Outlook for iOS黑暗模式解决方案
  3. 火爆的图机器学习,2020年将有哪些研究趋势?
  4. IEEE 2020年12大技术趋势:边缘计算、量子计算、AI、数字孪生等
  5. 再来一个吊打百度网盘的开源神器,还是99年妹子开发的
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

Python应用场景实战手册

Python应用场景实战手册

Python应用场景实战手册
共3章 | KaliArch

122人订阅学习

一步到位玩儿透Ansible

一步到位玩儿透Ansible

Ansible
共17章 | 骏马金龙1

207人订阅学习

云架构师修炼手册

云架构师修炼手册

云架构师的必备技能
共3章 | Allen在路上

144人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微