om-ai-lab/VLX-Seek

VLX-Seek is a device-native vision-language model that enables machines to see, understand, and reason about the visual world with high precision.

TL;DR

VLX‑Seek 는 에지 디바이스 에이전트(드론, 로봇, 카메라 등)가 이미지에 무엇이 있는지정확히 어디에 있는지 를 이해할 수 있도록 해주는 오픈소스 비전-언어 모델(VLM)입니다. 모델에 원시 바운딩 박스 숫자를 출력하도록 요청하는 대신, VLX‑Seek 는 먼저 후보 영역을 생성하고 각 영역을 특수한 "영역 토큰"으로 변환한 후 언어 모델이 이 토큰들을 선택 또는 참조 하도록 합니다. 그 결과, 검출, 참조 표현 이해, OCR, 세기, VQA 등의 세밀한 인식 작업에 매핑 가능한 컴팩트하고 파싱 가능한 토큰 기반의 응답이 생성됩니다.


리포지토리에 포함된 내용

항목 설명
inference.py 10 B VLX‑Seek 체크포인트를 로드하고, 선택적 영역 탐지기(WeDetect)를 실행하며, 검출 또는 VQA를 위한 JSON 및 시각적 결과를 출력하는 명령줄 데모.
vlx_seek/ (vlx_seek 패키지) 모델 아키텍처, 하이브리드 세밀한 영역 인코더(HFRE), 토큰-영역 매핑, VLXSeekWorker 파이썬 래퍼.
requirements.txt Python‑3.10+ 종속성 (PyTorch, transformers 등).
docs/ 상세한 추론 가이드, 지원되는 작업, API 참조.
demo/ README에서 사용되는 샘플 이미지.
assets/ 로고, 예시 결과 스크린샷, 커뮤니티 QR 코드.
resources/ (옵션) 다운로드한 VLX‑Seek 체크포인트와 WeDetect 탐지기 가중치를 저장할 위치.

핵심 아이디어

  1. 영역 우선 파이프라인 – 가벼운 탐지기가 박스를 제안하며, 각 박스는 영역 토큰 (<obj0>, <obj1>, …)으로 변환됩니다.
  2. 하이브리드 세밀한 영역 인코더(HFRE) – 기본 VLM의 고수준 의미 경로와 세부 정보 풍부한 국소 경로를 통합하여, LLM 토큰과 동일한 공간에 임베딩을 생성합니다.
  3. 토큰 기반 추론 – 언어 모델은 이미지 토큰, 텍스트 질의, 영역 토큰을 받고, 수치 좌표 대신 영역 ID(예: <obj2><obj5>)를 출력하여 응답합니다. 이는 더 짧고 파싱하기 쉬우며, LLM이 자연스럽게 엔티티를 선택하는 방식과 일치합니다.
  4. 오픈 백터리 및 거부 – 일치하는 영역이 없을 경우 "none"으로 응답할 수 있어 환상적 검출을 줄입니다.

사용 가능한 기능

  • 오픈 백터리 검출 – 임의의 객체를 요청 (예: "orange; apple").
  • 참조 표현 이해 – 자연어로 설명된 특정 인스턴스를 찾기.
  • 영역 OCR / 캡셔닝 – 선택된 박스의 텍스트를 읽거나 세부 설명을 생성.
  • 세기 – 일치하는 영역의 수를 반환.
  • 일반 VQA – 어떤 제안도 필요 없이 전체 이미지에 대한 질문에 답변.
  • 다단계 시각적 추론 – 영역 토큰이 일반 언어 토큰이므로, 모델은 비교, 대조, 선택 이유를 설명할 수 있습니다.

시작하기 (빠른 시작)

# 1. 복제 및 설치
git clone https://github.com/om-ai-lab/VLX-Seek.git
cd VLX-Seek
pip install -r requirements.txt

# 2. 검출 실행 (제안은 자동 생성)
python inference.py \
  --image-path demo/demo_image.jpg \
  --task detection \
  --text "orange; apple"

# 3. VQA 실행 (제안 필요 없음)
python inference.py \
  --image-path demo/demo_image.jpg \
  --task vqa \
  --text "What fruits are in the image?"

처음 실행 시 Hugging Face에서 10 B 체크포인트(omlab/VLX-Seek-1.5-10B)와 WeDetect 탐지기(wedetect_base_uni.pth)가 다운로드됩니다. 결과는 JSON 형식으로 출력되며 <image>_result.png로 저장됩니다.

파이썬 API (개발자용)

from vlx_seek_worker import VLXSeekWorker

worker = VLXSeekWorker("omlab/VLX-Seek-1.5-10B", device="cuda")

# 검출 – 내장 탐지기가 박스 제안
out = worker.run(
    image_path="demo/demo_image.jpg",
    task="detection",
    text="orange; apple"
)
print(out["region_refs"])   # 예: ["<obj2>", "<obj5>"]
print(out["boxes"])        # 실제 [x1,y1,x2,y2] 좌표

run 메서드는 사용자가 직접 제안을 제공하고 싶을 경우 bbox_list도 수락합니다.

모델 크기 및 성능

  • VLX‑Seek 1.5‑10B – 10 B 파라미터, 추론 코드와 함께 공개. 0.6 B 및 3 B 버전도 계획 중.
  • 빠른 추론 – 선형 어텐션 레이어와 간소화된 제안 파이프라인으로 에지 GPU에서 지연 시간이 감소.
  • 환상 감소 – 하드 네거티브 학습과 명시적인 None 출력 형식으로 타겟을 찾지 못했을 때 정확히 판단할 수 있도록 개선.

더 많은 정보 찾기


요약

VLX‑Seek 는 시각적 영역을 일등 언어 토큰으로 변환하여 대규모 언어 모델이 오브젝트에 대해 추론 할 수 있도록 합니다. 단순히 좌표 문자열을 출력 하는 것보다, 이 설계는 저전력, 실시간 에이전트 시스템에 특히 유용합니다. 정확한 세밀한 기반을 유지하면서도 추론을 빠르고 파싱 가능한 형태로 유지합니다.

관련

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