表面裂缝检测是监测混凝土结构健康的一项重要任务。如果裂纹发展并继续扩展,它们会减少有效承载表面积,并且随着时间的推移会导致结构失效。裂纹检测的人工过程费时费力,且受检验人员主观判断的影响。在高层建筑和桥梁的情况下,手动检查也可能难以执行。在这篇文章中,我们使用深度学习来构建一个简单但非常准确的裂缝检测模型。此外,我们在现实世界的数据上测试了模型,发现该模型在检测混凝土和非混凝土结构示例道路中的表面裂缝方面是准确的。该代码在Github上的链接上开源。
数据集
在这篇文章中,我们使用了公开可用的混凝土裂缝图像数据集,该数据集由 20,000 张有裂缝的混凝土结构图像和 20,000 张无裂缝的图像组成。该数据集由 458 张高分辨率图像(4032x3024 像素)生成。数据集中的每个图像都是 227 x 227 像素的 RGB 图像。部分有裂纹和无裂纹的示例图如下所示:
带有裂纹的示例图像
没有裂纹的示例图像
可以看出,数据集有各种各样的图像——不同颜色、不同强度和形状的裂缝。
建立模型
对于这个问题,让我们在 Pytorch 中构建一个卷积神经网络(CNN)。由于我们的图像数量有限,因此我们将使用预训练的网络作为起点,并使用图像增强功能来进一步提高准确性。图像增强使我们能够进行诸如垂直和水平翻转、旋转和亮度变化之类的转换,从而显着增加样本并帮助模型泛化。
对于以下步骤,请参考我在 Github 上的代码。
将输入数据混洗并拆分为 Train 和 Val
下载的数据将有 2 个文件夹,一个用于正样本文件夹,一个用于负样本文件夹,我们需要将其拆分为 train 和 val。下面的代码片段将为 train 和 val 创建新文件夹,并将 85% 的数据随机混洗到 train 中,并将其余数据随机放入 val 中。
拆分为 train 和 val
应用转换
Pytorch 可以轻松应用数据转换,这可以增强训练数据并帮助模型提高泛化性。我们选择的转换是随机旋转、随机水平和垂直翻转以及随机颜色抖动。此外,每个通道除以 255,然后归一化,这有助于神经网络训练。
转变
预训练模型
我们使用在 ImageNet 上经过预训练的 Resnet 50 模型来快速启动模型。如下所示,ResNet50 模型由 5 个阶段组成,每个阶段都有一个卷积和 Identity 块。每个卷积块有 3 个卷积层,每个标识块也有 3 个卷积层。ResNet-50 有超过 2300 万个可训练参数。我们将冻结所有这些权重和 2 个全连接的层——第一层在输出中有 128 个神经元,第二层在输出中有 2 个神经元,这是最终的预测。
ResNet50 模型
ResNet 模型层
如模型摘要所示,该模型有 2300 万个不可训练参数和 262K 个可训练参数
模型参数
我们使用 Adam 作为优化程序并训练模型 6 个 epoch。
真实图像上的模型训练和预测
我们用迁移学习训练,然后在训练数据集模型,同时在验证集上测量损失和准确性。如下面的损失和准确率数字所示,模型训练的非常快。在第 1 个 epoch 之后,训练准确率为 87%,验证准确率为 97%!这就是迁移学习的力量,我们的最终模型的验证准确率为 98.4%。
模型训练统计
在真实图像上测试模型
现在是最有趣的部分。是的,该模型适用于验证数据,但我们希望确保它也适用于互联网上看不见的数据。为了测试这一点,我们随机拍摄了混凝土开裂结构和路面裂缝的图像,这些图像比我们的训练图像大得多。请记住,该模型是在 227,227 像素的切片上训练的。我们现在将输入图像分成小块并对其进行预测。如果模型预测有裂纹,我们将补丁涂成红色(有裂纹),否则将补丁涂成绿色。以下代码片段将执行此操作。
切片预测
该模型在从未见过的图像上效果非常好。如下图所示,该模型能够通过处理图像上的 100 多个补丁来检测混凝土中很长的裂缝。
混凝土裂缝检测。左原图。右侧红色区域是有裂纹的预测,绿色区域是无裂纹的预测
此外,也在道路裂缝上测试了该模型。这个模型没有在路面数据集上训练过,但在识别道路裂缝方面也做得很好!
道路裂缝检测。左原图。右侧红色区域是有裂纹的预测,绿色区域是无裂纹的预测
在此项目的 github 链接上共享了更多现实世界图像以及有关它们的模型预测。
结论
这篇文章展示了使用深度学习和开源数据构建现实世界的应用程序变得多么容易。整个工作花了半天时间,输出了一个实用的解决方案。我希望小伙伴们自己尝试这个代码,并在更多现实世界的图像上进行测试。
参考
Github代码连接:
导语:近年来,深度学习技术在计算机视觉领域取得了举世瞩目的成果,尤其是在目标检测任务中。DeepSeek作为一款基于深度学习的目标检测工具,受到了广泛关注。本文将为您揭秘DeepSeek的推理过程,带您领略深度学习在目标检测领域的魅力。一、DeepSeek简介DeepSeek是一款基于深度学习的开源目标检测工具,它具有以下特点:高精度:采用先进的深度学习模型,实现高精度的目标检测。实时性:支持多种
1. 引言图像处理是计算机视觉的核心任务之一,而深度学习,尤其是卷积神经网络(CNN),在图像处理领域展现出强大的能力。它可以自动学习特征并实现复杂的任务,如图像分类、目标检测和图像分割。本文将介绍深度学习在图像处理中的应用,结合代码示例帮助理解。2. 深度学习与图像处理的关系传统图像处理依赖于手工设计的特征提取和复杂的算法。深度学习通过大量数据训练神经网络,能够自动从原始图像中提取特征,避免手工
基于YOLOv10深度学习的昆虫分类检测系统介绍基于YOLOv10(You Only Look Once Version 10)的昆虫分类检测系统是一种利用深度学习技术实现实时昆虫识别和分类的系统。它通过训练好的神经网络模型,能够快速、准确地识别并定位图像中的昆虫,为农业、生态研究等领域提供自动化的解决方案。应用使用场景农业监控:及时发现农作物上的害虫,减少病虫害带来的损失。生物多样性
在工业生产中总是经常遇到裂痕、划痕等产品的表面缺陷问题,机器视觉行业对于表面检测相比前几年已经有很大的突破,对于产品表面的划伤、污迹等检测已经不再是难点。在金属、玻璃、手机屏幕、液晶板等行业表面检测上应用广泛。但由于该类缺陷形状不规则、深浅对比度低,而且往往会被产品表面的自然纹理或图案所干扰。因此,表面划痕缺陷检测对于正确打光、相机分辨率、被检测部件与工业相机的相对位置、复杂的机器视觉算法等要求非
作者:禅与计算机程序设计艺术 《深度学习中的深度学习》技术博客文章 1. 引言 1.1. 背景介绍 深度学习作为一种新兴的机器学习技术,近年来在图像识别、语音识别、自然语言处理等领域取得了举世瞩目的成果。它通过多层神经网络的构建,能够高效地学习复杂的非线性特征,从而实现对数据的准确预测。本文将介绍深
导读论文是学术研究的精华和未来发展的明灯。小白决心每天为大家带来经典或者最新论文的解读和分享,旨在帮助各位读者快速了解论文内容。个人能力有限,理解难免出现偏差,建议对文章内容感兴趣的读者,一定要下载原文,了解具体
深度学习中检测头在深度学习的快速发展中,检测头(Detection Head)作为对象检测任务中的重要组件,越来越引起研究者和工程师的重视。检测头主要负责从特征图中生成最终的类别和框坐标,它的设计和优化对整体检测性能有着决定性的影响。然而,随着任务复杂性和数据规模的增加,传统检测头遭遇了一系列技术瓶颈。本博文将围绕“深度学习中检测头”的相关问题进行系统性分析,帮助大家更好地理解这一领域的挑战与
论文 | 改进的Canny算子在裂缝检测中的应用作者 | 赵芳期刊 | 电子测量技术时间 | 2018年10月 文章目录一、研究内容原Canny算法缺点:改进内容有:二、理论论据多尺度形态学滤波(总感觉没理解)双边滤波方向偏导数计算改进(不怎么理解)最大熵自适应设定阈值三、总结 一、研究内容Canny算法具有信噪比大和准确率搞的优点,在边缘检测方面应用广泛,本文以OpenCV函数库中的Canny
室内定位一直被炒的非常火的黑科技,也是近年资本追逐的热点,市场上一直有众多宣称可以做到厘米级,米级精度定位的公司,但问题很多,无法大规模商用。近些年有很多人尝试使用蓝牙beacon方式做定位,小众应该可以满足需要,但是依然问题很多;直到今天,出现了新的技术:蓝牙AoA定位。先介绍一下现有室内定位方案:1. 超声波室内定位技术 超声波定位主要采用反
Marching Cubes算法是三维离散数据场中提取等值面的经典算法,之前主要应用于医学图像重建,当前在TSDF等重建场景广泛应用。 参考论文:Marching Cubes: A High Resolution 3D Surface Construction Algorithm 参考论文: KinectFusion: real-time dynamic 3D surface reconstruc
文章目录前言第一课 论文导读词表征简介词表征相关方法统计方法词向量基于上下文的词向量前期知识储备第二课 论文精读论文结构传统/经典算法模型详解基于语言模型的词向量训练词向量基于上下文的词向量本文提出的模型char embeddingUsing ELMO for NLP tasks实验和结果数据集结果总结论文主要创新点小结 前言Deep contextualized word representa
目录2021深度学习目标检测综述0、摘要1、引言2、背景2.1、问题描述2.2、目标检测中的关键挑战3、数据集以及评价指标3.1、数据集1)` PASCAL VOC 07/12`2)`ILSVRC`3)`MS-COCO`4)`Open Image`5)数据倾斜/偏差问题3.2、指标4、backbone架构4.1、`AlexNet`4.2、`VGG`4.3、GoogleNet/Inception4
沥青路面压实度检测方法 无论是南方还是北方,大部分的高速公路路面都采用沥青路面,由于好多路面未达到设计寿命就已损坏,路面的使用质量和使用寿命较普通,达不到应有的水平。当然主要的原因之一是沥青路面施工过程监管不到位,还有一部分原因是后期不当的路面检测方法所致。 根据《公路路基路面现场测试规程》规定,检测沥青路面压实度检测的方法共有4种: 1、钻芯取样法。以施工法规规定的
太多的公众号每天的文章是否让你眼花缭乱?刷了好多文章,发现大都是转来转去?今天我在全网公众号里为大家精选主题为深度学习目标检测算法的文章12篇,其中包括综述,R-CNN,SPP-Net,Fast R-CNN,Faster R-CNN,Mask R-CNN,R-FCN,YOLO V1,YOLO V2,YOLO V3,SSD,FPN等。目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置
深度学习作为机器学习的分支,绽放了耀眼的光芒。由于Python的易用性与可扩展性,众多深度学习框架提供了Python接口,其中4个流行的深度学习框架如下:1、TensorFlowTensorFlow 是一个端到端平台,无论您是专家还是初学者,它都可以助您轻松构建和部署机器学习模型。1) 一个完整的生态系统,可以帮助您使用机器学习解决棘手的现实问题 2) 轻松地构建模型TensorFlow 提供多个
《DEEP LEARNING FOR ANOMALY DETECTION : A SURVEY》摘要:对基于深度学习的异常检测技术进行结构化和综合的呈现;评估各种检测技术在各类应用中的效率。具体而言:作者按照现有假设和方法对当前的技术归类,而每一组将呈现其基础检测技术及变体,同时呈现对应的假设,从而区分异常行为和非异常行为。对每一组技术呈现其优势和局限,同时讨论各种技术在实际应用中的计算复杂度。最
1,打电话的三种方式:1⃣️ • 最简单最直接的⽅方式:直接跳到拨号界⾯面NSURL *url = [NSURL URLWithString:@"tel://10010"];[[UIApplication sharedApplication] openURL:url]; • 缺点电话打完后,不会⾃自动回到原应⽤用,直接停留在通话记录界⾯面&nb
在 Oracle 的 PL/SQL 环境中,EXECUTE IMMEDIATE 通常需要包裹在 BEGIN...END 块中执行,因为它是 PL/SQL 的语法元素,不能直接在 SQL 命令行中单独执行(除非使用特定工具的简化模式)。 具体说明: 在 PL/SQL 程序中(如存储过程、函数、匿名块) ...
实验:双安检功能实验学时:2~3学时实验目的与要求了解并掌握双安检功能原理以及应用,通过该功能的学习能够确保信号输入输出的正确性、保证机床处于准确的安全位置以及定期进行安全测试。实验内容双安检功能硬件连接、基本参数的设定、双安检I/O LINK i 地址分配与PMC编写以及双安检诊断。 实验硬件0i ...
你还在为前端状态管理的复杂性而烦恼吗?当你需要在不引入大型框架的情况下管理页面状态时,一文解决你的困惑。读完本文,你将掌握使用Stimulus框架实现轻量级状态管理的核心方法,包括如何定义状态、监听状态变化以及与DOM无缝交互。为什么选择Stimulus状态管理大多数现代前端框架鼓励将状态始终保存在JavaScript中,将DOM视为只读的渲染目标。而Stimulus采取了不同的方法,其应用状态存
你是否在位IE6、IE7、IE8、Firefox不兼容问题而烦恼,这里向大家简单介绍一下解决IE6、IE7、IE8、Firefox兼容的几种方案,希望对你的学习有所帮助。解决IE6、IE7、IE8、Firefox兼容的几种方案浏览器不兼容,你知道源头吗?凡事都要知其然,才能知其所以然,前端开发的朋友想毕都会碰到浏览器兼容的问题,今天在网上觅到此文,希望对大