The Watcher service performs the function of the eyes of the application. It captures details from a video device and performs at present Facial recognition on the captured frames. The results of that processing is then sent to the Brain for any additional tasks. The recognition routines utilize the haarcascades model from the OpenCV project to identify faces and then, based on a trained data set, determine the confidence level of that face belonging to a known face.

The Watcher is mostly a one-way service of capturing faces and sending the information stream to the Brain. This is done via JSON requests delivered at predetermined 1 second intervals.

It’s important to note that all of the “recognition” of items in a video frame is done inside the Watcher service. The Brain receives only the converted text results.

The minimum start options for the Watcher are:

# Start the Watcher service with standard HTTP
python3 --watcher-start --use-http \
  --input-folder /path/to/folder/of/faces

# Start the Watcher service with HTTPS (SSL)
python3 --watcher-start \
  --ssl-keypath /path/to/key.pem \
  --ssl-certfile /path/to/cert.pem \
  --input-folder /path/to/folder/of/faces