An artificial intelligence to identify cat names bases on their fur. Requires arm-catfaces.
To start, you need to mount the pictures directory from Motion on /data and configure global variables in /conf/catson.py :
docker run -d --name catson -v <conf_directory>:/conf/ -v <data_directory>:/data besn0847/arm-catson
Based on Raspbian Linux Stretch, Python 3.5, and OpenCV 3.4.4
- Catson listens for new files in the Motion pictures/ directory
- When new files are added, it stores each new file name and waits until the detection is over + 15 seconds
- The last frame captured is an empty one as there is a 5 to 10 seconds with no motion detected configured in Motion
- This frame is used as the reference one to extract deltas with the others
- Each other frame is analyzed against the reference one and the extracted deltas greather than 200x200 (aka contours) are sent to the Catfaces RNN which performs fur recognition
- Catfaces returns a cat name with the associated probability
- For each frame processed, Catson only keeps the name and probability with the highest probability
- At the end of frame processing, if this probability is above 98%, then Catson notifies Slack that a feline has come in the lanscape