You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Full stack
docker compose -f docker-compose.full.yml up --build
# Runner only
docker compose -f docker-compose.runner.yml up --build
# Runner with OpenVINO
docker compose -f docker-compose.runner.yml -f docker-compose.openvino.yml up --build
Volume Mappings
Container Path
Description
Example
/models
ONNX model bundles
-v ./models:/models:ro
/input
Images to process
-v ./input:/input
/output
Detection results (JSON)
-v ./output:/output
/datasets
Training datasets
-v ./datasets:/datasets
Environment Variables
Core Settings
Variable
Default
Description
VISION_MODEL_PATH
—
Required. Path to ONNX model
Watch Folder (Auto-Processing)
Variable
Default
Description
VISION_WATCH
1
Enable folder watching
VISION_WATCH_INPUT
/input
Folder to watch
VISION_WATCH_OUTPUT
/output
JSON results folder
VISION_WATCH_PROCESSED
—
Move processed images here
VISION_WATCH_MODE
json
json, move, both, or annotated
VISION_EXPORT_ANNOTATED
0
Save annotated images from watch folder
VISION_EXPORT_FORMAT
jpg
Annotated output format (jpg or png)
Video Inference
Variable
Default
Description
VISION_VIDEO_FRAME_INTERVAL
5
Sample every Nth frame
VISION_VIDEO_MAX_FRAMES
300
Max frames to process per video
Upload & Security
Variable
Default
Description
VISION_SAVE_UPLOADS
0
Persist uploaded images
VISION_DEMO_ALLOW_MUTATIONS
0
Allow file deletion via API
VISION_ALLOW_RUNTIME_SETTINGS
1
Allow settings changes from UI
Integrations
Variable
Default
Description
VISION_WEBHOOK_URL
—
HTTP POST endpoint for results
VISION_MQTT_BROKER
—
MQTT broker hostname
VISION_MQTT_TOPIC
vision/results
MQTT topic for results
VISION_OPCUA_ENABLE
0
Enable OPC UA server on port 4840
Privacy & Anonymization
Optional face anonymization before inference (GDPR compliance).
Uses the Ultra-Light-Fast-Generic-Face-Detector (ULFD, MIT license) — a ~1 MB ONNX model suitable for CPU and commercial use.
Variable
Default
Description
VISION_PRIVACY_FACE_BLUR
0
Enable privacy pre-processing
VISION_PRIVACY_MODEL_PATH
—
Path to face detector ONNX model
VISION_PRIVACY_MODE
blur
blur or pixelate
VISION_PRIVACY_MIN_SCORE
0.15
Minimum face score to anonymize
VISION_PRIVACY_BLUR_RADIUS
12
Gaussian blur radius
VISION_PRIVACY_PIXELATE_SIZE
10
Pixelation block size
VISION_PRIVACY_LETTERBOX
1
Use letterbox preprocessing
VISION_PRIVACY_NMS_IOU
0.3
NMS IoU threshold
OpenVINO (Intel)
Variable
Default
Description
VISION_ORT_PROVIDERS
CPUExecutionProvider
ONNX Runtime execution providers
VISION_OPENVINO_DEVICE_TYPE
CPU
OpenVINO device type
API Endpoints
Inference
Endpoint
Method
Description
/api/v1/infer
POST
Run inference on uploaded image
/api/v1/infer/filtered
POST
Infer with a named detection filter
/api/v1/infer/video
POST
Upload video and start async inference
/api/v1/infer/video/status/{job_id}
GET
SSE progress stream for video job
/api/v1/infer/video/result/{job_id}
GET
Full per-frame detection results
/api/v1/infer/video/export/{job_id}
POST
Render annotated video (boxes/labels/privacy)
/api/v1/infer/video/export/{job_id}
GET
Download rendered video
/api/v1/infer/video/preview/{job_id}
GET
Stream rendered video for playback
/api/v1/demo/files
GET
List files in input folder
/api/v1/demo/infer?name=
GET
Infer on existing file
/api/v1/demo/infer/filtered?name=
GET
Filtered infer on existing file
/api/v1/demo/image?name=
GET
Serve an input image
/api/v1/demo/image/anonymized?name=
GET
Serve anonymized version
/api/v1/demo/clear
POST
Clear input folder (guarded)
Privacy
Endpoint
Method
Description
/api/v1/privacy
GET
Privacy status and configuration
/api/v1/privacy
POST
Update privacy settings at runtime
/api/v1/privacy/anonymize
POST
Anonymize an uploaded image
Models & Registry
Endpoint
Method
Description
/api/v1/models
GET
Current active model info
/api/v1/models/labels
GET
Class labels for active model
/api/v1/models/reload
POST
Reload the active model
/api/v1/models/upload
POST
Upload a new model bundle
/api/v1/models/bundle
GET
Download active model as bundle
/api/v1/models/bundle/import
POST
Import a model bundle ZIP
/api/v1/registry
GET
List all available model bundles
/api/v1/registry/activate
POST
Activate a model bundle
Detection Filters & Tasks
Endpoint
Method
Description
/api/v1/filters
GET
List all filters (incl. built-in profiles)
/api/v1/filters/{name}
GET
Get a filter
/api/v1/filters
POST
Create a filter
/api/v1/filters/{name}
DELETE
Delete a filter (blocked for built-in)
/api/v1/tasks
GET
List available detection tasks
Image & Batch Export
Endpoint
Method
Description
/api/v1/export/image
GET
Export demo image with annotations/privacy
/api/v1/export/image
POST
Upload image, get annotated version back
/api/v1/export/batch
POST
Start batch export (ZIP of annotated images)
/api/v1/export/batch/{job_id}/status
GET
Batch export progress
/api/v1/export/batch/{job_id}
GET
Download completed batch ZIP
Datasets & Training
Endpoint
Method
Description
/api/v1/datasets
GET / POST
List or create datasets
/api/v1/datasets/{name}
GET / DELETE
Get or delete a dataset
/api/v1/datasets/{name}/images
GET / POST
List or upload images
/api/v1/datasets/{name}/images/{id}/annotations
GET / PUT
Read or update annotations
/api/v1/datasets/{name}/classes
GET / PUT
Manage class labels
/api/v1/datasets/{name}/export
POST
Export dataset (YOLO format)
/api/v1/training/start
POST
Start a training job
/api/v1/training/status
GET
Training job status
/api/v1/training/stop
POST
Stop the running job
/api/v1/training/logs
GET
Training logs
/api/v1/training/history
GET
Previous training runs
/api/v1/training/export
POST
Export trained model to ONNX
/api/v1/training/export/openvino
POST
Export to OpenVINO IR
Integrations
Endpoint
Method
Description
/api/v1/integrations
GET
Integration status (OPC UA, MQTT, Webhook)
/api/v1/integrations
POST
Update integration settings
/api/v1/integrations/test/webhook
POST
Send a test webhook
/api/v1/integrations/test/mqtt
POST
Send a test MQTT message
System
Endpoint
Method
Description
/health
GET
Health check
/health/ready
GET
Readiness check
/api/v1/settings
GET / POST
View or update runtime settings
/api/v1/watcher/status
GET
Watch folder status
Inference via cURL
curl -X POST http://localhost:8000/api/v1/infer -F "image=@photo.jpg"
Auto-Processing Example
Process images automatically and move them to a "processed" folder:
When enabled, faces are automatically anonymized before the main detection model runs. The API response includes privacy_applied (boolean) and privacy_faces (count) fields.
Model Bundle Format
models/
└── demo/
└── v1/
├── model.onnx # ONNX model with NMS
├── labels.txt # Class labels (one per line)
└── meta.json # Optional metadata
Industrial Connectivity
The system is designed for Industry 4.0 integration: