写点什么

Facebook 新研究:使用 CNN 将任何 2D 照片转换为 3D

  • 2020-03-05
  • 本文字数:2234 字

    阅读完需:约 7 分钟

Facebook 新研究:使用CNN将任何2D照片转换为3D

Facebook 的 3D 照片功能于 2018 年推出,是一种全新的、沉浸式的照片格式,用于与朋友和家人分享照片。不过,在当时,这一功能依赖于只有新款高端智能手机才有的双镜头“肖像模式”功能。因此,这一功能无法在只有一个后置镜头的典型移动设备上使用。为了让更多的人能够用上这种全新的视觉形式,Facebook 近日发布了一项研究,使用了最先进的机器学习技术,能够将几乎任何标准的 2D 照片转换为3D 照片。这个系统可以推断出任何图像的 3D 结构,无论是用标准单镜头在 Android 和 iOS 设备拍摄的新照片,还是最近上传到手机或笔记本电脑上的几十年前的老照片。


以下内容整理自 Facebook AI 博客:


这一技术进步使得数以百万计使用单镜头照相手机或平板电脑的人们第一次可以轻松地接触到 3D 照片技术。它还可以让每个人以一种全新的方式体验几十年前的家庭照片和其他珍贵的图像,将它们转换成 3D 照片。拥有最先进的双镜头设备的人也能从中受益,因为他们现在可以使用唯一的前置镜头进行 3D 自拍。任何拥有 iPhone 7 或更高版本,或者最近的中端或更好的 Android 设备的人,现在都可以在 Facebook 的应用程序中尝试这项技术。


该动画显示了如何估计一幅 2D 图片的不同区域的深度,以创建一幅 3D 图像。


构建这种增强的 3D 照片技术需要克服各种技术挑战,例如,训练模型,以正确推断出极其广泛主题的 3D 位置,并优化系统,使其能够在不到一秒的时间内,就能在典型移动处理器的设备上运行。为了克服这些挑战,研究人员在数百万的公共 3D 图像及其相应的深度图上训练了卷积神经网络,并利用了 Facebook AI 之前开发的各种移动优化技术,如 FBNetChamNet 等。(技术团队还讨论了最近在 3D 理解方面的相关研究,参见:《推动 3D 内容理解的最新进展》(Pushing the state of the art in 3D content understanding))


现在,这一功能对所有 Facebook 用户可用,本文将分享构建这一功能的细节。



小狗的原始照片是用单镜头相机拍摄的,并不包含任何深度图的数据。系统将其转换成 3D 图像,如图所示。

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

给定一幅标准的 RGB 图像,3D Photos CNN (3D 照片卷积神经网络)可以估计每个像素到相机的距离。技术团队通过以下四种方式实现了这一点:


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

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

  • 量化感知训练,可在移动设备上利用高性能的 int8 量化,同时最大限度降低量化过程带来的潜在质量下降。

  • 大量的训练数据源自公开的 3D 照片。

神经构建块

该项目的架构使用了受 FBNet 启发的构件块,FBNet 是一个用于优化移动设备和其他资源受限设备的 ConvNet 架构的框架。一个构建块由逐点卷积(pointwise convolution)、可选采样和深度卷积组成。团队实现了一个 U-net 风格的架构,该架构已经被修改为沿着残差连接(skip connection)放置 FBNet 构建块。U-net 编码器和解码器各包含五个阶段,每个阶段对应不同的空间分辨率。



网络架构概述。该网络架构是一个 U-net,沿着残差连接放置了额外的宏级构建块。

自动架构搜索

为了找到一个有效的架构配置,研发人员使用 ChamNet 将搜索过程自动化,这是 Facebook AI 开发的一个算法。ChamNet 算法从搜索空间采样点训练正确度预测器,该正确度预测器用于加速遗传搜索,以找到在满足特定资源约束的前提下,使预测正确度最大化的模型。在这个设置中,使用一个搜索空间,该搜索空间改变了通道扩展因子和每个块的输出通道数,从而产生 3.4\times 10^{22} 个可能的架构。然后,使用 800 块 Tesla V100 GPU,在大约三天内完成搜索,设置并调整模型架构上的 FLOP 约束,以实现不同的操作点。

量化感知训练

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



这些图像都是从普通的 2D 图像开始,然后通过深度估计神经网络转换成 3D 图像。


由于 Facebook AI 的 QNNPACK 等经过调优的库已经整合到 PyTorch 中,因此与 float32 相比,基于 int8 的运营商的吞吐量要高得多。团队通过使用量化感知训练(quantization-aware training,QAT)来避免由于量化导致的不可接受的质量下降。QAT(现已作为 PyTorch 的一部分提供)在训练过程中模拟量化并支持反向传播,从而消除了训练和生产性能之间的差距。



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

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

除了完善和改进深度估计算法,Facebook AI 团队还致力于为移动设备拍摄的视频提供高质量的深度估计。视频是一个值得注意的场景,因为视频中每一帧的深度必须与下一帧保持一致,但这也是一个提高性能的机会,因为对同一目标的多次观测可以为高正确度的深度估计提供额外信号,Facebook 预计将向用户开放多种创新的内容创作工具。随着团队不断提高神经网络的性能,未来还将探索利用深度估计、表面法线估计(surface normal estimation)和空间推理的应用。


除了这些潜在的新体验外,这项工作还将帮助技术团队更好地全面理解 2D,提高对 3D 场景的理解也可以帮助机器人导航并与现实世界进行互动。作者表示,希望通过分享 3D 照片系统的细节,能够帮助人工智能社区在这些领域取得进展,并创造 3D 新体验。


作者介绍:


Kevin Matzen、Peizhao Zhang,研究科学家;Matthew Yu、Jonathan Lehman,软件工程师;Jan-Michael Frahm、Peter Vajda、Johannes Kopf,研究科学主管;Matt Uyttendaele,工程总监。


2020-03-05 14:471895
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 281.5 次阅读, 收获喜欢 1302 次。

关注

评论

发布
暂无评论
发现更多内容

拿到大厂前端offer的前端开发是怎么回答面试题的

loveX001

JavaScript

你是如何使用React高阶组件的?

beifeng1996

React

谈谈企业级前端 Angular 应用的定制化二次开发话题

汪子熙

前端开发 angular SAP Hybris 11月月更

什么样的vue面试题答案才是面试官满意的

bb_xiaxia1998

Vue

Java高效找出两个大数据量List集合中的不同元素

共饮一杯无

Java List 11月月更

快速搭建Jenkins集群

程序员欣宸

DevOps jenkins 11月月更

湖仓一体电商项目(五):内网穿透工具-网云穿

Lansonli

湖仓一体 11月月更

令人头秃的js隐式转换面试题,你能做对吗

loveX001

JavaScript

OKR之剑·实战篇02:OKR执行前的热身准备

vivo互联网技术

团队管理 OKR 目标管理

带你实现react源码的核心功能

goClient1992

React

【选型攻略】MLCC选型,要注意些什么?易学易用

元器件秋姐

元器件选型 MLCC选型 元器件选型攻略 元器件电商平台

从React源码来学hooks是不是更香呢

goClient1992

React

【LeetCode】字符串轮转Java初学者题解

Albert

算法 LeetCode 11月月更

湖仓一体电商项目(四):项目数据种类与采集

Lansonli

湖仓一体 11月月更

手写一个Redux,深入理解其原理-面试进阶

beifeng1996

React

4.NLP领域任务如何选择合适预训练模型以及选择合适的方案【规范建议】【ERNIE模型首选】

汀丶人工智能

nlp 11月月更

CSS学习笔记(三)

lxmoe

CSS 前端 学习笔记 11月月更

Web组态软件之Sovit2D组态可视化编辑器

2D3D前端可视化开发

组态软件 web组态 组态编辑器 工业组态软件 web组态软件

从这两道题重新理解,JS的this、作用域、闭包、对象

loveX001

JavaScript

JavaScript-防抖

格斗家不爱在外太空沉思

JavaScript 前端 11月月更

互联网+背景下企业客户服务的创新之路

Baklib

【docker】软链接迁移docker碰到的问题

非晓为骁

Docker 迁移

黑客“劫持”了一颗卫星,用它直播黑客大会和放电影

博文视点Broadview

阿里云日志服务SLS携手观测云发布可观测性解决方案,共建可观测应用创新

TalkingData

阿里云 可观测 存储上云 日志服务 sls

从React源码角度看useCallback,useMemo,useContext

goClient1992

React

List集合和其子类ArrayList、LinkedList

共饮一杯无

Java 集合 11月月更

JavaScript-节流

格斗家不爱在外太空沉思

JavaScript 前端 11月月更

腾讯前端二面常考react面试题总结

beifeng1996

React

随机森林-随机森林在乳腺癌数据上的调参

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

京东前端经典react面试题合集

beifeng1996

React

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

Facebook 新研究:使用CNN将任何2D照片转换为3D_AI&大模型_Facebook 博客_InfoQ精选文章