https://github.com/cilab-ufersa/surface_crack_detection

Concrete Crack Detection 🧱 https://ieeexplore.ieee.org/document/10693377

https://github.com/cilab-ufersa/surface_crack_detection

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • â—‹
    CITATION.cff file
  • â—‹
    codemeta.json file
  • â—‹
    .zenodo.json file
  • ✓
    DOI references
    Found 1 DOI reference(s) in README
  • ✓
    Academic publication links
    Links to: ieee.org
  • â—‹
    Academic email domains
  • â—‹
    Institutional organization owner
  • â—‹
    JOSS paper metadata
  • â—‹
    Scientific vocabulary similarity
    Low similarity (9.7%) to scientific vocabulary

Keywords

concrete-crack-detection crack-detection machine-learning
Last synced: 10 months ago · JSON representation

Repository

Concrete Crack Detection 🧱 https://ieeexplore.ieee.org/document/10693377

Basic Info
Statistics
  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
concrete-crack-detection crack-detection machine-learning
Created almost 3 years ago · Last pushed almost 2 years ago

https://github.com/cilab-ufersa/surface_crack_detection/blob/main/

# Surface Crack Detection

## About 

This project is a deep learning model to detect cracks on civil engineering building elements. The model is based on the U-Net architecture and SAM (Segment Anything Model) loss function. The dataset used to train the model is the [Concrete Crack Images for Classification](https://data.mendeley.com/datasets/5y9wdsg2zt/2) dataset. 

## Getting Started

To run the project, you need to follow the steps below:

### Installation

```bash
    $ git clone
    $ cd surface_crack_detection
```

### Prerequisites

What things you need to have to be able to run:

  * Python 3.11 +
  * Pip 3+
  * VirtualEnvWrapper is recommended but not mandatory


### Requirements 

```bash
    $ pip install -r requirements.txt
```

If you want to use Segmentation Anything Model (SAM), you must create another virtual environment:

```bash
    $ pip install -r requirements-torch.txt
```

### Running the project

**Training the model**

You can train your own model (classification or segmentation) by running the script below.
Each script is associated with a different model.

| Type of model  | Model          | Script                                                                      |
|----------------|----------------|-----------------------------------------------------------------------------|
| Classification | Resnet50       | python surface_crack_detection/models/resnet.py                             |
| Classification | VGG16          | python surface_crack_detection/models/vgg.py                                |
| Classification | InceptionV3    | python surface_crack_detection/models/inception.py                          |
| Segmentation | U-Net          | python surface_crack_detection/crack_segmentation/classes/train_evaluate.py |
| Segmentation and Classification | U-Net-Resnet50 | python surface_crack_detection/models/unet_resnet50.py                      |
| Segmentation and Classification | U-Net-Mobilnet | python surface_crack_detection/models/unet_mobilenet.py                     |
| Segmentation and Classication | SAM-Resnet50 | python surface_crack_detection/models/sam_resnet50.py |

We have more three models that classify a crack image in isolated or disseminated:

- CNN model:
```bash
    $ python surface_crack_detection/classification/models/cnn.py
```

- InceptionV3 model:
```bash
    $ python surface_crack_detection/classification/models/inception.py
```

- ResNet50 model:
```bash
    $ python surface_crack_detection/classification/models/resnet.py
```

#### Getting prediction
**U-Net-MobileNet**

If you want to segment and classify an image with our trained model:
1. You must set the input directory that contains the images.
2. You can change the output directory, but by default the images will save in *surface_crack_detection/image_output* directory. (optional)
3. Run the script:
```bash
    $ python surface_crack_detection/models/model_predictions.py
```
By default, we use U-Net-Mobilenet model. The output of this script will save the segmented image on your device and classify it as either having a crack or not.

![segmentation.png](surface_crack_detection/images/readme/segmentation.png)


**Classification models**

You can also input an image and see whether it has a crack (positive) or not (negative) by running the script below:
```bash
    $ python ./surface_crack_detection/predictions.py  
```
Models available: cnn, inception, resnet50 and vgg.

#### 

##  Publications related to this project

H. C. Dantas, L. M. G. Morais, P. H. A. Bezerra and R. C. B. Rego, "[Concrete Crack Detection Using Embedded Machine Learning](https://ieeexplore.ieee.org/document/10693377)," 2024 8th International Symposium on Instrumentation Systems, Circuits and Transducers (INSCIT), Joao Pessoa, Brazil, 2024, pp. 1-6, doi: 10.1109/INSCIT62583.2024.10693377. 


Bezerra, P. H. A., H. C. Dantas, L. M. G. Morais, and R. C. B. Rego. ["A Deep Learning Artificial Intelligence Algorithm to Detect Cracks on Civil Engineering Building Elements."](https://github.com/cilab-ufersa/surface_crack_detection/blob/develop/surface_crack_detection/CINPAR2024.pdf) In: XX International Conference on Building Pathology and Constructions Repair, 2024, Fortaleza. *XX International Conference on Building Pathology and Constructions Repair*. Fortaleza/CE, 2024. v. 1.

Owner

  • Name: CILab
  • Login: cilab-ufersa
  • Kind: organization
  • Email: cilab.ufersa@gmail.com
  • Location: Brazil

Computational Intelligence Laboratory - CILab

GitHub Events

Total
  • Issues event: 1
  • Watch event: 4
  • Fork event: 1
Last Year
  • Issues event: 1
  • Watch event: 4
  • Fork event: 1