发明内容
为实现上述目的,本发明提供的一种由粗到精的纸病检测方法,具体包括以下的实施步骤:
S1、纸病筛查模块工作流程:
S1-1、对采样的纸张图像进行滤波处理,去掉图像中的高斯噪声;
S1-2、分别按照外部域和中间域的亮度阈值设定对输入的纸张图像进行二值化,位于亮度阈值范围内的设置为1,位于亮度阈值范围外的设置为0;
S1-3、采用水平和垂直投影的方式快速找出外部域和中间域内疑似纸病的候选外接矩形列表,具体为先在水平方向进行投影,找出水平方向非零的独立区间列表,再将每个水平独立区间进行垂直方向的投影,找出对应垂直方向的独立区间列表,从而将水平独立区间在垂直方向上进行进一步分割;
S1-4、基于每个候选矩形在原图上进行亮度直方图统计,将统计信息附加到外接矩形信息上;
S1-5、将外部域的外接矩形列表与中间域的外接矩形列表进行重复抑制操作,如果外部域中的某个外接矩形与中间域中的某个矩形的交集和并集比值大于一定阈值则表明两个矩形重复了,则删除中间域中的对应矩形信息;
S1-6、判断中间域的外接矩形列表是否为空,若为空则直接转到S1-9,不为空则进行下一步;
S1-7、针对中间域每个外接矩形对应的图像范围,采用Sobel算法重新进行边缘检测,将处理后的图像进行梯度直方图统计,同时根据边缘梯度阈值进行图像二值化;
S1-8、在经Sobel算法处理后的图像上获取候选外接矩形列表;
S1-9、根据外部域候选矩形列表以及Sobel处理后的候选外接矩形列表在对应的图像上截取纸病区域并打包相关信息后上报至协调控制模块,再从缓存区中删除相应图像;
S2、协调控制模块工作流程:
S2-1、从上报的信息中提取疑似纸病数据,并将疑似纸病图像发送到纸病分类分级模块进行检测;
S2-2、记录纸病分类分级模块给出的分类结果,统计一段时间内来自两个不同亮度区域的分类结果;
S2-3、调整纸病筛查模块中的外部域边界阈值、Sobel功能开启状态、内部域边界阈值、Sobel检测梯度阈值,具体包括:
(1)调整外部域边界Th_outter:判断来自外部域的正常纸张图像占比值是否大于上限阈值To_1,如果大于则表明当前通过外部域输入了过多的正常纸张图像,需要调大外部域边界;判断外部域中正常纸张图像占比是否小于下限阈值To_0,如果小于则需要适当调小外部域边界;
(2)调整Sobel功能开启状态:判断中间域中正常纸张图像的直方图统计分布与纸病图像直方图统计分布的区别,如果能够用相对明确的界限进行区分则关闭Sobel过滤功能,如果不能则开启Sobel过滤功能;
(3)调整内部域边界Th_inner:Sobel功能关闭情况下,判断来自中间域的正常纸张图像占比值是否大于上限阈值Tm_1,如果大于则表明当前通过中间域输入了过多的正常纸张图像,需要调大内部域的边界阈值;判断来自中间域的正常纸张图像占比是否小于下限阈值Tm_0,如果小于则需要适当调小内部域的边界阈值;
(4)调整Sobel梯度阈值:Sobel功能开启情况下,判断中间域正常纸张图像的比例,如果占比大于上限阈值Ts_1,如果大于则表明当前通过Sobel边缘检测输入了过多的正常纸张图像,需要调大Sobel梯度阈值;判断来自中间域的正常纸张图像占比是否小于下限阈值Ts_0,如果小于则需要适当调小Sobel梯度阈值;
S2-4、反馈调节,将接收协调控制部分的指令,对纸病筛查模块中的相应部分和阈值进行调节控制;
S3、纸病分类分级模块采用卷积网络来搭建分类分级网络,分类网络将完成对纸病进行分类的功能,分级网络将完成对纸病严重程度进行分级的功能。
进一步地,分类和分级网络可以分别搭建和训练,为了加快运行处理时间同时提高系统资源利用率,本实施例中将分类网络和分级网络的特征提取部分进行了共享,并采用多目标的方式进行联合训练。
具体实施方式
为了使本发明的目的及技术方案更加清晰,以下结合附图,对本发明技术方案作进一步清楚、完整地描述。应当理解,此处所描述的具体技术实施例仅仅用以解释本发明的技术方案,本领域技术人员在没有作出创造性劳动前提下所获得的其他实施例,应属于本发明的保护范围。
参照图1所示是纸病检测系统架构示意图,本发明提供的一种由粗到精的纸病检测方法,具体包括以下的实施步骤:
步骤S1、纸病筛查模块工作流程:
S1-1、对采样的纸张图像进行滤波处理,去掉图像中的高斯噪声;
S1-2、分别按照外部域和中间域的亮度阈值设定对输入的纸张图像进行二值化,位于亮度阈值范围内的设置为1,位于亮度阈值范围外的设置为0;
S1-3、采用水平和垂直投影的方式快速找出外部域和中间域内疑似纸病的候选外接矩形列表,具体为先在水平方向进行投影,找出水平方向非零的独立区间列表,再将每个水平独立区间进行垂直方向的投影,找出对应垂直方向的独立区间列表,从而将水平独立区间在垂直方向上进行进一步分割;
S1-4、基于每个候选矩形在原图上进行亮度直方图统计,将统计信息附加到外接矩形信息上;
S1-5、将外部域的外接矩形列表与中间域的外接矩形列表进行重复抑制操作,如果外部域中的某个外接矩形与中间域中的某个矩形的交集和并集比值大于一定阈值则表明两个矩形重复了,则删除中间域中的对应矩形信息;
S1-6、判断中间域的外接矩形列表是否为空,若为空则直接转到S1-9,不为空则进行下一步;
S1-7、针对中间域每个外接矩形对应的图像范围,采用Sobel算法重新进行边缘检测,将处理后的图像进行梯度直方图统计,同时根据边缘梯度阈值进行图像二值化;
S1-8、在经Sobel算法处理后的图像上获取候选外接矩形列表;
S1-9、根据外部域候选矩形列表以及Sobel处理后的候选外接矩形列表在对应的图像上截取纸病区域并打包相关信息后上报至协调控制模块,再从缓存区中删除相应图像。
本模块对采样的纸张图像进行初步处理,筛选出可能存在缺陷的图像,纸病筛查后正常的图像将直接丢弃,有疑似纸病的图像则传输出来。
由于纸张的品种、纸张均匀度、LED光照效果、环境光等多因素的影响,纸张亮度的均值和方差是变化的。如果纸张均匀度好,亮度方差小,则比较方便设置一个亮度区间使得绝大部分正常纸张的亮度都位于该亮度区间内且绝大部分纸病的亮度都位于该亮度区间外,这样就能够较好的检测出疑似纸病,且不会输出大量正常纸张图像导致网络拥塞和后端服务器过载;如果纸张均匀度不够好,亮度方差大,则部分正常纸张和部分纸病的亮度差异会较小,亮度区间较难设置,亮度区间设置小了会导致输出过多的正常图像从而容易导致网络拥塞和后端过载,亮度区间设置大了会导致部分纸病检测不到。
优选的,针对亮度阈值设置的两难问题,在本实施例中将亮度区间划分为3个区域,分别为内部域、外部域、中间域,具体定义见以下公式:
|Lp-μ|≤Th_inner 公式一
|Lp-μ|≥Th_outter 公式二
Th_inner≤|Lp-μ|≤Th_outter 公式三
其中,μ为一段时间内的亮度均值,Lp为纸张图像内p点处的亮度值,Th_inner为内部域亮度阈值,Th_outter为外部域亮度阈值,且Th_outter>Th_inner。
公式一设定的区域为内部域,该亮度域内的图像期望都为正常图像;公式二设定的区域为外部域,该亮度域内的图像期望都为纸病图像如孔洞和脏污等纸病;公式三设定的区域为中间域,中间域为除去内部域和外部域后的亮度区域,其图像包括正常图像和纸病图像,如皱褶等纸病,这些图像的亮度差异不大,单一采用亮度难以区分,因而将提取图像内亮度值的梯度变化信息进行边缘检测从而做进一步的筛查。
步骤S2、协调控制模块工作流程:
S2-1、从上报的信息中提取疑似纸病数据,并将疑似纸病图像发送到纸病分类分级模块进行检测;
S2-2、记录纸病分类分级模块给出的分类结果,统计一段时间内来自两个不同亮度区域的分类结果;
S2-3、调整纸病筛查模块中的外部域边界阈值、Sobel功能开启状态、内部域边界阈值、Sobel检测梯度阈值,具体包括:
(1)调整外部域边界Th_outter:判断来自外部域的正常纸张图像占比值是否大于上限阈值To_1,如果大于则表明当前通过外部域输入了过多的正常纸张图像,需要调大外部域边界;判断外部域中正常纸张图像占比是否小于下限阈值To_0,如果小于则需要适当调小外部域边界;
(2)调整Sobel功能开启状态:判断中间域中正常纸张图像的直方图统计分布与纸病图像直方图统计分布的区别,如果能够用相对明确的界限进行区分则关闭Sobel过滤功能,如果不能则开启Sobel过滤功能;
(3)调整内部域边界Th_inner:Sobel功能关闭情况下,判断来自中间域的正常纸张图像占比值是否大于上限阈值Tm_1,如果大于则表明当前通过中间域输入了过多的正常纸张图像,需要调大内部域的边界阈值;判断来自中间域的正常纸张图像占比是否小于下限阈值Tm_0,如果小于则需要适当调小内部域的边界阈值;
(4)调整Sobel梯度阈值:Sobel功能开启情况下,判断中间域正常纸张图像的比例,如果占比大于上限阈值Ts_1,如果大于则表明当前通过Sobel边缘检测输入了过多的正常纸张图像,需要调大Sobel梯度阈值;判断来自中间域的正常纸张图像占比是否小于下限阈值Ts_0,如果小于则需要适当调小Sobel梯度阈值;
S2-4、反馈调节,将接收协调控制部分的指令,对纸病筛查模块中的相应部分和阈值进行调节控制。
协调控制模块主要完成纸病筛查模块和纸病分类分级模块之间的功能调用和反馈控制等功能,反馈控制主要是根据一段时间内分类分级模块判定的结果来调整纸病筛查模块中的内部域亮度阈值、外部域亮度阈值和Sobel梯度阈值等,以及控制Sobel边缘检测功能是否开启等。如果判定为正常纸张的比例过高则表明输入了太多的正常纸张图像;如果比例太低则表明有可能遗漏了部分纸病没有检测到,结合上报的纸病其他信息就可对纸病筛查模块中的Sobel功能是否开启以及各个相关阈值进行调整。
参照图2系统部署架构示意图所示,协调控制模块分成两个部分:协调控制和反馈调节,协调控制部分位于后端服务系统,反馈调节部分位于基于FPGA的嵌入式系统中。
步骤S3、纸病分类分级模块采用卷积网络来搭建分类分级网络,分类网络将完成对纸病进行分类的功能,分级网络将完成对纸病严重程度进行分级的功能。
优选的,参照图3所示为本发明纸病分类分级模块网络架构示意图,分类和分级网络可以分别搭建和训练,为了加快运行处理时间同时提高系统资源利用率,本实施例中将分类网络和分级网络的特征提取部分进行了共享,并采用多目标的方式进行联合训练。
具体的,步骤S3中所述的卷积网络包括基本的纸病特征提取部分以及分类网络和分级网络两个分支部分,其中,Cnn layer for cls为单独用于纸病分类的卷积层,Cnnlayer for level为单独用于纸病分级的卷积层,为适应不同大小的纸病图像输入,设置两个Globe pool分别将分类和分级层输出的各个特征平面浓缩为1*1的大小,再分别经过一个Conv 1*1的卷积融合各通道内的信息后输出M+1类纸病信息,分类中除了包括各种纸病类别还包含一类正常纸张类别,分类信息经过Conv 1*1之后直接进行Softmax运算处理,输出概率最高的类别,分级信息经过Conv 1*1之后直接得到了各纸病类别所对应的纸病严重等级得分。
本发明技术方案在进行纸病检测前需要通过系统训练,训练过程包括如下步骤:
1、拍摄采样纸病图像,尽可能多的保存样本图像;
2、对纸病图像进行筛选和标注:由于采集到的图像数量较大,纯人工筛选纸病图像的效率较低,在此可采用纸病筛查模块类似的处理步骤按外部域和中间域先筛选出较多的存在疑似纸病的图像,再针对该类图像进行标注;
3、对纸病图像数量进行平衡处理并训练:基于纸病图像和标注信息按类别提取训练样本,并设法补足训练样本数量较少的类别;
4、训练采用多目标同时训练,即同时训练分类和分级两个目标:
4-1、分类部分采用交叉熵作为损失函数,公式如下:
其中,Lcls为分类损失函数,N表示一个训练批次的总数量,i表示该训练批次中的图像序号,M为纸病分类类别数,c为类别号,c=0表示为正常图像类别;yic为指示变量,如果该类别和样本i的类别相同即为1,否则为0;pic为对于样本i属于类别c的预测概率,该概率由Softmax计算获得;
4-2、分级部分采用最小均方误差作为损失函数,公式如下:
其中,L
level为分级损失函数,N表示一个训练批次的总数量,i表示该训练批次中的图像序号,M为纸病分类类别数,c为类别号;y
ic为指示变量,如果该类别和样本i的类别相同则为1,否则为0;
为该样本类别c对应的预测等级值,y
icl为该样本类别c对应的等级标签值;
4-3、联合两个目标进行训练时的Loss函数,公式如下:
Loss=Lcls+λLlevel
其中,λ为平衡系数。
5、采用上述标注的图像并利用上述Loss函数即可进行纸病分类分级模型的训练。
本领域技术人员在知悉本发明技术方案说明书及实施例后,容易想到本公开的其他实施方案。应当理解本公开并不局限与上述描述及公开的实施例,在不脱离本公开的范围内进行的各种修改和改变,应包含在本公开要求保护的范围内。