专栏首页AI研习社深度学习混凝土结构裂纹检测

深度学习混凝土结构裂纹检测

混凝土建筑裂缝

原标题 | CONTRIBUTE Detection of Surface Cracks in Concrete Structures using Deep Learning

作者 | Priya Dwivedi

链接 | https://towardsdatascience.com/detection-of-surface-cracks-in-concrete-structures-using-deep-learning-f8f85cd8ac8b

编译 | 天字一号、吉蒂•布罗德

审校 | 唐里、望北

介绍


表面裂缝检测是监测混凝土结构健康的重要任务。如果裂纹发展并继续蔓延,它们会减小有效的承载表面积,并且随着时间的流逝会导致结构失效。手动进行裂缝检测非常耗时,并且会受到检查员的主观判断。在高层建筑物和桥梁的情况下,手动检查也很难执行。在此博客中,我们使用深度学习来构建简单但非常准确的裂缝检测模型。此外,我们在现实世界的数据上测试了该模型,发现该模型在检测混凝土和非混凝土结构示例道路的表面裂缝方面是准确的。该代码在我的Github上的链接上开源。(https://github.com/priya-dwivedi/Deep-Learning/tree/master/crack_detection)

完整的内容在我的网站上发布(https://deeplearninganalytics.org/)。

数据集


对于此博客,我们使用的是公开可用的混凝土裂缝图像数据集(详情可见今日第二篇内容)。该数据集由Ozgenel和Gonenc在论文中公开发布(https://www.researchgate.net/publication/326676263_Performance_Comparison_of_Pretrained_Convolutional_Neural_Networks_on_Crack_Detection_in_Buildings)。

数据集包含20,000张有裂缝的混凝土结构图像和20,000张无裂缝的图像。该数据集是由458张高分辨率图像(4032x3024像素)生成的。数据集中的每个图像都是227 x 227像素的RGB图像。下面显示了一些有裂纹和无裂纹的示例图像:

带有裂纹的图像样本

无裂纹图像样品

可以看出,数据集中有各种各样的图像:不同颜色,不同强度和形状的裂缝。

建立模型


对于这个问题,我们在Pytorch中构建卷积神经网络(CNN)。由于图像数量有限,因此我们将使用预先训练的网络作为起点,并使用图像增强功能进一步提高准确性。图像增强使我们能够进行诸如垂直和水平翻转,旋转和亮度变化之类的转换,从而显着增加样本并帮助模型泛化。

对于以下步骤,请遵循我在Github上的代码(https://github.com/priya-dwivedi/Deep-Learning/blob/master/crack_detection/Crack%20Detection%20Model.ipynb)。

将输入数据混洗并拆分为Train和Val

下载的数据将有2个文件夹,其中一个“正样本”文件夹,一个“负样本”文件夹。我们需要将此分为train和val。下面的代码段将为train和val创建新文件夹,并将85%的数据随机混洗到train中,并将其余数据随机放入val中。

拆分为train和val

应用转换

使用Pytorch可以轻松地进行数据转换,从而可以增加训练数据并帮助模型提高泛化性。我选择的转换是随机旋转,随机水平和垂直翻转以及随机色彩抖动。同样,每个通道除以255,然后归一化。这有助于进行神经网络训练。

转换

预训练模型

我们正在使用在ImageNet上经过预训练的Resnet 50模型来快速启动模型。要了解有关ResNet模型的更多信息,请阅读我的博客(https://towardsdatascience.com/understanding-and-coding-a-resnet-in-keras-446d7ff84d33)。如下所示,ResNet50模型由5个阶段组成,每个阶段都有一个卷积和Identity块。每个卷积块具有3个卷积层,每个标识块也具有3个卷积层。ResNet-50具有超过2300万个可训练参数。我们将冻结所有这些权重和2个全连接的层-第一层在输出中具有128个神经元,第二层在输出中具有2个神经元,这是最终的预测。

ResNet50 Model

ResNet模型层

如模型摘要所示,该模型具有2300万不可训练参数和262K可训练参数

模型参数

我们使用Adam作为优化程序,训练6个epoch

在真实图像上训练和预测


我们用迁移学习训练,然后在训练数据集模型,同时测量在验证集的损失和准确性。如下面的损失和准确度数字所示,模型训练非常快。在第一个epoch之后,训练精度为87%,验证精度为97%!这就是迁移学习的力量。我们的最终模型的验证准确性为98.4%。

模型训练统计

在真实图像上测试模型

现在是最有趣的部分。是的,该模型适用于验证数据,但我们要确保它也适用于互联网上看不见的数据。为了对此进行测试,我们随机拍摄了开裂的混凝土结构和路面裂缝的图像。这些图像比我们的训练图像大得多。请记住,该模型是在227,227像素的切片上训练的。现在,我们将输入图像分成小块并对其进行预测。如果模型预测有裂纹,则将贴片染成红色(裂纹),否则将贴片染成绿色。下面的代码片段将执行此操作。

切片预测

该模型在从未见过的图像上效果很好。如下图所示,该模型能够通过处理图像上的100个切片来检测混凝土中很长的裂缝

混凝土裂缝检测。左图为原图。右图红色区域是有裂纹的预测,绿色区域是无裂纹的预测

此外,我也在道路裂缝上测试了该模型。该模型未在路面数据集上进行训练,但在识别道路裂缝方面也非常出色!

道路裂缝检测。左图为原图。右图红色区域是有裂纹的预测,绿色区域是无裂纹的预测

在此项目的github链接上共享了更多真实世界的图像以及有关它们的模型预测:https://github.com/priya-dwivedi/Deep-Learning/tree/master/crack_detection/real_images。

结论


这个博客展示了使用深度学习和开源数据构建真实世界应用程序变得多么容易。整个工作花了半天的时间,得出了一个实用的解决方案。我希望你自己试试这个代码,并在更多真实世界的图片上进行测试。

我对计算机视觉和深度学习非常有热情。我有自己的深度学习顾问,喜欢处理有趣的问题。我曾帮助许多初创公司部署基于人工智能的创新解决方案。请访问-http://deeplearninganalytics.org/。

你也可以在https://medium.com/@priya.dwivedi上看到我的其他文章

References


  • 2018 — Özgenel, Ç.F., Gönenç Sorguç, A. “Performance Comparison of Pretrained Convolutional Neural Networks on Crack Detection in Buildings”, ISARC 2018, Berlin.
  • Good paper on importance of crack detection — https://www.hindawi.com/journals/ace/2018/3924120/
  • Good blog on Image Classification in Pytorch. Several of the code snippets used in the blog were from here.
  • Another good blog on Image Classification in Pytorch. Several of the code snippets used in the blog were from here.

本文分享自微信公众号 - AI研习社(okweiwu),作者:雷锋字幕组编译

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 作为一个深度学习新手团队,我是如何拿到 Kaggle 比赛第三名的?

    The Women in Data Science组织与她们的合作伙伴共同发起了 WiDS Datathon 的活动。这个活动的挑战在于,你需要建立一个预测卫星...

    AI研习社
  • Fun | 当这首 AI 原创的音乐响起,我的同事纷纷露出怀疑人生的表情……

    虽然在大部分时候,它们的演唱咬字略显呆滞,但给人整体的听感还是好听的,有人曾因此担心,作曲家、作词家、演唱家等工种未来是不是都要被 AI 取代?

    AI研习社
  • 自拍抠图抠到手软?详解如何用深度学习消除背景

    在机器学习方兴未艾的过去几年里,我一直想要亲自开发具有实用价值且基于机器学习的产品。然后几个月前,在我学习了由 Fast.AI 所提供的深度学习课程之后,我意识...

    AI研习社
  • DeepMind的人工智能系统学会了绘画

    近日,在伦敦举行的深度学习峰会会议上,DeepMind研究科学家Ali Eslami提出了一个非常有趣的项目,名为“人工智能和创造力”。

    AiTechYun
  • 图形搜索中用到的机器学习基础介绍

    针对目标图像(具有统一特征的图像),进行基于深度学习技术的模型训练,通过调优模型结构与参数,得到对于指定图像具有提取特征信息的模型 M。将库中所有图像通过 M ...

    用户2434869
  • (含源码)「自然语言处理(NLP)」社区问答评估&&各种Bert模型优化对比

    1、TILE: Predicting Subjective Features from Questions on QA Websites using BERT

    ShuYini
  • (含源码)「自然语言处理(NLP)」RoBERTa&&XLNet&&语言模型&&问答系统训练

    本次内容主要包括:鲁棒优化Bert模型(RoBERTa)、自回归预训练模型(XLNet)、无监督多任务学习语言模型、生成预训练语言理解、深层上下文单词表示、键...

    ShuYini
  • 【行业】使用深度学习来简化科学图像分析

    AiTechYun 编辑:nanan ? 组装高质量的图像数据集 该显微镜主要用于成像应用程序,来分析每天TB数据。这些应用程序可以通过计算机视觉和深度学...

    AiTechYun
  • 深度强化学习在面向任务的对话管理中的应用

    Policy模块一般基于当前的对话状态state,决策一个行为action,有用规则的,也可以用模型实现。本文介绍运用深度强化学习模型学习决策,基于当前的对话状...

    朱张斌
  • 业界 | AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

    我就说吃瓜群众平常要多关注科技新闻,一个在科技界已经诞生了一年多的“老技术”Deepfake 居然因为“明星换脸”的视频火出了圈。

    AI研习社

扫码关注云+社区

领取腾讯云代金券