Shotit은 TV 및 영화에 맞춰 제작된 스크린샷을 비디오로 변환하는 검색 엔진으로, 매우 빠르고 효율적입니다.
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
추신: 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
클러스터가 준비되면 비디오 파일을 수신 폴더에 추가할 수 있습니다. imdb 태그가 tt1254207인 Blender의 Big Buck Bunny를 예로 들면 경로는 다음과 같아야 합니다.
./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 CI 빌드 | 이미지 크기 |
---|---|---|
Shotit-API | ||
쇼잇미디어 | ||
Shotit-작업자-감시자 | ||
Shotit-작업자-해셔 | ||
Shotit-작업자-로더 | ||
Shotit-노동자-수색자 | ||
샷잇 분류기 | ||
리레솔 | ||
미니오 | ||
etcd | ||
마리아드 | ||
관리자 | ||
레디스 | ||
Milvus-독립형 |
데이터세트 | 에피소드 번호 | 벡터 볼륨 | 검색 시간 |
---|---|---|---|
블렌더 오픈 무비 | 15 | 55,677 | 5초 이내 |
독점 장르 데이터세트 | 3,734 | 53,339,309 | 5초 이내 |
https://shotit.github.io/shotit-frontend/demo
Shotit
Trace.moe의 시스템 설계 패턴을 크게 채택했습니다. Shotit
의 비전은 스크린샷-비디오 검색 엔진을 장르 중립적이고, 사용하기 쉽고, 계산 효율적이며, 엄청나게 빠른 속도로 만드는 것입니다.
기여 가이드를 참조하세요.
아파치-2.0