Recognize faces/objects in a video stream (from a webcam or a security camera) and send notifications to your devices
- Recognize objects
- Recognize faces
- Send notifications to your phone (or other devices) using ntfy
- Optionally, run headless with Docker
- Either use a webcam or an RTSP feed
- Use mrlt8/docker-wyze-bridge to get RTSP feeds from Wyze Cams
- Camera, either a webcam or a Wyze Cam
- All RTSP feeds should work, however.
- WSL, by default, does not support USB devices. It is recommended to natively run this, but it is possible to use it on WSL with streams or some workarounds.
- Python 3.10 or 3.11
- Poetry (optional)
- Windows or Linux
- I've tested this on MacOS - it works on my 2014 MacBook Air but not a 2011 MacBook Pro
- Both were upgraded with OpenCore, with the MacBook Air running Monterey and the MacBook Pro running a newer version of MacOS, which may have been the problem
- A Wyze Cam
- Any other RTSP feed should work, as mentioned above
- Docker
- Docker Compose
- A Wyze subscription
Cloning the repository is not required when installing from PyPi but is required when installing from source
- Clone this repo with
git clone https://github.com/slashtechno/wyzely-detect
cd
into the cloned repository- Then, either install with Poetry or run with Docker
This assumes you have Python 3.10 or 3.11 installed
pip install wyzely-detect
a. You may need to usepip3
instead ofpip
wyzely-detect
poetry install
a. For GPU support, usepoetry install -E cuda --with gpu
poetry run -- wyzely-detect
Running with Docker has the benefit of having easier configuration, the ability to run headlessly, and easy setup of Ntfy and mrlt8/docker-wyze-bridge. However, for now, CPU-only is supported. Contributions are welcome to add GPU support. In addition, Docker is tested a less-tested method of running this program.
- Modify to
docker-compose.yml
to achieve desired configuration - Run in the background with
docker compose up -d
The following are some basic CLI options. Most flags have environment variable equivalents which can be helpful when using Docker.
- For face recognition, put images of faces in subdirectories
./faces
(this can be changed with--faces-directory
)- Keep in mind, on the first run, face rec
- By default, notifications are sent for all objects. This can be changed with one or more occurrences of
--detect-object
to specify which objects to detect- Currently, all classes in the COCO dataset can be detected
- To specify where notifications are sent, specify a ntfy URL with
--ntfy-url
- To configure the program when using Docker, edit
docker-compose.yml
and/or set environment variables. - For further information, use
--help
- If you used Docker, run
docker-compose down --rmi all
in the cloned repository - If you used Poetry, just delete the virtual environment and then the cloned repository