Real-time object detection and classification in action!
Clean, user-friendly web interface with image gallery support!
git clone https://github.com/arminfabritzek/WatchMyBirds.git
cd WatchMyBirds
cp docker-compose.example.yml docker-compose.yml
docker-compose up -d
- Overview
- 🚀 Key Features
- 📡 Tested Cameras
- 📌 Share Your Results
- 🌟 Roadmap
- ⚙️ Installation and Setup
- 📺 Usage
- 🤝 Contributing
- 🙌 Acknowledgements
- 📄 License
WatchMyBirds is a lightweight, customizable object detection application for real-time monitoring using webcams, RTSP streams, and Docker. It is built using PyTorch and TensorFlow, and it supports live video streaming, automatic frame saving based on detection criteria, and integration with Telegram for notifications. The application is ideal for hobbyists, researchers, and wildlife enthusiasts interested in automated visual monitoring.
-
Real-Time Object Detection:
Transform any webcam or RTSP camera stream into a powerful detection system.- Seamless integration with MotionEye OS for network camera support.
- Tested with cheap IP & PTZ Cameras.
-
Optimized for Diverse Hardware:
Built to run across various devices with performance and accuracy in mind.- Runs on Docker (e.g., Synology NAS), macOS, with planned support for Raspberry Pi and NVIDIA Jetson
-
Integrated Notifications
- Telegram alerts for detections
-
State-of-the-Art AI Models
- Pre-trained models including
yolov11
,EfficientNet
- Pre-trained models including
Camera Model | Connection | Status | Notes |
---|---|---|---|
Low-priced PTZ Camera | RTSP | ✅ Works | Stable RTSP stream verified. |
Raspberry Pi 3 + Zero 2 + Raspberry Pi Cam | MotionEye OS (HTTP Stream) | ✅ Works | |
Seeking Sponsors | N/A | ❓ Pending | Looking for sponsors to provide more camera models for testing. |
🔹 Planned: Expanding RTSP camera compatibility & adding PTZ control.
📢 Interested in sponsoring a test? Reach out on GitHub!
Have you tested WatchMyBirds on another Synology NAS, IP camera, or edge device?
Help expand this list! Share your results by opening an issue or pull request on GitHub with:
- Device model & specs
- OS / Docker setup
- Measured FPS or detection performance
- Additional observations
Your contributions help improve WatchMyBirds for everyone! 🚀
- 🏆 Train custom bird/insect/plant models with classifiers
- 🏆 Optimize for Raspberry Pi 4/5 and Jetson Nano
- 🏆 Track bird visits, diversity, and time patterns
- 🏆 Interactive dashboards for visualization
-
Clone the repo and copy the example compose file:
cp docker-compose.example.yml docker-compose.yml
-
Edit the .yml file to match your stream settings, then run:
docker-compose up -d
➕ See docker-compose.example.yml
for all available environment variables.
This will run the WatchMyBirds application, and you can access the livestream at http://<your-server-ip>:8050
.
-
Clone the Repository:
git clone https://github.com/arminfabritzek/WatchMyBirds.git cd WatchMyBirds
-
Set Up a Virtual Environment (optional but recommended; tested on Python 3.10 and 3.12):
python -m venv venv source venv/bin/activate
-
Install Dependencies:
pip install -r requirements.txt
-
Configure the Video Source:
- Create or edit the .env file in the project root
For a webcam connected via USB use:
VIDEO_SOURCE=0
For an RTSP stream, use:
VIDEO_SOURCE=rtsp://user:password@192.168.0.2:554/1
- Livestream:
http://<your-server-ip>:8050
displays a real-time video and latest birds. - Saved Frames: Frames with objects exceeding the confidence threshold are saved in the
output/
directory.
Have ideas or improvements? Open an issue or submit a pull request!
This project uses Label Studio – provided free through the Academic Program by HumanSignal, Inc.
This project is licensed under the MIT License. See the LICENSE
file for details.