LeviTor:蚂蚁集团开源3D目标轨迹控制视频合成技术,能够控制视频中3D物体的运动轨迹

简介: LeviTor是由南京大学、蚂蚁集团等机构联合推出的3D目标轨迹控制视频合成技术,通过结合深度信息和K-means聚类点控制视频中3D物体的轨迹,无需显式的3D轨迹跟踪。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 技术背景:LeviTor结合深度信息和K-means聚类点控制视频中3D物体的轨迹,无需显式的3D轨迹跟踪。
  2. 主要功能:精确操控物体运动、增强创意应用、简化用户输入、自动提取深度信息和物体掩码。
  3. 应用场景:适用于电影特效、游戏动画、虚拟现实、增强现实和广告视频制作等多个领域。

正文(附运行示例)

LeviTor 是什么

公众号: 蚝油菜花 - LeviTor

LeviTor是由南京大学、蚂蚁集团、浙江大学等机构联合推出的图像到视频合成技术。该技术结合了深度信息和K-means聚类点,能够控制视频中3D物体的轨迹,而无需显式的3D轨迹跟踪。LeviTor使用高质量的视频对象分割数据集进行训练,能够有效捕捉复杂场景中的物体运动和交互。

通过用户友好的推理流程,LeviTor简化了3D轨迹输入,使得视频生成技术更加先进和易用。它的引入为3D物体轨迹控制铺平了道路,拓宽了创意应用的范围,适用于更广泛的用户群体。

LeviTor 的主要功能

  • 精确操控物体运动:在从静态图像生成视频时,精确控制物体的运动轨迹。
  • 增强创意应用:基于3D轨迹控制,拓宽视频合成的创意应用范围。
  • 简化用户输入:用户可以通过简单的2D图像上的绘制和深度调整输入3D轨迹,降低技术门槛。
  • 自动提取深度信息和物体掩码:系统自动从图像中提取深度信息和物体掩码,减少用户操作。
  • 交互式轨迹绘制:用户可以交互式地绘制物体轨迹,系统将其解释为3D路径。

LeviTor 的技术原理

  • K-means聚类:对视频对象掩码(mask)的像素进行K-means聚类,得到一组代表性的控制点。
  • 深度信息融合:深度估计网络DepthAnythingV2预测相对深度图,并在每个控制点采样深度,为控制点增添深度信息。
  • 控制信号构建:结合2D坐标和估计的深度值,构建控制轨迹,轨迹作为视频扩散模型的控制信号。
  • 视频扩散模型:将控制信号输入到视频扩散模型中,生成与3D轨迹对齐的视频。
  • 用户友好的推理流程:设计用户友好的交互系统,用户通过点击和调整深度值输入3D轨迹。

如何运行 LeviTor

环境设置

  1. 克隆仓库

    git clone https://github.com/qiuyu96/LeviTor.git
    cd LeviTor
    
  2. 下载并解压检查点
    创建checkpoints目录并下载相关检查点文件:

    mkdir checkpoints
    cd checkpoints
    

    下载以下文件:

确保所有检查点文件位于checkpoints目录下:

checkpoints/
|-- sam_vit_h_4b8939.pth
|-- depth_anything_v2_vitl.pth
|-- stable-video-diffusion-img2vid-xt/
|-- LeviTor/
    |-- random_states_0.pkl
    |-- scaler.pt
    |-- scheduler.bin
    |-- controlnet/
    |-- unet/
  1. 创建环境

    conda create -n LeviTor python=3.9 -y
    conda activate LeviTor
    
  2. 安装依赖包

    pip install -r requirements.txt
    
  3. 安装pytorch3d

    pip install "git+https://github.com/facebookresearch/pytorch3d.git"
    
  4. 安装gradio

    pip install gradio==4.36.1
    
  5. 运行LeviTor

    python gradio_demo/gradio_run.py \
    --frame_interval 1 \
    --num_frames 16 \
    --pretrained_model_name_or_path checkpoints/stable-video-diffusion-img2vid-xt \
    --resume_from_checkpoint checkpoints/LeviTor \
    --width 288 \
    --height 512 \
    --seed 217113 \
    --mixed_precision fp16 \
    --enable_xformers_memory_efficient_attention \
    --output_dir ./outputs \
    --gaussian_r 10 \
    --sam_path checkpoints/sam_vit_h_4b8939.pth \
    --depthanything_path checkpoints/depth_anything_v2_vitl.pth
    

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
监控 数据可视化 项目管理
CM模式是什么?如何应用?
CM 模式(Construction Management)即建设管理模式,起源于20世纪60年代的美国,通过专业的建设管理团队在项目早期介入,优化设计方案,协调各方资源,有效提升项目质量和进度控制。该模式已广泛应用于各类建筑工程,并不断创新发展,适应数字化、绿色建筑及国际化需求。未来,CM模式将继续推动建筑行业的进步。
2186 2
|
SQL 前端开发 Oracle
mysql合并查询(多张表) union 和 union all
简介 小序 :今天写首页动态业务的时候,用到了两张表,还需要分页查询,刚开始以为需要关联查询,后来发现关联的话不会放到一个实体,然后我就上网找方法,然后发现了一个我没学过的sql语句union,union all,卧槽 还是得好好学习啊,前端我想学,mysql我想学,真的时间不够用啊,还得给学弟学妹拍趣味编程课看的视频,真的是烦啊! 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
2080 1
mysql合并查询(多张表) union 和 union all
|
9月前
|
JSON API 数据安全/隐私保护
拼多多商品详情 API 的 5 个 “潜规则”
拼多多商品详情API坑多细节杂:13位商品ID、签名拼接无尾&、规格需自行组合、价格分拼团/单买。本文亲历踩坑,详解签名生成、规格解析代码,助你避坑提效,轻松对接PDD接口开发。
|
Web App开发 移动开发 JavaScript
探索浏览器内核:理解网络世界的幕后英雄
探索浏览器内核:理解网络世界的幕后英雄
|
域名解析 缓存 网络协议
DNS解析过程详解
【10月更文挑战第11天】 DNS(域名系统)解析过程是将域名转换为IP地址的关键步骤。客户端输入域名后,本地DNS服务器先检查缓存,如有记录则直接返回IP地址;否则依次向根DNS服务器、顶级域名服务器和权威DNS服务器查询,最终获取并缓存IP地址,返回给客户端,实现域名解析。这一过程确保了用户通过域名方便访问互联网资源。
1434 59
|
机器学习/深度学习 人工智能 监控
AI视频监控技术的核心优势与实践
AI视频监控技术结合了计算机视觉、深度学习和大数据分析,能够实时分析监控画面,识别异常行为和场景变化。其核心在于从“被动记录”转型为“主动识别”,提升监控效率并减少安全隐患。主要应用场景包括泳池管理、健身器械区域、人员密度预警和异常事件检测。系统架构支持多种摄像头设备,采用边缘计算和Docker部署,具备实时性、高准确率和扩展性等优势。未来将优化复杂场景适应性和实时计算负载,进一步提高系统性能。
3750 7
|
测试技术 API Android开发
Android 性能测试初探 (一)
Android 性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试;一类为应用的性能测试。
370 4
Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启ZK服务 bin/zkServer.sh restart 连接服务器 zkCli.sh -server 127.0.0.1:2181   8.2 客户端连接 运行
14732 1
|
数据库 索引
Elasticsearch索引别名:管理与优化数据访问
Elasticsearch索引别名:管理与优化数据访问
543 2
|
持续交付 Python
解决Python执行命令时路径空格引发的困扰
在Python编程中,执行含空格的系统路径可能导致命令执行失败。本文介绍了三种解决方法:1) 使用引号包裹路径;2) 转义空格字符;3) 利用`os`模块的`normpath`或`join`处理路径。推荐使用`subprocess`模块以获得更精确的命令控制。最佳实践包括避免路径空格、使用`os.path.join()`构建路径及充分测试。

热门文章

最新文章