来源商业新知网,原标题:TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

 

谷歌给TensorFlow加入了计算机图形处理功能 TensorFlow Graphics ,让神经网络可以更好地理解计算机世界里的图形操作。

计算机图形 (Computer Graphics)和 计算机视觉 (Computer Vision)是一对孪生兄弟,二者互为逆过程。

计算机图形是预先知道3D物体的形状、位置、材料构成,以及场景的灯光和相机,然后渲染出场景。

计算机视觉是已知拍到的图像,从中推断出有哪些物体,它们由什么材料制成,以及它们的3D位置和方向。

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

图像识别自然不必多说。在TensorFlow Graphics,图像渲染包括对图形进行旋转、缩放、光影、3D网格等操作。

旋转

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

旋转在与一些机器人任务中非常重要,比如,用机械臂抓住物体需要精确估计这些物体相对于臂的位置。

缩放

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

缩放计算机视觉中起着重要作用,因为它会极大地影响投影到平面上的三维物体的外观。

光影材质

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

材质模型定义光与对象的交互方式,展现这种材料独特的外观。在某些虚拟环境中,可以预测某些物体的真实外观。

几何形状

从手机深度传感器到自动驾驶汽车激光雷达,近年来3D传感器越来越多。它们以网格或者点云的方式输出3D数据。

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

由于它们的不规则结构,与提供规则网格结构的图像相比,这些表示上的卷积很难实现。TensorFlow Graphics有两个3D卷积层和一个3D池化层,允许网络在网格上执行语义部分分类的训练。

为何要推出TensorFlow Graphics

近几年,在神经网络架构中插入可微图形层的情况越来越多。尤其是 空间变换网络 ,这是2015年DeepMind在NIPS上发表的论文《Spatial Transformer Networks》。

这篇文章提出神经网络应当具有所谓“空间不变性”,即无论平移、旋转、缩放,都能够正确地识别和处理图像,但CNN在这方面的能力是欠缺的。

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

在神经网络中插入这些可微图形层,可以来构建新的、更高效的网络架构。将几何和约束建模到神经网络中,可以通过自我监督的方式进行稳健、高效的训练。

另外,训练3D视觉任务的机器学习系统通常需要大量数据,需要设计机器学习模型,在没有太多监督的情况下进行训练,给网络加入计算机图形渲染的能力,能帮AI更好地理解3D世界。

安装使用

TensorFlow Graphics要求使用 TensorFlow 1.13.1 或更高版本。谷歌提供了CPU和GPU两个版本:

pip install --upgrade tensorflow-graphics

# CPU版本

pip install --upgrade tensorflow-graphics-gpu

# GPU版本

为了让用户能够进行可视化调试,TensorFlow Graphics还附带了一个TensorBoard插件,交互式地显示3D网格和点云。

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学

更多的实际效果可以去项目页提供的几个 Colab 笔记本中体验。比如前面提到的光影材质渲染:

知识图谱,TensorFlow也可以做图形渲染了:当神经网络遇上计算机图形学