不同于传统的关键词搜索,你不需要给每个视频素材人为地打上标签。使用开源产品 CLIP-as-service,输入画面的描述文本,直接搜索到对应的视频片段。
CLIP 是一个强大的模型,能够很好地判别文本和图片是否相关,但将其集成到现有系统中需要大量时间精力,以及机器学习知识。
CLIP-as-service 是一种易于使用的服务,具有低延迟和高度可扩展性,可以作为微服务轻松集成到现有解决方案中。也就是说,想要实现视频中的效果,不需要 GPU,不需要安装复杂依赖,只需要使用几个 Python 函数,CLIP-as-service 将完成所有工作。
本项目通过提取出视频的关键帧,分割视频的关键片段,巧妙地将 文字搜索视频 的任务转化成为 文字搜索图片 的任务。在完成关键帧抽取后,通过将查询文本和关键帧图集传给 CLIP-as-service,即可返回与查询文本匹配的视频片段。
项目仓库:https://github.com/jemmyshin/Video-CLIP-Indexer
预备工作
首先,在新的 Python 3 虚拟环境中,安装 docarray
和 clip_client
。
pip install clip_client "docarray[full]>=0.20.0
同时,你还需要一个用于 CLIP-as-service 的 Token,👉 获取路径请参考:CLIP-as-service 新升级!
获取数据
DocArray 是一个用于处理、传输和存储多模态数据的 Python 工具包,提供了非常便捷的多模态数据处理功能。使用 DocArray 加载 MP4 视频只需两行代码:
from docarray import Document
video_data = Document(uri='89757.mp4')
video_data.load_uri_to_video_tensor()
print(video_data.tensor.shape)
(12116, 720, 480, 3)
对于