Skip to content

This repo collects some datasets and papers about Pavement Distress Classification. Moreover, all code will be integrated into this repo.

License

Notifications You must be signed in to change notification settings

DearCaat/Pavement-Distress-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pavement Distress Classification

With the rapid growth of transport infrastructures such as airports, bridges, and roads, pavement maintenance is deemed as a crucial element of sustainable pavement today. It is a trend to automate this process via machine learning and pattern recognition techniques, which can significantly reduce the cost of labor and resources. One of the core tasks in pavement maintenance is pavement distress classification (PDC), which aims to detect the damaged pavement and recognize its specific distress category. These two steps are also referred to as pavement distress detection and pavement distress recognition, respectively.

This repo collects related datasets and some papers. Moreover, all code will be integrated into this repo.

Table of Contents

Dataset

CQU-BPDD

cqu_bpdd

This dataset consists of 60,056 bituminous pavement images, which were automatically captured by the in-vehicle cameras of the professional pavement inspection vehicle at different times from different areas in southern China . Each pavement image is corresponding to a 2 × 3 meters pavement patch of highways and its resolution is 1200×900. The CQU-BPDD involves seven different distresses, namely transverse crack, massive crack, alligator crack, crack pouring, longitudinal crack, ravelling, repair, and the normal ones.

Downloading the dataset, Password:mq0a. (Please note: CQU-BPDD can be only used in the uncommercial case.)

CFD-PDD、CrackTree200-PDD、Crack500-PDD

cfd

Three public pavement crack segmentation (pixel-level pavement crack detection) datasets, namely Crack Forest Dataset (CFD), CrackTree200, and Crack500, are adopted for validation. We automatically produce the normal version of each diseased images via replacing the disease pixels with their neighbor normal pixels. However, such an automatic normal image fashion does not always work well for all samples. We manually filter out some low-quality generated normal images and only retain the high-quality ones. Finally, we have 155 diseased images and 114 recovered normal images on CFD dataset, 206 diseased images and 191 recovered normal images on CrackTree200 dataset, while 494 diseased images and 286 recovered normal images.

Download CFD-PDD: Baidu Cloud

Download CrackTree200-PDD: Baidu Cloud

Download Crack500-PDD: Baidu Cloud

Method

Requirement

Core:

  • torch == 1.11+cu11.5 (Not required, but recommended.)
  • timm == 0.67
  • ...

Docker:

Download Docker image via Baidu Cloud.

IOPLIN (IEEE T-ITS)

ioplin

This paper first proposes the main PDC datasets: CQU-BPDD、CFD-PDD、CrackTree200-PDD, and achieves a good performance based on the E-M optimization strategy.

Code: Github

Train IOPLIN

# IOPLIN use the pretrained efficientnet_b3 weight to init the model
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=wsplin --cfg ../configs/baseline/effi_b3_1det.yaml ../configs/ioplin.yaml --title=ioplin --opts MODEL.BACKBONE_INIT $PRETRAINED_WEIGHT_PATH

PicT (ACMMM 2022)

image-20221020105610479

This paper first introduces the Vision Transformer into the PDC, and achieves 2.4% more detection performance gains in P@R, 3.9% recognition performance gains in F1, 1.8x higher throughput, and 7x faster training speed.

arXiv version: PicT

Code: Github

Train Swin-S

python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=pict --cfg ../configs/baseline/swin_small_1rec.yaml --title=swin_s

Train PicT

# PicT uses the pretrained swin_s weight to init the teacher model
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=pict --cfg ../configs/baseline/swin_small_1rec.yaml ../configs/pict_1rec.yaml --title=pict --opt PICT.TEACHER_INIT $PRETRAINED_WEIGHT_PATH

WSPLIN-IP (ICASSP 2021)

wsplin_ip

This paper proposes an end-to-end training framework based on the weakly supervised patch label inference network.

Code: Github

Train WSPLIN-IP

# WSPLIN use the pretrained efficientnet_b3 weight to init the model
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=wsplin --cfg ../configs/baseline/effi_b3_1det.yaml ../configs/wsplin_1det.yaml --title=wsplin --opts MODEL.BACKBONE_INIT $PRETRAINED_WEIGHT_PATH

WSPLIN (IEEE T-ITS)

wsplin

This paper is an extension of WSPLIN-IP. It rethinks the patch collection strategy, and finds a good trade-off between performance and efficiency.

arXiv version: WSPLIN

Code: Github

Train WSPLIN-SW

# WSPLIN use the pretrained efficientnet_b3 weight to init the model
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=wsplin --cfg ../configs/baseline/effi_b3_1det.yaml .../configs/wsplin_1det.yaml --title=wsplin --opts MODEL.BACKBONE_INIT $PRETRAINED_WEIGHT_PATH DATA.IS_IP False NUM_PATCHES 12

Train WSPLIN-SP

# WSPLIN use the pretrained efficientnet_b3 weight to init the model
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=wsplin --cfg ../configs/baseline/effi_b3_1det.yaml ../configs/wsplin_1det.yaml --title=wsplin --opts MODEL.BACKBONE_INIT $PRETRAINED_WEIGHT_PATH WSPLIN.SPARSE_RATIO 0.5

DPSSL (Electronics Letters)

dpssl

This paper try to rethink PDC from the perspective of Multi-Instance Learning, and leverages attention mechanism and Knowledge Distillation to improve the performance and efficiency.

Train DPSSL

# WSPLIN use the pretrained efficientnet_b3 weight to init the model
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=wsplin --cfg ../configs/baseline/effi_b3_1det.yaml ../configs/dpssl.yaml --title=dpssl --opts MODEL.BACKBONE_INIT $PRETRAINED_WEIGHT_PATH

Application

Intelligent Road Distress Identification Platform Web

A good web and android app for pavement distress detection and recognition based on PicT and WSPLIN series. Homepage.

Thanks for contribution:

Citations

Citing IOPLIN、CQU-BPDD、CFD-PDD、CrackTree200-PDD

@article{tang2021iteratively,
  title={An iteratively optimized patch label inference network for automatic pavement distress detection},
  author={Tang, Wenhao and Huang, Sheng and Zhao, Qiming and Li, Ren and Huangfu, Luwen},
  journal={IEEE Transactions on Intelligent Transportation Systems},
  year={2021},
  publisher={IEEE}
}

Citing WSPLIN、Crack500-PDD

@article{huang2022weakly,
  title={Weakly Supervised Patch Label Inference Networks for Efficient Pavement Distress Detection and Recognition in the Wild},
  author={Huang, Sheng and Tang, Wenhao and Huang, Guixin and Huangfu, Luwen and Yang, Dan},
  journal={arXiv preprint arXiv:2203.16782},
  year={2022}
}

Citing PicT

@inproceedings{tang2022pict,
  title={PicT: A Slim Weakly Supervised Vision Transformer for Pavement Distress Classification},
  author={Tang, Wenhao and Huang, Sheng and Zhang, Xiaoxian and Huangfu, Luwen},
  booktitle={Proceedings of the 30th ACM International Conference on Multimedia},
  pages={3076--3084},
  year={2022}
}

Citing WSPLIN-IP

@inproceedings{huang2021weakly,
  title={Weakly supervised patch label inference network with image pyramid for pavement diseases recognition in the wild},
  author={Huang, Guixin and Huang, Sheng and Huangfu, Luwen and Yang, Dan},
  booktitle={ICASSP 2021-2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
  pages={7978--7982},
  year={2021},
  organization={IEEE}
}

Citing DPSSL

@article{zhang2022efficient,
  title={Efficient pavement distress classification via deep patch soft selective learning and knowledge distillation},
  author={Zhang, Shizheng and Tang, Wenhao and Wang, Jing and Huang, Sheng},
  journal={Electronics Letters},
  year={2022},
  publisher={Wiley Online Library}
}

Citing CFD

@article{shi2016automatic,
  title={Automatic road crack detection using random structured forests},
  author={Shi, Yong and Cui, Limeng and Qi, Zhiquan and Meng, Fan and Chen, Zhensong},
  journal={IEEE Transactions on Intelligent Transportation Systems},
  volume={17},
  number={12},
  pages={3434--3445},
  year={2016},
  publisher={IEEE}
}

Citing CrackTree200

@article{zou2012cracktree,
  title={CrackTree: Automatic crack detection from pavement images},
  author={Zou, Qin and Cao, Yu and Li, Qingquan and Mao, Qingzhou and Wang, Song},
  journal={Pattern Recognition Letters},
  volume={33},
  number={3},
  pages={227--238},
  year={2012},
  publisher={Elsevier}
}

Citing Crack500

@article{yang2019crack500,
  title={Feature pyramid and hierarchical boosting network for pavement crack detection},
  author={Yang, Fan and Zhang, Lei and Yu, Sijia and Prokhorov, Danil and Mei, Xue and Ling, Haibin},
  journal={IEEE Transactions on Intelligent Transportation Systems},
  volume={21},
  number={4},
  pages={1525--1535},
  year={2019},
  publisher={IEEE}
}

About

This repo collects some datasets and papers about Pavement Distress Classification. Moreover, all code will be integrated into this repo.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages