This project implements a convolutional neural network (CNN) to detect bone fractures in X-ray images. The model classifies X-ray images into two categories: fractured and not fractured bones.
The project uses a custom CNN architecture implemented in TensorFlow/Keras to classify bone X-ray images. It includes:
- Data loading and preprocessing
- Data augmentation
- Model architecture design and training
- Model evaluation and visualization
- Testing and performance metrics
- Python 3.8+
- TensorFlow
- Keras
- OpenCV
- NumPy
- Pandas
- Matplotlib
- Seaborn
- scikit-learn
- kagglehub
The dataset is sourced from Kaggle's "Bone Fracture" dataset containing X-ray images split into:
- Training set
- Validation set
- Test set
Each image is labeled as either fractured or not fractured.
The CNN model consists of:
- Multiple convolutional layers with ReLU activation
- Batch normalization layers
- Max pooling layers
- Dropout layers for regularization
- Dense layers
- Final sigmoid activation for binary classification
The model is evaluated using:
- Accuracy
- Loss
- Sensitivity
- Specificity
- AUC-ROC
- Confusion Matrix
- Classification Report
- Install required dependencies
- Download the dataset using kagglehub
- Run the Jupyter notebook to:
- Load and preprocess data
- Train the model
- Evaluate performance
- Make predictions
Bone_Fracture.ipynb
: Main Jupyter notebook containing the implementation
The model achieves:
- High accuracy in classifying bone fractures
- Good sensitivity and specificity metrics
- Reliable performance on test set predictions
Kwaku Amo-Korankye
10211100331
Academic City