VoP是第一个同时具有视频和文字Prompt的端到端视频文本跨模态检索框架,基于Prompt的高效微调与完全微调相比,VoP利用0.1%的训练参数在5个公开的数据集(MSR-VTT-9k, MSR-VTT-7k, DiDeMo, ActivityNet, LSMDC)中获得了1.4%的平均R@1增益,参数开销却减少了6倍。VoP可以实现输入一段自然语言文本做视频特征检索,返回最相关的视频,或是输入一支本地视频做文本特征检索,返回最相关的文本。
利用VoP实现文本(自然语言)直接搜索视频的可视化样例,如下所示:
系列工作:
VoP是基于CLIP的快速微调框架,可以适用于任何需要做视频文本跨模态检索的“视频-文本对”数据当中。
import cv2
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
vop_pipeline = pipeline(Tasks.vop_retrieval,
model='damo/cv_vit-b32_retrieval_vop')
# 输入文本query
input_text = 'a squid is talking'
# 运行pipeline获得结果
result = vop_pipeline(input_text)
print(f'vop output: {result}.')
print('finished!')
import cv2
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
vop_pipeline = pipeline(Tasks.vop_retrieval,
model='damo/cv_vit-b32_retrieval_vop')
# 输入视频名称
# 如果自定义视频,请放到 'damo/cv_vit-b32_retrieval_vop' 根目录下即可
input_video = 'video10.mp4'
# 运行pipeline获得结果
result = vop_pipeline(input_video)
print(f'vop output: {result}.')
print('finished!')
VoP在5个公开数据集上的评估结果如下,红色表示相对于基线(全量微调)是负向性能变化,绿色表示正向,"Ours"括号内的是VoP的结果:
如果该模型对您有所帮助,请引用下面的相关的论文:
@inproceedings{Huang2022VoP,
title = {VoP: Text-Video Co-operative Prompt Tuning for Cross-Modal Retrieval},
author = {Siteng Huang and Biao Gong and Yulin Pan and Jianwen Jiang and Yiliang Lv and Yuyuan Li and Donglin Wang},
journal = {CVPR 2023},
year = {2023}
}