프로젝트 소개

SentrySearch는 영상의 의미 기반 검색을 위한 명령줄 도구입니다. 이 도구는 비디오 파일을 겹치는 청크(기본값 30초, 5초 중복)로 분할하고, Google의 Gemini Embedding API, Alibaba DashScope의 Qwen3-VL-Embedding(qwen-cloud), 또는 로컬 Qwen3-VL 모델을 사용해 각 청크의 임베딩을 생성하며, 해당 벡터들을 로컬 ChromaDB 데이터베이스에 저장합니다. 사용자는 자연어 질의나 참조 이미지를 통해 검색하여 일치하는 비디오 세그먼트를 가져올 수 있으며, 원본 파일에서 자동으로 트리밍된 후 클립으로 저장됩니다. 주요 기능은 다음과 같습니다: - 비디오 대상 텍스트 및 이미지 기반 의미 검색 - 다중 임베딩 백엔드: Gemini API(기본값), Qwen Cloud(DashScope), 로컬 Qwen3-VL(8B 또는 2B 변형, 선택적 4비트 양자화 지원) - 로컬 모델 선택을 위한 자동 하드웨어 감지(NVIDIA GPU VRAM 18GB 이상 또는 Apple Silicon RAM 24GB 이상의 경우 qwen8b; 그보다 작은 구성의 경우 qwen2b) - 임베딩 전 ffmpeg를 통해 청크를 480p, 5fps로 다운스케일링하는 전처리 파이프라인으로 페이로드 크기와 추론 시간 감소 - 시각적으로 정적인 청크의 임베딩을 피하기 위한 정지 프레임 건너뛰기 - 신뢰도 임계값 설정과 선택적 VLM 기반 재순위 매기기(클라우드 백엔드의 경우 Gemini 2.5 Flash, 로컬의 경우 로컬 Qwen3-VL Instruct) - 코사인 유사도 상한선을 통한 거의 중복되는 결과의 중복 제거 - 통계적으로 비정상적인 클립(knn, centroid 또는 LOF 방법)을 표시하는 하이라이트 모드 - 트리밍된 클립에 Tesla 대시캠 메타데이터 오버레이(속도, GPS, 역지오코딩) - 멀티 카메라 이벤트 스티칭용 SentryMerge 및 얼굴/번호판/프롬프트 기반 마스킹 처리용 SentryBlur와의 통합 - 실패한 청크를 위한 데드레터 큐와 재시도 기능 - 인덱스 관리 명령어(stats, remove, reset) 설치에는 uv(Python 3.11/3.12 필수)가 사용됩니다. 로컬 백엔드는 macOS에서 ffmpeg, NVIDIA에서는 CUDA가 포함된 PyTorch가 필요합니다. 서로 다른 백엔드/모델의 임베딩은 별도의 인덱스에 격리됩니다. Gemini 백엔드의 비용은 기본 설정 기준 인덱싱된 영상 1시간당 약 $2.84입니다. DashScope은 모달리티별 입력 토큰 1k당 과금됩니다. 로컬 백엔드는 완전히 오프라인으로 실행되며 API 비용이 없습니다. 이 도구는 대시캠/보안 영상 워크플로우용으로 설계되었지만 모든 비디오 파일과 호환됩니다. 어디서든 재생 가능한 표준 MP4 클립을 출력합니다.