Skip to content

LocateAnything-3B backend (open-vocab grounding)·

yolo_detector.py supports two backends via DET_BACKEND: - yolo — Ultralytics YOLOv8 (fast, fixed COCO classes). Default. Runs in the main scout image. - locate — NVIDIA LocateAnything-3B (open-vocabulary, language-prompted grounding via LOCATE_QUERY). Output: <ref>label</ref><box>..</box>.

⚠️ Dependency isolation·

LocateAnything's released modeling code requires transformers==4.57.1 (it calls APIs removed in transformers 5.x). The main scout image ships transformers 5.x for Cosmos/lerobot/strands. So the locate backend runs in an isolated venv:

python3 -m venv .venv-locate
.venv-locate/bin/pip install torch torchvision transformers==4.57.1 \
    decord==0.6.0 lmdb==1.7.5 pillow numpy accelerate peft safetensors \
    huggingface_hub requests opencv-python-headless

# run the detector with the locate venv:
DET_BACKEND=locate MEDIA_HUB_URL=http://localhost:8090 \
  LOCATE_QUERY="person</c>chair</c>sofa</c>door</c>plant" \
  .venv-locate/bin/python yolo_detector.py

Query format: categories separated by </c> (e.g. person</c>door) — or a plain ". "-separated string, which is auto-normalized.

Verified on a live rover frame: sofa, door, box grounded correctly in ~5s/frame on an L4-class GPU (model load ~6s).