CVPR‘2023 | 港科大 & 腾讯 AI Lab & 港大联合出品:有趣的动态 3D 场景重建

简介: CVPR‘2023 | 港科大 & 腾讯 AI Lab & 港大联合出品:有趣的动态 3D 场景重建

640.png

Title: 3D Video Loops from Asynchronous Input

Paper: https://arxiv.org/abs/2303.05312

Code:  https://github.com/limacv/VideoLoop3D

导读

开局一张图,内容全靠写:

3D Video Loop Demo

其实上面原本是一组异步多视图视频,为图省事,小编这里直接截了个图。本文提出了一个pipeline有效的构建出一个新颖的 3D 循环视频表示,其中图(a)是由一个静态纹理图集、一个动态纹理图集和多个作为几何代理的图块组成;而图(b)和图(c)则分别显示了此 3D 视频循环允许相应的视图和时间控制和在移动设备上进行实时呈现。

此外,有兴趣的同学可以直接访问项目主页[1]观看。如果想直接体验试玩 Demo 的小伙伴也可以直接访问这个地址[2]。打开来大概是这样子:

Just funny!

其中,左上角是实时参数显示,右上角可选配置,大家可以根据自己喜好调节。需要注意⚠️的是:

首先,点开网页后是一个实时渲染的动态的3D的视频,严格意义上来说是2.5D?各位小伙伴可以通过手指拖动或鼠标滑动来实时改变视角;

其次,在宽屏下体验更加,在手机上可以将手机横屏然后刷新一下网页;

最后,由于本项目是托管在Github页面上,所以加载起来可能比较慢(取决于你的设备)并伴随一丝闪烁,不过这都属于基操,大可不必担心。

下面就让我们一起跟随作者的视角和讲解一起进入今天的学习吧!

论文简介

本文主要提出了一种能从不同步的多目视频中重建出一个 3D 的动态循环视频方法,同时应用了一种能较好的压缩 3D 视频的场景表示,且能够做到在手机端实时渲染出来!

目前代码和数据集均已开源,感兴趣的朋友们帮忙多多点个star,感谢大家的关注!

在正式深入具体方法之前,有必要向大家阐明几个基础概念。

什么是 3D 视频?

3D 视频本意上是指会动的三维场景或者可以在任意视角下看的三维视频。注意,这个跟大家耳熟能详的那种 3D 电影还是有区别的,因为 3D 电影的视角其实只有两个,即左眼和右眼。

什么是 3D 循环视频?

3D 循环视频是指在 3D 视频基础上,整成一个循环视频(looping video)。此处循环的意思是从视频最后一帧切换到第一帧时,肉眼看不出明显的切换痕迹。这样做有一个明显的好处,那便是对于本身就接近循环的场景而言,我们只需要一段短视频,就可以源源不断的生成无穷无尽的视频。

它的具体应用有哪些呢?比如用于一些网页的teaser配图甚至是当作一些虚拟背景,例如虚拟会议的背景,VR 应用的背景等等。

什么是不同步的多目视频?

这其实是一个不严格的定义,对于这个方法的输入而言,我需要在不同视角下拍一段视频,每一段视频需要基于同一视点(可以简单的理解为相机位姿不变),但是不同视角的视频可以不同步,即可以用一个相机分别在不同的视角拍摄,像这种完全不同步的数据本文方法也是可以handle得住的。

相关工作

构建2D循环视频

这其实是个比较小众的方向。之前的方法大致的做法是输入一个视角不变的视频,相当于我们有  的一个视频;随后,我们通过优化方法得到每个像素位置的最佳循环,即对于  个像素,每个位置在  帧中取出一个较好的循环片段,这个片段的结尾和开头的差别不能太大。最后,我们便能重新组合出一个新的视频。此外,通过利用一些blending的操作,我们还能够吧一些不太连续的视频片段变得看起来像连续的。

感兴趣的童鞋可以看下这篇论文[3]

3D 视频表示

其实 3D 视频本身就是一个发展中的方向,因为即使对于静态场景而言,重建出比较好的 3D 视觉表示也是一件比较困难的事情。其次,对于动态视频而言,又增加了一个维度,所以会导致问题难上加难。

最近有几个用NeRF来重建3D视频的工作,都非常不错,之后有时间来系统整理一下这方面的工作。但是这篇文章没有用NeRF,或者TensorRFTriplaneNGPNeRF-like的 3D 场景表示,主要是因为NeRF的训练非常占显存!特别是如果在训练过程中一次性训练一个大的video patch,对于NeRF-like的场景表示来说GPU memory占用是不可想像的。作者大致估算了下,如果用NeRF来优化本文中的方法,需要大概6TB的显存,直接Go die~~~

MPI 场景表示

Multiplane Image,意指多层图像。这篇文章的 3D 视频表示,是基于MPI的,就是看中它渲染和优化都比较快。它的原理其实十分简单,看下图就能一眼看懂。简单理解就是分布在视锥体下的一层一层图片,每一层图片带有一个透明度的alpha通道。这样渲染的时候只要从远到近,开启alpha-blending就可以得到最终的结果。

MPI 场景表示

方法

MTV场景表示

前文中提到本文方法是基于MPI的原理。但这里存在一个问题:如果我们非常直接的将MPI拓展到动态视频,它将会占用非常大的存储资源。举个例子,对于 32 层的 MPI,有 60 帧视频,图像分辨率为 640 x 360,那么将需要  个浮点字节来存储这个表示。

因此本文提出了Multi-tile Video,该想法非常好理解,就是我们把这些plane给细分成一个个tile,对于静态的部分来说,我只需要存储一个tile;对于空的tile来说,直接扔掉就可以了。如此一来,只有对于动态的场景来说,我才需要每帧存储一个tile。读到这里,确实有种大道至简的感觉!

3D 循环视频优化

有了场景表示,我们就可以通过输入的多目视频对其进行优化。此处,我们采用了和NeRF类似的优化方法:Analysis-by-synthesis,即通过可微分渲染得到结果,与输入做loss之后将error的梯度回传到表示本身。这里,应用了一个两阶段的训练方法,如下图所示:

第一阶段

首先优化一个静态的MPI。我们从输入计算得到长时间曝光的图片以及静态与否的一个Mask,经过刚刚所述的优化方法可以得到两样装备,即静态的 MPI 以及 3D 的静态与否的一个 Mask。有了这两样东西,我们就可以对我们的 MPI 进行 tile 的划分以及取舍了。

具体的操作方法其实也很直观:

  1. 将每个plane划分成规律的tile
  2. 对于每一个tile,找到它里面最大的透明度,最可能是动态的Mask
  3. 根据这两个值来判断是否将当前tile丢弃,或者将它设为静态tile

这样一来,我们便能获得了一个完整的MTV表示。

第二阶段

此阶段可开始优化动态的MTV。如上所述,基于同样的优化方法,我们将每一个iteration渲染一个视频patch,然后与输入求loss。值得关注的是,此处我们新提出的一个looping loss,该方法受此篇文章[4]启发。具体的思想参照下图:

looping loss

为了计算这个loss,我们首先对每个pixel对位置采取同样的策略。对于每一个像素位置,我们先在输入视频和生成视频的时序上提取所有的3D patch。其次,对于这两组3D patch,我们会计算一个相似性分数;最后,我们再对最相似的两个patch进行一个简单的MSE的计算,然后把所有3D patch对的MSE加起来,就得到了我们的looping loss

需要注意的是,在提取patch的时候,我们要提取的应该是最终循环视频的patch。换句话说就是有无限多的patch需要提取,这显然是不现实的,但是根据上图我们可以看到,其实只要对生成的短视频加上几帧pad,提取出来的patch就和原来无限多patch的分布是一样的。惊不惊喜,意不意外?

效果

更多 Demo 请上项目主页查看。

局限性

  • 合成结果仍然会包含一些伪影,即本不应该出现但却出现的东东;
  • 它无法对复杂的视图相关效果进行建模,例如非平面镜面反射;
  • 本文假设场景具有循环模式,这最适合流水和摇曳的树木等自然场景。然而,如果场景不可循环,所提方法将会失败,因为每个视图都有完全独特的内容;
  • 使用的 MTV 表示实际上是 2.5D 表示,仅支持具有窄基线的合成新颖视图。

总结

本文提出了一种实用的解决方案,用于在给定完全异步多视图视频的情况下构建 3D 循环视频表示。实验验证了所提方法的有效性,并证明在几个基线上质量和效率有了显着提高。作者希望这项工作将进一步推动对动态 3D 场景重建的研究。

目录
相关文章
|
9天前
|
人工智能
AnchorCrafter:中科院联合腾讯推出的AI虚拟主播带货视频制作技术
AnchorCrafter是由中科院和腾讯联合推出的一项AI虚拟主播带货视频制作技术。该技术基于扩散模型,能够自动生成高保真度的主播风格产品推广视频,通过整合人-物交互(HOI)技术,实现对物体外观和运动控制的高度还原。AnchorCrafter在物体外观保持、交互感知以及视频质量方面优于现有方法,为在线广告和消费者参与提供了新的可能性。
97 30
AnchorCrafter:中科院联合腾讯推出的AI虚拟主播带货视频制作技术
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
|
8天前
|
人工智能 vr&ar
GeneMAN:上海AI Lab联合北大等高校推出的3D人体模型创建框架
GeneMAN是由上海AI实验室、北京大学、南洋理工大学和上海交通大学联合推出的3D人体模型创建框架。该框架能够从单张图片中生成高保真度的3D人体模型,适用于多种应用场景,如虚拟试衣、游戏和娱乐、增强现实和虚拟现实等。
29 7
GeneMAN:上海AI Lab联合北大等高校推出的3D人体模型创建框架
|
13天前
|
人工智能 编解码 BI
LEOPARD:腾讯AI Lab西雅图实验室推出的视觉语言模型
LEOPARD是由腾讯AI Lab西雅图实验室推出的视觉语言模型,专为处理含有大量文本的多图像任务设计。该模型通过自适应高分辨率多图像编码模块和大规模多模态指令调优数据集,在多个基准测试中表现卓越,适用于自动化文档理解、教育和学术研究、商业智能和数据分析等多个应用场景。
31 2
LEOPARD:腾讯AI Lab西雅图实验室推出的视觉语言模型
|
6天前
|
机器学习/深度学习 人工智能 JSON
【实战干货】AI大模型工程应用于车联网场景的实战总结
本文介绍了图像生成技术在AIGC领域的发展历程、关键技术和当前趋势,以及这些技术如何应用于新能源汽车行业的车联网服务中。
|
14天前
|
机器学习/深度学习 人工智能 Python
MuCodec:清华、腾讯AI、港中文共同推出的超低比特率音乐编解码器
MuCodec是由清华大学深圳国际研究生院、腾讯AI实验室和香港中文大学联合开发的超低比特率音乐编解码器。它能够在0.35kbps至1.35kbps的比特率下实现高效的音乐压缩和高保真重建,适用于在线音乐流媒体服务、音乐下载、语言模型建设等多个应用场景。
31 1
MuCodec:清华、腾讯AI、港中文共同推出的超低比特率音乐编解码器
|
1天前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
17天前
|
人工智能 自然语言处理 算法
【AI问爱答-双十一返场周直播】AI产品专家直播解读重点AI应用场景怎么用?
阿里云【AI问爱答】栏目强势回归,11月25日至28日每晚19:00,连续四天直播,涵盖AI营销、企业办公、社交娱乐及大模型推理调优四大主题,助您深入了解AI应用,解决实际问题。欢迎预约观看!
|
17天前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
51 4
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,涵盖AI系统的初步设计原则,并深入探讨了AI在计算机视觉、自然语言处理和音频处理三个领域的具体应用。同时,文中还介绍了AI在金融、医疗、教育、互联网及自动驾驶等行业中的广泛应用,强调了AI基础设施的重要性及其对企业竞争力的影响。通过阅读本文,读者不仅可以获得系统的AI知识,还能激发对AI系统研究的兴趣,掌握相关的设计原则与方法。
47 1