谷歌开源 TensorFlow Graphics:专为 3D 图像打造的深度学习利器

阅读数:5143 2019 年 5 月 11 日

Github 项目链接:https://github.com/tensorflow/graphics

最近几年以来,能够插入神经网络架构中的新型可区分图层在数量上有所增加。从空间转换器到可变图形渲染器,这些新层积极利用多年以来计算机视觉与图形研究为我们带来的知识储备,共同构建起新的、更为高效的网络架构。将几何先验与约束机制明确建模至神经网络当中,意味着 AI 建模迎来了新的发展时代。以此为基础,AI 建模师能够以自我监督的方式进行稳健、高效的自动化模型生成工作。

从宏观角度讲,计算机图形流水线需要首先确定 3D 对象及其在场景中的绝对位置,而后对其采用的构成材料、灯光以及镜头位置进行描述。最后,渲染器对相关场景描述进行解释并生成合成渲染结果。

在另一方面,计算机视觉系统则负责推理场景当中的各项参数。具体而言,其能够预测场景中包含哪些对象,这些对象由什么材料制成,以及各个对象的三维位置与朝向。

要建立起能够解决此类复杂 3D 视觉任务的机器学习系统,我们通常需要准备大量数据对其进行训练。由于标记数据是一种昂贵且复杂的过程,因此我们自然有必要建立起机器学习模型的设计机制。这类模型能够在无需太多监督的情况下进行训练,从而实现对三维世界的透彻理解。

将计算机视觉与计算机图形技术相结合,使得我们能够以前所未有的方式对大量现成未标记数据加以利用。如下图所示,这方面尝试可以通过合成分析来实现。其中视觉系统负责提取场景参数,并由图形系统基于这些参数进行图像渲染。如果渲染结果与原始图像相匹配,则代表视觉系统已经准确提取到场景参数。在这样一套系统当中,计算机视觉与计算机图形相辅相成,构成类似于自动编码器的整体机器学习系统,并以自我监督的方式开展训练。

可区分图层

在下文中,我们将具体探讨 TensorFlow Graphics 中的一些可用功能。当然,受篇幅所限我们不可能对整个流程进行全面延伸。如果希望了解更多细节信息,请访问我们在文章开头发布的 Github repo 以了解 TensorFlow Graphics 提供的各项新功能。

转换

对象转换机制负责控制对象在空间中的位置。在下图当中,立方体围绕中轴进行旋转。当旋转轴朝上且角度为正时,立方体即进行逆时针旋转。在这一 Colab 示例中,我们展示了如何在神经网络当中训练旋转形式。该神经网络已经进行过训练,学习如何预测观察对象的旋转与平移活动。这一任务正是多种实际应用的核心,包括需要与所处环境进行交互的各类机器人。在这类场景下,机器人需要通过机械臂抓住对象物体,而这要求其精确估计目标物体与其手臂的相对位置关系。

建模镜头

镜头模型在计算机视觉当中扮演着至关重要的角色,因为其会极大影响到投影至图像平面上的三维物体的外观。通过下图,我们可以看到立方体似乎在进行垂直方向的绽放,但实际上这种变化源自镜头的焦距切换。关于镜头模型的更多细节信息以及如何在 TensorFlow 进行使用的具体方法,请参考此Colab 示例

材质

材质模型用于定义光同对象之间的交互方式,从而使其获得独特的外观。举例来说,以石膏为代表的某些材料能够均匀地进行光线漫反射,而镜子等材质则属于纯粹的镜面反射。在这份交互式Colab Notebook当中,大家可以了解如何利用 Tensorflow Graphics 生成以下渲染效果。此外,您也将有机会利用材质与光源参数开发出良好的交互感受。准确预测材料属性是很多实际任务的基础所在。例如,系统可能允许用户在家庭环境中放置虚拟家具,并在照片当中呈现出逼真的内部融合效果,从而让用户更准确地理解家具的摆放方式与观感。

几何——3D 卷积与池化

近年来,以点云或者网格形式输出三维数据的传感器正快速成为我们日常生活中的组成部分。从智能手机深度传感器,到无人驾驶汽车上的激光雷达,这些原本只服务于高端设备的小装置也进入了寻常百姓家。由于其反映出的结构并不规则,因此与提供规则网格结构的图像相比,这种表示中的卷积效果往往更难实现。TensorFlow Graphics 带有两个 3D 卷积层与一个 3D 池层,允许网络利用这些网格信息进行训练从而执行语义分类。具体请参阅我们的Colab Notebook以及下图。

TensorBoard 3D

可视化调试是评估实验进程是否朝着正确方向推进的有效方法。为此,TensorFlow Graphics 附带一款 TensorBoard 插件,能够以交互方式显示 3D 网格与点云。

马上体验

TensorFlow Graphics 的首个支持版本能够与 TensorFlow 1.13.1 以及更高版本相兼容。大家可以访问 https://www.tensorflow.org/graphics 以获取 API 以及库安装说明。

鸣谢

TensorFlow Graphics 的诞生是团队工作的结果。在这里,我们要向做出重大贡献的 Cem Keskin、Pavel Pidlypenskyi、Ameesh Makadia 以及 Avneesh Sud 表达诚挚的谢意。

原文链接:
https://medium.com/tensorflow/introducing-tensorflow-graphics-computer-graphics-meets-deep-learning-c8e3877b7668

收藏

评论

微博

发表评论

注册/登录 InfoQ 发表评论