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 首先生成一組候選區域,將每個區域轉換為特殊的「區域令牌」(region token),然後讓語言模型選擇或引用這些令牌。結果是緊湊、基於令牌的輸出,可用於檢測、指代表達理解、OCR、計數和其它細粒度感知任務的映射。


倉儲內容

項目 描述
inference.py 命令列示範,載入 10 B VLX‑Seek 檢查點,執行可選的區域檢測器(WeDetect),並列印檢測或 VQA 的 JSON 與視覺結果。
vlx_seek/vlx_seek 套件) 模型架構、混合細粒度區域編碼器(HFRE)、令牌到區域的對應,以及 VLXSeekWorker Python 包裝器。
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

Python 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 將視覺區域轉化為一等語言令牌,使大型語言模型能夠 推理 物件,而不仅仅是 輸出 座標字串。這種設計特別適用於低功耗、即時的具身系統,它們需要可靠、細粒度的定位,同時保持推理快速且可解析。

相關

  • 專案
  • 專案
  • 專案
  • 專案