基于全卷积神经网络的织物纹理瑕疵检测方法与流程

文档序号:18454494发布日期:2019-08-17 01:29阅读:163来源:国知局
基于全卷积神经网络的织物纹理瑕疵检测方法与流程

本发明涉及计算机视觉技术领域,特别是涉及基于全卷积神经网络的织物纹理瑕疵检测方法。



背景技术:

高压输水输油软管是一种可用于输送气体、水、油等多种介质,被广泛用于铺设临时输送线路的软管。其制造流程是先由圆织机将高强度涤纶丝编织成长度50米到300米不等的布匹管带,然后在内外层使用高品质聚氨酯形成内胶层和外胶层,保证其承压能力。产品附加值较高,出口到美国用于页岩气开采的300mm口径高压输水输油软管应可以承受最高3mpa的工作压力。但如果用于软管的布匹出现如图中黑色框体标注的断经、断纬、多经、多纬这类结构上的损伤情况,在给其内外涂上聚氨酯胶层后,容易在液体输送过程中发生爆裂。

质量保证对于现代液体传输软管生产行业已成为不可或缺的重要环节,目前,软管纺织品的质量检测主要通过人工来完成,其存在的问题是织物数量巨大,工人的工作量繁重,长时间的工作会导致工人疲劳和检测率的下降。平均一位工人需要负责多台圆织机,其中还需要进行涤纶线轴更换,难免会有疏忽。采用机器视觉自动检测代替人工检测布匹瑕疵是一种更合理的选择,这样做既可以节省人力成本,又可以更快更有效率的工作。

近年来,深度学习技术的出现革新了目标检测的模式,提升了目标检测的精度和鲁棒性。基于深度学习的目标检测模型,由于深度神经网络能够自主学习不同层级的特征,相比于传统手工设计特征,学习的特征更丰富,特征表达能力更强。目前,基于深度学习的目标检测方法主要分为两类:基于区域候选的模型和基于回归的模型。基于区域候选的深度学习目标检测模型建立在区域候选的思想上,首先对检测区域提取候选区域,为后续特征提取和分类做准备,典型代表为:r-cnn,fastr-cnn,fasterr-cnn以及r-fcn等。基于回归的深度学习目标检测模型则采用回归的思想,需要预先按照一定方式划定默认框,从而建立起预测框、默认框、groundtruth物体框的关系以进行训练,典型代表为:yolo和ssd。



技术实现要素:

为了解决上述存在的问题,本发明提供基于全卷积神经网络的织物纹理瑕疵检测方法,本发明使用深度学习技术,通过快速r-fcn目标检测算法实现圆织机织物纹理瑕疵的检测。深度学习是一种由数据驱动的学习过程,不需要人为设计复杂的手工特征,可直接从数据中学习目标的特征。在检测精度极高的r-fcn网络上进行改进,提出了针对条带状织物进行瑕疵检测的快速r-fcn网络。将r-fcn网络使用的resnet-101替换为浮点数运算量更小,特征提取能力相当的resnext-50网络。针对条带状织物特征图尺寸较小的问题,去除conv5层的一次降采样,并引入空洞卷积替代普通卷积,使用多尺度交替训练和在线难示例挖掘保证网络得到更加充分的训练,为达此目的,本发明提供基于全卷积神经网络的织物纹理瑕疵检测方法,使用深度学习技术,通过基于区域的全卷积神经网络目标检测算法实现圆织机织物瑕疵的检测,方法包括如下步骤:

(1)先对输入图片计算深度特征从而得到候选兴趣区域位置,

(2)将提取到的兴趣区域通过后续卷积层,使用位置敏感兴趣区域池化得到响应得分,进行分类和位置回归。

作为本发明进一步改进,所述步骤(1)中对输入图片计算深度特征从而得到候选兴趣区域位置,具体步骤为:

步骤2.1:训练基于区域的全卷积神经网络神经网络,主干网络使用50层增强残差网络,去掉原始残差网络的最后一层全连接层,保留前49层,在第40层即conv4层之后,将计算得到的特征图分为两条支路,一条输入到后续9层的特征提取网络中,另一条输入到区域推荐网络中以计算得到可能包含有瑕疵的区域;

步骤2.2:区域推荐网络的核心思想是使用cnn来生成兴趣区域,具体算法上使用256个3*3的卷积核,通过滑动窗口与特征层卷积,在每个特征图的位置上获得256个数,组成一个256维的向量,这样的滑动窗口的中心位置对应输入图像中尺度为{32,64,128},横纵比为{1:1,1:2,2:1},组合为9种锚框,通过学习框体与锚框的相对位置信息(tx,ty,tw,th)实现框体预测;

tx=(x-xa)/wa

ty=(y-ya)/ha

tw=log(w/wa)

th=log(h/ha)

其中,(xa,ya,wa,ha)分别是锚框的中心横坐标,中心纵坐标,以及锚框的宽和高,(x,y,w,h)为实际预测得到的位置坐标,区域推荐网络的损失函数为;

其中,i是锚框的索引,pi是在第i个锚框处预测为前景的概率,当第i个锚框为正样本时,为1,反之为0,正负样本的划分依据是根据每个监督样本中标定的框体位置,与其重叠比例最大的锚框为正样本;对于剩余的锚框,如果其与某个标定框体重叠比例大于0.7,记为正样本,如果与任意一个标定的框体重叠比例都小于0.3,记为负样本,ti和分别是预测与真实位置相对于锚框的偏移量,使用交叉熵损失函数计算分类误差,smoothl1损失函数计算定位误差,这两类误差需要分别除以用以训练的兴趣区域批量大小ncls和锚框中心位置数量nreg进行归一化,使用λ=10调节权重,使用区域推荐网络得到候选框体后,根据兴趣区域前景概率高低进行排序,选取前100个作为兴趣区域,输入到接下来的网络中。

作为本发明进一步改进,所述步骤(2)中检测条带状织物纹理瑕疵,具体步骤为:

步骤3.1:训练基于区域的全卷积神经网络神经网络,主干网络使用50层增强残差网络,去掉原始残差网络的最后一层全连接层,保留前49层,去除第41层中的降采样,使用空洞卷积替换后9层的普通卷积,再接一个1*1*1024的全卷积层,网络的输出是w*h*1024;

步骤3.2:根据区域推荐网络计算出100个左右的候选框,同时用k*k*(c+1)个1024*1*1的卷积核去卷积残差网络输出特征图得到k*k*(c+1)个大小为w*h的位置敏感得分图,k=3,表示把一个兴趣区域划分成3*3块,对于k*k=9块,每块(w*h*(c+1))表示的是不同位置存在目标的概率值,共有k*k*(c+1)个特征图,每个特征图,z(i,j,c)是第i+k(j-1)个立体块上的第c个图(1<=i,j<=3),(i,j)决定了9种位置的某一种位置,假设为左上角位置(i=j=1),c决定了哪一类,假设为瑕疵类,在z(i,j,c)这个特征图上的某一个像素的位置是(x,y),像素值是v,则v表示的是原图对应的(x,y)这个位置上可能是瑕疵(c=‘瑕疵’)且是瑕疵的左上部位(i=j=1)的概率值;

步骤3.3:将候选框中图片兴趣区域池化,思路是不论对多大的兴趣区域,规定在上面画一个n*n个bin的网格,每个网格里的所有像素值做一个池化,这样不论图像多大,池化后的兴趣区域特征维度都是n*n,兴趣区域池化是每个特征图单独做,不是多个通道一起的,若有c个类,兴趣区域的宽度是w',高度是h',则兴趣区域池化操作的输入是k*k*(c+1)*w'*h'的得分图上某兴趣区域对应的那个立体块,且该立体块组成一个新的k*k*(c+1)*w'*h'的立体块:每个立体块(c+1)都只抠出对应位置的一个bin,把这k*k个bin组成新的立体块,大小为(c+1)*w'*h',兴趣区域池化的输出为一个(c+1)*k*k的立体块;

对于第(i,j)个bin,位置敏感的兴趣区域池化仅在第(i,j)得分图上进行池化:

池化后进行分类的投票,k*k个bin直接进行求和,得到每一类的得分,并进行柔性最大得到每类的最终得分,并用于计算损失,对于每一个兴趣区域:

类别的柔性最大响应为:

损失函数由分类损失和回归损失组成,分类用交叉熵损失,回归用l1-smooth损失:

l(s,tx,y,w,h)=lcls(sc*)+λ[c*>0]lreg(t,t*)

通过上述方法训练基于区域的全卷积神经网络后,输出图片中纹理瑕疵检测的结果。

有益效果:本发明提供的基于全卷积神经网络的织物纹理瑕疵检测方法使用深度学习技术,通过快速r-fcn目标检测算法实现织物瑕疵的检测。基于深度学习的圆织机织物纹理瑕疵检测能极大地降低人工成本和工作量,有利于长期维护。深度学习检测提升了目标检测的精度和鲁棒性,能够自主学习不同层级的特征,相比于传统手工设计特征,学习的特征更丰富,特征表达能力更强。采用我们设计的检测方案可以有效提高检测速度和效率并降低成本。

附图说明

图1为本发明基于全卷积神经网络的圆织机织物纹理瑕疵检测方法的流程图;

图2为本发明快速r-fcn网络结构图;

图3为本发明20%宽度织物条带瑕疵检测效果图;

图4为本发明30%宽度织物条带瑕疵检测效果图;

图5为本发明圆织机织物纹理瑕疵检测效果图;

图6为本发明圆织机织物纹理瑕疵检测效果图。

具体实施方式

下面结合附图与具体实施方式对本发明作进一步详细描述:

本发明提供基于全卷积神经网络的织物纹理瑕疵检测方法,本发明使用深度学习技术,通过快速r-fcn目标检测算法实现圆织机织物纹理瑕疵的检测。深度学习是一种由数据驱动的学习过程,不需要人为设计复杂的手工特征,可直接从数据中学习目标的特征。在检测精度极高的r-fcn网络上进行改进,提出了针对条带状织物进行瑕疵检测的快速r-fcn网络。将r-fcn网络使用的resnet-101替换为浮点数运算量更小,特征提取能力相当的resnext-50网络。针对条带状织物特征图尺寸较小的问题,去除conv5层的一次降采样,并引入空洞卷积替代普通卷积,使用多尺度交替训练和在线难示例挖掘保证网络得到更加充分的训练。

下面以实际圆织机纺织过程中的瑕疵检测为例,结合附图对本发明基于全卷积神经网络的圆织机织物纹理瑕疵检测方法的具体实施方式作进一步详细说明。

本发明基于全卷积神经网络的织物纹理瑕疵检测方法,基于全卷积神经网络的圆织机织物纹理瑕疵检测方法的流程图如图1;

步骤1:训练基于区域的全卷积神经网络神经网络,主干网络使用50层增强残差网络,去掉原始残差网络的最后一层全连接层,保留前49层。在第40层即conv4层之后,将计算得到的特征图分为两条支路,一条输入到后续9层的特征提取网络中,另一条输入到区域推荐网络中以计算得到可能包含有瑕疵的区域。

整体网络结构如图2所示。

步骤2:区域推荐网络的核心思想是使用cnn来生成兴趣区域,具体算法上使用256个3*3的卷积核,通过滑动窗口与特征层卷积,在每个特征图的位置上获得256个数,组成一个256维的向量。这样的滑动窗口的中心位置对应输入图像中尺度为{32,64,128},横纵比为{1:1,1:2,2:1},组合为9种锚框,通过学习框体与锚框的相对位置信息(tx,ty,tw,th)实现框体预测。

tx=(x-xa)/wa

ty=(y-ya)/ha

tw=log(w/wa)

th=log(h/ha)

其中,(xa,ya,wa,ha)分别是锚框的中心横坐标,中心纵坐标,以及锚框的宽和高。(x,y,w,h)为实际预测得到的位置坐标。区域推荐网络的损失函数为

其中,i是锚框的索引,pi是在第i个锚框处预测为前景的概率,当第i个锚框为正样本时,为1,反之为0。正负样本的划分依据是根据每个监督样本中标定的框体位置,与其重叠比例最大的锚框为正样本;对于剩余的锚框,如果其与某个标定框体重叠比例大于0.7,记为正样本,如果与任意一个标定的框体重叠比例都小于0.3,记为负样本。ti和分别是预测与真实位置相对于锚框的偏移量。使用交叉熵损失函数计算分类误差,smoothl1损失函数计算定位误差,这两类误差需要分别除以用以训练的兴趣区域批量大小ncls和锚框中心位置数量nreg进行归一化,使用λ=10调节权重。使用区域推荐网络得到候选框体后,根据兴趣区域前景概率高低进行排序,选取前100个作为兴趣区域,输入到接下来的网络中。

步骤3:训练基于区域的全卷积神经网络神经网络,主干网络使用50层增强残差网络,去掉原始残差网络的最后一层全连接层,保留前49层,去除第41层中的降采样,使用空洞卷积替换后9层的普通卷积,再接一个1*1*1024的全卷积层,网络的输出是w*h*1024。

步骤4:根据区域推荐网络计算出100个左右的候选框,同时用k*k*(c+1)个1024*1*1的卷积核去卷积残差网络输出特征图得到k*k*(c+1)个大小为w*h的位置敏感得分图,k=3,表示把一个兴趣区域划分成3*3块,对于k*k=9块,每块(w*h*(c+1))表示的是不同位置存在目标的概率值,共有k*k*(c+1)个特征图,每个特征图,z(i,j,c)是第i+k(j-1)个立体块上的第c个图(1<=i,j<=3),(i,j)决定了9种位置的某一种位置,假设为左上角位置(i=j=1),c决定了哪一类,假设为瑕疵类,在z(i,j,c)这个特征图上的某一个像素的位置是(x,y),像素值是v,则v表示的是原图对应的(x,y)这个位置上可能是瑕疵(c=‘瑕疵’)且是瑕疵的左上部位(i=j=1)的概率值。

步骤5:将候选框中图片兴趣区域池化,思路是不论对多大的兴趣区域,规定在上面画一个n*n个bin的网格,每个网格里的所有像素值做一个池化,这样不论图像多大,池化后的兴趣区域特征维度都是n*n,兴趣区域池化是每个特征图单独做,不是多个通道一起的,若有c个类,兴趣区域的宽度是w′,高度是h′,则兴趣区域池化操作的输入是k*k*(c+1)*w′*h′的得分图上某兴趣区域对应的那个立体块,且该立体块组成一个新的k*k*(c+1)*w′*h′的立体块:每个立体块(c+1)都只抠出对应位置的一个bin,把这k*k个bin组成新的立体块,大小为(c+1)*w′*h′,兴趣区域池化的输出为一个(c+1)*k*k的立体块;

对于第(i,j)个bin,位置敏感的兴趣区域池化仅在第(i,j)得分图上进行池化:

池化后进行分类的投票,k*k个bin直接进行求和,得到每一类的得分,并进行柔性最大得到每类的最终得分,并用于计算损失,对于每一个兴趣区域:

类别的柔性最大响应为:

损失函数由分类损失和回归损失组成,分类用交叉熵损失,回归用l1-smooth损失:

l(s,tx,y,w,h)=lcls(sc*)+λ[c*>0]lreg(t,t*)

通过上述方法训练基于区域的全卷积神经网络后,输出图片中纹理瑕疵检测的结果。

使用上述方法,在配置有2颗intelxeongold6132处理器,2块nvidiateslap100显卡,128g内存的服务器上使用1317张做好标注的图片对模型进行6小时的训练。将圆织机条带状瑕疵图像输入训练好的模型中,可以得到如图3和图4所示不同宽度的条带状织物纹理瑕疵检测效果。为了实现工程应用需求,使用c++语言,qt5.6.3框架编写ui界面;使用python语言,tensorflow1.4.0框架编写快速r-fcn检测算法实现对圆织机织物纹理瑕疵的检测;使用opencv3.3.1完成视频数据的采集和保存;使用opencv3.3.1结合opengl完成图像处理及显示。系统稳定运行,软件运行时检测效果如图5和图6所示,可以看到系统准确检测出纹理上存在的瑕疵,并通过控制继电器停止了圆织机的工作,在右下角显示了最近一次检测到的织物瑕疵方便工人进行比对。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。

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