/vced

VCED 可以通过你的文字描述来自动识别视频中相符合的片段进行视频剪辑。该项目基于跨模态搜索与向量检索技术搭建,通过前后端分离的模式,帮助你快速的接触新一代搜索技术。

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

VCED: Video Clip Extraction by description

Python supported DataWhale Website

VCED 可以通过你的文字描述来自动识别视频中相符合的片段进行视频剪辑。该项目基于跨模态搜索与向量检索技术搭建,通过前后端分离的模式,帮助你快速的接触新一代搜索技术。

如果你喜欢本项目欢迎给一个 ⭐ !


QuickStart - 项目结构 - 文档 - Learning Roadmap - 反馈 - 参与贡献 - 关注我们 - License


VCED demo

VCED

QuickStart

通过 docker 启动

使用 docker 镜像快速启动本项目:

docker-compose build
docker-compose up -d

通过源代码启动

说明

本项目依赖以下环境,在进行具体的安装之前请确保你的电脑已经安装好这些依赖

  1. 创建 python3.9 环境
  2. 安装 rust, ffmpeg, rust
  3. 安装 clip pip install git+https://github.com/openai/CLIP.git

Jina 暂不支持在 Windows 安装,如需在 Windows 上安装 Jina 请通过 WSL 方式,详情见:Jina 轻松学 —— Windows中安装Jina

启动 server

# 进入 server 文件夹
cd code/service
# 安装相关依赖
pip install -r requirements.txt
# 启动服务端
python app.py

启动 web

前端我们通过 Streamlit 搭建。Streamlit 是一个 Python Web 应用框架,但和常规 Web 框架,如 Flask/Django 的不同之处在于,它不需要你去编写任何客户端代码(HTML/CSS/JS),只需要编写普通的 Python 模块,就可以在很短的时间内创建美观并具备高度交互性的界面。

# 进入 web 文件夹
cd code/web
# 安装相关依赖
pip install -r requirements.txt
# 启动服务端
streamlit run app.py

Streamlit默认启动的端口为8501,也可以通过 localhost:8501 进行访问

项目结构

    ├── code/service
        ├── customClipImage (通过 CLIP 模型处理上传的视频)
        ├── customClipText  (通过 CLIP 模型处理输入的文字)
        ├── customIndexer   (创建向量数据的索引)
        ├── videoLoader     (对上传的视频进行处理)
        ├── workspace       (用于存储生成的向量数据)
        ├── app.py          (后端主程序)                                                       
    ├── code/web
        ├── data            (用于存储上传的视频)
        │   ├── videos      (用于存储简介好的视频片段)
        ├── app.py          (前端主程序)  
	  ├── Dockerfile                                                     
    ├── requirements.txt  

文档

如果你想在本地查阅文档可以通过以下方式实现

  1. 将项目下载到本地
  2. 用浏览器打开 docs/build/html/index.html

如果你对文档内容有修改想要查看最新的内容可以通过以下方式

# 进入 docs 文件夹
cd docs
# 安装相关依赖
pip install -r requirements.txt
# 编译
make html

然后就可以在public文件夹下双击index.html即可看到文档,如下所示 homepage

Learning Roadmap

内容学习路线详见:Roadmap

反馈

  • 如果你发现任何问题,请提交 Issue.

参与贡献

  • 如果你想参与到项目中来欢迎查看项目的 Issue 查看没有被分配的任务并提交 PR

如果你对 Datawhale 很感兴趣并想要发起一个新的项目,欢迎查看 Datawhale 贡献指南

当前贡献者

姓名 职责 简介
苏鹏 项目负责人 https://linktr.ee/subranium
十一 Jina 教程内容贡献者 Github
席颖 Jina 教程内容贡献者 Github
范致远 跨模态模型教程内容贡献者 Github
崔腾松 项目后端教程内容贡献者 CSDN
韩颐堃 项目后端教程内容贡献者 Homepage
吴祥 项目前端教程内容贡献者 CSDN
边圣陶 Docker 部署教程内容贡献者 https://www.bianst.cn

Made with contrib.rocks.

特别感谢

特别感谢以下项目与作者,其中 B 站 UP 主人工智能小黄鸭给本项目提供了灵感,而且本项目的基础代码来自于 ArthurKing01

再次感谢以上项目与作者,同时感谢 Jina AI 对本项目的支持,Jina AI 是一家神经搜索公司,致力于帮助企业和开发者轻松搭建多模态、跨模态应用。

关注我们

扫描下方二维码关注公众号:Datawhale

License

VCED is licensed under GNU General Public License v3.0