Shotit 是一款专为电视和电影量身定制的屏幕截图到视频搜索引擎,速度极快且计算效率极高。
需要使用 Docker Compose,请先安装。
最小工作负载:2v16G、4v32G优先。
git clone https://github.com/shotit/shotit.git
cd shotit
.env.example
复制到.env
.env
,就像第一次一样。milvus.yaml.example
复制到milvus.yaml
milvus.yaml
,就像第一次一样。创建这些必要的文件夹。
mkdir -p volumes/shotit-hash
mkdir -p volumes/shotit-incoming
mkdir -p volumes/shotit-media
mkdir -p volumes/mycores
mkdir -p volumes/mysql
将mycores
的用户和组信息设置为 8983,这是liresolr
所需要的。
sudo chown 8983:8983 volumes/mycores
然后,启动 docker-compose 服务。
(Windows or Mac):
docker compose up -d
(Linux):
docker-compose up -d
PS:docker-compose.yml 文件从 GitHub 获取 docker 镜像。如果您更喜欢 dockerhub,请改用以下命令。
(Windows or Mac):
docker compose -f docker-hub-compose.yml up -d
(Linux):
docker-compose -f docker-hub-compose.yml up -d
集群准备就绪后,您可以将视频文件添加到传入文件夹中。以Blender的Big Buck Bunny为例,其imdb标签为tt1254207,路径应为:
./volumes/shotit-incoming/tt1254207/Big_Buck_Bunny.mp4
重新启动shotit-worker-watcher
,以防它无法捕获文件的更改。
docker restart shotit-worker-watcher
当shotit-worker-watcher
检测到传入文件夹中存在视频文件时,它会开始将视频上传到对象存储驱动的shotit-media
。上传后,视频将被删除,然后shotit-worker-hasher
创建哈希, shotit-worker-loader
将哈希加载到矢量数据库。使用以下命令查看索引过程是否已完成:
docker logs -f -n 100 shotit-worker-loader
索引过程完成后,您将注意到Loaded tt1254207/Big_Buck_Bunny.mp4
日志,您可以直接从下面的 URL 通过屏幕截图搜索视频。
GET http://127.0.0.1:3311/search?url=https://i.ibb.co/KGwVkqy/big-buck-bunny-10.png
回复:
{
"frameCount": 0,
"error": "",
"result": [
{
"imdb": "tt1254207",
"filename": "Big_Buck_Bunny.mp4",
"episode": null,
"duration": 596.4169921875,
"from": 473.75,
"to": 479.17,
"similarity": 0.9992420673370361,
"video": "http://127.0.0.1:3312/video/tt1254207/Big%20Buck%20Bunny.mp4?t=476.46000000000004&now=1682985600&token=kc64vEWHPMsvu54Fpl1BrR7wz8",
"image": "http://127.0.0.1:3312/image/tt1254207/Big%20Buck%20Bunny.mp4.jpg?t=476.46000000000004&now=1682985600&token=K0qxDPHhoviiexOyEvS9qHRim4"
}
]
}
恭喜!您已成功部署shotit
搜索引擎。
注意:第一次调用 api 的时间应该更长,因为 shotit 必须先将 hash 完全加载到 RAM 中。
黄L.(2024)。 Shotit:计算高效的云图像到视频搜索引擎。 ArXiv。 /abs/2404.12169
请参阅此处以获取有关以下内容的完整文档:
Shotit
由这些 docker 镜像组成。
Docker 镜像 | Docker CI 构建 | 图像尺寸 |
---|---|---|
shotit-api | ||
Shoitit媒体 | ||
射击工人观察者 | ||
shotit-worker-hasher | ||
shotit-工人-装载机 | ||
shotit-工人-搜索者 | ||
射击分类机 | ||
利雷索尔 | ||
米尼奥 | ||
等 | ||
玛丽亚数据库 | ||
管理员 | ||
雷迪斯 | ||
milvus-独立版 |
数据集 | 集数 | 矢量体积 | 搜寻时间 |
---|---|---|---|
搅拌机打开电影 | 15 | 55,677 | 5秒内 |
专有流派数据集 | 3,734 | 53,339,309 | 5秒内 |
https://shotit.github.io/shotit-frontend/demo
Shotit
显着采用了来自trace.moe 的系统设计模式。 Shotit
的愿景是使屏幕截图到视频搜索引擎成为中立、易于使用、计算效率高且速度极快的搜索引擎。
请参阅贡献指南。
阿帕奇-2.0