当前位置: 首页 > news >正文

Anything in Any Scene:无缝融入任何场景,实现逼真视频对象插入技术

 人工智能咨询培训老师叶梓 转载标明出处

现实世界的视频捕获虽然因其真实性而宝贵,但常常受限于长尾分布的问题,即常见场景过度呈现,而关键的罕见场景却鲜有记录。这导致了所谓的"分布外问题",在模拟复杂环境光线、几何形状或达到高度逼真效果方面存在局限。传统的视频收集和编辑方法在解决这些限制时常常是不切实际或成本过高。来自小鹏汽车公司的研究团队提出了"Anything in Any Scene"框架,它能够将任何对象无缝插入现有动态视频中,同时强调物理真实性。

模拟视频帧中的错误估计光照环境、错误的对象放置位置和不真实的纹理风格的例子

框架

“Anything in Any Scene”框架

Figure 2 框架是为了实现逼真的视频对象插入而设计的。这个框架包含几个关键组件,它们协同工作以确保插入的对象在目标视频中既真实又和谐。

资产库构建:首先,需要构建场景视频和对象网格的资产库。这包括使用视觉数据查询引擎来检索相关的视频片段,以及利用Houdini Engine和NeRF技术生成对象的3D网格模型。

对象放置与稳定化:框架中的一个核心部分是确定对象在视频中的正确位置,并确保它在连续帧中稳定存在。这涉及到考虑场景中其他对象的遮挡,并使用光流跟踪来优化对象在视频中的运动轨迹。

光照估计与阴影生成:为了增强现实感,框架需要准确估计场景中的光照条件,并为插入的对象生成逼真的阴影。这包括使用HDR全景图像重建技术和3D图形应用程序来渲染阴影。

风格迁移网络:为了最大化视频输出的逼真度,框架采用了风格迁移网络来细化视频输出。这个网络可以调整插入对象的风格,使其与背景视频的风格一致,从而提高整体的视觉效果。

结果验证:通过人类评分和FID评分对生成的视频进行评估,确保视频的逼真度和质量。

资产库构建

创建和管理一个包含丰富场景视频和对象网格的资产库是实现高质量视频合成的前提。资产库的构建涉及两个核心技术:视觉数据查询引擎的开发以及对象网格的生成。视觉数据查询引擎利用视觉词汇袋方法,通过语义分割和特征提取,快速检索与特定视觉描述符相匹配的视频片段。而对象网格的生成则通过Houdini Engine和基于Neural Radiance Fields (NeRF)的重建技术,生成具有高度逼真物理特性和复杂几何结构的对象模型。这些技术的结合,为视频中的对象插入提供了必要的资源和工具,确保了合成视频的几何真实性、光照真实性和照片级真实性。

对象放置与稳定化

在构建逼真视频对象插入框架中,对象放置和稳定化是确保对象与背景视频无缝融合的关键步骤。首先,对象放置需要确定视频中每一帧的插入位置,这涉及到对场景的深入理解,包括场景中已有对象的位置和潜在的遮挡关系。通过使用语义分割技术,系统能够识别出场景中哪些区域适合放置新对象,从而避免不自然的遮挡现象。

为了实现对象的稳定化,系统采用了光流跟踪技术来分析连续帧之间的像素级运动。通过这种方式,系统能够预测对象在后续帧中的位置,确保对象在视频播放过程中的运动看起来自然流畅。此外,还需要对摄像机的旋转和平移进行优化,以减少由于视角变化导致的投影误差。

在实际操作中,系统首先在参考帧中确定对象的初始位置,通常是将对象放置在世界坐标系的原点,即摄像机的位置。然后,利用摄像机的内参矩阵和每帧的摄像机姿态,将这个位置投影到像素坐标系中。接下来系统会评估场景的语义分割掩模,以确保选择的放置点不会与场景中其他对象发生遮挡。

最后通过优化算法调整摄像机姿态,确保在连续帧中对象的放置点能够与光流跟踪结果相匹配,从而实现对象在视频中的稳定显示。这个过程需要综合考虑多个因素,包括场景的3D结构、摄像机的运动以及对象与场景元素之间的相对位置,以确保最终的视频效果既逼真又连贯。

驾驶场景视频的对象放置示例。第一帧视频、估计的分割掩模以及3D场景中的对象放置位置

光照估计与阴影生成

在视频对象插入过程中,光照估计和阴影生成对于实现逼真渲染至关重要。为了确保插入的对象在视觉上与场景融为一体,系统必须准确模拟场景中的光照条件。这包括对天空和环境光照的高动态范围(HDR)图像进行重建,以便捕捉场景中光照的细微差别。

系统使用图像修复网络来推断全景天空图像,填补由于相机视野限制而缺失的部分。通过天空HDR重建网络,将全景天空图像转换成HDR格式,从而更准确地表示太阳和天空的亮度分布。此外,系统还采用LDR到HDR的转换网络,从场景的低动态范围(LDR)侧视图图像中恢复HDR环境图像,这些图像随后被无缝拼接成一个完整的HDR全景环境图像。

原始天空图像、重建的HDR图像及其相关的太阳光照分布图

通过结合HDR天空图像和环境图像,系统能够为插入的对象生成一致且逼真的光照效果。此外,系统还利用估计出的HDR天空图像来渲染对象的阴影,使用3D图形应用程序Vulkan来实现高效的计算和逼真的渲染效果。阴影的准确渲染对于增强对象的三维感和场景的一致性至关重要。

为插入对象生成的阴影的例子

在这个过程中,系统需要考虑光源的位置、强度和颜色,以及它们如何与场景和插入的对象相互作用。通过这种方式,无论场景是户外的自然光照环境还是室内的人工光照条件,系统都能够生成具有高度真实感的光照和阴影效果,使插入的对象在视觉上与背景视频无缝融合。

风格迁移网络

在对象放置和光照阴影生成之后,为了进一步提升视频的逼真度,"Anything in Any Scene" 框架采用了一种风格迁移网络来实现照片级真实感的视频输出。风格迁移技术的目标是调整插入对象的外观,使其与背景视频的风格和视觉特性相匹配,从而减少视觉上的不一致性。

风格迁移网络采用了由粗到细的机制,这涉及到两个网络:一个粗网络和一个细化网络。粗网络首先对前景对象进行初步的风格调整,生成一个大致的预测图像。这个预测提供了一个基础,但可能在细节上还不够精细。随后,细化网络在这个基础上进一步工作,利用扩张卷积层来增强图像的细节,生成最终的精细化结果。

在训练这些网络时,采用了Wasserstein生成对抗网络(WGAN)的损失函数,这有助于生成更加逼真和一致的图像。此外,为了提高训练的稳定性和效果,还引入了梯度惩罚项,这有助于网络更好地学习生成与真实图像分布一致的输出。

风格迁移网络的输入包括前景对象的图像、背景图像以及前景区域的分割掩模。通过这种方式,网络能够专注于前景对象,并有效地将其风格与背景融合。输出的是一个经过风格迁移处理后的图像,其中插入的对象在色彩、纹理和光照上与周围环境和谐统一,从而在视觉上实现了高度的真实感。

通过风格迁移,"Anything in Any Scene" 框架能够有效地解决模拟视频中可能出现的不真实感问题,如光照不一致、颜色偏差等,确保最终的视频输出在视觉上与真实捕获的视频难以区分。这种技术的应用不仅提升了视频数据增强的质量,也为虚拟现实、视频编辑和其他视频中心应用提供了强大的支持。

实验

作者采用了两种评估指标来量化生成模拟视频的质量:

Human Score:通过人类A/B测试来衡量,即测试参与者在比较两种方法结果时,更倾向于哪一种的比例。这提供了一个主观但直接的逼真度评估。

Frechet Inception Distance (FID):这是一种客观的度量,通过比较生成图像与真实图像分布之间的差异来评估生成图像的逼真度和多样性。FID得分越低,表示生成图像与真实图像越相似。

为了验证方法的有效性,作者使用了包括室内外场景视频数据集进行评估:

Outdoor Scene Video:使用了PandaSet数据集,这是一个多模态自动驾驶场景数据集,包含了不同时间和天气条件下的场景。

Indoor Scene Video:使用了ScanNet++数据集,这是一个大规模的室内场景数据集,由3D扫描真实环境创建。

作者对比了不同的风格迁移网络在他们的框架中的效果,包括基于CNN的DoveNet、基于transformer的StyTR2和基于扩散模型的PHDiffusion,以及他们自己提出的方法。实验结果显示,他们提出的风格迁移网络在FID得分上最低,人类评分最高,超越了其他替代方法。

使用PandaSet数据集的不同风格迁移网络对模拟视频帧的定性比较
在PandaSet数据集下,不同渲染条件下模拟视频帧的定性比较

不同风格迁移网络在“Anything in Any Scene”框架中的实验结果

为了评估框架中每个模块的有效性,作者进行了消融研究,逐个移除框架中的模块(如对象放置、HDR图像重建、阴影生成和风格迁移),然后评估性能变化。结果表明,移除任何一个模块都会降低视频的逼真度,尤其是在人类评分中更为明显。

“Anything in Any Scene”框架中模块消融分析的实验结果

作者还探讨了使用他们的框架生成的合成图像用于数据增强,以改善长尾分布问题。他们在CODA数据集上进行了评估,这是一个包含1500个真实世界驾驶场景和30多个对象类别的数据集。实验结果表明,使用增强数据集训练的模型在所有类别上的平均精度(mAP)有所提高。

使用原始CODA数据集图像与使用我们的“Anything in Any Scene”框架增强的图像训练的YOLOX模型的性能

通过这些详细的实验评估,证明了"Anything in Any Scene"框架不仅能够生成高质量的逼真视频,还能够通过数据增强提高下游任务(如目标检测)的性能。这些实验结果为该框架的有效性和应用潜力提供了有力的证据。

论文链接:https://arxiv.org/abs/2401.17509

相关文章:

Anything in Any Scene:无缝融入任何场景,实现逼真视频对象插入技术

人工智能咨询培训老师叶梓 转载标明出处 现实世界的视频捕获虽然因其真实性而宝贵,但常常受限于长尾分布的问题,即常见场景过度呈现,而关键的罕见场景却鲜有记录。这导致了所谓的"分布外问题",在模拟复杂环境光线、几何…...

安卓开发中的AppCompat框架|安卓系统|安卓应用|兼容性|UI组件|核心组件|ActionBar|Fragment|最佳实践|框架|移动开发|移动应用

目录 1. 什么是AppCompat框架 1.1 AppCompat的起源 1.2 AppCompat的重要性 2. AppCompat框架的核心组件 2.1 AppCompatActivity 2.2 AppCompat主题 2.3 AppCompat Widgets 3. 在项目中使用AppCompat框架 3.1 添加依赖项 3.2 应用AppCompat主题 4. AppCompat的高级功…...

React使用useRef ts 报错

最近在写自己的React项目&#xff0c;我在使用useRef钩子函数的时候发现 TS2322: Type MutableRefObject<HTMLDivElement | undefined> is not assignable to type LegacyRef<HTMLDivElement> | undefined Type MutableRefObject<HTMLDivElement | undefined&g…...

python-信息交互-pyautogui

python-信息交互-pyautogui 一: pyautogui1> waht?2> 功能分类3> 概念及作用二: 通用功能1> function all2> function 注释三: 鼠标控制1> mouse functions2> mouse functions demo3> mouse drag demo四: keyboard控制1> keyboard functions2> …...

flink1.18 编译遇到的问题

1. flink-runtime-web编译失败 源码编译时一直卡在 [INFO] Running ‘npm ci --cache-max0 --no-save’ in 处理方法&#xff1a; 修改flink-runtime-web/pom.xml文件 将<arguments>ci --cache-max0 --no-save ${npm.proxy}</arguments> 替换为&#xff1a;<a…...

2024年8月份编译Openwrt系统基础

概述&#xff1a; 本文档记录openwrt系统的编译过程&#xff0c;以备后续再用&#xff0c;技术支持与指导&#xff01; 1.编译环境 环境需要Linux&#xff0c;我使用的环境是WSL2、Ubuntu 20.04 2.安装编译必须的依赖&#xff08;wsl、linux&#xff09; WSL2&#xff1a;Bu…...

Vue3+vite+ts 项目使用mockjs

1、安装mockjs npm i mockjs 2、安装vite-plugin-mock npm i vite-plugin-mock -D 3、安装axios npm i axios 4.在src目录下创建mock文件夹,在文件夹内创建login.ts等文件&#xff0c;并在文件夹内放置以下内容&#xff08;注&#xff1a;URL要和真实请求地址保持一致&am…...

动态规划(二)——例题

目录 Help Jimmy 题目 解题思路 神奇的口袋 题目 枚举的解法 递归的解法 动态规划的解法 滑雪 题目 解题思路 解法一 解法二 Help Jimmy 题目 "Help Jimmy" 是在下图所示的场景上完成的游戏&#xff1a; 场景中包括多个长度和高度各不相同的平台。地面是…...

Node.js中判断是文件还是文件夹的多种方法

在Node.js中&#xff0c;我们经常需要判断一个路径是文件还是文件夹。Node.js提供了多种方法来实现这一功能&#xff0c;本文将详细介绍这些方法&#xff0c;并给出相应的示例代码。 一、使用fs.Stats对象 在Node.js中&#xff0c;fs模块提供了fs.stat()或fs.statSync()方法&…...

idea 如何打war包

idea 如何打war包 1.在IntelliJ IDEA中打包WAR文件&#xff0c;你可以按照以下步骤操作:1.设置项目结构:首先&#xff0c;打开IDEA&#xff0c;选择File>Project Structure(或使用快捷键CtrlAltShiftS)。在打开的窗口中&#xff0c;选择 Artifacts 选项 2.添加Web Applicat…...

米联客-FPGA程序设计Verilog语法入门篇连载-15 Verilog语法_跨时钟域设计

软件版本&#xff1a;无 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用所有系列FPGA 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑&#xff01; 1概述 本小节主要讲解Verilog语法的…...

gradio 对话界面实现支持图片、视频正常显示

参考: https://www.gradio.app/docs/gradio/chatbot 问题: gradio网页输出视频nan;图片webp显示不出来 解决方法:需要通过gradio的Video、Image包装 代码: 这里下面启动个后端vlm模型(参考:https://blog.csdn.net/weixin_42357472/article/details/141126225),前端通…...

催收业务怎么提高接通率

提高催收呼叫业务的接通率是一个综合性的任务&#xff0c;需要从多个方面进行优化。以下是一些具体的策略和建议&#xff1a; 一、优化呼叫时间与频次 1. 选择合适的呼叫时间&#xff1a;通过分析目标客户的活跃时段&#xff0c;选择他们最可能接听电话的时间进行呼叫…...

动态生成sitemaps和robots.txt文件:提升SEO与网站可爬性

本文由 ChatMoney团队出品 在现代Web开发中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是网站成功的关键因素之一。搜索引擎通过网络爬虫来索引网页&#xff0c;而sitemaps和robots.txt文件则是帮助这些爬虫更好地理解和索引网站内容的重要工具。 sitemaps简介 Sit…...

LeetCode 第二十五天 2024.8.12

1. &#xff1a;递增子序列 题目链接: 491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 应用条件&#xff1a;回溯 难点&#xff1a; 这道题的难点在于如何去重&#xff0c;肯定不能像我们在组合中去重那样对数组排序。而且我们是要对每一层进行去重&#xff0c;…...

Elasticsearch 全文查询详解

全文查询&#xff08;Full-Text Query&#xff09;是 Elasticsearch 中的核心功能之一&#xff0c;用于对非结构化文本数据进行高效检索。与结构化查询不同&#xff0c;全文查询不仅仅是简单的精确匹配&#xff0c;还包括对文本进行分析和处理&#xff0c;从而实现更复杂的搜索…...

20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡

df -h mount fdisk无效 20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡 2024/8/10 21:19 缘起&#xff1a;当时比较便宜96.9&#xffe5;/想看看256GB的TF卡的高速卡的效果&#xff0c;就在京东入手了3张三星的高速TF卡。最近在弄RK3588S&#xff0c…...

java基础进阶——log日志、类加载器、XML、单元测试、注解、枚举类

前言 这篇内容主要掌握的就是logback使用、理解类加载器、XML文件的编写&#xff0c;XML文档约束schema&#xff0c;用Dom4j解析XML文档&#xff0c;Xpath检索XML文档&#xff0c;完整使用Junit单元测试框架常用部分&#xff0c;注解的定义和使用&#xff0c;枚举类的定义和开发…...

《向量数据库指南》——控制Chatbot对话内容:Dopple AI的创新实践与用户体验优化

控制Chatbot对话内容:Dopple AI的创新实践与用户体验优化 在Chatbot技术日益成熟的今天,如何有效地控制对话内容,以满足用户多样化的需求,成为了开发者们关注的焦点。Dopple AI,作为一款先进的聊天机器人平台,通过其独特的交互设计和后端技术支持,为用户提供了前所未有…...

构建实时数据仓库:流式处理与实时计算技术解析

目录 一、流式处理 请求与响应 批处理 二、实时计算 三、Lambda架构 Lambda架构的缺点 四、Kappa架构 五、实时数据仓库解决方案 近年来随着业务领域的不断拓展&#xff0c;尤其像互联网、无线终端APP等行业应用的激增&#xff0c;产生的数据量呈指数级增长&#xff0c;对海量数…...

python算术表达式遗传算法

import random import operator import math# 定义可能的运算符和操作 ops {: ,-: -,*: *,/: /,sin: math.sin,cos: math.cos }# 随机生成一个表达式&#xff08;个体&#xff09; def generate_expression(depth0):if depth > 2: # 限制表达式的最大深度return str(rando…...

net.sf.jsqlparser.statement.select.SelectItem

今天一启动项目&#xff0c;出现了这个错误&#xff0c;仔细想了想&#xff0c;应该是昨天合并代码&#xff0c;导致的mybatis-plus版本冲突&#xff0c;以及分页PageHelper版本不兼容 可以看见这个我是最下边的 Caused by 报错信息&#xff0c;这个地方提示我 net .s…...

lua匹配MAC地址 正则表达式

LUA的正则表达式匹配很弱智&#xff0c;能不用lua就不要用lua。 %x表示十六进制数值 (%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)它不允许这样用&#xff1a; ((%x%x):){5}(%x%x)mac这还算好办&#xff0c;ipv4就难了&#xff0c;ipv6不可能&#xff0c;这样写下来那一串表达…...

Chainlit快速实现AI对话应用并将聊天数据的AWS S3 和 Azure Blob云服务中

自定义数据层 Literal AI 提供了最简单的方法来保存、分析和监控您的数据。 如果您正在考虑实现自定义数据层,请查看此处的示例以获取一些启发。 此外,我们非常希望看到社区主导的开源数据层实现并将其列在这里。如果您有兴趣做出贡献,请通过 Discord 与我们联系。 您需…...

浅谈性能优化(基于C++)

本文主要针对C的性能优化方法展开讨论。虽然这些方法也适用于一些其他语言&#xff0c;但由于C经常用于底层操作&#xff0c;提供了更多的优化空间&#xff1b;相比之下&#xff0c;诸如Python、Kotlin等高级语言由于其抽象程度更高&#xff0c;优化空间较少。 性能优化原理 …...

Python 报错:ModuleNotFoundError: No module named ‘Crypto‘

Crypto报错解决方案 Python 报错&#xff1a;ModuleNotFoundError: No module named Crypto前言问题解决方案 Python 报错&#xff1a;ModuleNotFoundError: No module named ‘Crypto’ 前言 Crypto是一个加密模块&#xff0c;它包含了多种加密算法&#xff0c;如 AES、DES、…...

UE(User Equipment) 和 UA(User Agent)

UE&#xff08;User Equipment&#xff09; UE 是 用户设备&#xff0c;这是一个泛指的术语&#xff0c;涵盖了所有类型的终端设备&#xff0c;例如手机、电脑、平板、智能手表等。这些设备可以连接到网络并进行通信。UE可以包含多种功能&#xff0c;包括对话&#xff08;语音…...

视觉SLAM ch3补充——在Linux中配置VScode以及CMakeLists如何添加Eigen库

ch3中的所有代码&#xff0c;除了在kdevelop中运行&#xff0c;还可以在VScode中运行。下面将简要演示配置过程&#xff0c;代码不再做解答&#xff0c;详细内容在下面的文章中。&#xff08;这一节中的pangolin由于安装过程中会出现很多问题&#xff0c;且后续内容用不到该平台…...

开关电源:优化电子产品中的能源使用

电压转换器是许多技术系统的支柱。根据应用的不同&#xff0c;所需的电源单元由变压器、整流器 AC/DC 转换器实现。当高性能开关电源尚未上市时&#xff0c;几乎只使用 50 Hz 变压器解决方案。 电源注意事项 电能几乎完全以三相电流的形式提供&#xff0c;系统电压为 10 ...3…...

Java语言程序设计——篇十三(2)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…...

郑州做旅游网站/百度账号是什么

104. 二叉树的最大深度 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 3/ \9 20/ \15 7返回它的最…...

大兴企业官网网站建设咨询/百度浏览器网址大全

RequestMapping如果不写method时 是默认支持get与post 如图所示进行测试 当指定post时 通过get请求会报错...

手机端的网站首页该怎么做/电脑培训学校哪家好

由于工作需要&#xff0c;需要搭建hadoopzookeeperhbasestormkafka集群准备了三台服务器&#xff08;一台8核32G内存300G硬盘充当master&#xff0c;一台8核16G内存300G硬盘充当slave01&#xff0c;一台816G500G硬盘充当slave02&#xff0c;并且都能上网&#xff09;&#xff0…...

网上接手袋做是哪一个网站/如何制作网址

php字符转json对象的方法发布时间&#xff1a;2020-07-08 10:36:42来源&#xff1a;亿速云阅读&#xff1a;76作者&#xff1a;Leah这期内容当中小编将会给大家带来有关php字符转json对象的方法&#xff0c;文章内容丰富且以专业的角度为大家分析和叙述&#xff0c;阅读完这篇文…...

web网站开发适合女生嘛/网站内部seo优化包括

导读&#xff1a;因为教程详细&#xff0c;所以行文有些长&#xff0c;新手边看边操作效果出乎你的预料。GitHub虽然有些许改版&#xff0c;但并无大碍。 一、Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。 工作原理 / 流程&#xff1a; Workspace&…...

培训做网站/网站管理工具

用c#操作Mongodb(附demo) 因为需要&#xff0c;写了一个基于泛型的helper&#xff0c;这样要使用起来方便一点。 为了大家也不重复造轮子&#xff0c;所以发出来希望能帮到谁。 复杂的查询最好用linq&#xff0c;这也是mongodb官方建议的。 mongodb的C#配置 这部分很多文章都提…...