Installation

There are two ways to use ML-powered object detection with ZoneMinder:

Feature comparison

Feature

Path 1

Path 2

Object / face / ALPR detection

Annotated images (objdetect.jpg)

Detection notes written to ZM events

Detection metadata (objects.json)

Local or remote ML (via pyzm.serve)

Push notifications (iOS/Android via FCM)

1

WebSocket notifications

MQTT publishing

Notification rules / time-based muting

zmNinjaNG integration

Per-device monitor filtering (tokens.txt)

ES control interface (dynamic config)

1 Path 1 push requires ZM 1.39.2+ and push.enabled: "yes" in objectconfig.yml. Devices register tokens via the ZM Notifications REST API (not tokens.txt). See push_config for setup.

If you only need detection results written to your ZM events (with optional push notifications), Path 1 is simpler to set up. If you need WebSocket notifications, MQTT, notification rules, or the ES control interface, you need Path 2.

Note

Both paths require pip3 (and python3-venv on Debian/Ubuntu). Install with sudo apt install python3-pip python3-venv (Debian/Ubuntu), sudo dnf install python3-pip (Fedora/RHEL), sudo zypper install python3-pip (openSUSE), or sudo pacman -S python-pip (Arch).