Skip to content

ZoneMinder client side script to enable object detection, face detection/recognition and ALPR. Built with performance in mind.

License

Notifications You must be signed in to change notification settings

connortechnology/zomi-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Please support ZoneMinder if you can!

If you use software from the ZoneMinder organization please consider sponsoring ZoneMinder. ZoneMinder has been free with a paid support option and paid bounties but, ZoneMinder Org needs help with bringing cash flow in. If you have the means, please consider sponsoring ZoneMinder, Thanks!

To clarify; I do not receive any of the funds, it goes strictly to the main developer of ZM. (I am a sponser as well!)

ZoneMinder Machine Learning Client (ZoMi ML Client)

NOTE

YOU MUST UPGRADE PIP before attempting to install anything in this repo!

⚠️ This software is currently in ALPHA stage, expect issues. ⚠️

This is a project aiming to update how ZoneMinder Object Detection works. A server and client are supplied to allow for easy integration with ZoneMinder or works of software based on ZM.

Upgrade Pip

# System wide
sudo python3 -m pip install --upgrade pip
# User
python3 -m pip install --upgrade pip

Thanks

Prerequisites

  • ZoneMinder 1.37.5+ (EventStartCommand is REQUIRED)
  • Python 3.8+ (3.10+ recommended)
  • Python packages required by the install script
    • psutil
    • requests
    • tqdm
    • distro
  • OpenCV (Contrib) 4.2.0+ (4.8.0+ recommended) with Python3 bindings.
    • OpenCV (opencv-contrib-python-headless) is installed by default into the programs venv dir, advanced users can instead uninstall it and link in their CUDA compiled OpenCV

Notes:

  1. EventStartCommand/EventEndCommand is what runs the object detection script (Push method). Before, SHM was polled (Pull method) every <X> seconds to see if a new event had been triggered.

Client Info

The client uses the new ZoneMinder EventStartCommand/EventEndCommand option. This means ZM kicks off the ML chain instead of the ML chain scanning SHM looking for an event, more efficient!

The client grabs images, sends the images to a ZoMi ML API server, filters detected responses, post processes images and sends notifications. All the heavy computation of ML models is done by the server.

Client Pre-requisites

  • Client MUST be installed on same host as ZM server. Multi-server ZM installs (untested) will require a client install on each server.
  • libgeos-dev : system package (used for the Shapely python module; Polygons)

Install

Install Script

The install script will install the client for you. It will also install the required python packages into its own venv. You can supply the script with options to configure the install. Below is a list of the options and their defaults.

Install Script Options

  • --debug : Enable debug logging

About

ZoneMinder client side script to enable object detection, face detection/recognition and ALPR. Built with performance in mind.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.1%
  • Other 0.9%