写点什么

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

2019 年 5 月 11 日

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


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


2019 年 5 月 11 日 09:009506

评论

发布
暂无评论
发现更多内容

自动驾驶复苏在2020

陈思

人工智能 自动驾驶

服务降级的常见套路

松花皮蛋me

Java

NVidia-Docker2 性能优化

薛磊

Docker gpu nvidia container

Doris 一种实时多维分析的解决方案

迹_Jason

大数据

开源这件事儿,越来越“声势浩大”了

赵钰莹

Apache GitHub 阿里巴巴 开源 腾讯

字节跳动的增长密码

池建强

字节跳动 张一鸣

纯技术改造,技术如何驱动需求,我有话说

一叶而不知秋

项目管理 架构 技术

从西游到武侠——确定性与不确定性

伯薇

个人成长 管理 确定性 不确定性

Linux的proc文件系统编程

韩超

中台之路,从平台到中台的思考与实践(一)

孤岛旭日

架构 中台 企业中台 企业架构

【JAVA】感受下JDK14的空指针提示

遇见

Java jdk jep

聊聊分心这件事

Jackey

苏宁云商向江旭:是时候让技术成为新司机了!

TGO鲲鹏会

[KubeFlow] MPI-Operator深度解读

薛磊

Docker gpu kubeflow Kubernetes

ELF文件格式

韩超

redis数据结构介绍-第一部分 SDS,链表,字典

Nick

redis 源码 数据结构 源码分析 算法

基于RocketMQ实现分布式事务 - 完整示例

清幽之地

Java 分布式事务 RocketMQ 微服务

百度主任架构师谭待:打造非职权技术管理机制

TGO鲲鹏会

高手和普通人的差距,不看不知道,一看吓一跳

熊斌

学习

NVidia Docker介绍

薛磊

Docker

中台之路,从平台到中台的思考与实践(二)

孤岛旭日

架构 中台 企业中台 企业架构

ArrayList、LinkedList 你真的了解吗?

Damon

Java

特定系统的Linux的构建

韩超

面试官,不要再问我三次握手和四次挥手

猿人谷

面试 TCP 三次握手 四次挥手

Gitlab CI/CD 中的 Cache 机制

Chong

DevOps gitlab cicd

3000w人民币的学费——我的决策反思

孤岛旭日

数据中台 架构 中台 企业中台 企业架构

Docker Swarm 踩坑

ikook

Docker Docker Swarm 技术 容器 踩坑

程序员通过哪些方式来赚钱?

一尘观世界

程序员 外包 自由职业 副业 赚钱

Kylin 实时流处理技术探秘.笔记

迹_Jason

大数据

人间至味——苦瓜

三只猫

人生 美食 生活

我使用了哪些生产力工具?

ikook

效率工具 软件 Alfred Notion 推荐

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