Connect cameras to models
Camera IDs identify streams. Model IDs identify inference configurations. Several cameras can reference the same model.
Assign the model on the camera
This example binds entrance to the people model. The source is a placeholder. The FPS target is the camera capture target; it does not guarantee the inference rate.
cameras:
- id: entrance
name: Entrance
source: rtsp://CAMERA_HOST/stream
enabled: true
fps_target: 12
model_id: people
classes: [person]
raw_table: detections
zones: "*"Declare weights and runtime
Supply real weights locally. Keep the ID stable when replacing a model used by existing cameras. Classes must agree with both the model and camera configuration.
models:
- id: people
name: People detector
version: yolo26n-coco
path: ./models/yolo26n.pt
runtime: ultralytics
accelerator: cpu
classes: [person]
confidence_threshold: 0.5
iou_threshold: 0.45
input_size: [640, 640]
use_tracker: true
tracker: config/YAMLs/boxmot_tracker.yaml
half: falseChoose a supported execution device
The accelerator setting is passed through to the installed Ultralytics backend. CPU execution is the reference container configuration. NVIDIA execution needs compatible Torch, drivers, a GPU-enabled image, and container GPU access.
Change weights without rebuilding dependencies
Model assets and YAMLs are mounted into generated containers. Changing those values usually needs generation and container recreation, rather than an image build. Rebuild when code or dependencies change.
python -m config.controller --generate
docker compose -f config/.generated/pipeline.compose.yaml up --no-build -d --force-recreate --no-deps visionengine-inference-service-people