[Show HN] 제미나이(Gemini)의 네이티브 비디오 임베딩을 활용한 1초 미만 영상 검색 구현

SentrySearch는 구글의 Gemini Embedding 2 모델을 활용해 블랙박스 영상에서 텍스트로 특정 장면을 1초 미만에 찾아내는 오픈소스 검색 도구입니다. 영상 픽셀을 직접 768차원 벡터로 변환하여 ChromaDB에 저장하며, '정지 신호를 무시하는 빨간 트럭'과 같은 자연어 쿼리에 매칭되는 영상 구간을 자동 추출합니다.

AI 요약

SentrySearch는 대규모 언어 모델(LLM)의 시각적 이해 능력을 블랙박스(dashcam) 영상 검색에 접목한 혁신적인 오픈소스 프로젝트입니다. 이 도구는 기존의 영상 분석 방식처럼 텍스트 자막을 생성하거나 프레임마다 캡션을 다는 번거로운 중간 과정 없이, 구글의 'Gemini Embedding 2' 모델을 통해 영상의 원시 픽셀 데이터를 직접 임베딩합니다. 사용자가 특정 상황을 설명하는 텍스트를 입력하면, 시스템은 로컬 ChromaDB에 저장된 비디오 벡터와 비교하여 가장 유사도가 높은 구간을 찾아냅니다. 이후 ffmpeg을 활용해 해당 구간을 자동으로 트리밍하여 클립으로 저장해줌으로써, 방대한 영상 기록 속에서 필요한 순간을 즉시 확보할 수 있게 해줍니다.

핵심 인사이트

  • 네이티브 비디오 임베딩: 구글 Gemini Embedding 2 모델을 사용해 영상 픽셀을 텍스트 쿼리와 동일한 768차원 벡터 공간으로 직접 투영하여 검색 정확도를 높였습니다.
  • 효율적인 데이터 구조: 영상을 30초 단위의 청크(chunk)로 나누고 5초의 오버랩(overlap)을 설정하여 정보의 손실 없이 인덱싱을 수행합니다.
  • 로컬 벡터 DB 활용: 임베딩된 데이터를 로컬 환경의 ChromaDB에 저장하여 빠른 검색 속도와 데이터 관리 편의성을 동시에 확보했습니다.

주요 디테일

  • 전처리 최적화: 연산 효율을 위해 영상 해상도를 480px 높이로 다운스케일링하고 프레임 레이트를 5 FPS로 조정하는 전처리 옵션을 제공합니다.
  • 검색 및 클립 생성: sentrysearch search 명령 시 유사도 점수(예: 0.87)와 함께 매칭 구간을 출력하며, match_파일명_시간대.mp4 형태의 결과물을 자동 생성합니다.
  • 간편한 설정: sentrysearch init 명령어를 통해 Google AI Studio에서 발급받은 API 키를 설정하고 테스트 임베딩을 통해 즉시 검증이 가능합니다.
  • 기술 스택: Python 기반으로 구축되었으며, 영상 처리를 위해 ffmpeg 및 imageio-ffmpeg 라이브러리를 사용합니다.
  • 시각 변화 감지: --no-skip-still 옵션을 통해 시각적 변화가 없는 정지 화면 청크의 인덱싱 여부도 사용자가 제어할 수 있습니다.

향후 전망

  • 영상 분석의 패러다임 변화: 텍스트와 영상 간의 직접적인 시맨틱 매칭 기술이 고도화됨에 따라 보안, 교통 관제 등 다양한 산업 분야에서 수동 모니터링을 대체할 것으로 보입니다.
  • 개인형 AI 비서 확장: 블랙박스뿐만 아니라 개인의 라이프 로그 영상이나 홈 CCTV 데이터에 이 기술을 적용하여 개인용 지능형 영상 검색 시스템으로 발전할 가능성이 큽니다.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...