Shotit adalah mesin pencari tangkapan layar-ke-video yang dirancang untuk TV & Film, sangat cepat dan hemat komputasi.
Diperlukan Docker Compose, Silakan instal terlebih dahulu.
Beban kerja minimum: 2v16G, lebih disukai 4v32G.
git clone https://github.com/shotit/shotit.git
cd shotit
.env.example
ke .env
.env
sesuai pengaturan Anda, seperti untuk pertama kalinya.milvus.yaml.example
ke milvus.yaml
milvus.yaml
sesuai pengaturan Anda, seperti untuk pertama kalinya.Buat folder yang diperlukan ini.
mkdir -p volumes/shotit-hash
mkdir -p volumes/shotit-incoming
mkdir -p volumes/shotit-media
mkdir -p volumes/mycores
mkdir -p volumes/mysql
Atur informasi pengguna dan grup mycores
ke 8983, yang dibutuhkan oleh liresolr
.
sudo chown 8983:8983 volumes/mycores
Kemudian, aktifkan layanan penulisan buruh pelabuhan.
(Windows or Mac):
docker compose up -d
(Linux):
docker-compose up -d
PS: File docker-compose.yml mengambil gambar buruh pelabuhan dari GitHub. Jika Anda lebih memilih dockerhub, gunakan perintah berikut.
(Windows or Mac):
docker compose -f docker-hub-compose.yml up -d
(Linux):
docker-compose -f docker-hub-compose.yml up -d
Setelah cluster siap, Anda dapat menambahkan file video Anda ke folder masuk. Ambil Big Buck Bunny Blender sebagai contoh, yang tag imdbnya adalah tt1254207, jalurnya seharusnya:
./volumes/shotit-incoming/tt1254207/Big_Buck_Bunny.mp4
Mulai ulang shotit-worker-watcher
, jika tidak menangkap perubahan pada file Anda.
docker restart shotit-worker-watcher
Ketika shotit-worker-watcher
mendeteksi keberadaan file video di folder masuk, ia akan mulai mengunggah video ke shotit-media
yang didukung penyimpanan objek. Setelah diunggah, video akan dihilangkan, kemudian shotit-worker-hasher
membuat hash dan shotit-worker-loader
memuat hash ke database vektor. Gunakan perintah berikut untuk melihat apakah proses indeks telah selesai:
docker logs -f -n 100 shotit-worker-loader
Ketika proses indeks selesai, Anda akan melihat log Loaded tt1254207/Big_Buck_Bunny.mp4
dan Anda dapat mencari video dengan tangkapan layar langsung dari URL di bawah.
GET http://127.0.0.1:3311/search?url=https://i.ibb.co/KGwVkqy/big-buck-bunny-10.png
Tanggapan:
{
"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"
}
]
}
Selamat! Anda telah berhasil menerapkan mesin pencari shotit
Anda.
Perhatian: panggilan api pertama kali harus lebih lama karena shotit harus memuat hash sepenuhnya ke dalam RAM terlebih dahulu.
Wong, L. (2024). Shotit: mesin pencari gambar-ke-video yang efisien komputasi untuk cloud. ArXiv. /abs/2404.12169
Silakan lihat di sini untuk dokumentasi lengkap tentang:
Shotit
terdiri dari gambar buruh pelabuhan ini.
Gambar Docker | Pembuatan Docker CI | Ukuran Gambar |
---|---|---|
shotit-api | ||
shotit-media | ||
shotit-pekerja-pengamat | ||
shotit-pekerja-hasher | ||
shotit-pekerja-loader | ||
shotit-pekerja-pencari | ||
penyortir tembakan | ||
liresolr | ||
minio | ||
dll | ||
mariadb | ||
admin | ||
redis | ||
milvus-mandiri |
Kumpulan data | Nomor episode | Volume vektor | Waktu pencarian |
---|---|---|---|
Film Terbuka Blender | 15 | 55.677 | dalam waktu 5 detik |
Kumpulan data genre eksklusif | 3.734 | 53.339.309 | dalam waktu 5 detik |
https://shotit.github.io/shotit-frontend/demo
Shotit
secara signifikan mengadopsi pola desain sistemnya dari trace.moe. Visi Shotit
adalah menjadikan mesin pencari tangkapan layar-ke-video netral, mudah digunakan, efisien komputasi, dan sangat cepat.
Lihat Panduan Berkontribusi.
Apache-2.0