Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

实现视频理解初步代码 #50

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

forXuyx
Copy link

@forXuyx forXuyx commented Mar 22, 2025

我实现了视频理解的代码,大致流程与VLM的保持一致,非常容易理解,主要改动为:

  • 在dataset中新增了随机选取帧的处理函数(默认选取8帧)
  • 在模型中加入了对视频embedding的处理,这里我们沿用clip,我们取得每一帧的embedding,并最后在帧维度上做平均

一些问题:

  • 训练的速度非常慢,因为一个视频要处理8个帧,我在4张A100 40G上训练4个epoch需要4个小时左右
  • pretrain的数据集我选择了MSRVTT-QA,这是一个英文的数据集,后续可以考虑用一些翻译软件翻译一下?(彩云小译免费100w字感觉不太够用)

TODO:

  • 对视频的embedding做预提取的操作
  • 完善视频理解的eval(没效果你让我很难相信你啊!)
  • 更好的多帧特征融合?(不过pretrain的表现似乎就很不错了,可能是数据集特别简单)

我会在后续给出我处理好的MSRVTT-QA数据集链接(上传中......)

@forXuyx
Copy link
Author

forXuyx commented Mar 22, 2025

突然想到视频的话用wget下载好像更快......这里直接放链接了

这是对应的jsonl文件
链接: https://pan.baidu.com/s/181cHUoh-WJhJz8nh05TPfw 提取码: pkhh

这是视频链接:
wget https://www.robots.ox.ac.uk/~maxbain/frozen-in-time/data/MSRVTT.zip
解压后,可以在./video/all找到视频

@forXuyx
Copy link
Author

forXuyx commented Mar 23, 2025

tokenizer是不支持英文吗,我看解码出来的是......
看来还是要找到中文的数据集

@nideyongbao
Copy link

在模型中加入了对视频embedding的处理,这里我们沿用clip,我们取得每一帧的embedding,并最后在帧维度上做平均
--> 请问一下为什么不是多张图cat起来,类似多图的处理?

@forXuyx
Copy link
Author

forXuyx commented Mar 28, 2025

在模型中加入了对视频embedding的处理,这里我们沿用clip,我们取得每一帧的embedding,并最后在帧维度上做平均

--> 请问一下为什么不是多张图cat起来,类似多图的处理?

这是一个出于性能的考虑,在minimind-v里面,一个图像的占196个token,而一个视频有多帧,想象一下你从一个视频里面提取八帧,token会达到一千多个,通常来说我们更希望获得视频的“聚合信息”,这里我取平均其实也是一个“便捷”的操作,更有道理的是用一些注意力机制什么的注意到有用的信息,再做理解。我的主页中基于minimind-v做了一个新的视频理解项目Cinego,不过是英文的,因为我没有找到合适的中文数据集,如果你有兴趣的话我晚一点会发一下我的数据链接和训练权重,不过我目前训练出来幻视特别严重,此外我的数据集比较小,因为视频理解的数据都太大了(动不动几百个g),有兴趣的话可以完善完善,当学习了哈哈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants