谷歌重磅推出TensorFlow Graphics:为3D图像任务打造的深度学习利器
加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
转载自公众号新智元
【导读】TensorFlow重磅推出一个全新的图形工具TensorFlow Graphics,结合计算机图形学和计算机视觉技术,以无监督的方式解决复杂3D视觉任务。
近年来,可插入到神经网络架构中的一种新型可微图形层(differentiable graphics layers)开始兴起。
从空间变换器(spatial transformers)到可微图形渲染器,这些新型的神经网络层利用计算机视觉、图形学研究获得的知识来构建新的、更高效的网络架构。它们将几何先验和约束显式地建模到神经网络中,为能够以自监督的方式进行稳健、高效训练的神经网络架构打开了大门。
从高级层面来说,计算机图形学的pipeline需要3D物体及其在场景中的绝对位置、构成它们的材质的描述、光、以及摄像头。然后,渲染器对这个场景描述进行解释,生成一个合成渲染。
相比之下,计算机视觉系统是从图像开始的,并试图推断出场景的相关参数。也就是说,计算机视觉系统可以预测场景中有哪些物体,它们由什么材料构成,以及它们的3D位置和方向。
训练一个能够解决这些复杂的3D视觉任务的机器学习系统通常需要大量的数据。由于给数据打标签是一个成本高昂而且复杂的过程,因此设计能够理解三维世界、而且无需太多监督的机器学习模型的机制非常重要。
将计算机视觉和计算机图形学技术结合起来,我们得以利用大量现成的无标记数据。
如下图所示,这个过程可以通过合成分析来实现,其中视觉系统提取场景参数,图形系统根据这些参数返回图像。如果渲染结果与原始图像匹配,则说明视觉系统已经准确地提取出场景参数了。
在这种设置中,计算机视觉和计算机图形学相辅相成,形成了一个类似于自动编码器的机器学习系统,能够以一种自监督的方式进行训练。
可微图形层
接下来,我们将探讨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
几何——3D卷积和池化
近年来,从智能手机的深度传感器到自动驾驶汽车激光雷达,以点云或网格的形式输出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
Github: https://github.com/tensorflow/graphics
点击左下角“阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
觉得有用麻烦给个好看啦~