- Problem Statement
- Overview
- Demo
- Key Resources
- Installation
- Testing
- Model Conversion
- Model Classes
- Best Model Performance
- Acknowledgements
- References
Innovative Monitoring System for TeleICU Patients Using Video Processing and Deep Learning
TeleICU is concept for monitoring ICU patients from remote locations to reduce the burden of on-site intensivist. Currently there are multiple products available in this domain where one profession seating at remote location physically monitors one or two remote patients in TeleICU. The proposed solution should work to reduce the burden of remote health care professional so, one remote health care professional can monitor 5 or more patients at single time.
Project Presentation: click here
TeleICU is an innovative remote monitoring system that empowers intensivists to manage more patients efficiently. By leveraging cutting-edge AI technologies, it revolutionizes critical care:
- YOLOv10: A powerful deep learning model that identifies patients and tracks vitals in real-time video feeds.
- Deep SORT: Builds on YOLOv10's capabilities, tracking patient movements to create a comprehensive health picture.
- Enables a single intensivist to monitor multiple patients simultaneously
- Facilitates faster interventions through real-time monitoring
- Potentially improves patient outcomes
- Boosts overall efficiency and effectiveness in critical care
Demo.mp4
git clone https://github.com/Wydoinn/TeleICU-Monitoring-System.git
cd TeleICU-Monitoring-System
conda env create -f conda.yml
conda activate teleicu-monitoring-system
pip install -r requirements.txt
python -m virtualenv -p python3.11.7 teleicu-monitoring-system
source teleicu-monitoring-system/bin/activate
pip install -r requirements.txt
git clone https://github.com/THU-MIG/yolov10.git
cd yolov10
pip install .
cd ..
python monitor.py
python app.py
# Visit http://127.0.0.1:5000 in your browser
The test.py
script provides a GUI application for testing the TeleICU Monitoring System. It's built with PyQt5 and utilizes YOLOv10 models for object and motion detection.
- Predict and display detections on images, videos, and webcam feeds
- Annotate detections with bounding boxes and labels
- Save annotated images and videos
- User-friendly interface with buttons for different prediction modes
To run the test application:
python test.py
The convert.py
script offers a simple Tkinter GUI for exporting YOLOv10 models to various formats:
- TorchScript
- ONNX
- OpenVINO
- TensorRT (GPU availability required)
To launch the conversion tool:
python convert.py
Images are annotated using Roboflow
- Intensivist
- Nurse
- Patient
- Family Member
- Falling
- Standing
- Sitting
- Sleeping
- Walking
YOLOv10 small model with data augmentation:
Class | P | R | mAP50 | mAP50-95 |
---|---|---|---|---|
All | 0.771 | 0.754 | 0.794 | 0.468 |
Family-Member | 0.821 | 0.753 | 0.796 | 0.466 |
Intensivist | 0.802 | 0.711 | 0.820 | 0.519 |
Nurse | 0.674 | 0.792 | 0.763 | 0.469 |
Patient | 0.788 | 0.762 | 0.795 | 0.419 |
YOLOv10 small model without data augmentation:
Class | P | R | mAP50 | mAP50-95 |
---|---|---|---|---|
All | 0.798 | 0.659 | 0.782 | 0.459 |
Falling | 0.554 | 0.778 | 0.755 | 0.564 |
Sitting | 0.903 | 0.599 | 0.798 | 0.457 |
Sleeping | 0.944 | 0.611 | 0.883 | 0.524 |
Standing | 0.946 | 0.658 | 0.827 | 0.449 |
Walking | 0.642 | 0.650 | 0.644 | 0.300 |
- This project is built upon the YOLOv10 model and the DeepSort algorithm.
- I extend my gratitude to the authors and contributors of the respective repositories used in this project.