All checks were successful
Build MuCaPy Executable / build-and-package (push) Successful in 1m49s
157 lines
4.2 KiB
Markdown
157 lines
4.2 KiB
Markdown
# MuCaPy: Multi-Camera Python🎥🧠
|
|
|
|
[](https://www.python.org/)
|
|
[]()
|
|
[](https://opencv.org/)
|
|
[](https://riverbankcomputing.com/software/pyqt/)
|
|
[]()
|
|
|
|
---
|
|
|
|
## 📌 Overview
|
|
|
|
**MuCaPy** (Multi-Camera Python) is a modern, robust, and user-friendly real-time multi-camera object detection platform powered by **YOLOv4** and **OpenCV**, designed with a professional PyQt5 GUI. It supports both **local** and **network IP cameras**, allows dynamic camera selection, advanced configuration, and comes with a beautiful dark-themed UI. CUDA support ensures high performance where available.
|
|
|
|
---
|
|
|
|
## ✨ Features
|
|
|
|
- 🔁 Connect multiple **local USB or IP cameras**
|
|
- 💡 Real-time **YOLOv4 object detection**
|
|
- 🎛️ Intelligent UI with **PyQt5**, collapsible dock widgets, and tabbed views
|
|
- 📸 Take **screenshots** per camera feed
|
|
- ⚙️ **Model loader** for dynamic YOLO weight/config/class sets
|
|
- 🔌 **Network camera support** with authentication
|
|
- 🖥️ **Hardware monitor** (CPU and per-core utilization via `psutil`)
|
|
- 🖼️ Fullscreen camera views & dynamic layout switcher
|
|
- 💾 Persistent **configuration management**
|
|
- 🧪 **Camera connectivity test tools**
|
|
|
|
---
|
|
|
|
## 📦 Requirements
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
<details>
|
|
<summary><strong>Dependencies:</strong></summary>
|
|
|
|
- Python 3.8+
|
|
- OpenCV (cv2)
|
|
- PyQt5
|
|
- NumPy
|
|
- Requests
|
|
- psutil
|
|
|
|
</details>
|
|
|
|
---
|
|
|
|
## 🚀 Getting Started
|
|
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
> ✅ Make sure your YOLOv4 model directory contains `.weights`, `.cfg`, and `.names` files.
|
|
|
|
---
|
|
|
|
## 📁 Model Directory Structure
|
|
This is important! If you dont have the correct directory structure, the model loader won't work.
|
|
|
|
Models are Included in the Git Repository!
|
|
|
|
```bash
|
|
model/
|
|
├── yolov4.cfg
|
|
├── yolov4.weights
|
|
└── coco.names
|
|
```
|
|
|
|
---
|
|
|
|
## 🎮 UI Highlights
|
|
|
|
- **Model Loader**: Easily select model directory
|
|
- **Camera Selection**: Mix and match local/network sources
|
|
- **Layouts**: Switch between 1, 2, 3, 4, or grid layouts
|
|
- **FPS Control**: Adjustable frame rate
|
|
- **Dark Theme**: Developer-friendly aesthetic
|
|
- **Screenshot Button**: Save current camera frame
|
|
- **Hardware Stats**: Monitor CPU load in real-time
|
|
|
|
---
|
|
|
|
## 🔗 Recommended YOLOv4 Model Links
|
|
|
|
- [YOLOv4.cfg](https://github.com/AlexeyAB/darknet/blob/master/cfg/yolov4.cfg)
|
|
- [YOLOv4.weights](https://github.com/AlexeyAB/darknet/releases/download/yolov4/yolov4.weights)
|
|
- [COCO.names](https://github.com/pjreddie/darknet/blob/master/data/coco.names)
|
|
|
|
---
|
|
|
|
## 🔐 Network Camera Example
|
|
|
|
Supports URLs like:
|
|
- `http://192.168.1.101:8080/video`
|
|
- `http://username:password@ip:port/stream`
|
|
|
|
Authentication is optional and can be configured per-camera.
|
|
|
|
---
|
|
|
|
## 🧪 Camera Test Tools
|
|
|
|
- Test connectivity to any selected camera
|
|
- Auto-handle reconnection on failures
|
|
- Preview all selected feeds with drag-and-drop reordering
|
|
|
|
---
|
|
|
|
## ⚙️ Configuration & Persistence
|
|
|
|
This is also Very Important if you have multiple cameras or want to save / delete your settings. You can save your settings to a file and load them later.
|
|
|
|
Settings (last model, selected cameras, layout, FPS, etc.) are saved to:
|
|
|
|
- **Linux/macOS**: `~/.config/mucapy/config.json`
|
|
- **Windows**: `%APPDATA%\MuCaPy\config.json`
|
|
|
|
---
|
|
|
|
## 📸 Screenshot Storage
|
|
|
|
Default directory: `~/Pictures/MuCaPy` (can be changed from the UI)
|
|
|
|
---
|
|
|
|
## 📖 About
|
|
|
|
> _I built MuCaPy to learn about OpenCV, Python, and to have a simple, easy-to-use camera viewer for my Camera Server, since ContaCam doesn't work on my system (not well atleast!)._
|
|
|
|
---
|
|
|
|
## 🔮 To Be Added
|
|
|
|
- **YOLOv5 / YOLOv8 / YOLO-NAS support**
|
|
- **RTSP stream handling** _( Currently works but is fuzzy / crashes easily)_
|
|
- **Real-time performance dashboards**
|
|
- **WebSocket remote monitoring**
|
|
- **Not-so-laggy UI improvements**
|
|
- **Better CUDA implementation**
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
This Project is currently under a Proprietary Licsence and shouldnt be distributed!
|
|
|
|
---
|
|
|
|
## 🧑💻 Maintainers
|
|
|
|
- 👤 Rattatwinko
|