基于全景图像CNN的隧道病害自动识别装置的制作方法

文档序号:12657067阅读:来源:国知局

技术特征:

1.一种基于全景视觉CNN的隧道病害自动识别装置,其特征在于:所述的装置包括隧道检测车和远程计算机;

所述的隧道检测车上配置有主动式全景视觉传感器、RFID读取器、测距轮、无线接发送单元、控制器和工控机,所述的主动式全景视觉传感器安装在所述的隧道检测车的前方中央,所述的RFID读取器读取配置在隧道内壁上安置的RFID信息,所述的隧道检测车的底部安装一个测距轮,所述的控制器读取测距轮中光电编码器的脉冲当量并估算所述的隧道检测车的行走距离Zi;所述的控制器读取主动式全景视觉传感器所获取的隧道全断面全景图像并以所述的隧道检测车的行走距离Zi和现在时刻为文件名保存在所述的控制器的存储单元中;当所述的隧道检测车达到下一个站点时,所述的控制器通过所述的无线接发送单元将所述的控制器的存储单元中的隧道全断面全景图像发送给站级通信系统;

所述的主动式全景视觉传感器包括:全方位视觉传感器和投射照明光源;所述的全方位视觉传感器与所述的投射照明光源进行同轴固定连接,安装在所述的隧道检测车的前方中央位置;

所述的远程计算机作为服务器采用Linux系统,所述的隧道检测车行进过程中,工控机每隔时间T采集隧道内壁全景图像,时间T是由隧道检测车的行进速度V以及全景视觉垂直成像范围F来决定的,全景图像采集间隔时间用公式(1)计算得到,

T=0.8×F/V (1)

式中,T为ODVS的采样间隔,V为隧道检测车的行进速度,F为全景视觉垂直成像范围;

工控机通过无线接发送单元将携带着隧道空间位置信息的展开的隧道内壁全景图像发送给远程计算机,所述远程计算机包括用于隧道病害自动识别的CNN模块。

2.如权利要求1所述的一种基于全景视觉CNN的隧道病害自动识别装置,其特征在于:所述全方位视觉传感器包括双曲面镜面、上盖、透明半圆形外罩、下固定座、摄像单元固定座、摄像单元、连接单元和上罩;所述的双曲面镜面固定在所述的上盖上,所述的连接单元将所述的下固定座和透明半圆形外罩连接成一体,所述的透明半圆形外罩与所述的上盖以及所述的上罩固定在一起,所述的摄像单元固定在所述的摄像单元固定座上,所述的摄像单元固定座固定在所述的下固定座上,所述的全方位视觉传感器中的所述的摄像单元的输出通过千兆网数据接口与所述的控制器连接。

3.如权利要求1或2所述的一种基于全景视觉CNN的隧道病害自动识别装置,其特征在于:所述的照明光源包括光源上盖、圆锥形镜面、透明外罩、底座和24颗LED,24颗LED均匀分布固定在底座外圆侧对隧道内壁进行照明,圆锥形镜面的轴心线与光源上盖轴心线一致,透明外罩将嵌入24颗LED和固定圆锥形镜面的光源上盖集成为投射照明光源。

4.如权利要求1或2所述的一种基于全景视觉CNN的隧道病害自动识别装置,其特征在于:所述的工控机中的图像处理部分包括隧道断面全景图像数据读取单元和隧道横断面全景图像展开单元;远程计算机中的图像处理部分主要包括:隧道疑似病害图像预处理单元和隧道疑似病害图像提取单元。

5.如权利要求4所述的一种基于全景视觉CNN的隧道病害自动识别装置,其特征在于:隧道断面全景图像数据读取单元每隔时间T通过ODVS来获取隧道内壁的一帧全景图像;接着,隧道横断面全景图像展开单元全景图像进行展开处理,展开处理后的全景图像用隧道检测车的行走距离zi为文件名保存;

全景柱状展开是以全景图像中心坐标为原点建立平面坐标系O(0,0),X轴水平向右,Y轴竖直向上;选取合适的内径为r1、外径为r2,展开半径为R=(r1+r2)/2,方位角为θ=tan-1(y/x);全景柱状展开图以坐标原点O*(0,0)、X*轴、Y*轴为平面坐标系,将全景图像坐标系下点(r,0)作为全景柱状展开图坐标原点O*(0,0),以方位角θ顺时针方向展开建立全景柱状展开图;建立全景柱状展开图像中任意一点象素坐标P*(x*,y*)与全景图像中的象素坐标P(x,y)的对应关系,其计算公式为:

x=y/(tan(360x*/π(r1+r2))) (2)

y=(y*+r1)cosθ (3)

式中:x*,y*为全景柱状展开图的坐标,x,y为全景图像的坐标,R为全景图像展开区域的外径,r为全景图像展开区域的内径,θ为全景图像坐标的方位角;

模拟隧道内壁柱状展开图用隧道检测车的行走距离zi为文件名保存,请求服务器来读取该图像文件;

远程计算机得到从隧道检测车发送过来的读取请求后,读取暂时存储在工控机内的展开全景图像,递交给隧道疑似病害图像预处理单元进行图像预处理,对隧道柱状展开图像进行增强,包括灰度校正和图像平滑;

隧道疑似病害的提取包括:图像分割以及图像的形态学处理,首先采用Otsu法对隧道疑似病害图像进行二值分割,然后对隧道疑似病害二值图像的数学形态学处理;在数学形态学处理中采用先进行开运算再进行闭运算。

6.如权利要求1或2所述的一种基于全景视觉CNN的隧道病害自动识别方法,其特征在于:所述CNN模块中,卷积神经网络CNN的结构为6层,包括依次连接的输入层,C1层,S2层,C3层,S4层和输出层,其中C1层和C3层为卷积层,S2层和S4层为下采样层,输入层为大小为28*28像素的图像,输出层包括4个一维向量,分别表示4类隧道病害:(1)裂纹;(2)裂缝;(3)衬砌脱落;(4)渗漏水。

7.如权利要求6所述的一种基于全景视觉CNN的隧道病害自动识别方法,其特征在于:所述CNN模块中,识别过程如下:

(1)输入:输入图像为图像预处理得到的28*28的灰度疑似病害图像;

(2)C1层:C1层为卷积层,用于提取图像特征,卷积核的大小影响着神经元感受野的大小,当卷积核较小时,无法提取有效的局部特征,当卷积核较大时,又无法描述过于复杂的信息;对于28*28的输入图像,选用5*5的卷积核就能够达到较好的效果,得到24*24的特征图;每个卷积核用于提取某一类特征,这里采用6个卷积核对同一图像进行卷积,得到6张不同的特征图;卷积核中各参数通过随机初始化设置在-1到1之间,随机初始化的卷积核有较好的边缘提取效果;

(3)S1层:S1层为降采样层,它将C1层输出的特征图进行缩小,将邻域内的像素求和成一个像素,然后通过W加权,再增加偏置b,最后通过sigmoid激活函数,这样就将C1层中得到的特征提取图映射为缩小后的特征映射图;

(4)C2层:C2层为卷积层,用于提取图像特征,与C1层相似;C1层是将1张原图通过6个卷积核获得6张特征提取图;而C2层则是将6张输入的特征映射图,通过随机组合得到12张特征图,然后通过不同的卷积核映射得到12张特征提取图;(5)S2层:S2层为降采样层;

(6)输出层:输出层是与S2层的全连接,S2层有12*4*4=192个神经元,每一个神经元都与输出的一个神经元相连,输出层暂时设定为4类,即4个神经元,总共有192*4=768个连接,将S2看作一个192维的线性向量,而S2到输出层的映射相当于使用该向量进行分类,这个分类器共有768个参数来对4种病害类别进行分类。

8.如权利要求7所述的一种基于全景视觉CNN的隧道病害自动识别装置,其特征在于:所述卷积神经网络的训练过程包括4步,这4步被分为两个阶段:

第一阶段,向前传播阶段:

(1)从样本集中取一个样本(X,Yp),将X输入网络;

(2)计算相应的实际输出Op

在此阶段,信息从输入层经过逐级的变换,传送到输出层;这个过程也是网络在完成训练后正常运行时执行的过程;在此过程中,网络执行的是计算:

Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n)) (2)

在计算过程中,都是用Sigmoid作为激活函数;

第二阶段,向后传播阶段:

(1)计算实际输出Op与相应的理想输出Yp的差;

(2)按极小化误差的方法反向传播调整权矩阵;

用“残差”这个词来表示误差的偏导数;

其中,输出层到S4层的残差=-(输出值-样本值)*激活函数的导数,隐藏层的残差=(右层每个节点的残差加权求和)*激活函数;

其中,残差全部计算好后,就可以更新权重了:

(1)输入层:权重增加=输入值*右层对应节点的残差*学习率

(2)隐藏层:权重增加=当前节点的Sigmoid*右层对应节点的残差*学习率

(3)偏移值的权重增加=右层对应节点的残差*学习率

其中,隐藏层表示除输入层、输出层以外的其他各层;学习率是一个预先设置好的参数,用于控制每次更新的幅度;此后,对全部数据都反复进行这样的计算,直到输出的误差达到一个很小的值为止;

在卷积神经网络中,输出层的残差是输出值与样本值的差值,而中间各层的残差来源于下一层的残差的加权和;输出层的残差计算如下:

<mrow> <msubsup> <mi>&delta;</mi> <mi>i</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </msubsup> <mo>=</mo> <mfrac> <mo>&part;</mo> <mrow> <mo>&part;</mo> <msubsup> <mi>z</mi> <mi>i</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </msubsup> </mrow> </mfrac> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>|</mo> <mo>|</mo> <mi>y</mi> <mo>-</mo> <msub> <mi>h</mi> <mrow> <mi>W</mi> <mo>,</mo> <mi>b</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>=</mo> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>-</mo> <msubsup> <mi>a</mi> <mi>i</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msup> <mi>f</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <msubsup> <mi>z</mi> <mi>i</mi> <mrow> <mo>(</mo> <msub> <mi>n</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </msubsup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

其中,(第nl层表示输出层)为输出层的残差,yi表示输出值,表示前向传播中输出层的输入值,表示激活函数的导数;

下一层为采样层的卷积层的残差的计算可以对采样层的残差与一个2×2的全1矩阵进行克罗内克积进行扩充,因为从卷积神经网络的结构图看出,采样层的map大小是卷积层的但这两层的map个数是一样的,卷积层的某个map中的4个单元与采样层对应map的一个单元关联,扩充之后使得采样层的残差的维度与上一层的输出map的维度一致;

当采样层L的下一层是卷积层(L+1),并假设已经计算出L+1层的残差,再假设L层第j个map Mj与L+1层的M2j关联,按照反向传播算法的原理,L层的残差Dj是L+1层残差D2j的加权和,M2j与Mj的关联关系采用将卷积核矩阵进行180度旋转,使之一一对应;

残差计算出来后,就是更新权重和偏置参数;

在完成卷积神经网络的训练后,便进入了测试阶段,测试阶段用来测试所使用的卷积神经网络用于对隧道病害检测识别的精度和速度是否可靠;其过程为:读取检测图像,然后将这些图像输入训练好的卷积神经网络中进行测试,利用卷积神经网络进行分类,分类的结果为上述的4类隧道病害,进而可以获取误差率。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1