网盛创新研究院 - AI、区块链、云计算、大数据技术的研究与应用交流平台!

网盛创新研究院/应用/正文

为3D图像任务打造的深度学习利器

作者:来源:新智元

2019-05-13

TensorFlow重磅推出一个全新的图形工具TensorFlow Graphics,结合计算机图形学和计算机视觉技术,以无监督的方式解决复杂3D视觉任务。

近年来,可插入到神经网络架构中的一种新型可微图形层(differentiable graphics layers)开始兴起。

从空间变换器(spatial transformers)到可微图形渲染器,这些新型的神经网络层利用计算机视觉、图形学研究获得的知识来构建新的、更高效的网络架构。它们将几何先验和约束显式地建模到神经网络中,为能够以自监督的方式进行稳健、高效训练的神经网络架构打开了大门。

从高级层面来说,计算机图形学的pipeline需要3D物体及其在场景中的绝对位置、构成它们的材质的描述、光、以及摄像头。然后,渲染器对这个场景描述进行解释,生成一个合成渲染。

blob.png

相比之下,计算机视觉系统是从图像开始的,并试图推断出场景的相关参数。也就是说,计算机视觉系统可以预测场景中有哪些物体,它们由什么材料构成,以及它们的3D位置和方向。

blob.png

训练一个能够解决这些复杂的3D视觉任务的机器学习系统通常需要大量的数据。由于给数据打标签是一个成本高昂而且复杂的过程,因此设计能够理解三维世界、而且无需太多监督的机器学习模型的机制非常重要。

将计算机视觉和计算机图形学技术结合起来,我们得以利用大量现成的无标记数据。

如下图所示,这个过程可以通过合成分析来实现,其中视觉系统提取场景参数,图形系统根据这些参数返回图像。如果渲染结果与原始图像匹配,则说明视觉系统已经准确地提取出场景参数了。

在这种设置中,计算机视觉和计算机图形学相辅相成,形成了一个类似于自动编码器的机器学习系统,能够以一种自监督的方式进行训练。

blob.png

可微图形层

接下来,我们将探讨TensorFlow Graphics的一些功能。更多信息可以访问GitHub:

https://github.com/tensorflow/graphics/

变换(Transformations)

物体变换(Object transformations)功能能够控制物体在空间中的位置。

如下图所示,利用轴角度可以将立方体旋转起来。旋转轴指向上方,角度为正,则使立方体逆时针旋转。

在下面的Colab示例中,我们展示了如何在一个神经网络中训练旋转形式,该神经网络被训练来预测物体的旋转和平移。

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

这项任务是许多应用程序的核心,比如专注于与环境交互的机器人。机器人要用机械臂抓取物体,需要精确地估计物体相对于机械臂的位置。

建模相机(Modelling cameras)

相机模型(Camera models)在计算机视觉中有着至关重要的作用,因为相机会极大地影响投影到图像平面上的3D物体的外观。

如下图所示,立方体看起来是上下缩放的,而实际上发生这种变化只是由于相机焦距发生了变化。

下面的Colab示例提供了更多关于相机模型的细节,以及如何在TensorFlow中使用它们的具体示例。

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

材料

材料模型(Material models)定义了光和物体交互的方式,赋予它们独特的外观。

例如,有些材料,如石膏,能均匀地向所有方向反射光线,而有些材料,如镜子,则纯粹是镜面反射。

准确地预测材料属性是许多视觉任务的基础。例如,可以让用户将虚拟家具放置在环境中,家具的照片可以与室内环境逼真地融合在一起,从而让用户对这些家具的外观形成准确的感知。

在下面的Colab笔记本,可以学习如何使用Tensorflow Graphics生成如下的渲染。你也可以试验不同的材料和光的参数,了解它们如何相互作用。

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

blob.png

几何——3D卷积和池化

近年来,从智能手机的深度传感器到自动驾驶汽车激光雷达,以点云或网格的形式输出3D数据的传感器越来越常用。由于这类数据有着不规则的结构,与提供规则网格结构的图像相比,在这些表示上执行卷积更难实现。

TensorFlow Graphics提供两个3D卷积层和一个3D池化层,例如,允许网络在网格上执行语义部分分类(如下图所示):

blob.png

更多信息参见 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网格和点云进行可视化。


标签:
【版权提示】网盛创新研究院网倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本网站的内容。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至wzy@netsun.com,我们将及时沟通与处理。
关于我们创新研究院大讲堂服务介绍
© 生意宝(002095) 版权所有  浙公网安备 33010002000015号 工商执照 浙ICP证  网络工商