MugheesMehdi07/langvio

A powerful AI library that bridges Large Language Models (LLMs) with video processing frameworks like YOLO, enabling seamless integration of vision and language for advanced video understanding, object detection, and contextual analysis.

해결하는 문제

이미지와 비디오를 분석하는 것은 일반적으로 각 작업에 대해 감지 또는 추적 코드를 작성하는 것을 의미합니다. Langvio는 이 단계를 제거합니다. "빨간 차를 모두 세어줘" 또는 "노란 옷을 입은 사람을 찾아줘"와 같이 영어로 질문하면 설명과 주석이 달린 미디어를 반환합니다. 쿼리를 이해하는 언어 모델과 객체를 감지하고 추적하는 비전 모델을 결합하여 동일한 도구로 카운팅, 속성 검색, 공간 질문, 비디오 요약을 처리합니다.

작동 방식

Langvio는 협력하는 두 부분으로 구성된 파이프라인을 실행합니다. Qwen-VL 언어 프로세서는 쿼리를 대상, 속성, 작업 매개변수로 구문 분석한 다음 감지 결과를 설명합니다. Qwen-VL 비전 프로세서는 이미지와 샘플링된 비디오 키프레임에서 객체를 접지하고, 경계 상자를 정규화하고, 중복 감지를 제거합니다. 비디오의 경우 키프레임의 감지는 레이블, 상자 겹침, 예측 모션을 사용하여 트랙으로 연결됩니다. 상자는 CPU 광학 흐름으로 키프레임 간에 전달되며, 보간이 폴백으로 사용됩니다. "안경을 쓴 사람"과 같은 설명적 쿼리는 각 비디오 트랙의 여러 뷰를 포함한 상세한 크롭에 대해 확인됩니다.

"이 주차장에 차가 몇 대 있나요?"와 같은 쿼리는 쿼리 구문 분석, 객체 접지(비디오의 경우 키프레임 접지), 트랙 연관 및 크롭 매칭, 설명 생성을 거칩니다. 결과에는 주석이 달린 이미지 또는 비디오, 자연어 설명, 요약이 포함된 구조화된 감지 데이터가 포함됩니다.

Langvio는 기본적으로 API 키를 사용하여 호스팅된 OpenAI 호환 API(OpenRouter)에서 실행됩니다. 키가 설정되지 않고 로컬 추가 기능이 설치된 경우 HuggingFace를 통해 프로세스 내에서 Qwen2.5-VL 가중치를 로드하는 폴백이 있습니다. 언어 및 비전 프로세서는 백엔드를 독립적으로 해결합니다. YOLO-World v2 및 ByteTracker를 사용하는 레거시 경로는 클래식 개방 어휘 감지에 계속 사용할 수 있습니다.

대상 사용자

맞춤형 감지 파이프라인을 작성하지 않고 시각적 미디어에 대해 질문하려는 개발자와 연구자. CLI 또는 Flask 웹 앱을 통한 빠른 실험과 Python API를 통한 대규모 애플리케이션 구축에 적합합니다. Python 3.10-3.12에 익숙하고 OpenRouter API 키 또는 로컬 비전 언어 모델을 실행할 충분한 컴퓨팅 리소스가 있는 사람이라면 누구나 사용할 수 있습니다.

하이라이트

  • 자연어 쿼리: "차를 세어줘", "빨간 물체를 모두 찾아줘", "테이블 위에 무엇이 있나요?"
  • 이미지 및 비디오 지원, 키프레임 기반 추적, 광학 흐름, 보간 폴백
  • Qwen-VL이 쿼리 구문 분석/설명과 객체 접지를 모두 구동하며, 프로세서는 독립적으로 구성 가능
  • 기본적으로 호스팅 API(OpenRouter), 키가 설정되지 않은 경우 로컬 프로세스 내 추론 폴백
  • 설명적 쿼리를 위한 속성 매칭, 크롭 및 여러 트랙 뷰 사용
  • 비디오 요약: 추정된 고유 객체 수, 최대 동시 개수, 이동 패턴, 중앙선 교차
  • 경계 상자 및 추적 궤적이 있는 주석이 달린 출력 이미지/비디오, Flask 웹 인터페이스
  • YAML 구성으로 확장 가능; 레거시 YOLO-World + ByteTracker 경로도 사용 가능

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트