# Wyzely Detect
Recognize faces/objects in a video stream (from a webcam or a security camera) and send notifications to your devices
### Features
- Recognize objects
- Recognize faces
- Send notifications to your phone (or other devices) using [ntfy](https://ntfy.sh/)
- Optionally, run headless with Docker
- Either use a webcam or an RTSP feed
- Use [mrlt8/docker-wyze-bridge](https://github.com/mrlt8/docker-wyze-bridge) to get RTSP feeds from Wyze Cams
## Prerequisites
### Python
- 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
### Docker
- A Wyze Cam
- Any other RTSP feed _should_ work, as mentioned above
- Docker
- Docker Compose
## What's not required
- A Wyze subscription
## Usage
### Installation
Cloning the repository is not required when installing from PyPi but is required when installing from source
1. Clone this repo with `git clone https://github.com/slashtechno/wyzely-detect`
2. `cd` into the cloned repository
3. Then, either install with [Poetry](https://python-poetry.org/) or run with Docker
#### Installing from PyPi with pip (recommended)
This assumes you have Python 3.10 or 3.11 installed
1. `pip install wyzely-detect`
a. You may need to use `pip3` instead of `pip`
2. `wyzely-detect`
#### Poetry (best for GPU support)
1. `poetry install`
a. For GPU support, use `poetry install -E cuda --with gpu`
2. `poetry run -- wyzely-detect`
#### Docker
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](https://github.com/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.
1. Modify to `docker-compose.yml` to achieve desired configuration
2. Run in the background with `docker compose up -d`
### Configuration
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](https://cocodataset.org/) dataset can be detected
- To specify where notifications are sent, specify a [ntfy](https://ntfy.sh/) 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`**
### How to uninstall
- 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
Raw data
{
"_id": null,
"home_page": "https://github.com/slashtechno/wyzely-detect",
"name": "wyzely-detect",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<3.12",
"maintainer_email": "",
"keywords": "object-detection,face-detection,wyze,security,yolov8,unified-push",
"author": "slashtechno",
"author_email": "77907286+slashtechno@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/a3/db/35e2a9cb6558ab657c557927e2acb1e753044ffa96159c192664809e82b6/wyzely_detect-0.2.1.tar.gz",
"platform": null,
"description": "# Wyzely Detect \nRecognize faces/objects in a video stream (from a webcam or a security camera) and send notifications to your devices \n\n### Features \n- Recognize objects \n- Recognize faces \n- Send notifications to your phone (or other devices) using [ntfy](https://ntfy.sh/) \n- Optionally, run headless with Docker \n- Either use a webcam or an RTSP feed \n - Use [mrlt8/docker-wyze-bridge](https://github.com/mrlt8/docker-wyze-bridge) to get RTSP feeds from Wyze Cams \n\n\n## Prerequisites \n### Python \n- Camera, either a webcam or a Wyze Cam \n - All RTSP feeds _should_ work, however. \n - **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. \n- Python 3.10 or 3.11 \n- Poetry (optional) \n- Windows or Linux \n - I've tested this on MacOS - it works on my 2014 MacBook Air but not a 2011 MacBook Pro \n - 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 \n\n### Docker \n- A Wyze Cam \n - Any other RTSP feed _should_ work, as mentioned above \n- Docker\n- Docker Compose\n\n\n## What's not required \n- A Wyze subscription \n\n## Usage \n### Installation \nCloning the repository is not required when installing from PyPi but is required when installing from source \n1. Clone this repo with `git clone https://github.com/slashtechno/wyzely-detect` \n2. `cd` into the cloned repository \n3. Then, either install with [Poetry](https://python-poetry.org/) or run with Docker \n\n\n#### Installing from PyPi with pip (recommended) \nThis assumes you have Python 3.10 or 3.11 installed \n1. `pip install wyzely-detect` \n a. You may need to use `pip3` instead of `pip` \n2. `wyzely-detect` \n\n#### Poetry (best for GPU support)\n1. `poetry install` \n a. For GPU support, use `poetry install -E cuda --with gpu`\n2. `poetry run -- wyzely-detect` \n\n#### Docker \nRunning with Docker has the benefit of having easier configuration, the ability to run headlessly, and easy setup of Ntfy and [mrlt8/docker-wyze-bridge](https://github.com/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. \n\n1. Modify to `docker-compose.yml` to achieve desired configuration \n2. Run in the background with `docker compose up -d`\n\n### Configuration \nThe following are some basic CLI options. Most flags have environment variable equivalents which can be helpful when using Docker. \n\n- For face recognition, put images of faces in subdirectories `./faces` (this can be changed with `--faces-directory`) \n - Keep in mind, on the first run, face rec\n- 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\n - Currently, all classes in the [COCO](https://cocodataset.org/) dataset can be detected\n- To specify where notifications are sent, specify a [ntfy](https://ntfy.sh/) URL with `--ntfy-url`\n- To configure the program when using Docker, edit `docker-compose.yml` and/or set environment variables.\n- **For further information, use `--help`**\n\n### How to uninstall \n- If you used Docker, run `docker-compose down --rmi all` in the cloned repository\n- If you used Poetry, just delete the virtual environment and then the cloned repository\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Recognize faces/objects in a video stream (from a webcam or a security camera) and send notifications to your devices",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/slashtechno/wyzely-detect",
"Repository": "https://github.com/slashtechno/wyzely-detect"
},
"split_keywords": [
"object-detection",
"face-detection",
"wyze",
"security",
"yolov8",
"unified-push"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e0afc1d1f63282bbb4eeb039a200f562e918328d24878cbb3ad2bc17b95a671c",
"md5": "f16ddcf1af6740f627cd34a5ca874cfb",
"sha256": "79c8f15670a20c2cdb3c055e07e0dd244af8a85e119622514f82485639eca6fc"
},
"downloads": -1,
"filename": "wyzely_detect-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f16ddcf1af6740f627cd34a5ca874cfb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<3.12",
"size": 25970,
"upload_time": "2024-03-08T22:20:33",
"upload_time_iso_8601": "2024-03-08T22:20:33.813549Z",
"url": "https://files.pythonhosted.org/packages/e0/af/c1d1f63282bbb4eeb039a200f562e918328d24878cbb3ad2bc17b95a671c/wyzely_detect-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a3db35e2a9cb6558ab657c557927e2acb1e753044ffa96159c192664809e82b6",
"md5": "08e3dd95f274b7a84aeca56955788779",
"sha256": "e652f46f3527d376beeeea1862238a9d4575366dfe3f19fecceff811da05dbca"
},
"downloads": -1,
"filename": "wyzely_detect-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "08e3dd95f274b7a84aeca56955788779",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<3.12",
"size": 25516,
"upload_time": "2024-03-08T22:20:35",
"upload_time_iso_8601": "2024-03-08T22:20:35.415902Z",
"url": "https://files.pythonhosted.org/packages/a3/db/35e2a9cb6558ab657c557927e2acb1e753044ffa96159c192664809e82b6/wyzely_detect-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-08 22:20:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "slashtechno",
"github_project": "wyzely-detect",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "wyzely-detect"
}