DeepCrack:学习分层卷积特征用于裂缝检测
我们提供代码、数据集和预训练模型。
Zou Q, Zhang Z, Li Q, Qi X, Wang Q 和 Wang S, DeepCrack: 学习分层卷积特征用于裂缝检测, IEEE 图像处理汇刊, 第28卷, 第3期, 第1498-1512页, 2019年。 [PDF]
- 摘要:裂缝是许多计算机视觉应用中感兴趣的典型线性结构。在实践中,许多裂缝(如路面裂缝)表现出连续性差和对比度低的特点,这给基于图像的裂缝检测带来了巨大挑战,难以使用低级特征进行检测。在本文中,我们提出了DeepCrack——一种端到端可训练的深度卷积神经网络,通过学习裂缝表示的高级特征来实现自动裂缝检测。在这种方法中,我们将分层卷积阶段学习到的多尺度深度卷积特征融合在一起,以捕捉线性结构。较大尺度的特征图提供更详细的表示,而较小尺度的特征图则提供更整体的表示。我们基于SegNet的编码器-解码器架构构建DeepCrack网络,并在相同尺度上成对融合编码器网络和解码器网络中生成的卷积特征。我们在一个裂缝数据集上训练DeepCrack网络,并在其他三个数据集上评估其性能。实验结果表明,DeepCrack在三个具有挑战性的数据集上平均达到超过0.87的F值,优于当前最先进的方法。
网络架构
部分结果
DeepCrack数据集
DeepCrack使用了四个数据集。CrackTree260用于训练,其他三个用于测试。
CrackTree260数据集
- 它包含260张路面图像 - 是[CrackTree, PRL, 2012]中使用的数据集的扩展版。这些路面图像是在可见光照明条件下由面阵相机拍摄的。我们使用全部260张图像进行训练。我们进行了数据增强以扩大训练集的规模。我们以9个不同的角度(从0到90度,间隔10度)旋转图像,在每个角度上垂直和水平翻转图像,并在每张翻转的图像上裁剪5个子图像(4个角落和1个中心),尺寸为512×512。经过增强后,我们总共得到了35,100张训练图像。
CRKWH100数据集
- 它包含100张在可见光照明条件下由线阵相机拍摄的路面图像。线阵相机以1毫米的地面采样距离捕捉路面。
CrackLS315数据集
- 它包含315张在激光照明条件下拍摄的路面图像。这些图像也是由线阵相机拍摄的,地面采样距离相同。
Stone331数据集
- 它包含331张石材表面图像。在切割石材时,切割表面可能会出现裂缝。这些图像是在可见光照明条件下由面阵相机拍摄的。我们为图像中每个石材表面的区域生成了一个掩码。这样就可以将性能评估限制在石材表面上。
下载:
您可以从以下链接下载四个数据集,
CrackTree260 与 GT 数据集: https://1drv.ms/f/s!AittnGm6vRKLyiQUk3ViLu8L9Wzb
CRKWH100 数据集: https://1drv.ms/f/s!AittnGm6vRKLtylBkxVXw5arGn6R
CRKWH100 GT: https://1drv.ms/f/s!AittnGm6vRKLglyfiCw_C6BDeFsP
CrackLS315 数据集: https://1drv.ms/f/s!AittnGm6vRKLtylBkxVXw5arGn6R
CrackLS315 GT: https://1drv.ms/u/s!AittnGm6vRKLg0HrFfJNhP2Ne1L5?e=WYbPvF
Stone331 数据集: https://1drv.ms/f/s!AittnGm6vRKLtylBkxVXw5arGn6R
Stone331 GT: https://1drv.ms/f/s!AittnGm6vRKLwiL55f7f0xdpuD9_
Stone331 掩码: https://1drv.ms/u/s!AittnGm6vRKLxmFB78iKSxTzNLRV?e=9Ph5aP
您也可以从以下链接下载数据集
链接:https://pan.baidu.com/s/1PWiBzoJlc8qC8ffZu2Vb8w
提取码:zfoo
结果:
我们数据集上的一些结果:
环境配置
要求
PyTorch 1.0.2 或更高版本
Python 3.6
CUDA 10.0
我们在Intel Core Xeon E5-2630@2.3GHz处理器、64GB内存和两块GeForce GTX TITAN-X GPU上运行。
预训练模型
PyTorch预训练模型可在以下链接获取,
https://drive.google.com/file/d/1OO3OAzR4yxYh_UBR9Nu7hV3XayfKVyO-/view?usp=sharing
或者链接:https://pan.baidu.com/s/1WsIwVnDgtRBpJF8ktlN84A
提取码:27py
您可以下载它们并将其放入"./codes/checkpoints/"目录。
请注意,由于此模型是使用PyTorch训练的,其性能与原始Caffe版本略有不同。
训练
训练前,请在config.py中修改路径,包括"train_path"(用于train_index.txt)和"pretrained_path",以适应您的环境。
选择模型并在config.py中调整参数,如类别权重、批量大小、学习率等。
然后直接运行:
python train.py
测试
要评估预训练模型的性能,请首先将上述预训练模型或您自己的模型放入"./codes/checkpoints/"目录,并在config.py中更改"pretrained_path",然后更改"test_path"以指向test_index.txt,以及"save_path"以保存结果。
选择要评估的正确模型,然后直接运行:
python test.py
引用:
如果您在自己的研究中使用我们的代码或数据集,请按以下方式引用:
@article{zou2018deepcrack,
title={Deepcrack: Learning Hierarchical Convolutional Features for Crack Detection},
author={Zou, Qin and Zhang, Zheng and Li, Qingquan and Qi, Xianbiao and Wang, Qian and Wang, Song},
journal={IEEE Transactions on Image Processing},
volume={28},
number={3},
pages={1498--1512},
year={2019},
}
CrackTree260数据集是基于CrackTree206数据集构建的。详情请参考
@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}
}
版权:
此数据集仅用于学术研究。
联系方式:
如有任何关于该数据集或代码的问题,请联系邱卓博士 (qzou@whu.edu.cn)。