计算机视觉是一种利用计算机和相应的算法来模拟和实现人类视觉功能的领域。它涉及将数字图像或视频作为输入,通过各种图像处理和模式识别技术进行分析和理解,从而使计算机能够“看懂”图像并做出相应的决策或行动。形象地说,就是给计算机安装上眼睛(照相机)和大脑(算法),让计算机能够感知环境。对于裂缝这一背景而言,亦可运用计算机视觉,实现裂缝监测的自动化,提高监测效率和精度。
目标提取是一种基于目标的几何和统计特征的图像分割技术。它将目标的分割和识别整合在一起,使得系统能够在保持准确性和实时性的同时进行有效的目标检测。图像目标检测的主要任务是精确地定位图像中的目标,并对其进行分类。
(1)YOLO算法(You Look Only Once)
YOLO算法(You Look Only Once)使用深度神经网络进行对象的位置检测以及分类,采用直接预测目标对象的边界框的方法,是一阶段法。它将对象检测重新定义为一个回归问题,只需要对图片进行一次扫描,将候选区和对象识别这两个阶段合二为一,从而达到目标检测的目的。其主要的特点是速度快、准确率高,提高了对目标进行特征提取和分类的速度。YOLO算法是基于R-CNN模型,针对目标检测设计的CNN进行特征提取,采用全链接层对识别出的目标进行分类和以及位置检测。YOLO的网络模型结构由输入层、卷积层、池化层和全链接层构成,如图2-1所示。
![]()
图2-2 YOLO网络模型
输入层对原始图片进行剪裁、分割等操作,并由CNN将原始图片的数据进行某种处理得到特征图。接下来由卷积层对特征图进行卷积运算,网络有24个卷积层,使用1×1降维层,后面是3×3卷积层,它们提取输入层的特征信息以便于后续操作。池化层存在于卷积层之间,它通过在特征空间内对输入的数据进行最大值池化处理。在最后一个池化层后面是两个全连接层。最后是输出层,它将全链接层输出的数据进行分类处理并继续输出,输出的特征图的个数即为目标图像的分类数,在最后的输出结果中包含了原始图像中物体的分类结果和其位置信息编码,通过特定的解码方式就能在原始图像中显示出检测结果。
![]()
图2-3 CNN模型
YOLO算法的检测流程是先将输入的图像划分成S*S个网格(S=7),每个单元格负责预测中心落在该格内的目标,然后每个网格预测B个边界框和这个边界框是物体的概率,每个边界框会预测出5个值:x,y,w,h,置信度Pr(Object)*loU(truth&pred),计算目标边框的中心点坐标、宽高、置信度评分。最后,每个网格预测分别属于C个类的概率,即在网格中含有物体的条件下,该物体属于某一类别的概率。计算目标边框类的相关置信度。
(2)Canny边缘检测算法
Canny边缘检测算法首先对图像进行高斯滤波处理,以此来去除噪声,然后计算图像梯度,以确定边缘的方向和强度,最后通过非极大值抑制和双阈值处理,将边缘信息提取出来,如图所示:
图2-4 Canny边缘算法
Canny准则:
(a)不漏检真实存在的边缘点,也不把非边缘点作为边缘点检出,使得输出的信噪比最大;
(b)检测到的边缘点的位置距实际边缘点的位置最近,使得输出的图像定位精度高;
(c)每一个实际存在的边缘点和检测到的边缘点是一一对应关系,也就是单边缘响应准则。
以Canny准则为基础,利用泛函数求导的方法可导出一个由边缘定位精度和信噪比乘积组成的表达公式,而这个表达公式近似于Gauss函数的一阶导数。在实际应用中可以选取Gauss函数的一阶导数作为阶跃型边缘的次最优检测算子。利用二维Gauss函数的圆对称性和可分解性,可以容易计算出Gauss函数在任意方向上的导数与图像的卷积。因此,实际中Canny算法的基本思想是:先对待处理的图像选择一定的Gauss滤波器进行平滑滤波;然后,采用一种称之为“非极值抑制”技术,对平滑后的图像处理后,得到最后所需的边缘图像。其检测检测结果如图所示:
图
2-5原始图像 图
2-6 Canny算法检测结果
YOLO算法是一种用于目标检测的深度学习算法,它可以同时进行目标分类和定位。边缘检测算法则是一种用于图像处理的算法,它可以检测图像中的边缘。将YOLO
算法与边缘检测算法结合起来在目标识别和边缘分割方面取得更加精确的结果。本次研究中的研究对象为裂缝,而裂缝往往可以被视为边缘,从而我们选择结合YOLO
算法与边缘检测算法Canny算子,对裂缝进行更加精确的识别。具体来说,可以将 YOLO 算法用于目标检测,然后使用边缘检测算法对检测到的目标进行边缘分割。这种结合的方式可以提高目标检测的精度,因为边缘检测算法可以提供更加准确的目标边界信息,从而帮助 YOLO
算法更好地定位目标。同时,边缘检测算法也可以帮助 YOLO 算法更好地识别目标的形状和特征,从而提高目标分类的精度。
(3)BP神经网络模式识别
当前BP神经网络的主要应用领域有:模式识别、图像处理、信息处理、智能控制、故障检测、企业管理、市场分析等;其釆用误差反向传播算法,且具有分布式的信息存储方式,大规模并行处理,自学习和自适应性等的特点。BP神经网络采用基于梯度下降的最优方法这一基本原理,其连接权值具有一定的可调性,BP神经网络分布式的信息存储方式,使其具有较强的容错性和联想记忆功能,这样如果某一部分的信息丢失或损坏,网络仍能恢复出原来完整的信息,系统仍能运行。其通常由输入层、隐含层和输出层组成,层与层之间全互连,每层节点之间不相连。这一过程就是算法的正向传播,算法的另一种阶段是反向传播,其在输入层得不到期望输出时才会进行。并且通过修改权值来使误差信号最小,网络的权值由误差反馈进行调节,通过权值的不断修正使网络的实际输出更接近期望输出。
![]()
图2-7 BP神经网络模型
(a)初始化:置所有的加权系数为最小的随机数。
(b)提供训练集:给出输入向量
,
,
和期望的输出向量
,
,
,
。
(c)计算实际输出:按式(5-7)和(5-8)计算输出神经元的输出。
![]()
![]()
(d)按式(5-9)计算期望值与实际输出的误差。
![]()
(e) 按式(5-10)和(5-11)调整输出层的加权系数
,和阈值
。
![]()
![]()
(f)返回步骤 (c),直到误差满足要求为止。
我们对网络进行训练,分类器的训练主要依靠样本来提供信息,样品的好坏也会影响到BP神经网络的分类效果。训练好的BP神经网络分类器,能够较为有效的提取裂缝的特征及分类裂纹类型。
![]()
图2-8
裂缝检测流程图
图2-9
裂缝检测流程图
(4)U-Net
U-Net作为一种有效的深度学习架构,在图像分割任务中具有广泛的应用,主要应用领域包括但不限于以下几个方面:医学影像分割、地质图像分割、工程结构检测、遥感图像分割、生物图像分割等;U-Net的收缩路径和扩展路径之间存在跳跃连接,这种U形结构有助于在解码阶段传递更多的上下文信息,有助于准确地恢复细节信息。在U-Net中,收缩路径的每个阶段的特征图都与扩展路径相应的阶段的特征图连接在一起,这种跳跃连接有助于避免信息丢失,从而提高分割的准确性。U-Net在训练时可以有效地利用有限的标注数据,通过数据增强技术和迁移学习等方法,可以在小样本数据集上取得较好的性能。
![U-Net]()
U-net结构
裂隙的形态简单,结构固定。因此语义信息单一,不需要去筛选过滤无用信息。于是我们采用U-net提取裂纹的特征及分类裂纹类型。轻量化的U-net对数据量的需求量小、精度高、鲁棒性好和泛化能力强,使得在裂纹检测中能更快速地判别出裂纹的类型。
通过以上主要裂缝检测算法的分析可知,四种算法的对比如表所示。
算法
|
特点
|
YOLO算法
|
1.可以快速地检测出裂缝的位置和分类。
2.适用于多样化的裂缝检测任务。
3.具有较高的实时性和效率,适用于需要快速响应的裂缝检测应用场景。
|
Canny边缘检测算法
|
1.可以有效地识别裂缝的边缘轮廓。
2.可以快速应用于裂缝检测任务。
3.可能会受到图像中其他边缘和噪声的干扰,从而影响裂缝检测的准确性。
|
BP神经网络模式识别
|
1.以从裂缝图像中学习各种特征,包括纹理、形状等,从而提高裂缝检测的准确性。
2.需要大量标注的裂缝图像数据进行训练。
3.训练过程通常需要较长的时间,尤其是在深层网络结构下,需要更多的计算资源。
|
U-Net
|
1.U-Net结构通过引入跳跃连接和上采样路径,有助于在小样本数据集上训练出稳健的模型。
2.采用了U形结构,使得网络能够充分利用不同层次的特征信息,从而提高了分割的准确性。
3.采用端到端的训练方式,直接从原始图像到分割结果的输出,简化了整个训练流程,减少了人工干预的需要,提高了训练效率。
4.网络结构相对简单,可以根据具体任务的需求进行灵活调整和扩展。
|
四种算法的对比