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
のユーザーおよびグループ情報を、 liresolr
で必要な 8983 に設定します。
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
検索エンジンが正常にデプロイされました。
注意: Shotit は最初にハッシュを RAM に完全にロードする必要があるため、API 呼び出しの初回は長くなるはずです。
ウォン、L. (2024)。 Shotit: クラウド用の計算効率の高い画像からビデオへの検索エンジン。 ArXiv。 /abs/2404.12169
以下に関する完全なドキュメントについては、ここを参照してください。
Shotit
これらの Docker イメージで構成されています。
ドッカーイメージ | Docker CI ビルド | 画像サイズ |
---|---|---|
ショットAPI | ||
ショットメディア | ||
ショットティットワーカーウォッチャー | ||
ショットティットワーカーハッシャー | ||
ショットティワーカーローダー | ||
ショットティットワーカーサーチャー | ||
ショットソーター | ||
リレソル | ||
ミニオ | ||
etcd | ||
マリアドブ | ||
管理者 | ||
レディス | ||
ミルバススタンドアロン |
データセット | 話数 | ベクトルボリューム | 検索時間 |
---|---|---|---|
Blender オープンムービー | 15 | 55,677 | 5秒以内 |
独自のジャンルデータセット | 3,734 | 53,339,309 | 5秒以内 |
https://shotit.github.io/shotit-frontend/demo
Shotit
trace.moe のシステム設計パターンを大幅に採用しています。 Shotit
のビジョンは、スクリーンショットからビデオへの検索エンジンをジャンルに依存せず、使いやすく、計算効率が高く、超高速にすることです。
「貢献ガイド」を参照してください。
アパッチ-2.0