CN112446871A - 一种基于深度学习和OpenCV的隧道裂缝识别方法 - Google Patents
一种基于深度学习和OpenCV的隧道裂缝识别方法 Download PDFInfo
- Publication number
- CN112446871A CN112446871A CN202011390927.2A CN202011390927A CN112446871A CN 112446871 A CN112446871 A CN 112446871A CN 202011390927 A CN202011390927 A CN 202011390927A CN 112446871 A CN112446871 A CN 112446871A
- Authority
- CN
- China
- Prior art keywords
- crack
- picture
- connected domain
- deep learning
- skeleton
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/187—Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种基于深度学习和OpenCV的隧道裂缝识别方法,属于深度学习和图形处理技术领域,包括利用深度学习技术找出裂缝的大体位置与形状;利用图像处理技术对识别出的裂缝进行细化:首先对mask进行腐蚀操作,在腐蚀后的mask区域内进行骨架提取;然后利用提取的裂缝骨架结合原图,采用邻域内区域生长算法对裂缝进行填充;统计裂缝长度与宽度信息。本发明将深度学习技术与传统图像处理技术结合起来,在实例分割网络Mask‑RCNN得到的mask区域内再对裂缝进行精确提取,克服了深度学习得到结果不精确的弊端与经典图像处理算法得到结果不完整的弊端,二者结合之后能在一张图上提取到精确完整的裂缝。
Description
技术领域
本发明涉及一种基于深度学习和OpenCV的隧道裂缝识别方法,属于深度学习和图形处理技术领域。
背景技术
当前现有的实例分割网络Mask-RCNN,可以做到在一定程度上找到并精确分割图像中的objects。但该网络需要大量的标注数据,且要求标注数据的准确性较高,即对数据集的要求比较严苛,对于特征复杂的目标物体需要大量且标注精准的训练数据,而裂缝,尤其是隧道裂缝,由于其本身的标注困难做不到每张图片都精准标注,加之特征不明显,现有样本少,训练后得到的分割结果并不理想。
传统的图像处理算法又很难实现对裂缝的特征精准把控。
发明内容
针对现有技术的不足,本发明提供一种基于深度学习和OpenCV的隧道裂缝识别方法,将深度学习技术与传统图像处理技术结合起来,在实例分割网络Mask-RCNN得到的mask区域内再对裂缝进行精确提取,克服了深度学习得到结果不精确的弊端与经典图像处理算法得到结果不完整的弊端,二者结合之后能在一张图上提取到精确完整的裂缝。
术语解释:
1、Mask-RCNN:是一个实例分割模型,它能确定图片中各个目标的位置和类别,给出像素级预测。它是Faster R-CNN和FCN的结合,前者负责提供分类标签和候选窗口,后者确定目标轮廓。
本发明采用以下技术方案:
一种基于深度学习和OpenCV的隧道裂缝识别方法,包括:
步骤1:利用深度学习技术找出裂缝的大体位置与形状:基于Mask-RCNN,利用标注的隧道裂缝图片数据集训练出能够识别裂缝大体位置与形状的模型,给出一张裂缝图片的mask,接下来只需在mask范围内进行裂缝提取;
步骤2:利用图像处理技术对识别出的裂缝进行细化:首先对mask进行腐蚀操作,在腐蚀后的mask区域内进行骨架提取;然后利用提取的裂缝骨架结合原图,采用邻域内区域生长算法对裂缝进行填充;
步骤3:统计裂缝长度与宽度信息。
优选的,步骤1具体包括以下步骤:
1.1、将整张图像输入网络;
1.2、将图像输入CNN,进行特征提取,在该层中将不同scale获得的mask最后叠加起来作为原图的mask;
1.3、用FPN生成建议窗口(proposals),每张图片生成N个建议窗口;
1.4、将FPN生成的多个建议窗口映射到CNN的最后一层卷积feature map上;
1.5、通过RoI Align层使每个RoI生成固定尺寸的feature map;
1.6、最后利用全连接分类,边框,mask进行回归。
所使用的Mask-RCNN网络在现有技术上进行了改进,将用VIA标注的样本和样本原图一起输入到网络中进行训练,每个ecpch的训练步数设为1000,每个epoch的验证步数设为100,过滤RPN proposals的阈值设为0.7,设置学习率为0.001,权重衰减设为0.0001,训练100轮,其中在对图片进行降采样的环节中,在不同scale获得的mask最后叠加起来作为原图的mask,改进了对于不同粗细的缝隙的查找问题。
优选的,步骤2中骨架提取过程为:
2.1、图像灰度化:采用加权平均法,按照R:0.299,G:0.587,B:0.114的权值对R、G、B的值加权平均;
2.2、对比度增强:
图片的特征参数包括整体灰度均值和整体灰度方差,采用OTSU算法将直方图划分为两部分,前一部分灰度值较小,后一部分灰度值较大,前一部分定义为前景灰度值,为可能是裂缝的灰度值,特征少且灰度值小,后一部分定义为背景灰度值,可能是背景的灰度值,特征多且灰度值大,将这两部分分别求灰度均值,两部分的灰度均值差即为此图片裂缝的明显程度,该值越大,则裂缝区别于背景越明显;
A、整体灰度值处于0~165之间的图片定义为整体偏暗,裂缝明显区别于背景是指一张图片中前景灰度值均值与背景灰度值均值之差大于50,裂缝不明显区别于背景,是指该差值介于0~50之间,为了防止非裂缝像素的影响,该步骤的计算在提取mask后的图片上进行,对于整体偏暗且裂缝明显区别于背景的图片,由于裂缝较明显,本发明再次加强其明显程度,使用如下方法进行优化:
首先进行第一次局部对比度增强,然后进行整体亮度提升,再通过OTSU算法对全图进行第三次对比度增强;
第一次局部对比度增强是对于图像中的每一个点,分别计算其局部均值与局部标准差,均值用来判断某个像素点是属于低频还是高频,让低频变暗高频变亮,I(i,j)=M(i,j)+G(f(i,j)-M(i,j)),其中I(i,j)为增强后的像素值,M(i,j)为以点(i,j)为中心,窗口大小为(2n+1),(2m+1)的区域的局部均值;方差是用来调节局部范围内对比度增强程度的,用它来确定上式中的系数G,从而实现让本身对比度不强的区域的对比度变得明显,本身对比度很强的区域增强幅度不大;整体亮度提升是把图片中所有点的灰度值放大1.1的五次方倍,让图像整体变白;第三次对比度增强是对前两步处理后的图片使用OTSU进行阈值划分,对大于阈值的点的灰度值乘以1.7,对小于阈值的点的灰度值乘以0.5。
在确定阈值时,统计每张图的灰度分布情况,采用最大类间方差法(OTSU)确定阈值,三次增强在裂缝与背景区分明显的情况下比单次增强更能凸显裂缝特征。对于噪声较多的增强图像,采用中值滤波方法进行去噪操作;
B、对于整体偏暗且裂缝不明显区别于背景的图片,同步骤A;
C、对于整理偏亮的图片,仅采用整体亮度提升;
由于有些地方的裂缝和背景相差不大,采用局部对比度加强时可能造成把背景误判为裂缝或把裂缝误判为背景的情况,就仅采用整体亮度提升的方法,根据具体情况改变提升倍率。最后结合原图,利用提取出的裂缝骨架信息进行裂缝填充,最终识别裂缝。
2.3、边缘检测,边缘检测方法可参考现有技术进行,此处不再赘述;
2.4、对图像进行核为3*3的膨胀操作以及四次闭操作;
这一步的操作使得前景物体被填充,特征更加明显,有助于连通域的查询;
2.5、利用第2.4步得到的结果图检测连通域,完成连通域的第一次查询;
本发明中的连通域的查询均采用了现有的Zhang-Suen algorithm,该算法每一次的迭代步骤是对符合特定条件的目标像素进行腐蚀,使目标变得越来越细,不断的迭代,直到上一次腐蚀后的目标在本轮操作中没有被新的像素点腐蚀,算法结束。
2.6、更新图片,对图片进行核为7*7的闭运算;
更新图片具体为用上一步查询出的连通域对图片进行填充,连通域部分为白,背景为黑;
该步的目的是,对第一次生成的连通域进行粗调,使其尽可能包含裂缝特征,7*7比3*3对前景物体的填充效果更明显。
2.7、清空连通域的第一次查询结果,并完成连通域的第二次查询,由于上一步骤处理后的图片连通域会发生变化,该步骤用于更新当前连通域;
2.8、更新图片,对图片进行核为3*3的开运算与核为3*3的腐蚀运算,细化第二次查询的连通域图片,去除多余的噪点;
2.9、清空连通域的第二次查询结果,并完成连通域的第三次查询,由于上一步骤处理后的图片连通域会发生变化,该步骤用于更新当前连通域;
2.10、遍历每个连通域,对每个连通域进行骨架提取,最后将所有从连通域中提取的骨架绘制成一张图片,形成骨架图片,
此步骤的骨架提取请参考论文:A fast parallel algorithm for thinningdigital patterns提出的Zhang-Suen algorithm,该算法每一次的迭代步骤是对符合特定条件的目标像素,进行腐蚀,效果就是目标变得越来越细,不断的迭代,直到在上一次腐蚀后的目标在本轮操作中,没有新的像素点被腐蚀,算法结束。
进一步优选的,步骤2中对裂缝进行填充的过程为:
2.11、将骨架上的所有点放入容器中,对其进行遍历,即通过从左至右从上至下的扫描方式,图片中的所有骨架点放入一个类型为Point的Vector中,然后遍历这个Vector;
2.12、该步骤为具体遍历过程,取出Vector中的骨架点,对其n邻域进行灰度统计,采用最大类间方差法(OTSU)确定阈值,采用现有的最大类间方差法(OTSU)确定图片上某个骨架点n邻域范围的阈值,一张图片有很多个邻域,若该点的灰度值小于等于阈值,则将其作为种子点,在该邻域内进行区域生长,具体可采用八邻域区域生长算法;
若该点的灰度值大于阈值,则不做处理,继续查询,直到找到一个灰度值小于等于阈值的点停止查询;
2.13、遍历完成后生成精细的裂缝图片。
进一步优选的,步骤3进一步为:
3.1、利用步骤2.10得到的骨架图片和提取后的图片(即步骤2.11得到的图片)进行判断,即对骨架图片进行连通域查询,每个连通域都代表着一条裂缝,对每个连通域分别进行裂缝长宽信息的查询;
3.2、采用邻域查询法在每个连通域内进行长宽信息查询,在每个点的n邻域内统计黑色像素的个数,即裂缝的像素个数;
提取后的裂缝图片中,裂缝为黑色,背景为白色,黑色像素代表裂缝,黑色像素的个数代表这一邻域内裂缝所占面积;
3.3、对于骨架图片,每个连通域内的像素个数即为该段裂缝的长度;对于提取后的裂缝图片,分别记录步骤3.2的遍历中得到的裂缝所占面积最大值以及该面积所在区域中心点的坐标,在步骤3.2遍历完成后,用裂缝最大面积/邻域边长n,来估算裂缝的最大宽度;
本发明中,n是根据输入图片大小确定的,n=min(width,height)/200。
本发明中,未详尽之处,均可采用现有技术进行。
本发明的有益效果为:
1、本发明将Mask-RCNN网络与传统图像处理技术结合起来,并且对网络输出的mask部分先进行骨架提取再采用区域生长算法进行填充,提高了裂缝识别的完整度与识别精度。
2、本发明的骨架提取方法有助于裂缝特征信息的查询,裂缝的骨架为单个像素连接形成的裂缝走势,每个连通域的像素的个数反应了该段裂缝的长度,可以直接根据骨架图片给出裂缝长度信息。裂缝宽度信息的统计也以裂缝骨架为基础,进行以骨架上每个点为中心点的邻域遍历,可以在较短时间内统计裂缝的宽度信息。
3、本发明对于整体较暗,亮度不均匀,裂缝与背景区别不明显的图片也有较好的识别能力,因为在隧道中拍摄的图片往往不像人们想象的那样明亮清晰。本发明在进行具体提取步骤前,先对于每张裂缝图片进行整体特征统计,针对每张图片的特征采用不同的提取方法,使得每种类型的图片都能得到良好的提取效果。
附图说明
图1为本发明Mask-RCNN网络的结构示意图;
图2为本发明的隧道裂缝图片的mask示意图;
图3为本发明对隧道裂缝图片mask进行腐蚀操作示意图;
图4为本发明对隧道裂缝图片进行第一次局部增强效果示意图;
图5为本发明对隧道裂缝图片进行第二次整体增强效果示意图;
图6为本发明对隧道裂缝图片进行第三次增强效果示意图;
图7为本发明对隧道裂缝图片进行去噪操作效果示意图;
图8为本发明某一实施例的隧道裂缝原始图片示意图;
图9为采用本发明的方法进行隧道裂缝识别的效果示意图;
图10为对于整体偏亮且裂缝不明显区分于背景的效果示意图;
图11为利用提取出的裂缝骨架信息进行裂缝填充识别裂缝效果示意图。
具体实施方式:
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述,但不仅限于此,本发明未详尽说明的,均按本领域常规技术。
实施例1:
一种基于深度学习和OpenCV的隧道裂缝识别方法,包括:
步骤1:利用深度学习技术找出裂缝的大体位置与形状:基于Mask-RCNN,图1为Mask-RCNN网络结构示意图,利用标注的隧道裂缝图片数据集训练出能够识别裂缝大体位置与形状的模型,给出一张裂缝图片的mask,如图2所示,接下来只需在mask范围内进行裂缝提取;
步骤2:利用图像处理技术对识别出的裂缝进行细化:首先对mask进行腐蚀操作,使其包含的裂缝信息更全面,如图3所示,在腐蚀后的mask区域内进行骨架提取;然后利用提取的裂缝骨架结合原图,采用邻域内区域生长算法对裂缝进行填充;
步骤3:统计裂缝长度与宽度信息。
实施例2:
一种基于深度学习和OpenCV的隧道裂缝识别方法,如实施例1所示,所不同的是,步骤1具体包括以下步骤:
1.1、将整张图像输入网络;
1.2、将图像输入CNN,进行特征提取,在该层中将不同scale获得的mask最后叠加起来作为原图的mask;
1.3、用FPN生成建议窗口(proposals),每张图片生成N个建议窗口;
1.4、将FPN生成的多个建议窗口映射到CNN的最后一层卷积feature map上;
1.5、通过RoI Align层使每个RoI生成固定尺寸的feature map;
1.6、最后利用全连接分类,边框,mask进行回归。
在图1中,conv是卷积层,用于特征提取;RPN是区域生成网络,用于提取候选框;L是损失函数,Lcls是损失函数中的分类误差,Lbox是损失函数中的检测误差,Lmask是损失函数中的分割误差。
所使用的Mask-RCNN网络在现有技术上进行了改进,将用VIA标注的样本和样本原图一起输入到网络中进行训练,每个ecpch的训练步数设为1000,每个epoch的验证步数设为100,过滤RPN proposals的阈值设为0.7,设置学习率为0.001,权重衰减设为0.0001,训练100轮,其中在对图片进行降采样的环节中,在不同scale获得的mask最后叠加起来作为原图的mask,改进了对于不同粗细的缝隙的查找问题。
实施例3:
一种基于深度学习和OpenCV的隧道裂缝识别方法,如实施例1所示,所不同的是,步骤2中骨架提取过程为:
2.1、图像灰度化:采用加权平均法,按照R:0.299,G:0.587,B:0.114的权值对R、G、B的值加权平均;
2.2、对比度增强:
图片的特征参数包括整体灰度均值和整体灰度方差,采用OTSU算法将直方图划分为两部分,前一部分灰度值较小,后一部分灰度值较大,前一部分定义为前景灰度值,为可能是裂缝的灰度值,特征少且灰度值小,后一部分定义为背景灰度值,可能是背景的灰度值,特征多且灰度值大,将这两部分分别求灰度均值,两部分的灰度均值差即为此图片裂缝的明显程度,该值越大,则裂缝区别于背景越明显;
A、整体灰度值处于0~165之间的图片定义为整体偏暗,裂缝明显区别于背景是指一张图片中前景灰度值均值与背景灰度值均值之差大于50,裂缝不明显区别于背景,是指该差值介于0~50之间,为了防止非裂缝像素的影响,该步骤的计算在提取mask后的图片上进行,对于整体偏暗且裂缝明显区别于背景的图片(如图8所示),由于裂缝较明显,本发明再次加强其明显程度,使用如下方法进行优化:
首先进行第一次局部对比度增强,然后进行整体亮度提升如图4、5所示,再通过OTSU算法对全图进行第三次对比度增强,如图6所示;
第一次局部对比度增强是对于图像中的每一个点,分别计算其局部均值与局部标准差,均值用来判断某个像素点是属于低频还是高频,让低频变暗高频变亮,I(i,j)=M(i,j)+G(f(i,j)-M(i,j)),其中I(i,j)为增强后的像素值,M(i,j)为以点(i,j)为中心,窗口大小为(2n+1),(2m+1)的区域的局部均值;方差是用来调节局部范围内对比度增强程度的,用它来确定上式中的系数G,从而实现让本身对比度不强的区域的对比度变得明显,本身对比度很强的区域增强幅度不大;整体亮度提升是把图片中所有点的灰度值放大1.1的五次方倍,让图像整体变白;第三次对比度增强是对前两步处理后的图片使用OTSU进行阈值划分,对大于阈值的点的灰度值乘以1.7,对小于阈值的点的灰度值乘以0.5。
在确定阈值时,统计每张图的灰度分布情况,采用最大类间方差法(OTSU)确定阈值,三次增强在裂缝与背景区分明显的情况下比单次增强更能凸显裂缝特征。对于噪声较多的增强图像,采用中值滤波方法进行去噪操作,如图7所示;
B、对于整体偏暗且裂缝不明显区别于背景的图片,同步骤A;
C、对于整理偏亮的图片,如图10所示,由于有些地方的裂缝和背景相差不大,采用局部对比度加强时可能造成把背景误判为裂缝或把裂缝误判为背景的情况,就仅采用整体亮度提升的方法,根据具体情况改变提升倍率。最后结合原图,利用提取出的裂缝骨架信息进行裂缝填充,最终识别裂缝,如附图11所示。
2.3、边缘检测,边缘检测方法可参考现有技术进行,此处不再赘述;
2.4、对图像进行核为3*3的膨胀操作以及四次闭操作;
这一步的操作使得前景物体被填充,特征更加明显,有助于连通域的查询;
2.5、利用第2.4步得到的结果图检测连通域,完成连通域的第一次查询;
本发明中的连通域的查询均采用了现有的Zhang-Suen algorithm,该算法每一次的迭代步骤是对符合特定条件的目标像素进行腐蚀,使目标变得越来越细,不断的迭代,直到上一次腐蚀后的目标在本轮操作中没有被新的像素点腐蚀,算法结束。
2.6、更新图片,对图片进行核为7*7的闭运算;
更新图片具体为用上一步查询出的连通域对图片进行填充,连通域部分为白,背景为黑;
该步的目的是,对第一次生成的连通域进行粗调,使其尽可能包含裂缝特征,7*7比3*3对前景物体的填充效果更明显。
2.7、清空连通域的第一次查询结果,并完成连通域的第二次查询,由于上一步骤处理后的图片连通域会发生变化,该步骤用于更新当前连通域;
2.8、更新图片,对图片进行核为3*3的开运算与核为3*3的腐蚀运算,细化第二次查询的连通域图片,去除多余的噪点;
2.9、清空连通域的第二次查询结果,并完成连通域的第三次查询,由于上一步骤处理后的图片连通域会发生变化,该步骤用于更新当前连通域;
2.10、遍历每个连通域,对每个连通域进行骨架提取,最后将所有从连通域中提取的骨架绘制成一张图片,形成骨架图片,
此步骤的骨架提取请参考论文:A fast parallel algorithm for thinningdigital patterns提出的Zhang-Suen algorithm,该算法每一次的迭代步骤是对符合特定条件的目标像素,进行腐蚀,效果就是目标变得越来越细,不断的迭代,直到在上一次腐蚀后的目标在本轮操作中,没有新的像素点被腐蚀,算法结束。
实施例4:
一种基于深度学习和OpenCV的隧道裂缝识别方法,如实施例3所示,所不同的是,步骤2中对裂缝进行填充的过程为:
2.11、将骨架上的所有点放入容器中,对其进行遍历,即通过从左至右从上至下的扫描方式,图片中的所有骨架点放入一个类型为Point的Vector中,然后遍历这个Vector;
2.12、取出Vector中的骨架点,对其邻域进行灰度统计,采用最大类间方差法(OTSU)确定阈值,采用现有的最大类间方差法(OTSU)确定图片上某个骨架点n邻域范围的阈值,一张图片有很多个邻域,若该点的灰度值小于等于阈值,则将其作为种子点,在该邻域内进行区域生长,具体可采用八邻域区域生长算法;
若该点的灰度值大于阈值,则不做处理,继续查询,直到找到一个灰度值小于等于阈值的点停止查询;
2.13、遍历完成后生成精细的裂缝图片,如图9所示。
本发明按照上述方法对隧道裂缝进行识别,主要是对隧道实际裂缝图像进行实验检测,图8为原始图片,图9为最终识别裂缝效果图。
本发明提供了一种基于深度学习和OpenCV的隧道裂缝识别方法,本发明还提供了基于深度学习识别隧道裂缝的方法在实际隧道图像中的首次应用。经过试验证明,本发明能够清晰识别隧道裂缝,对于隧道勘测具有很高的应用前景和应用价值。
实施例5:
一种基于深度学习和OpenCV的隧道裂缝识别方法,如实施例3所示,所不同的是,步骤3进一步为:
3.1、利用步骤2.10得到的骨架图片和提取后的图片(即步骤2.11得到的图片)进行判断,即对骨架图片进行连通域查询,每个连通域都代表着一条裂缝,对每个连通域分别进行裂缝长宽信息的查询;
3.2、采用邻域查询法在每个连通域内进行长宽信息查询,在每个点的n邻域内统计黑色像素的个数,即裂缝的像素个数;
提取后的裂缝图片中,裂缝为黑色,背景为白色,黑色像素代表裂缝,黑色像素的个数代表这一邻域内裂缝所占面积;
3.3、对于骨架图片,每个连通域内的像素个数即为该段裂缝的长度;对于提取后的裂缝图片,分别记录步骤3.2的遍历中得到的裂缝所占面积最大值以及该面积所在区域中心点的坐标,在步骤3.2遍历完成后,用裂缝最大面积/邻域边长n,来估算裂缝的最大宽度;
本发明中,n是根据输入图片大小确定的,n=min(width,height)/200。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种基于深度学习和OpenCV的隧道裂缝识别方法,其特征在于,包括:
步骤1:利用深度学习技术找出裂缝的大体位置与形状:基于Mask-RCNN,利用标注的隧道裂缝图片数据集训练出能够识别裂缝大体位置与形状的模型,给出一张裂缝图片的mask,接下来只需在mask范围内进行裂缝提取;
步骤2:利用图像处理技术对识别出的裂缝进行细化:首先对mask进行腐蚀操作,在腐蚀后的mask区域内进行骨架提取;然后利用提取的裂缝骨架结合原图,采用邻域内区域生长算法对裂缝进行填充;
步骤3:统计裂缝长度与宽度信息。
2.根据权利要求1所述的基于深度学习和OpenCV的隧道裂缝识别方法,其特征在于,步骤1具体包括以下步骤:
1.1、将整张图像输入网络;
1.2、将图像输入CNN,进行特征提取,在该层中将不同scale获得的mask最后叠加起来作为原图的mask;
1.3、用FPN生成建议窗口,每张图片生成N个建议窗口;
1.4、将FPN生成的多个建议窗口映射到CNN的最后一层卷积feature map上;
1.5、通过RoIAlign层使每个RoI生成固定尺寸的feature map;
1.6、最后利用全连接分类,边框,mask进行回归。
3.根据权利要求1所述的基于深度学习和OpenCV的隧道裂缝识别方法,其特征在于,步骤2中骨架提取过程为:
2.1、图像灰度化:采用加权平均法,按照R:0.299,G:0.587,B:0.114的权值对R、G、B的值加权平均;
2.2、对比度增强:
图片的特征参数包括整体灰度均值和整体灰度方差,采用OTSU算法将直方图划分为两部分,前一部分定义为前景灰度值,为可能是裂缝的灰度值,特征少且灰度值小,后一部分定义为背景灰度值,可能是背景的灰度值,特征多且灰度值大,将这两部分分别求灰度均值,两部分的灰度均值差即为此图片裂缝的明显程度,该值越大,则裂缝区别于背景越明显;
A、整体灰度值处于0~165之间的图片定义为整体偏暗,裂缝明显区别于背景是指一张图片中前景灰度值均值与背景灰度值均值之差大于50,裂缝不明显区别于背景,是指该差值介于0~50之间,为了防止非裂缝像素的影响,该步骤的计算在提取mask后的图片上进行,对于整体偏暗且裂缝明显区别于背景的图片,由于裂缝较明显,本发明再次加强其明显程度,使用如下方法进行优化:
首先进行第一次局部对比度增强,然后进行整体亮度提升,再通过OTSU算法对全图进行第三次对比度增强;
第一次局部对比度增强是对于图像中的每一个点,分别计算其局部均值与局部标准差,均值用来判断某个像素点是属于低频还是高频,让低频变暗高频变亮;整体亮度提升是把图片中所有点的灰度值放大1.1的五次方倍,让图像整体变白;第三次对比度增强是对前两步处理后的图片使用OTSU进行阈值划分,对大于阈值的点的灰度值乘以1.7,对小于阈值的点的灰度值乘以0.5;
B、对于整体偏暗且裂缝不明显区别于背景的图片,同步骤A;
C、对于整理偏亮的图片,仅采用整体亮度提升;
2.3、边缘检测;
2.4、对图像进行核为3*3的膨胀操作以及四次闭操作;
2.5、利用步骤2.4得到的结果图检测连通域,完成连通域的第一次查询;
2.6、更新图片,对图片进行核为7*7的闭运算;
更新图片具体为用上一步查询出的连通域对图片进行填充,连通域部分为白,背景为黑;
2.7、清空连通域的第一次查询结果,并完成连通域的第二次查询;
2.8、更新图片,对图片进行核为3*3的开运算与核为3*3的腐蚀运算;
2.9、清空连通域的第二次查询结果,并完成连通域的第三次查询;
2.10、遍历每个连通域,对每个连通域进行骨架提取,最后将所有从连通域中提取的骨架绘制成一张图片,形成骨架图片。
4.根据权利要求3所述的基于深度学习和OpenCV的隧道裂缝识别方法,其特征在于,步骤2中对裂缝进行填充的过程为:
2.11、将骨架上的所有点放入容器中,对其进行遍历,即通过从左至右从上至下的扫描方式,图片中的所有骨架点放入一个类型为Point的Vector中,然后遍历这个Vector;
2.12、取出Vector中的骨架点,对其邻域进行灰度统计,采用最大类间方差法确定阈值,若该点的灰度值小于等于阈值,则将其作为种子点,在该邻域内进行区域生长;
若该点的灰度值大于阈值,则不做处理,继续查询,直到找到一个灰度值小于等于阈值的点停止查询;
2.13、遍历完成后生成精细的裂缝图片。
5.根据权利要求4所述的基于深度学习和OpenCV的隧道裂缝识别方法,其特征在于,步骤3进一步为:
3.1、利用步骤2.10得到的骨架图片和提取后的图片进行判断,即对骨架图片进行连通域查询,每个连通域都代表着一条裂缝,对每个连通域分别进行裂缝长宽信息的查询;
3.2、采用邻域查询法在每个连通域内进行长宽信息查询,在每个点的n邻域内统计黑色像素的个数,即裂缝的像素个数;
提取后的裂缝图片中,裂缝为黑色,背景为白色,黑色像素代表裂缝,黑色像素的个数代表这一邻域内裂缝所占面积;
3.3、对于骨架图片,每个连通域内的像素个数即为该段裂缝的长度;对于提取后的裂缝图片,分别记录步骤3.2的遍历中得到的裂缝所占面积最大值以及该面积所在区域中心点的坐标,在步骤3.2遍历完成后,用裂缝最大面积/邻域边长n,来估算裂缝的最大宽度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011390927.2A CN112446871B (zh) | 2020-12-02 | 2020-12-02 | 一种基于深度学习和OpenCV的隧道裂缝识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011390927.2A CN112446871B (zh) | 2020-12-02 | 2020-12-02 | 一种基于深度学习和OpenCV的隧道裂缝识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112446871A true CN112446871A (zh) | 2021-03-05 |
CN112446871B CN112446871B (zh) | 2022-11-15 |
Family
ID=74739299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011390927.2A Active CN112446871B (zh) | 2020-12-02 | 2020-12-02 | 一种基于深度学习和OpenCV的隧道裂缝识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112446871B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113989255A (zh) * | 2021-11-05 | 2022-01-28 | 中国地质大学(北京) | 基于Mask-RCNN的地铁隧道衬砌脱落识别模型训练方法和识别方法 |
CN114445391A (zh) * | 2022-01-30 | 2022-05-06 | 推想医疗科技股份有限公司 | 血管分段方法及其装置、电子设备和计算机可读存储介质 |
CN116309447A (zh) * | 2023-03-17 | 2023-06-23 | 水利部交通运输部国家能源局南京水利科学研究院 | 一种基于深度学习的水坝斜坡裂缝检测方法 |
CN117308794A (zh) * | 2023-11-30 | 2023-12-29 | 杭州汇萃智能科技有限公司 | 一种线宽量测方法、系统及计算机存储介质 |
WO2024134523A1 (en) * | 2022-12-21 | 2024-06-27 | Brembo S.P.A. | Method for detecting and characterizing, by artificial intelligence, defects on a micrograph of an object |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827204A (zh) * | 2010-04-19 | 2010-09-08 | 成都索贝数码科技股份有限公司 | 一种运动目标侦测方法及系统 |
CN102496152A (zh) * | 2011-12-01 | 2012-06-13 | 四川虹微技术有限公司 | 一种基于直方图的自适应图像对比度增强方法 |
CN103345733A (zh) * | 2013-07-31 | 2013-10-09 | 哈尔滨工业大学 | 基于改进暗通道先验的快速低照度图像增强方法 |
CN104992429A (zh) * | 2015-04-23 | 2015-10-21 | 北京宇航时代科技发展有限公司 | 一种基于图像局部增强的山体裂缝检测方法 |
US20160125243A1 (en) * | 2014-10-30 | 2016-05-05 | Panasonic Intellectual Property Management Co., Ltd. | Human body part detection system and human body part detection method |
CN105574865A (zh) * | 2015-12-14 | 2016-05-11 | 沈阳工业大学 | 基于改进蚁群算法提取睫毛的方法 |
CN111127373A (zh) * | 2019-12-31 | 2020-05-08 | 佛山科学技术学院 | 一种基于局部截面分析的血管图像提取方法及装置 |
CN111310558A (zh) * | 2019-12-28 | 2020-06-19 | 北京工业大学 | 一种基于深度学习和图像处理法的路面病害智能提取方法 |
-
2020
- 2020-12-02 CN CN202011390927.2A patent/CN112446871B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827204A (zh) * | 2010-04-19 | 2010-09-08 | 成都索贝数码科技股份有限公司 | 一种运动目标侦测方法及系统 |
CN102496152A (zh) * | 2011-12-01 | 2012-06-13 | 四川虹微技术有限公司 | 一种基于直方图的自适应图像对比度增强方法 |
CN103345733A (zh) * | 2013-07-31 | 2013-10-09 | 哈尔滨工业大学 | 基于改进暗通道先验的快速低照度图像增强方法 |
US20160125243A1 (en) * | 2014-10-30 | 2016-05-05 | Panasonic Intellectual Property Management Co., Ltd. | Human body part detection system and human body part detection method |
CN104992429A (zh) * | 2015-04-23 | 2015-10-21 | 北京宇航时代科技发展有限公司 | 一种基于图像局部增强的山体裂缝检测方法 |
CN105574865A (zh) * | 2015-12-14 | 2016-05-11 | 沈阳工业大学 | 基于改进蚁群算法提取睫毛的方法 |
CN111310558A (zh) * | 2019-12-28 | 2020-06-19 | 北京工业大学 | 一种基于深度学习和图像处理法的路面病害智能提取方法 |
CN111127373A (zh) * | 2019-12-31 | 2020-05-08 | 佛山科学技术学院 | 一种基于局部截面分析的血管图像提取方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113989255A (zh) * | 2021-11-05 | 2022-01-28 | 中国地质大学(北京) | 基于Mask-RCNN的地铁隧道衬砌脱落识别模型训练方法和识别方法 |
CN114445391A (zh) * | 2022-01-30 | 2022-05-06 | 推想医疗科技股份有限公司 | 血管分段方法及其装置、电子设备和计算机可读存储介质 |
WO2024134523A1 (en) * | 2022-12-21 | 2024-06-27 | Brembo S.P.A. | Method for detecting and characterizing, by artificial intelligence, defects on a micrograph of an object |
CN116309447A (zh) * | 2023-03-17 | 2023-06-23 | 水利部交通运输部国家能源局南京水利科学研究院 | 一种基于深度学习的水坝斜坡裂缝检测方法 |
CN116309447B (zh) * | 2023-03-17 | 2024-01-05 | 水利部交通运输部国家能源局南京水利科学研究院 | 一种基于深度学习的水坝斜坡裂缝检测方法 |
CN117308794A (zh) * | 2023-11-30 | 2023-12-29 | 杭州汇萃智能科技有限公司 | 一种线宽量测方法、系统及计算机存储介质 |
CN117308794B (zh) * | 2023-11-30 | 2024-04-19 | 杭州汇萃智能科技有限公司 | 一种线宽量测方法、系统及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112446871B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112446871B (zh) | 一种基于深度学习和OpenCV的隧道裂缝识别方法 | |
CN113160192B (zh) | 复杂背景下基于视觉的压雪车外观缺陷检测方法及装置 | |
CN111223088B (zh) | 一种基于深层卷积神经网络的铸件表面缺陷识别方法 | |
CN110210463B (zh) | 基于Precise ROI-Faster R-CNN的雷达目标图像检测方法 | |
CN110276754B (zh) | 一种表面缺陷检测方法、终端设备及存储介质 | |
CN111915704A (zh) | 一种基于深度学习的苹果分级识别方法 | |
CN109961049A (zh) | 一种复杂场景下香烟品牌识别方法 | |
CN110119728A (zh) | 基于多尺度融合语义分割网络的遥感图像云检测方法 | |
CN111862119A (zh) | 基于Mask-RCNN的语义信息提取方法 | |
CN109241982A (zh) | 基于深浅层卷积神经网络的目标检测方法 | |
CN113592911B (zh) | 表观增强深度目标跟踪方法 | |
CN109978882A (zh) | 一种基于多模态融合的医疗影像目标检测方法 | |
CN110276264A (zh) | 一种基于前景分割图的人群密度估计方法 | |
CN112734761B (zh) | 工业品图像边界轮廓提取方法 | |
Li et al. | Application of multi-scale feature fusion and deep learning in detection of steel strip surface defect | |
CN114118144A (zh) | 抗干扰的航空遥感图像阴影精准检测方法 | |
CN110310305B (zh) | 一种基于bssd检测与卡尔曼滤波的目标跟踪方法与装置 | |
CN113034474A (zh) | 一种oled显示器晶圆图的测试方法 | |
CN115880288B (zh) | 电子元件焊接的检测方法、系统及计算机设备 | |
CN106815851B (zh) | 一种基于视觉测量的栅格圆形油位计自动读数方法 | |
CN115082776A (zh) | 一种基于图像识别的电能表自动检测系统及方法 | |
CN113793357A (zh) | 一种基于深度学习的支气管肺段图像分割方法及系统 | |
CN113538342B (zh) | 一种基于卷积神经网络的铝质气雾罐涂层质量检测方法 | |
CN111444773A (zh) | 一种基于图像的多目标分割识别方法及系统 | |
CN114419006A (zh) | 一种随背景变化的灰度视频文字类水印去除方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |