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.
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.)
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
torch == 1.11+cu11.5
(Not required, but recommended.)timm == 0.67
- ...
Download Docker image via Baidu Cloud.
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
# 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
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
python3 main.py --data-path=$DATA_PATH --output=$OUTPUT_PATH --project=pict --cfg ../configs/baseline/swin_small_1rec.yaml --title=swin_s
# 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
This paper proposes an end-to-end training framework based on the weakly supervised patch label inference network.
Code: Github
# 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
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
# 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
# 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
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.
# 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
A good web
and android
app for pavement distress detection and recognition based on PicT
and WSPLIN series
. Homepage.
Thanks for contribution:
@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}
}
@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}
}
@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}
}
@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}
}
@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}
}
@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}
}
@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}
}
@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}
}