参与王淑婷 路雪

当计算机图形学遇上深度学习,针对3D图像的TensorFlow Graphics面世

今日,TensorFlow 宣布推出 TensorFlow Graphics,该工具结合计算机图形系统和计算机视觉系统,可利用大量无标注数据,解决复杂 3D 视觉任务的数据标注难题,助力自监督训练。

  • GitHub 地址:https://github.com/tensorflow/graphics

近几年,一种可以插入神经网络架构中的新型可微图形层(differentiable graphics layer)开始兴起。从空间变换器(spatial transformer)到可微图形渲染器,这些新型网络层利用多年的计算机视觉和图形学研究知识来构建更高效的新网络架构。将几何先验和约束显式建模到神经网络中,为能够以自监督的方式进行稳健、高效训练的架构打开了大门。

从高级层面来说,计算机图形管道需要 3D 物体及其在场景中的绝对位置、材质描述、光和摄像头。然后,渲染器利用该场景描述生成合成渲染。

相比之下,计算机视觉系统从图像开始,推理场景的参数,对场景中的物体及其材质、三维位置和方向进行预测。

训练能够解决这些复杂 3D 视觉任务的机器学习系统通常需要大量数据。由于标注数据的过程既昂贵又复杂,因此设计能够理解三维世界且训练时无需太多监督的机器学习模型非常重要。

结合计算机视觉计算机图形学技术后,我们得以利用大量可用的无标注数据。如下图所示,这可以通过合成分析(analysis by synthesis)来实现:视觉系统抽取场景参数,图形系统基于这些参数渲染图像。

如果渲染图像结果与原始图像匹配,则说明视觉系统准确地抽取了场景参数。在该设置中,计算机视觉计算机图形学携手合作,形成了一个类似自编码器的机器学习系统,该系统能够以自监督的方式进行训练。

可微图形层

接下来,我们将探索 TensorFlow Graphics 的一些可用功能。更多详情,参见 GitHub 项目。

变换

物体变换控制物体在空间中的位置。如下图所示,利用轴角度旋转立方体。旋转轴指向上方,旋转方向为逆时针,使得立方体逆时针旋转。以下 Colab 示例展示了如何在神经网络中训练旋转形式,该神经网络被训练用于预测观测物体的旋转和平移。

  • 地址 https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/6dof_alignment.ipynb

这项任务是很多应用的核心,包括聚焦于与其环境进行交互的机器人。在这些场景中,用机械臂抓取物体需要精确估计这些物体相对于机械臂的位置。

建模摄像头

摄像头模型在计算机视觉领域中非常重要且基础,因为它们对三维物体投影到图像平面上的外观有极大影响。如下图所示,该立方体看起来可以放大和缩小,但是事实上这些变化仅仅是由于焦距产生的变化。

想了解摄像头模型的详情,以及如何在 TensorFlow 中使用它们的具体示例,可以查看:

  • https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/intrinsics_optimization.ipynb

材质

材质模型(material model)定义光与物体的交互过程,从而提供物体的外观。例如,一些材质(如石膏)在各个方向对光进行反射,而镜面等材质会对光进行镜面反射。

在以下交互式 Colab notebook 中,你可以了解如何使用 Tensorflow Graphics 生成如下渲染。你还可以试验不同的材质和光的参数,更充分地了解其交互过程。

  • 地址:https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/reflectance.ipynb

准确地预测材质属性是很多任务的基础。例如,它可以让用户在自己的环境中放置虚拟家具,室内环境搭配家具的场景非常逼真,从而让用户准确地感知到这件家具的外观。

几何——3D 卷积和池化

近年来,以点云或网格形式输出三维数据的传感器逐渐成为我们日常生活的一部分,包括智能手机深度传感器、自动驾驶汽车雷达等等。由于其结构不规则,在这些表征上执行卷积要比在规则网格结构上困难得多。

TensorFlow Graphics 提供两个 3D 卷积层和一个 3D 池化层,允许网络在网格上执行语义部分分类(如下图所示),更多信息参见该 Colab notebook:

  • https://colab.sandbox.google.com/github/tensorflow/graphics/blob/master/tensorflow_graphics/notebooks/mesh_segmentation_demo.ipynb

TensorBoard 3d

视觉 debug 是评估实验是否按正确方向运行的重要方式。因此,TensorFlow Graphics 配备有 TensorBoard 插件,以便交互式地查看 3d 网格和点云。

开始项目

TensorFlow Graphics 与 TensorFlow 1.13.1 及以上版本兼容。API 和安装说明参见:

  • https://www.tensorflow.org/graphics

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

工程TensorFlow
相关数据
自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

计算机图形技术

图像数据处理、计算机图像(英语:Computer Graphics)是指用计算机所创造的图形。更具体的说,就是在计算机上用专门的软件和硬件用来表现和控制图像数据。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

TensorBoard技术

一个信息中心,用于显示在执行一个或多个 TensorFlow 程序期间保存的摘要信息。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

自动驾驶汽车技术

自动驾驶汽车,又称为无人驾驶汽车、电脑驾驶汽车或轮式移动机器人,是自动化载具的一种,具有传统汽车的运输能力。作为自动化载具,自动驾驶汽车不需要人为操作即能感测其环境及导航。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

推荐文章
暂无评论
暂无评论~