crack_detection_app

Crackit©: Crack analysis and diagnosis on buildings elements

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

Science Score: 44.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Crackit©: Crack analysis and diagnosis on buildings elements

Basic Info
Statistics
  • Stars: 3
  • Watchers: 0
  • Forks: 3
  • Open Issues: 0
  • Releases: 1
Created over 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Crackit: Crack analysis and diagnosis on buildings elements

Crack detection is an important task in the field of civil engineering. Surface cracks can be a sign of structural damage and can lead to catastrophic failure. This app uses a deep learning model to detect cracks in images of concrete surfaces. You can upload an image or take a picture from your camera to see the model in action. It will segment the image to highlight the cracks and classify the image as containing a crack or not. You can also download a report of the results.

Also, you can analyze the crack by selecting two points on the image. The app will calculate the line equation that passes through the points and the angle of the line with the x-axis. This can be useful to determine the orientation of the crack.

App preview

https://github.com/user-attachments/assets/4520cde5-f5dc-42ea-9b00-a568d74ed57a

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

Run

bash $ streamlit run app/main.py

About the model

We used a pre-trained model called U-Net to segment the cracks in the images, and MobileNet to classify the images. Moreover, we used a custom algorithm to calculate the angle of the crack, which is based on the line equation that passes through two points selected by the user. The software also distinguishes between isolated cracks and map cracks, which can be useful for further analysis. For the distinction, we used ResNet50 model.

The angle is calculated based on the line equation that passes through two points selected by the user. The equation is given by:

$$y = m*x + b$$

where m is the slope of the line and b is the y-intercept. The slope is calculated by:

$$m = \frac{(y2 - y1)}{(x2 - x1)}$$

The angle of the line with the x-axis is given by:

$$ angle = arctan(m)$$

The angle is used to determine the orientation of the crack.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

  • This project was developed as part of the project "Crack Detection and Characterization on Building Elements" at the Federal University of Semi-Árido, Brazil.

  • The dataset used to train the models was provided by the University of Stuttgart, Germany. The dataset is available at: Link

Owner

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

Computational Intelligence Laboratory - CILab

Citation (CITATION.cff)

cff-version: 1.0.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Claudino"
  given-names: "Heitor"
- family-names: "Gonçalves"
  given-names: "Leticia"
- family-names: "Bezerra"
  given-names: "Paulo"
- family-names: "Rego"
  given-names: "Rosana"
  orcid: "https://orcid.org/0000-0001-5997-1221"
title: "Crackit: Crack analysis and diagnosis on buildings elements"
version: 1.0.0
date-released: 2024-07-31
url: "https://github.com/cilab-ufersa/crack_detection_app"

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Dependencies

.github/workflows/dependency-review.yml actions
  • actions/checkout v4 composite
  • actions/dependency-review-action v4 composite
requirements.txt pypi
  • GitPython ==3.1.42
  • Jinja2 ==3.1.3
  • Markdown ==3.5.2
  • MarkupSafe ==2.1.5
  • Pygments ==2.17.2
  • absl-py ==2.1.0
  • altair ==5.2.0
  • astunparse ==1.6.3
  • attrs ==23.2.0
  • blinker ==1.7.0
  • cachetools ==5.3.3
  • certifi ==2024.2.2
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • colorama ==0.4.6
  • flatbuffers ==23.5.26
  • fpdf *
  • gast ==0.5.4
  • gitdb ==4.0.11
  • google-auth ==2.28.1
  • google-auth-oauthlib ==1.2.0
  • google-pasta ==0.2.0
  • grpcio ==1.62.0
  • h5py ==3.10.0
  • idna ==3.6
  • importlib-metadata ==7.0.1
  • jsonschema ==4.21.1
  • jsonschema-specifications ==2023.12.1
  • keras ==2.15.0
  • libclang ==16.0.6
  • markdown-it-py ==3.0.0
  • matplotlib ==3.8.3
  • mdurl ==0.1.2
  • ml-dtypes ==0.2.0
  • numpy ==1.26.4
  • oauthlib ==3.2.2
  • opencv-python-headless *
  • opt-einsum ==3.3.0
  • packaging ==23.2
  • pandas ==2.2.1
  • pillow ==10.2.0
  • protobuf ==4.25.3
  • pyarrow ==15.0.0
  • pyasn1 ==0.5.1
  • pyasn1-modules ==0.3.0
  • pydeck ==0.8.1b0
  • pyecharts ==2.0.6
  • python-dateutil ==2.9.0.post0
  • pytz ==2024.1
  • referencing ==0.33.0
  • requests ==2.31.0
  • requests-oauthlib ==1.3.1
  • rich ==13.7.1
  • rpds-py ==0.18.0
  • rsa ==4.9
  • six ==1.16.0
  • smmap ==5.0.1
  • streamlit ==1.31.1
  • streamlit *
  • streamlit-echarts ==0.4.0
  • streamlit_webrtc *
  • tenacity ==8.2.3
  • tensorboard ==2.15.2
  • tensorboard-data-server ==0.7.2
  • tensorflow ==2.15.0
  • tensorflow-estimator ==2.15.0
  • urllib3 ==2.2.1