clip4clip-webvid150k项目介绍
clip4clip-webvid150k是一个利用CLIP4Clip模型进行视频文本检索的项目。该项目基于WebVid数据集中的一部分进行训练,旨在高效地通过文本查询检索视频。
项目背景
CLIP4Clip模型是一种结合图像和文本的预训练模型,通过学习视觉和时序概念,提升视频搜索的效果。WebVid数据集是一个综合性的短视频集合,其中包含了从网络收集的短视频及其相应的文本描述。本项目使用了该数据集的15万个视频文本对进行训练。
使用方法
提取文本嵌入
用户可以通过以下Python代码来提取文本嵌入:
import numpy as np
import torch
from transformers import CLIPTokenizer, CLIPTextModelWithProjection
search_sentence = "a basketball player performing a slam dunk"
model = CLIPTextModelWithProjection.from_pretrained("Searchium-ai/clip4clip-webvid150k")
tokenizer = CLIPTokenizer.from_pretrained("Searchium-ai/clip4clip-webvid150k")
inputs = tokenizer(text=search_sentence , return_tensors="pt")
outputs = model(input_ids=inputs["input_ids"], attention_mask=inputs["attention_mask"])
# 规范化嵌入以进行检索:
final_output = outputs[0] / outputs[0].norm(dim=-1, keepdim=True)
final_output = final_output.cpu().detach().numpy()
print("final output: ", final_output)
提取视频嵌入
项目还提供了一个名为“GSI_VideoRetrieval_VideoEmbedding.ipynb”的notebook,用户可以根据其说明提取视频嵌入,并获取视频预处理所需的工具。
模型应用
该模型主要用于大规模视频文本检索应用。用户可以通过视频搜索空间这个互动式演示,查看模型如何根据文本查询有效地检索视频。演示中包含约150万个视频,展示了模型处理大规模视频数据集的能力。
动机
模型的开发动机是利用CLIP图像-语言预训练模型的强大功能,应用于视频的视觉-时序概念学习,从而提升视频搜索性能。通过使用WebVid数据集,模型的能力得到了进一步加强。
评估
为了评估模型的性能,项目利用WebVid数据集中最后的10,000个视频片段及其文本进行评估。评估指标包括R1、R5、R10、MedianR和MeanR。其中的评测方法包括:
- 使用零样本预训练clip-vit-base-patch32模型。
- 在MSR-VTT数据集上训练的CLIP4Clip权重。
- 在WebVid-150k子集上训练的CLIP4Clip权重。
- 将WebVid-150k子集进行二值化及在100个顶级搜索上进一步微调后的CLIP4Clip权重。
具体评估结果可以在notebook GSI_VideoRetrieval-Evaluation中查看。
致谢
项目特别感谢Diana Mazenko将模型适配并加载到Hugging Face,并创建了大型视频搜索演示。也感谢Lou等人在CLIP4Clip上的全面工作以及开源的代码。