VidTok:微软开源的视频分词器,能够将视频内容转换为视觉 Token

简介: VidTok 是微软开源的一款先进的视频分词器,支持连续和离散分词化,能够高效地将视频内容转换为视觉 Token,适用于多种应用场景。

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

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

原文链接:https://mp.weixin.qq.com/s/uQI_XVSuxyXZJB4OQ6UoIw


🚀 快速阅读

  1. 功能:VidTok 支持连续和离散分词化,能够高效压缩视频数据并保持高质量重建。
  2. 技术:采用混合模型架构和有限标量量化技术,提升训练稳定性和重建性能。
  3. 应用:适用于视频生成、视频内容高效建模和数据压缩等场景。

正文(附运行示例)

VidTok 是什么

公众号: 蚝油菜花 - vidtok

VidTok(Video Tokenizer)是微软开源的一款先进的视频分词器,通过高效的算法将视频内容转换成一系列“视频词”。它支持连续和离散分词化,具有灵活的压缩率和多样化的隐空间,适用于不同的应用场景。

VidTok 采用混合模型架构设计,结合了卷积层和上/下采样模块,以减少计算复杂度同时保持高质量重建。此外,VidTok 引入了有限标量量化技术,解决了传统向量量化中的训练不稳定性和码本崩溃问题。

VidTok 的主要功能

  • 视频分词化:VidTok 能将原始的高维视频数据(如图像和视频帧)转换为更为紧凑的视觉 Token。
  • 高效压缩:VidTok 在不同的压缩率设定下工作,能有效地压缩视频数据,同时保持视频质量。
  • 连续和离散分词化:VidTok 支持连续型和离散型两种分词化方法,适应不同的模型和应用需求。
  • 因果和非因果模型支持:VidTok 支持因果型和非因果型模型,因果模型只依赖历史帧进行 Tokenization,非因果模型则可以基于历史帧和未来帧信息。
  • 多样化的隐空间支持:VidTok 支持不同大小的隐空间,适应不同的视频压缩率和模型复杂度。
  • 高性能重建:VidTok 在多个视频质量评估指标上表现出色,包括 PSNR、SSIM、FVD 和 LPIPS,提供了高质量的视频重建。

VidTok 的技术原理

  • 高效的混合模型架构设计:VidTok 采用了经典的 3D 编码器-解码器结构,并创新性地结合了 3D、2D 和 1D 卷积,有效地解耦空间和时间采样。
  • 先进的量化技术:VidTok 引入了有限标量量化(FSQ)技术,是一种无需显式学习码本的量化方法,显著提高了模型的训练稳定性和重建性能。
  • 增强的训练策略:VidTok 采用分阶段训练策略,首先在低分辨率视频上对完整模型进行预训练,然后仅在高分辨率视频上微调解码器。

如何运行 VidTok

1. 克隆仓库并进入 VidTok 文件夹:

git clone https://github.com/microsoft/VidTok
cd VidTok

2. 使用 Conda 创建环境并激活:

conda env create -f environment.yaml
conda activate vidtok

3. 下载预训练模型并放入 checkpoints 文件夹,然后运行以下命令进行推理:

import torch
from scripts.inference_evaluate import load_model_from_config

cfg_path = "configs/vidtok_kl_causal_488_4chn.yaml"
ckpt_path = "checkpoints/vidtok_kl_causal_488_4chn.ckpt"
is_causal = True

device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")    
model = load_model_from_config(cfg_path, ckpt_path)
model.to(device).eval()

num_frames = 17 if is_causal else 16
x_input = (torch.rand(1, 3, num_frames, 256, 256) * 2 - 1).to(device)
_, x_recon, _ = model(x_input)
assert x_input.shape == x_recon.shape

资源


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

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

相关文章
|
数据可视化 前端开发 JavaScript
pyEcharts安装及详细使用指南(一)
pyEcharts安装及详细使用指南(一)
2134 0
pyEcharts安装及详细使用指南(一)
|
2月前
|
自然语言处理 算法
大模型应用:大模型的词元化处理详解:BPE、WordPiece、Unigram.11
本文详解大模型中文词元化三大核心算法:BPE(基于频率合并)、WordPiece(基于似然增益合并)和Unigram(自顶向下概率筛选)。通过原理、流程、代码与示例对比,揭示其在中文分词中的适用性与优化要点,强调语料质量、参数配置及中文特性适配的关键作用。(239字)
479 2
|
监控 Kubernetes Docker
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
【5月更文挑战第9天】本文探讨了Docker容器中应用的健康检查与自动恢复,强调其对应用稳定性和系统性能的重要性。健康检查包括进程、端口和应用特定检查,而自动恢复则涉及重启容器和重新部署。Docker原生及第三方工具(如Kubernetes)提供了相关功能。配置检查需考虑检查频率、应用特性和监控告警。案例分析展示了实际操作,未来发展趋势将趋向更智能和高效的检查恢复机制。
777 4
【Docker 专栏】Docker 容器内应用的健康检查与自动恢复
|
关系型数据库 数据库 对象存储
Dify实践|Dify on DMS+对象存储OSS,实现多副本部署方案
本文介绍了在DMS上部署Dify的详细步骤,用户可选择一键购买资源或基于现有资源部署Dify,需配置RDS PostgreSQL、Redis、AnalyticDB for PostgreSQL等实例,并设置存储路径和资源规格。文中还提供了具体配置参数说明及操作截图,帮助用户顺利完成部署。
|
人工智能 Cloud Native 安全
《2025年度企业用云十大趋势》发布,AI云全面支撑大模型落地
《2025年度企业用云十大趋势》发布,AI云全面支撑大模型落地
|
消息中间件 传感器 NoSQL
Flink流处理API大合集:掌握所有flink流处理技术,看这一篇就够了
一个flink应用程序开发的步骤大致为五个步骤:构建执行环境、获取数据源、操作数据源、输出到外部系统、触发程序执行。
Flink流处理API大合集:掌握所有flink流处理技术,看这一篇就够了
|
Web App开发 数据采集 JavaScript
有JavaScript动态加载的内容如何抓取
有JavaScript动态加载的内容如何抓取
Shutter Encoder(多媒体转换工具) v18.0中文免费版
Shutter Encoder是一款强力的免费视频转换器,基于ffmpeg,所以功能十分的强大,对于视频格式的支持也非常的完善,常用的格式基本都支持,除了转换功能,经常需要用到的视频画面大小调整、批量转换、视频裁切、视频裁剪功能都有。
604 3
|
关系型数据库 数据处理 流计算
【Flink】Flink 流处理和批处理
【1月更文挑战第26天】【Flink】Flink 流处理和批处理

热门文章

最新文章