This project is an advanced machine learning application designed to detect bone fractures in X-ray images with milisecond response time. It utilizes state-of-the-art computer vision techniques and deep learning models to analyze X-ray images and identify potential fractures, serving as a diagnostic aid for medical professionals.
- YOLOv8l model for bone fracture detection
- User-friendly interface for uploading and analyzing X-ray images
- Real-time fracture detection and visualization
- Comprehensive performance metrics adhering to medical imaging standards
- Designed as a SaaS prototype for potential clinical integration
The model was trained on the Bone Fracture Detection Computer Vision Dataset from Kaggle. This dataset contains a diverse collection of X-ray images with labeled bone fractures, allowing for robust model training and evaluation.
- App v1.0: Full aplication
- Archive-x-ray: 4K x-ray image dataset
- Testing-images: Script to test the model on it's own with test images
- YOLOv8l_quick_run: YOLOv8l model with documentation about the model when tested
- MODEL.md: https://github.com/DimitriVavoulisPortfolio/x-ray-bone-fracture-detection-app/blob/main/MODEL.md
- PROCESS.md: https://github.com/DimitriVavoulisPortfolio/x-ray-bone-fracture-detection-app/blob/main/PROCESS.md
- train_yolov8_bone_fracture_detector v2.0.py: Script to make the model including sorting of the dataset
The YOLOv8 model achieved the following performance metrics on the test set:
- mAP50: 0.37
- mAP50-95: 0.18
- Precision: 0.46
- Recall: 0.26
These metrics suggest that the model is capable of detecting bone fractures with reasonable accuracy, but there is still room for improvement. The project team is continuously working on optimizing the model's performance and exploring strategies to enhance the detection capabilities.
-
Clone the repository:
git clone https://github.com/DimitriVavoulisPortfolio/x-ray-bone-fracture-detection-app
-
Install dependencies:
pip install tensorflow torch torchvision pandas numpy scikit-learn matplotlib seaborn pillow opencv-python-headless flask gunicorn pytest pylint black isort
-
To test the app: start the launcher on the App v1.0 folder
DISCLAIMER: This is a prototype, it's not a replacement to medical professionals and future iterations while better in quality are still not a replacement, consult a medical professional on case of injury
- Upload an X-ray image through the secure web interface.
- The application processes the image and displays results with fracture probability scores.
- Review the detection results, including highlighted regions of interest.
- (Optional) Provide feedback to improve model performance.
This tool is intended to assist, not replace, professional medical judgment. All results should be interpreted by qualified medical professionals in the context of clinical findings and patient history.
This application adheres to strict medical data privacy standards. All uploaded images and results are encrypted and securely handled in compliance with healthcare data protection regulations.
- Enhanced YOLOv8l model for better bone fracture diagnosis
- Enhance the user interface for better visualization of results
- Integrate with medical record systems for seamless workflow integration
- Expand the dataset to improve model generalization across diverse populations
We welcome contributions to improve the project. Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure all contributions adhere to medical software development standards and practices.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- Kaggle and the dataset contributors for providing the bone fracture X-ray dataset
- The open-source community for the tools and libraries used in this project
- Medical advisors and clinicians for their invaluable input and validation
For any questions, feedback, or collaboration opportunities, please open an issue in this repository or contact [Dimitri Vavoulis] at [[email protected]].
This software is not certified for clinical use and is currently in the research and development phase. It should not be used for making clinical decisions without proper validation and regulatory approval.