Facebook新研究:加强版CNN,2D照片也能模拟3D效果

2020-03-05 10:41:33 浏览数 (1)

作者 | Facebook AI

编译 | 丛末、蒋宝尚

还记得Facebook在2018年推出的一种名为“摄影测量”的技术么?

现在Facebook已经将此项技术完善,并集成到了APP上,也就是说,在FB软件上,用静态的2D照片,也能体会到丰满的3D立体感。

转换成的3D照片“看上去”包含一定的深度信息,并且在左右晃动时有着沉浸式的体验,感觉像是一个小范围的6DoF短片。

只需1秒,2D照片也能模拟3D效果

2018年推出的3D功能

虽然,FB 在2018已经推出的3D照片功能,并且能够以一种全新的沉浸式的格式与家人和朋友共享照片。不过,这项功能依赖于双摄像头“人像模式”,只能在新的更高端的智能手机上使用,而无法在只有后置单摄像头的老款移动设备上使用。 为了让这项 3D 照片功能惠及更多人,Facebook 采用最先进的机器学习技术,为几乎所有的标准 2D 格式的照片生成 3D 照片。

该系统能够为任意图片推导出3D架构,无论是刚刚用安卓或 iOS 设备上的单摄像头拍的新照片,还是最近上传到手机或电脑上的几十年前的老图片。

不仅如此,使用最先进的双摄像头设备的人也能够从中受益,因为他们现在可以使用前置单摄像头也能够进行3D自拍了。使用iPhone 7及以上版本的苹果手机以及中端及以上的安卓机的人,现在都可以在Facebook APP上使用这一功能。

动画展示了如何估计 2D 图片不同区域的深度来构建 3D 图像。

构建这种增强版的3D照片技术需要克服各种各样的技术挑战,例如训练一个能够正确推断非常多种主题图片的 3D位置的模型,并优化系统让它能够瞬间在搭载传统移动处理器的设备上运行。

为了克服这些挑战,Facebook 在数百万对对外开放的3D图像及其对应的深度图上训练卷积神经网络(CNN),并使用了 Facebook AI 研究院此前开发的各种移动设备优化技术,如FBNet 、 ChamNet等。

下面来看构建 3D 照片功能的细节:

小狗的原照片是用单摄像头拍的,并且没有任何深度图数据,Facebook 的3D 照片功能将原照片转成了3D格式的照片。

移动设备上,也能够实现高性能

给定一个标准的RGB 图像,3D 照片卷积神经网络能够估计出每个像素离照相机的距离,具体有以下四个步骤:

  • 由一组可参数化、可移动优化的神经网络构建模块构成的网络架构;
  • 自动化架构搜索,来找到这些模块的有效配置,从而使系统在不到一秒钟的时间内就能够在各种设备上执行任务;
  • 进行量化感知训练,从而能够在移动设备上使用高性能的INT8 量化,同时最小化量化过程中潜在的质量下降;
  • 大量训练数据来源于对外开放的3D 照片。

神经网络构建模块

论文下载地址:https://research.fb.com/wp-content/uploads/2019/05/FBNet-Hardware-Aware-Efficient-ConvNet-Design-via-Differentiable-Neural-Architecture-Search.pdf?

关于神经网络的构建基块,其受到FBNet启发,作为一套针对移动设备进行优化的ConvNet架构体系,其构建块由逐点卷积、可选上采样、K x K深度卷积和附加逐点卷积组成。

在具体工作中,Facebook实现了一个U-Net风格的体系结构。这个结构的编码器和解码器分别包含五个阶段,每个阶段对应不同的空间分辨率。

网络架构概述

自动化架构搜索

为了找到一个有效的架构配置,Facebook使用其开发的算法——ChamNet 来自动化搜索过程。

ChamNet 算法迭代地从搜索空间采样点来训练一个准确度预测器。该预测器用来加速遗传搜索,从而找到在满足特定资源约束的情况下最大化预测准确度的模型。

在该设置下,他们使用了一个可以改变扩展因子和每个模块的输出通道数的搜索空间,生成了3.4x1022个可能的架构。之后,他们使用了800块Tesla V100 的GPU,在将近3天的时间里完成了这一搜索,并且设置和调整了模型架构上的FLOP 约束以实现不同的操作点。

量化感知训练(QAT,Quantization-aware training)

默认情况下,模型使用单精度浮点权重和激活函数进行训练,但是将权重和激活都数统一采取8位整数表示,具有显著的优势。更为具体有一点,用8-bit整数操作代替32-bit的浮点操作能够节省3/4的储存空间。

用我们的深度估计神经网络将其转换为3D图像。

由于Facebook AI的QNNPACK等调优的库已经集成到PyTorch中,基于Int8操作的吞吐量也比他们的Float32同行高得多。使用量化感知训练(QAT)来避免由于量化而导致的不可接受的质量下降。值得一提的是,QAT现在已经是PyTorch的一部分了,它能在训练期间模拟量化,并支持反向传播,从而消除了训练和生产性能之间的差距。

复杂场景的2D照片转换3D效果也不错

寻找创建3D体验的新方法

除了改进深度学习算法之外,Facebook还致力为手机等移动设备提供更质量的3D视频,准确的说是提供深度估算。相比照片,视频的难度要更大,因此要保证相邻的2帧之间深度信息是一致的。所以可以猜测的是,视频的深度信息估计将开创更多可能性,因为同一对象的多个观测可以为高度精确的深度估计提供更多的信号。

据Facebook介绍,随着神经网络性能的不断提升,他们还将探索在AR领域的实际应用,例如如何高效的利用深度估计以及空间推理。

毫无疑问,这项工作会帮助我们提高对3D场景的理解,也可以提升机器导航软件的性能。

Via https://ai.facebook.com/blog/-powered-by-ai-turning-any-2d-photo-into-3d-using-convolutional-neural-nets/

0 人点赞