随着科技的发展,现在人们可以随时随地用手机等设备拍照记录自己喜欢的瞬间。可能不少人都想过,假如出现一种黑科技,让我们拍摄的平面 2D 照片变成立体的 3D 照片......

Facebook 也早就想到了这个问题。为改善用户体验,2018 年,Facebook 就推出了 3D 照片功能。这是一种全新的沉浸式格式,你可以用它与朋友、家人分享照片。但是,这项功能依赖于高端智能手机才具备的双镜头「肖像模式」功能,无法在寻常的移动设备上使用。

为了让更多人体验到这种新的视觉格式,Facebook 利用机器学习开发了一个系统。这个系统可以推断出任何图像的 3D 结构,任何设备、任何时间拍摄的图像都可以被转换成 3D 形式。这就可以让人们轻松使用 3D 照片技术。

不仅如此,它还可以处理几十年前的家庭照片和其它珍贵图像。任何拥有 iPhone7 及以上版本,或中端以上 Android 设备的人,现在都可以在 Facebook 应用程序中尝试这个功能。

Facebook 又出黑科技,手机照片一键切成 3D 大片

估计 2D 图像不同区域的深度,以创建 3D 图像

构建这种增强的 3D 图片需要克服不少技术挑战,例如,要训练一个能够正确推断各种主题 3D 位置的模型,并优化系统,使其能够在 1 秒钟内运行在典型的移动处理器设备上。为了克服这些挑战,Facebook 在数百万公共 3D 图像及其附带的深度图上训练了卷积神经网络(CNN),并利用 Facebook AI 之前开发的各种移动优化技术,如 FBNet 和 ChamNet。团队最近也讨论了 3D 理解的相关研究

现在,所有使用 Facebook 的人都可以使用这个功能,那么,它究竟是如何构建的?我们可以一起来看看其中的技术细节。

Facebook 又出黑科技,手机照片一键切成 3D 大片

小狗的原始照片是用单镜头相机拍摄的,没有任何深度图数据,系统将其转换成了上图显示的 3D 图像

在移动设备上提供高效性能

给定一个标准的 RGB 图像,3D Photos CNN(3D 照片卷积神经网络)可以估计每个像素与摄像机的距离。研究人员通过四种方式实现了这一目标:

  • 使用一组可参数化、可移动优化的神经构建块构建网络架构;

  • 自动化架构搜索,以找到这些块的有效配置,使系统能够在不到 1 秒钟的时间内在各种设备上执行任务;

  • 量化感知训练,在移动设备上利用高性能 INT8 量化,同时使量化过程中的性能下降最小化;

  • 从公开的 3D 照片获取大量的训练数据。

神经构建块

Facebook 的架构使用受 FBNet 的构建块启发。FBNet 是一个为移动设备等资源受限的设备优化 ConvNet 架构的框架。一个构建块由逐点卷积(pointwise convolution)、可选的上采样、kxk 深度卷积和附加的点逐点卷积组成。Facebook 实现了一个 U-net 风格的架构,该架构已被修改为沿着跳过连接放置 FBNet 构建块。U-net 编码器和解码器各包含 5 个阶段,每个阶段对应不同的空间分辨率。

Facebook 又出黑科技,手机照片一键切成 3D 大片网络架构概述:一个 U-net 沿着跳过的连接放置额外的宏级构建块

自动化架构搜索

为了找到一个有效的架构配置,Facebook AI 开发的 ChamNet 算法自动完成搜索过程。ChamNet 算法不断从搜索空间中抽取点来训练精度预测器。该精度预测器用于加速遗传搜索,以找到在满足特定资源约束的情况下,使预测精度最大化的模型。

这个设置中使用了一个搜索空间,它可以改变通道扩展因子和每个块的输出通道数,从而产生 3.4x1022 种可能的体系结构。然后,Facebook 使用 800 Tesla V100 GPU 在大约三天内完成搜索,设置并调整模型架构上的 FLOP 约束,以实现不同的操作点。

量化感知训练

默认情况下,其模型使用单精度浮点权值和激活进行训练,但研究人员发现,将权值和激活量化为 8 位具有显著的优势。尤其是,int8 权重只需要 float32 权重所需存储量的四分之一,从而减少首次使用时必须传输到设备的字节数。

Facebook 又出黑科技,手机照片一键切成 3D 大片

每幅图像都是从一个规则的 2D 图像开始,然后用深度估计神经网络转换成 3D 图像

与基于 float32 的运算符相比,基于 Int8 的运算符的吞吐量也要高得多,这要归功于 Facebook AI 的 QNNPACK 等经过优化的库,后者已经集成到 PyTorch 中。我们使用量化感知训练(QAT)来避免量化导致的质量下降。QAT 现在是 PyTorch 的一部分,它在训练期间模拟量化并支持反向传播,从而消除了训练和生产性能之间的差距。

Facebook 又出黑科技,手机照片一键切成 3D 大片

神经网络处理各种内容,包括绘画和复杂场景的图像

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

除了改进深度估计算法之外,研究人员还致力于为移动设备拍摄的视频提供高质量的深度估计。

由于每个帧的深度必须与下一帧一致,视频处理技术具有一定挑战性,但它也是一个提高性能的机会。对同一物体进行多次观测,可以为高精度的深度估计提供额外的信号。随着 Facebook 神经网络性能的不断提高,团队还将探索在实时应用(如增强现实)中利用深度估计、曲面法向估计和空间推理等技术。

除了这些潜在的新经验,这项工作将帮助研究人员更好地理解 2D 图像的内容。更好地理解 3D 场景还可以帮助机器人导航以及与物理世界互动。Facebook 希望通过分享 3D 图片系统的细节,帮助人工智能社区在这些领域取得进展,并创造利用先进的 3D 新体验。

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