An academic/engineering project focused on automated crack detection in industrial infrastructure (e.g., concrete surfaces) using deep learning.
To solve the binary classification problem (crack vs. no crack), a Convolutional Neural Network (CNN) was built and trained using the TensorFlow/Keras library.
The dataset was split into three independent parts:
- Training set (80%) - used to train the model.
- Validation set (10%) - used to monitor the training process and prevent overfitting.
- Test set (10%) - used for the final, objective evaluation of the model's performance on completely unseen data.
Here are examples of the images used in this project:
| No Crack (Negative) | Crack (Positive) |
|---|---|
![]() |
![]() |
- Python
- TensorFlow / Keras
- Matplotlib & Seaborn (Data Visualization)
- Scikit-learn (Evaluation Metrics)
The model achieved outstanding accuracy on the test set. Below are the detailed metrics, training history, and the final confusion matrix.
| Metric | No Crack (Negative) | Crack (Positive) |
|---|---|---|
| Precision | 0.99 | 1.00 |
| Recall (Sensitivity) | 1.00 | 0.99 |
| F1-Score | 1.00 | 1.00 |
Overall Accuracy: ~99.5% Tested on: 4000 images
- Clone this repository.
- Download the dataset and place the images inside the
dataset/folder (usingpositiveandnegativesubfolders). - Install the required dependencies:
pip install -r requirements.txt



