# VideoFrameSeeker **Repository Path**: ChaiLinqiuse/video-frame-seeker ## Basic Information - **Project Name**: VideoFrameSeeker - **Description**: 通过图片来检索在视频的出处 - **Primary Language**: Python - **License**: CC-BY-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-01-07 - **Last Updated**: 2025-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, 音视频, 向量数据库 ## README # VideoFrameSeeker ## 介绍 VideoFrameSeeker 是一个强大的工具,旨在通过给定的查询图片在视频集合中搜索相似的帧。通过利用先进的图像处理和机器学习技术,该应用程序可以识别并定位与查询图片高度匹配的视频帧。这在视频编辑、内容验证和媒体分析等领域具有广泛的应用。 ## 应用领域 ![应用领域](./images/20250107193245.png "应用领域") ## 安装教程 1. **建立虚拟环境:** - 推荐使用虚拟环境来管理依赖。可以使用 `venv` 或 `virtualenv` 创建。 ```bash python -m venv venv ``` - 激活虚拟环境: - 在 Windows 上: ```bash .\venv\Scripts\activate ``` - 在 macOS/Linux 上: ```bash source venv/bin/activate ``` 2. **安装依赖:** - 确保已安装 Python(建议使用 Python 3.8 或更高版本)。 - 使用 `pip` 安装所需的包: ```bash pip install -r requirements.txt ``` - 如果没有 `requirements.txt` 文件,可以手动安装必要的包: ```bash pip install fastapi uvicorn transformers chromadb opencv-python pillow torch ``` 3. **模型设置:** - 应用程序使用 Hugging Face 的 CLIP 模型。确保本地有模型文件,或者允许应用程序下载它们。 ## 使用说明 1. **运行应用程序:** - 在项目根目录下,使用 Uvicorn 启动 FastAPI 应用程序: ```bash uvicorn fast_api.main:app --reload --host 127.0.0.1 --port 8000 ``` - 这将启动服务器,地址为 `http://127.0.0.1:8000`。 2. **接口说明:** - **在视频中搜索图片:** - 接口:`/search_image_all/` - 方法:`POST` - 描述:上传一张图片,在所有处理过的视频中搜索相似的帧。 - **处理视频文件夹:** - 接口:`/process_video_folder/` - 方法:`POST` - 描述:处理指定文件夹中的所有视频,提取帧并存储到数据库中。 - **获取视频片段:** - 接口:`/get_video_clip/` - 方法:`POST` - 描述:获取指定时间戳附近的视频片段。 - **列出视频:** - 接口:`/videos/` - 方法:`GET` - 描述:获取所有处理过的视频集合列表。 3. **其他配置:** - 确保项目根目录下存在 `query_images` 和 `extracted_frames` 目录,用于存储查询图片和提取的视频帧。 ## 注意事项 - 应用程序使用本地数据库存储视频帧嵌入。确保代码中正确设置了数据库路径。 - 应用程序配置为在离线模式下使用 Hugging Face 模型。如果需要启用在线模式,请调整环境变量。 ## 问题排查 - 如果遇到模型加载问题,确保模型文件已正确缓存或可在线获取。 - 对于视频处理错误,验证视频文件是否可访问且格式受支持。 ## 贡献 欢迎通过 GitHub 仓库提交问题或拉取请求来为本项目做出贡献。