改进视频检索精度的解决方案
CLIP4Clip结合CLIP模型和WebVid数据集,成功在视频文本检索中提高精度,利用150,000个视频文本对的训练提升性能。此模型擅长处理大规模视频数据,具备视觉-时间概念学习能力,适合高效视频搜索应用。其架构支持文本到视频的快速检索,提升搜索效率。
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。其中的评测方法包括:
具体评估结果可以在notebook GSI_VideoRetrieval-Evaluation中查看。
项目特别感谢Diana Mazenko将模型适配并加载到Hugging Face,并创建了大型视频搜索演示。也感谢Lou等人在CLIP4Clip上的全面工作以及开源的代码。