/HrSegNet4CrackSegmentation

Real-time High-Resolution Neural Network with Semantic Guidance for Crack Segmentation

Primary LanguagePythonApache License 2.0Apache-2.0

HrSegNet4CrackSegmentation

Real-time High-Resolution Neural Network with Semantic Guidance for Crack Segmentation

Abstract

The current trend in crack detection methods is leaning towards the use of machine learning or deep learning. This is because deep learning-based methods can autonomously extract features from images, thereby avoiding the low stability caused by manually designed operators. However, there are still some problems with the current deep learning-based crack segmentation algorithms. Firstly, the vast majority of research is based on the modification and improvement of commonly used scene segmentation algorithms, with no specifically designed for crack segmentation tasks. Secondly, crack detection is increasingly reliant on edge devices, such as drones and vehicle-mounted cameras. Therefore, the model must be lightweight to achieve real-time segmentation efficiency. However, there is currently limited research in this area. We propose a high-resolution neural network with semantic guidance for real-time crack segmentation, named HrSegNet.

Update

2023-08-20

A comparison of the three models has been added. We implemented these three models, and their files are in models. The trained model and logs are in UNet_focal, U2CrackNet, RUCNet.

  • Liu, Zhenqing, et al. "Computer vision-based concrete crack detection using U-net fully convolutional networks." Automation in Construction 104 (2019): 129-139.
  • Shi, Pengfei, et al. "U2CrackNet: a deeper architecture with two-level nested U-structure for pavement crack detection." Structural Health Monitoring 22.4 (2023): 2910-2921.
  • Yu, Gui, et al. "RUC-Net: A Residual-Unet-Based Convolutional Neural Network for Pixel-Level Pavement Crack Segmentation." Sensors 23.1 (2022): 53.

2023-08-12

Update Concrete3k. In the original Concrete3k, some of the images and labels did not match and we have updated and uploaded them. The results of the corresponding cross-dataset will also be updated.

2023-07-17

  • Add new datasets: Asphalt3k, Concrete3k. Asphalt3k sourced from Yang, and Concrete3k sourced from Wang.
  • Add weight files pre-trained on CrackSeg9k,along with their corresponding training logs.

2023-07-02

We are conducting more comparative experiments while using a new pavement dataset that is being manually annotated at the expert level. The results and data will be published soon. We will release the trained model parameters so that you can quickly test them.

Model Architecture

Alt text

Alt text

Comparisons with state-of-the-art

Alt text

Data

We train the model on a comprehensive dataset (CrackSeg9k) and subsequently transfer to specific downstream scenarios, asphalt (Asphalt3k) and concrete (Concrete3k).

Installation

The code requires python>=3.8, as well as paddle=2.4.1 and paddleseg=2.7.0 and OpenCV= 4.7.0. You can follow the instructions paddle and paddleseg to install all the dependencies. If you need to reproduce the results, you have to install paddle with CUDA support.

How to use

Once paddle and paddleseg are installed, you can use our published models very easily.

We start by describing the contents of each directory. The directory models defines the high-resolution crack segmentation model we designed, the three model files are almost identical except for the parameter base. The model files we are comparing are also included. The directory configs is the configuration files for all models, i.e. the details of all training and testing parameters.

The easiest way to use our models is to use paddleseg. One can put the files of the desired models into the models directory of paddleseg, registering the model using @manager.MODELS.add_component. For training the model use the configuration files in the configs we provide.

All data are public available.

Trained models

On CrackSeg9k

Model (TensorRT engine)

We expose all our models as TensorRT, including SOTA for comparison in all experiments. Note that all inputs to the TensorRT engine are 1 × 3 × 400 × 400. We use TensorRT 8.6.1.

Model
U-Net
DDRNet
DeeplabV3+
OCRNet
STDCSeg
BiSeNetV2
PSPNet
HrSegNet-B16
HrSegNet-B32
HrSegNet-B48

Citation

If you find this project helpful for your research, please consider citing the following BibTeX entry.

@article{li2023real,
  title={Real-time high-resolution neural network with semantic guidance for crack segmentation},
  author={Li, Yongshang and Ma, Ronggui and Liu, Han and Cheng, Gaoli},
  journal={Automation in Construction},
  volume={156},
  pages={105112},
  year={2023},
  publisher={Elsevier}
}