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
จากนั้นจึงเพิ่มบริการเขียนนักเทียบท่า
(Windows or Mac):
docker compose up -d
(Linux):
docker-compose up -d
PS: ไฟล์ docker-compose.yml ดึงภาพนักเทียบท่าจาก GitHub หากคุณต้องการ dockerhub ให้ใช้คำสั่งต่อไปนี้แทน
(Windows or Mac):
docker compose -f docker-hub-compose.yml up -d
(Linux):
docker-compose -f docker-hub-compose.yml up -d
เมื่อคลัสเตอร์พร้อม คุณสามารถเพิ่มไฟล์วิดีโอของคุณลงในโฟลเดอร์ขาเข้าได้ ยกตัวอย่าง Big Buck Bunny ของ Blender ซึ่งมีแท็ก imdb คือ tt1254207 เส้นทางควรเป็น:
./volumes/shotit-incoming/tt1254207/Big_Buck_Bunny.mp4
รีสตาร์ท shotit-worker-watcher
ในกรณีที่ตรวจไม่พบการเปลี่ยนแปลงไฟล์ของคุณ
docker restart shotit-worker-watcher
เมื่อ shotit-worker-watcher
ตรวจพบว่ามีไฟล์วิดีโออยู่ในโฟลเดอร์ขาเข้า มันจะเริ่มอัปโหลดวิดีโอไปยัง shotit-media
ที่ขับเคลื่อนโดย object-storage หลังจากการอัปโหลด วิดีโอจะถูกกำจัด จากนั้น 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 ต้องโหลดแฮชลงใน RAM ให้สมบูรณ์ก่อน
หว่อง, แอล. (2024). Shotit: เครื่องมือค้นหาภาพต่อวิดีโอที่มีประสิทธิภาพในการคำนวณสำหรับระบบคลาวด์ อาร์เอ็กซ์. /เอบีเอส/2404.12169
โปรดดูที่นี่สำหรับเอกสารฉบับเต็มเกี่ยวกับ:
Shotit
ประกอบด้วยรูปภาพนักเทียบท่าเหล่านี้
รูปภาพนักเทียบท่า | นักเทียบท่า CI บิวด์ | ขนาดภาพ |
---|---|---|
shotit-api | ||
shotit-สื่อ | ||
shotit-คนงาน-เฝ้าดู | ||
shotit-คนงาน-hasher | ||
shotit-คนงาน-โหลดเดอร์ | ||
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