Installation
There are two ways to use ML-powered object detection with ZoneMinder:
Feature |
Path 1 |
Path 2 |
|---|---|---|
Object / face / ALPR detection |
✔ |
✔ |
Annotated images ( |
✔ |
✔ |
Detection notes written to ZM events |
✔ |
✔ |
Detection metadata ( |
✔ |
✔ |
Local or remote ML (via |
✔ |
✔ |
Push notifications (iOS/Android via FCM) |
✔ 1 |
✔ |
WebSocket notifications |
— |
✔ |
MQTT publishing |
— |
✔ |
Notification rules / time-based muting |
— |
✔ |
zmNinjaNG integration |
— |
✔ |
Per-device monitor filtering ( |
— |
✔ |
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).