Vid2Seq 应该是目前为止,个人最中意得一篇能够实际解决对一段视频进行粗略理解得paper了。个人认为它能够真正能解决视频理解是因为它是对一个模型整体做了训练,而不仅仅是通过visual encoders(e.g BLIP/CLIP/…)和 其它multi modal 的encoder直接过了个projection,做一个轻松的finetune 就好。光训练projection的路子,划算是划算,但是效果不好,比如video-llama, PG video llava…
例子:(PS:是吧,就比那种光projection的,描述上要更贴合实际,而不是轻飘飘的说个摸棱两可的话)
对于一段视频,time_input_token 为 (n, 2), text_input_token 为 (n,根据tokenize得到的长度),n为切分后的片段。
它就是直接concat 在前后(图例为语音)
模型输入有分视频画面和 拼好后的语音。
仔细观察结构,不管是视频画面还是语音内容,都经过了两个步骤的encoders。等两个内容准备好后,要将它们按照以下形式再次拼接。
if self.use_video and self.use_speech:
encoded.last_hidden_state = torch.cat([video, encoded.last_hidden_state