专栏首页我爱计算机视觉FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

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

本文转载自机器之心。

机器之心报道

参与:一鸣、Jamin

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

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,一种在深度学习应用中可以批量处理异构网络的数据结构。

Mesh 的数据结构。

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

对 3D 数据的高效处理

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

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

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

可微的图像渲染方法

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

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

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

使用教程

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

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

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

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

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


本文分享自微信公众号 - 我爱计算机视觉(aicvml)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 官方中文版开源!快速入门PyTorch

    自 2016 年诞生以来,PyTorch 已经成为当今最火热的深度学习框架之一。最近,官方权威的 PyTorch 教程书《Deep learning with ...

    CV君
  • OpenAI高调站队:深度学习框架以后主要用PyTorch

    这家马斯克参与创办、微软10亿美元投资的顶级AI研究机构表示,正在PyTorch上标准化自家深度学习框架。

    CV君
  • IEEE TMM 2020:细化超分辨网络,解决上采样引起的振荡

    图像成像设备在拍照图像时常遭受到天气、硬件和环境等影响,导致拍摄出图像出现严重的失真,这严重限制后续高水平计算机视觉任务进行。现已有深度学习方法为了保证效率,一...

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

    3D 计算机视觉是一个重要的课题,如何选择合适的框架进行计算,使得处理效果更好、更高效?近日,FaceBook 博客更新了一篇新的文章,介绍了团队开发的针对 3...

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

    3D 计算机视觉是一个重要的课题,如何选择合适的框架进行计算,使得处理效果更好、更高效?近日,FaceBook 博客更新了一篇新的文章,介绍了团队开发的针对 3...

    OpenCV学堂
  • Consistent hashing

    libconhash is a consistent hashing library which can be compiled both on Windows...

    只喝牛奶的杀手
  • 为测试赋能,腾讯WeTest探索手游AI自动化测试之路

    做好自动化测试从来不件容易的事情,更何况是手游的自动化测试,相比传统的APP,手游画面纯OPENGL绘制无可识别控件,且界面动画多、随机性大。举个例子,拿新手引...

    WeTest质量开放平台团队
  • 为测试赋能,腾讯 WeTest 探索手游 AI 自动化测试之路

    WeTest率先尝试将基于深度学习的人工智能应用于手游测试当中,开启AI手游自动化测试时代。

    WeTest质量开放平台团队
  • GitHub快速入门图文全面详解

    ?tub程序员必须要会 作者:AWeiLoveAndroid 博客:https://www.jianshu.com/u/f408bdadacce 文章目录 入门...

    企鹅号小编
  • 连线清华,沈向洋离职后首次公开演讲:构建负责任的AI

    前几日,清华大学官宣了前微软全球执行副总裁、人工智能与研究事业部负责人沈向洋的最新动态:加入清华大学高等研究院,以双聘教授的身份重新回归到大众的视线中。

    大数据文摘

扫码关注云+社区

领取腾讯云代金券