本文来源公众号“码科智能”,仅用于学术分享,侵权删,干货满满。
原文链接:字节又整活!将 SAM2 与 LLaVA 结合起来,第一个在视频级别支持对话、指称分割及理解的统一模型
sam2&llama
Sa2VA:请将中心的人分割开来
Sa2VA 模型通过结合基础视频分割模型 SAM-2 和高级视觉语言模型 LLaVA,将文本、图像和视频统一到共享的 LLM 标记空间中。这种架构设计使得 Sa2VA 能够在最少指令微调的情况下,执行多种任务,包括图像对话、视频对话、图像指称分割、视频指称分割和基于单次指令调整的字幕生成。
Sa2VA 在多个实际应用中展示了其强大的性能和潜力,其能够与用户进行自然语言交互,理解和生成与图像和视频内容相关的对话;在复杂视频场景中,准确分割用户指称的对象,因此非常适用于视频编辑、内容创作等场景。Sa2VA 具备 Qwen2-VL 和 InternVL2.5 所缺乏的视觉提示理解和密集对象分割能力,并且在图像和视频基础和分割基准上都实现了 SOTA 性能。字节开源的项目及代码见下述链接:
项目链接:https://lxtgh.github.io/project/sa2va/
论文链接:https://arxiv.org/pdf/2501.04001
HuggingFace: https://huggingface.co/ByteDance/Sa2VA-4B
1、Sa2VA能力说明
Sa2VA,这是第一个用于对图像和视频进行密集基础理解的统一模型。基于 Qwen2-VL 和 InternVL2/2.5 构建的 Sa2VA 系列,在问答基准上实现了与 Qwen2-VL 和 InternVL2.5 相当的性能。使用 LLM,Sa2VA 生成指令标记,指导 SAM-2 生成精确的掩码,从而实现对静态和动态视觉内容的扎实、多模态理解。
如上图所示:(a). 给定一个视频,Sa2VA 能够分割所指对象并理解整个场景。 (b). Sa2VA 支持图像对话、视频对话、图像指称分割、视频指称分割以及通过单次指令调整实现的字幕生成。 (c). 与现有的多模态大型语言模型相比,Sa2VA 在多幅图像、视频指称分割和聊天基准测试中取得了强劲的成绩。
sam2&llama_2
提问:“视频里的人在做什么?”
答案:“视频中的这些人正在集体跳舞。他们正在表演编排好的舞蹈,动作同步。”
指示:“场景的气氛是什么样的?”
答案:“场景充满了黑暗而神秘的氛围,男人们穿着西装打着领带,房间灯光昏暗。”
模型架构:Sa2VA 模型通过将输入的文本、视觉提示、图像和视频编码为标记嵌入,然后通过大型语言模型 (LLM) 处理这些标记。输出的文本标记用于生成 [SEG]
标记和相关的语言输出。SAM-2 解码器从 SAM-2 编码器接收图像和视频特征以及 [SEG]
标记,以生成相应的图像和视频掩码。
这个对象是一台笔记本电脑。它最初放在桌子上的一个黑色包里,然后被一个穿着红色服装的人拿走,这个人坐在一个黑色的可旋转办公椅上。这个人把笔记本电脑放在桌子上,打开它,并通过在键盘上打字和使用触摸板与之互动。笔记本电脑一直放在桌子上,屏幕面向这个人。背景中有一个白板,表明这个场景可能是一个办公室或教室。
2、Ref-SAM-V 数据集
为了提升 Sa2VA 模型的性能,引入了 Ref-SAV 数据集。这是一个包含超过 72,000 条复杂视频场景中对象表达的自动标注数据集。这些数据涵盖了各种复杂的视频场景,提供了丰富的标注信息,有助于模型更好地理解和分割视频中的对象。
为了确保数据集的质量和可靠性,团队还手动验证了 Ref-SAV 数据集中的 2,000 个视频对象。这一验证过程确保了数据集中的标注信息准确无误,能够为模型训练提供高质量的基准数据。其中提出的自动数据标注流程包含三个阶段:对象/部件级、场景级和视频级文本表达标注。在最终的表达中,使用不同颜色来突出每个阶段派生的信息。
不同代表性模型的能力对比。我们的方法支持多种任务和模态。得益于视频上的这些交互特性,Sa2VA 可以在视频中执行多个可提示的任务:
3、快速使用
Sa2VA 模型可在 HuggingFace 上使用。只需几个步骤,你就可以使用自己的数据尝试它。首先:在demo路径下安装依赖环境。
pip install -r demo/requirements.txt
其次:确保 PATH_TO_FOLDER
包含视频图像文件。
PATH_TO_FOLDER=/path/to/your/video/images
最后:使用以下命令运行脚本,指定输入文件夹、模型路径、输出目录和文本提示:
cd scripts
python demo.py /path/to/your/video/images --model_path ByteDance/Sa2VA-8B --work-dir /path/to/output/dir --text "<image>Please describe the video content."
如果输出包含分割结果,这些结果将保存到指定的输出目录 /home/user/output
中。你可以查看这些文件以获取模型生成的分割掩码和描述文本。
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。