Model Preparation#
Real-Time Scene Understanding requires an alert VLM and a second, video-capable VLM for deep analysis under ov_models/.
The provided helper uses the ephemeral model-download container flow from the Model Download project in Open Edge Platform. It starts a temporary container, downloads or converts the model, writes the files to this repository, and removes the container when finished. No separate model-download setup is required.
Prerequisites#
Docker is installed and running.
curlandpython3are available on the host.Commands are run from the
real-time-scene-understandingdirectory.For gated Hugging Face models, set a token first:
export HUGGINGFACEHUB_API_TOKEN="your-huggingface-token"
Usage#
Use the helper script with the following arguments:
./model_download_scripts/download_models.sh \
--model <huggingface-model-id> \
--type vlm \
--weight-format <int4|int8|fp16> \
--device <CPU|GPU|NPU>
Parameters:
--model: Hugging Face model identifier (for example,Qwen/Qwen3-VL-2B-Instruct).--type: Model category. Usevlmfor Vision Language Models.--weight-format: Precision/quantization format. Supported values areint4,int8, andfp16.--device: Target conversion device (for example,CPU,GPU, orNPU, depending on host support).
Weight format options:
Supported weight formats are int4, int8, and fp16. The default is int8.
Format |
Memory use |
Accuracy |
When to use |
|---|---|---|---|
|
Lowest |
Lower |
Memory-constrained systems |
|
Medium |
Good |
Recommended default |
|
Highest |
Best |
Maximum accuracy, more RAM required |
Download a VLM Model#
Use the following commands to run conversion for the desired target device. Generated models are stored under ov_models/.
./model_download_scripts/download_models.sh \
--model Qwen/Qwen3-VL-2B-Instruct \
--type vlm \
--weight-format int4 \
--device CPU
./model_download_scripts/download_models.sh \
--model Qwen/Qwen3-VL-8B-Instruct \
--type vlm \
--weight-format int4 \
--device GPU
./model_download_scripts/download_models.sh \
--model Qwen/Qwen3-VL-2B-Instruct \
--type vlm \
--weight-format int4 \
--device NPU
Note
NPU currently requires int4 quantization for VLM conversion. If you pass --device NPU with int8 or fp16, the script automatically overrides it to int4.
Use this NPU conversion only if Qwen/Qwen3-VL-2B-Instruct is supported for your hardware and OVMS/OpenVINO version. NPU support varies by model; check the OpenVINO Model Support Page before converting.
You can also download and convert for multiple target devices in a single command by passing a comma-separated --device list:
./model_download_scripts/download_models.sh \
--model Qwen/Qwen3-VL-2B-Instruct \
--type vlm \
--weight-format int4 \
--device CPU,GPU
Downloaded VLM models are stored under per-device directories in ov_models/.
Set ALERT_VLM_MODEL, ALERT_VLM_DEVICE, DEEP_ANALYZER_MODEL, and DEEP_ANALYZER_DEVICE in .env to match the downloaded directory names and device folders. The alert model is used for frame-level filtering; the deep-analyzer model must support video input.
The application loads each VLM from the device-specific directory that matches its model and device settings in .env.
Example:
|
Example output directory |
VLM device tag |
|---|---|---|
|
|
|
|
|
|
|
|
|
Models Used in This Guide#
The setup examples use these VLMs:
Pipeline |
Model Name |
Device |
|---|---|---|
Alert VLM |
Qwen/Qwen3-VL-2B-Instruct |
CPU |
Deep analyzer |
Qwen/Qwen3-VL-8B-Instruct |
GPU |
Note
OVMS_RELEASE_TAG in .env controls the OVMS image version used by the model download/conversion flow. Consult the official OpenVINO documentation for supported models and corresponding OVMS versions. Using a different tag can change the bundled transformers/OpenVINO toolchain and may cause conversion failures.
If you want to use newer Hugging Face models, you may need a newer OVMS/OpenVINO stack for conversion, which means updating OVMS_RELEASE_TAG.
This guide is based on the 2026.1.0 stable DL Streamer release, built on top of OpenVINO v2026.1.
Troubleshooting#
If Docker cannot pull
intel/model-download:<tag>, check theMODEL_DOWNLOAD_IMAGE_TAGvalue in.env(defaults tolatest; this is independent of the application imageTAG).If a gated model fails with an authentication error, set
HUGGINGFACEHUB_API_TOKENand rerun the command.If a download process is interrupted or fails due to network issues, remove the
ovms_modelfolder and the model-specific folder from the failed run underov_models/. Then rerun the command. The ephemeral model-download container is automatically cleaned up when the helper exits.