项目介绍:CLIFS
项目概述
CLIFS(对比语言-图像取证搜索)项目旨在通过视频中提取的帧实现相关文本内容的搜索。这一概念验证项目使用了OpenAI的CLIP模型,该模型能够将图像与其对应的文字说明进行匹配,反之亦然。
CLIFS的工作原理是首先通过CLIP的图像编码器从视频帧中提取特征,然后通过CLIP的文本编码器获取搜索查询的特征。随后,通过相似性匹配这些特征,并返回超过设定阈值的最佳匹配结果。为了方便使用,CLIFS项目后端配备了一个运行Django的简单网页服务器,提供了搜索引擎的界面。
使用示例
为了展示此模型的能力,项目提供了一些示例,使用[UrbanTracker数据集]中的Sherbrooke视频进行查询。以下列出了一些搜索样本,每个示例仅展示最佳的图像匹配结果。需要注意的是,该模型在光学字符识别(OCR)方面也表现出色:
查询示例:
-
一辆带有“odwalla”字样的卡车
-
一辆白色宝马汽车
-
一辆带有“JCN”字样的卡车
-
一位穿蓝色衬衫的骑自行车者
-
一辆蓝色SMART汽车
环境搭建及使用步骤
-
运行
setup.sh
脚本以设置文件夹,并可选择下载示例视频文件进行测试:./setup.sh
-
将需索引的视频文件置于
data/input
目录下。 -
通过docker-compose构建并启动搜索引擎和网页服务器容器:
docker-compose build && docker-compose up
若宿主环境具备NVIDIA GPU并已设置docker GPU支持,则可使用支持GPU的docker-compose文件:
docker-compose build && docker-compose -f docker-compose-gpu.yml up
-
一旦
data/input
目录中的文件特征编码完毕(可以通过日志确认),即可在浏览器中访问127.0.0.1:8000地址进行搜索。
CLIFS项目通过使用先进的图像和文本匹配技术,为视频搜索提供了强大的实现方案,极大地拓展了用户在视频处理和分析中的能力。