Docs
{{ g.name }} {{ pg.name }}
Docs/Applications/iQS-VLM

iQS-VLM

Application VLMGenieXUVC camera

This demo runs a vision-language model (VLM) on the platform in real time, powered by GenieX. It reads a live video stream from a UVC Camera, asks the model to describe what it sees, and shows the description on a fullscreen dashboard on the monitor.

iQS-VLM overview
iQS-VLM overview

The demo can run in two modes:

  1. 1
    VLM demo (default): the camera feed is described live on the monitor.
  2. 2
    Chat: you chat with the model from a browser on your PC through Open WebUI. See Chat with the Model through Open WebUI.

Here is the VLM demo running LFM2.5-VL-450M on the NPU:

iQS-VLM live demo
iQS-VLM live demo

Supported Models

The demo ships with two models. Everything runs inside one container image, so nothing has to be downloaded or installed separately.

ModelRuntimeBackend
Qwen3-VL-4B (default)GenieX-QairtNPU
LFM2.5-VL-450MGenieX-llama.cppNPU, CPU, GPU, Hybrid

The runtime selects the model: GenieX-Qairt runs Qwen3-VL-4B, and GenieX-llama.cpp runs LFM2.5-VL-450M.

Both runtimes are powered by GenieX v0.9.3.

How to Deploy

Supported Versions

Choose the iQ-Studio version that matches your platform. To check your BSP version, run cat /etc/innodisk/BSP-version on the platform.

Your platformiQ-Studio version
BSP v2.5.0 or laterv0.0.12 or later
BSP earlier than v2.5.0v0.0.10
Ubuntu image x09v0.0.10

For v0.0.10, run git checkout v0.0.10 in the iQ-Studio directory before ./install.sh. To return to the latest version, run git checkout main. The demos and tutorials differ between versions, so on v0.0.10 follow the README in that checkout instead of this page.

This page describes the GenieX-based VLM demo. iQ-Studio versions earlier than v0.0.12 use the earlier OGenie-based demo, so we recommend the latest version.

What do you need?

  1. 1
    A platform: EXMP-Q911, EXEC-Q911 or APEX-A100
  2. 2
    At least 10 GB of free disk space
  3. 3
    A monitor
  4. 4
    A UVC camera
    • 1080p/30fps (1920x1080 pixels)
    • MJPEG compression format
We have tried this demo with this USB camera.

Please plug both devices—the UVC camera and the monitor—into the platform.

How to start?

{{ cbInstall.fname }} bash

How to Use

Run the demo

One command starts the demo with the default model, Qwen3-VL-4B on the NPU:

{{ cbRun.fname }} bash
The first run downloads the demo image (about 3.8 GB) if it is not already on the platform. Later runs start right away.

The dashboard opens on the monitor once the model has loaded.

Choose a model and backend

Pass the runtime and the backend with --other. The runtime selects the model.

Qwen3-VL-4B (GenieX-Qairt) runs on the NPU only:

{{ cbQairt.fname }} bash

LFM2.5-VL-450M (GenieX-llama.cpp) runs on the NPU, CPU, GPU or Hybrid backend. Pick one:

NPU

{{ cbNpu.fname }} bash

CPU

{{ cbCpu.fname }} bash

GPU

{{ cbGpu.fname }} bash

Hybrid

{{ cbHybrid.fname }} bash
On the GPU and Hybrid backends, the first response takes a few seconds longer while the GPU prepares the model.

To switch to another model or backend, stop the demo and start it again.

Stop the demo

Press q in the dashboard window, or Ctrl+C in the terminal. The demo shuts down cleanly and prints:

outputtext
Important: Always stop the demo with q or Ctrl+C. Killing the container (for example with docker rm -f) can leave NPU memory reserved until the platform is rebooted.

Performance

Measured on the NPU with the live camera feed:

ModelRuntimeBackendTTFTTokens per second
Qwen3-VL-4BGenieX-QairtNPU~640 ms~14
LFM2.5-VL-450MGenieX-llama.cppNPU~390 ms~92

TTFT (time to first token) is the time from sending a camera frame to the model until the first word of the description appears.

Troubleshooting

MessageWhat to do
cannot start: these required host paths are missing:Usually the UVC Camera is not plugged in. Reconnect it and start again.
No usable graphical display was foundMake sure the monitor is connected and the desktop is running.
a container named iqs-vlm-demo already existsA previous run did not exit cleanly. Run docker rm -f iqs-vlm-demo, then start again.
invalid launch selection: ...The runtime and backend do not match. Use the values in Choose a model and backend.
model warm-up failedNPU memory is still held by an earlier run that was killed. Reboot the platform.

Logs are saved on the platform in /var/lib/iqs-vlm-demo/logs.

Chat with the Model through Open WebUI

For advanced features and usage examples, visit this page to learn more.

Reference

You are here {{ railNum }}/ {{ railTotal }} {{ railPct }}