Model Zoo Benchmark Results Performance benchmarks for all on-demand AI models in the Model Zoo.
Source: backend/services/model_zoo.py
Summary The Model Zoo provides on-demand loading of AI models during batch processing to extract additional context. Models are loaded sequentially (never concurrently) to stay within VRAM budget.
VRAM Budget Component VRAM Allocation Nemotron LLM 21,700 MB YOLO26v2 650 MB Model Zoo ~1,650 MB
Model Registry Detection Models Model VRAM Category Description Status yolo11-license-plate 300 MB detection License plate detection on vehicles Enabled yolo11-face 200 MB detection Face detection on persons Enabled yolo26-general 400 MB detection Future YOLO26 general detection Disabled yolo-world-s 1500 MB detection Open-vocabulary zero-shot detection Enabled threat-detection-yolov8n 300 MB detection Weapon/threat detection Enabled vehicle-damage-detection 2000 MB detection Vehicle damage segmentation (6 classes) Enabled
Classification Models Model VRAM Category Description Status violence-detection 500 MB classification Binary violence classification Enabled weather-classification 200 MB classification Weather condition (5 classes) Enabled fashion-clip 500 MB classification Zero-shot clothing classification Enabled vehicle-segment-classification 1500 MB classification Vehicle type (11 categories) Enabled pet-classifier 200 MB classification Dog/cat classification Enabled vit-age-classifier 200 MB classification Age estimation from face/person crops Enabled vit-gender-classifier 200 MB classification Gender classification from face/person Enabled
Embedding Models Erratum (2026-09-27, ledger item 20): both rows below are stale — clip-vit-l was removed with the xclip full removal (#6649) and osnet-x0-25 no longer exists in models.yml. The person re-ID space is osnet-ain-x1-0 (OSNet-AIN x1.0, 512-dim) since the full swap; CLIP/SigLIP is no longer a re-ID producer. The benchmarks for the current rows were never measured in this document — see models.yml for the live registry; do not quote the VRAM figures below as current.
Model VRAM Category Description Status clip-vit-l 800 MB embedding CLIP embeddings for re-identification Enabled osnet-x0-25 100 MB embedding Person re-identification embeddings Enabled
Pose Estimation Models Model VRAM Category Description Status vitpose-small 1500 MB pose 17 COCO keypoint detection Enabled yolov8n-pose 200 MB pose Alternative pose estimation Enabled
Vision-Language Models Model VRAM Category Description Status florence-2-large 1200 MB vision-language Vision-language queries Disabled
Note: Florence-2 now runs behind the consolidated AI gateway at http://ai-gateway:8090/florence (see FLORENCE_URL in .env.example).
Segmentation Models Model VRAM Category Description Status segformer-b2-clothes 1500 MB segmentation Clothing segmentation (18 categories) Enabled
Depth Estimation Models Model VRAM Category Description Status depth-anything-v2-small 150 MB depth-estimation Monocular depth estimation Enabled
Action Recognition Models Model VRAM Category Description Status xclip-base 2000 MB action-recognition Temporal action recognition in video Retired 2026-09-23 (see below) stgcn-plus-plus 20 MB action-recognition Skeleton-based, 60 NTU classes Enabled (Triton stgcn_action)
Historical benchmark rows for xclip-base below are kept as the measured record from when it ran. It was retired with the NEM-5563 migration to skeleton-based ST-GCN++ (full X-CLIP removal, owner ruling, 2026-09-23) — no benchmark of stgcn-plus-plus exists in this document yet.
OCR Models Model VRAM Category Description Status paddleocr 100 MB ocr OCR text extraction from plates Enabled
Quality Assessment Models Model VRAM Category Description Status brisque-quality 0 MB quality-assessment Image quality assessment (CPU-based) Enabled
Model Details yolo11-license-plate Purpose: Detect license plates on vehicles detected by YOLO26v2.
Specification Value Path {MODEL_ZOO_PATH}/yolo11-license-plate/license-plate-finetune-v1n.pt VRAM ~300 MB Trigger Vehicle detection (car, truck, bus, motorcycle, bicycle) Output License plate bounding boxes
yolo11-face Purpose: Detect faces on persons detected by YOLO26v2.
Specification Value Path {MODEL_ZOO_PATH}/yolo11-face-detection/model.pt VRAM ~200 MB Trigger Person detection Output Face bounding boxes
paddleocr Purpose: Extract text from detected license plates.
Specification Value Path {MODEL_ZOO_PATH}/paddleocr VRAM ~100 MB Trigger License plate detection Output Extracted plate text Optional Dep Requires paddleocr and paddlepaddle
clip-vit-l Purpose: Generate embeddings for person re-identification.
Specification Value Path {MODEL_ZOO_PATH}/clip-vit-l VRAM ~800 MB Output 512-dimensional embeddings
yolo-world-s Purpose: Open-vocabulary zero-shot detection for security-relevant objects.
Specification Value Path {MODEL_ZOO_PATH}/yolo-world-s VRAM ~1500 MB Output Detected objects from text prompts
vitpose-small Purpose: Human pose keypoint detection for behavior analysis.
Specification Value Path {MODEL_ZOO_PATH}/vitpose-small VRAM ~1500 MB Output 17 COCO keypoints per person Pose Classes standing, crouching, bending_over, etc.
depth-anything-v2-small Purpose: Monocular depth estimation for distance context.
Specification Value Path {MODEL_ZOO_PATH}/depth-anything-v2-small VRAM ~150 MB (very lightweight) Output Depth map (lower values = closer to camera)
violence-detection Purpose: Binary classification for violent content detection.
Specification Value Path {MODEL_ZOO_PATH}/violence-detection VRAM ~500 MB Trigger 2+ persons detected (optimization) Accuracy 98.80% Output violent / non-violent
weather-classification Purpose: Environmental context for risk calibration.
Specification Value Path {MODEL_ZOO_PATH}/weather-classification VRAM ~200 MB Classes cloudy/overcast, foggy/hazy, rain/storm, snow/frosty, sun/clear Trigger Once per batch on full frame
Purpose: Clothing segmentation for person identification.
Specification Value Path {MODEL_ZOO_PATH}/segformer-b2-clothes VRAM ~1500 MB Categories 18 clothing/body part categories Trigger Person detection
xclip-base Purpose: Temporal action recognition in video sequences.
Specification Value Path {MODEL_ZOO_PATH}/xclip-base VRAM ~2000 MB Base Model microsoft/xclip-base-patch32 Actions loitering, approaching door, running away, suspicious behavior
fashion-clip Purpose: Zero-shot clothing classification for security context.
Specification Value Path {MODEL_ZOO_PATH}/fashion-siglip VRAM ~500 MB Model Marqo-FashionSigLIP (57% accuracy improvement over FashionCLIP) Attributes Dark hoodie, face mask, gloves, uniforms (Amazon, FedEx, UPS)
brisque-quality Purpose: No-reference image quality assessment.
Specification Value Library piq (Photosynthesis Image Quality) VRAM 0 MB (CPU-based) Use Cases Camera obstruction, motion blur, quality degradation
vehicle-segment-classification Purpose: Detailed vehicle type classification beyond YOLO26v2.
Specification Value Path {MODEL_ZOO_PATH}/vehicle-segment-classification VRAM ~1500 MB Architecture ResNet-50 Classes (11) car, pickup_truck, single_unit_truck, articulated_truck, bus, motorcycle, bicycle, work_van, non_motorized_vehicle, pedestrian, background Training Data MIO-TCD Traffic Dataset (50K images)
vehicle-damage-detection Purpose: Vehicle damage segmentation for security context.
Specification Value Path {MODEL_ZOO_PATH}/vehicle-damage-detection VRAM ~2000 MB Architecture YOLOv11x-seg Classes (6) cracks, dents, glass_shatter, lamp_broken, scratches, tire_flat Security Note glass_shatter + lamp_broken at night = suspicious (break-in)
pet-classifier Purpose: Dog/cat classification for false positive reduction.
Specification Value Path {MODEL_ZOO_PATH}/pet-classifier VRAM ~200 MB (very lightweight ResNet-18) Trigger Animal detection (cat, dog) Output dog / cat classification
osnet-x0-25 Purpose: Person re-identification embeddings across cameras.
Specification Value Path {MODEL_ZOO_PATH}/osnet-x0-25 VRAM ~100 MB (very lightweight) Output 512-dimensional embeddings
threat-detection-yolov8n Purpose: Weapon and threatening object detection.
Specification Value Path {MODEL_ZOO_PATH}/threat-detection-yolov8n VRAM ~300 MB Trigger Suspicious activity detected Output Weapon detections (knives, guns, bats, etc.)
vit-age-classifier Purpose: Age estimation from face/person crops.
Specification Value Path {MODEL_ZOO_PATH}/vit-age-classifier VRAM ~200 MB Classes child, teenager, young_adult, adult, middle_aged, senior
vit-gender-classifier Purpose: Gender classification from face/person crops.
Specification Value Path {MODEL_ZOO_PATH}/vit-gender-classifier VRAM ~200 MB Classes male / female
yolov8n-pose Purpose: Alternative pose estimation model.
Specification Value Path {MODEL_ZOO_PATH}/yolov8n-pose VRAM ~200 MB (lightweight) Use Case Backup when ViTPose unavailable
Benchmark Methodology Running Benchmarks # Run full model zoo benchmark
uv run python scripts/benchmark_model_zoo.py
# Test specific model
uv run python scripts/benchmark_model_zoo.py --model weather-classification
Success Criteria Criteria Target Description Max VRAM per model <1500 MB Must fit in Model Zoo VRAM budget Max load time <5s Quick loading for on-demand use VRAM recovered Yes Clean unload without memory leaks