谷歌预测景深新研究:即使相机人物都在动,单一视点也能合成3D深度图
铜灵 发自 凹非寺
量子位 出品 | 公众号 QbitAI
一个你边走边拍得到的普通视频,现在也能重建出精准的3D世界了。
这一次,谷歌用深度学习的方法,不仅从视频中重建了移动对象的景深图,而且效果精准惊艳。即使拍摄相机和人物同时在运动,也能很好重建景深图。
输入这样的视频:
就能输出这样的3D景深版:
谷歌在博客中表示,这是世界首个在摄像机和人体同时运动情况下的深度学习景深预测算法,优于制作深度图的最先进工具。
半天时间,推特有近千次的点赞,网友表示:“超级酷”。
研究论文也被CVPR 2019 接收,脱颖而出成为一篇Oral论文。
学习先验
让网友high起来的点在于,传统的创建景深图的方法,需要至少两个视点同时捕捉影像。通过两个不同的视角在同一时间段的变化轨迹,才能拼接重建出3D的影像。
就像下面这样:
而谷歌的这项研究,只需要用一个视点的影像即可预测位置关系进行重建,比传统方法简化了不是一星半点,变成了下面这样:
在论文Learning the Depths of Moving People by Watching Frozen People中,研究人员介绍了具体的设计细节。
和传统方法最大的改进在于,谷歌的新方法可以用深度学习,从数据中学习人体姿态和形状的先验知识,避开了直接的3D三角测量(3D triangulation)。
这个模型应该如何去构建?
如何获取训练数据是摆在前面的第一个问题,在这个数据集中,需要移动的摄像机拍摄的自然场景视频,以及精确的深度图。这样的数据集,似乎在谷歌家族产品中就能找到。
研究人员选取了YouTube上关于#假人挑战#(Mannequin Challenge)话题的数据,在这种类型的视频中,被拍摄者需做出一个定格动作,且要表现与人体模型一样静止不动,并由摄影师透过移动镜头的技巧进行拍摄:
有了这些数据,再利用多视角立体( Multi-View Stereo,MVS)算法,就可以获取到包含其中人物在内整个场景的深度图了。
△ 合成景深图流程
搞定数据集后,第二个问题来了,如何能在人物和摄像机同时移动的情况下构建景深图呢?
此前,谷歌在展示过在Pixel 3手机中,通过单目摄像头确定景深图的研究。但在这个项目中,只有手机镜头在动,被拍摄的人静止。
但这个研究的难度显然升级了。
研究人员针对视频中的单个帧,单独进行深度推断。他们计算了视频中每一帧和其他帧之间的2D光流(2D optical flow),用来表示两帧之间的像素位移。
为了在测试时处理移动的人物,他们采用了人像分割网络( human-segmentation network)来掩盖初始深度图中的人类区域。整个网路的完整输入包括:
RGB图像
人物mask
来自视差的mask深度图
此外,通过学习人类姿态和人体形状的先验,研究人员细化了景深图中各种细节。
经过大量训练后,这个模型可以处理任意相机位置和人体运动的自然视频。
研究人员将这个新模型与此前DORN DeMoN等类似算法进行了测评对比,结果如下:
此外,除了合成景深图,这个新模型还能应用到将合成的CG对象插入到视频场景中。
结果显示,即使晃动摄像机改变其位置,也能用视频其他帧的像素填充人物后面的背景区域。
传送门
谷歌官方博客:
https://ai.googleblog.com/2019/05/moving-camera-moving-people-deep.html
论文地址:
https://arxiv.org/abs/1904.11111
作者系网易新闻·网易号“各有态度”签约作者
— 完 —
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点「在看」吧 !
推荐帖子
- TI超低功耗方案催生TWS真无线
- TWS(TrueWirelessStereo,真无线立体声)蓝牙耳机是近年来异常火热的音频产品。它借助蓝牙芯片,先将手机与主耳机建立无线连接,再建立起主耳机和副耳机的无线通讯,从而完全摒弃了传统耳机间的线材连接,极大地方便了用户的使用。另外,主耳机是可以单独使用的,完全能够胜任现有市场上的单颗蓝牙耳机的应用需求,使用功能非常强大。因此自从2016年9月苹果发布第一款TWS耳机——Airpods以来,市场反响就非常热烈,后续音频厂商见此迅速跟进,扎堆布局TWS蓝牙耳机
-
EEWORLD社区
TI技术论坛
- 基于机智云平台和ESP8266开发智能灯
- 智能灯,是一个简单常见的智能产品,硬件电路简单,程序本身也不复杂;下面我们使用esp8266开发板和机智云云端,实现如何将一个传统的灯泡,改造成可以远程控制开关的智能灯。本案例原理简单、制作成本低,适合所有具备嵌入式基础的开发者[1、准备工作]1、准备工作硬件:(1)esp8266开发板(2)usb线软件:(1)esp8266开发环境eclipseIDE(2)Vmwave虚拟机linux[2、开始开发]2.1注册开发者账号机智云开发者账号,用于产品接入、设备管
-
z3512641347
51单片机
- NanoBoard 3000系列入门
- NanoBoard3000来啦~~想快速入门吗?请见pdf下载~NanoBoard3000系列入门
-
520spxiong
PCB设计
- 【抢楼赢礼】聊聊我用过的MOSFET!
- 本期是MOSFET主题月!一起SHOW曾经用过的MOSFET!一起聊聊用过的型号及用在哪些地方!一起说说关于MOSFET的使用心得!活动日期:即日起--8月31日参与方式:1、EEWORLD所有会员均可参与;2、逢3的倍数楼层,即可获得电子工程词典(送完30本为止);3、如单纯灌水或没有实际内容,则视为无效楼层,连续发帖不能超过5贴;【抢楼赢礼】聊聊我用过的MOSFET!
-
EEWORLD社区
分立器件
- F280049C CAN_ex3 问题
- 我开发版使用f28004xlaunchpad,想使用can_ex3_external_transmit,改500kps跟外接CAN通讯。以下是我的问题1.为何examplecodesetGPIO30andGPIO31,而不是GPIO33andGPIO32。如果我没办法用那我要如何使用GPIO33andGPIO32,因为开发版上已经有做好CAN架构。2.官方给的CAN_setBitRate()运算bandrate是有误差,所以我直接改CAN_s
-
4896416
微控制器 MCU
- 【米尔MYB-YT507开发板试用体验】tkinterLable学习
- 原来用的PyQtPyside2比较多,这里跟大家一起学习一下Tkinter的界面PythonGUI之tkinter窗口视窗教程大集合(看这篇就够了)-洪卫-博客园(cnblogs.com)。1、打开vscode新建.py文件 #!/usr/bin/envpython #_*_coding:utf-8_*_ #quthorlugl importtkinterastk#使用Tkinter前需要先导入#第1步,实例化object,建立窗口windo
-
lugl4313820
国产芯片交流