一种基于深度学习的工件表面缺陷检测方法与流程

文档序号:19683888发布日期:2020-01-14 17:46阅读:342来源:国知局
一种基于深度学习的工件表面缺陷检测方法与流程

本发明涉及机器视觉与检测技术领域,具体涉及一种基于深度学习的工件表面缺陷检测方法。



背景技术:

质量控制是产业升级的重要一环。以工件缺陷检测为例,目前,许多厂家仍以人力为主导,这种方式不仅效率低下、而且提高了人力成本。秉着制造信息化的导向,以机器视觉代替人眼视觉以参与产品质量控制已成为当今制造业的发展趋势,而目前也有一些厂商开始尝试采取传统的机器视觉方案。目前已经应用的技术方案主有基于背景建模的前景检测算法和基于支持向量机的学习算法。其中,基于背景建模的前景检测算法效率依赖于捕获图像尺度,即运算量与输入尺度呈现出幂次增长的关系,当捕获图像的分辨率提高往往造成系统效率急剧下降;基于支持向量机的学习算法相比于基于背景建模的前景检测算法表现出系统效率方面的提升,但由于支持向量机的空间消耗主要用于存储训练样本和核矩阵,当矩阵阶数(与输入样本数有关)很大时将耗费大量的存储空间及机器内存。另外,支持向量机解决多分类问题较为困难。

近年来深度神经网络(深度学习)随着商业化的巨大成功而迎来了发展的井喷期。其于智能化行业中被广泛应用,为人类社会带来巨大的经济效益。卷积神经网络(convolutionalneuralnetworks,cnn)作为深度神经网络的典型,相比于传统算法,对于复杂特征拥有更好的提取能力,被广泛应用于机器视觉与图像处理等领域。其相比于传统机器视觉算法,若参数优化得当,拥有更好的适应性与准确度,且系统效率大幅提升。而相比于基于支持向量机的学习算法,其计算存储开销小、可用于解决多分类问题。因此,有必要开发一种基于深度学习的高效、准确的工件缺陷检测技术,应用于质量控制环节。



技术实现要素:

发明目的:为了解决上述背景技术中存在的问题,本发明利用深度学习技术,构建了工件表面缺陷检测系统,解决传统方法中人力开销大、系统效率低、适应性差的缺点,能够在生产环境下对工件表面缺陷进行快速识别、反馈,保证了系统的准确度与效率。技术方案:为实现上述目的,本发明采用的技术方案为:

一种基于深度学习的工件表面缺陷检测方法,包括以下具体步骤:

步骤1、采用多组摄像头与光照源构建基于多目视觉的图像采集系统,捕捉工件在不用角度下的图像;

步骤2、构建分布式图像处理系统;采用管道监听机制,处理计算机维护特定的消息管道,捕获终端监听该管道;每次图像采集时捕获终端将对采集到的图像进行批量预处理,随后上传至数据库;利用持久化机制,处理计算机能够将预处理后的图片保存至本地以作为分类器的输入;

步骤3、采集训练样本;将准备好的、已标注的含部分缺陷的工件放入采集系统,进行训练数据采集;按照8:2的比例设置训练与验证集合,并设置标签;

步骤4、构建深度学习模型;基于卷积神经网络构建包含卷积层和全连接层的网络模型,层与层之间复合了池化、正则化、归一化模块、用于优化特征提取、提高非线性度;

步骤5、构建预测器程序框架;采用tensorflowapi构建检测系统框架;基于工厂模式构建程序逻辑,便于系统软件的升级、扩展与优化;

步骤6、将待检测工件放置于图像采集系统内,并运行预测器程序;在线运行时,预测器程序接口将接收已预处理的工件捕获图像作为输入;随后调用已训练好的静态模型输出预测向量;

步骤7、预测器将预测向量消息通过预先设定的频道发布到显示终端。显示终端将根据预测向量自动标识出工件缺陷所在位置。

进一步地,所述步骤2中对采集图像进行批量预处理包含转换捕获图片的颜色空间;捕获终端将输入图像的颜色空间有rgb制式转换为yuv制式。

进一步地,所述步骤4中网络模型构建步骤具体如下:将数据集存放于训练脚本指定目录下,运行训练脚本,初始学习率设置为0.001,采用adam优化器;训练模型按次序各的具体参数分别为:

(1)卷积层1,共计64个卷积核,卷积核大小为11×11,步长设置4,填充模式设置为same;激活函数设置为relu;复合2×2池化并执行局部响应归一化;

(2)卷积层2,共计256个卷积核,卷积核大小为5×5,填充模式设置为same,激活函数设置为relu,复合2×2池化并执行局部响应归一化;

(3)卷积层3,共计256个卷积核,卷积核大小为3×3,填充模式设置为same,激活函数设置为relu,复合2×2池化并执行局部响应归一化;

(4)全连接层1,映射为4096维;

(5)全连接层2,映射为n维,其中n代表标签数目;损失函数为softmax;

经过参数调整,最终得到优化后的动态模型;运行转换脚本后得到.pb格式的静态模型。

进一步地,步骤1中多组摄像头优选为数字摄像头。

进一步地,步骤1中光照源优选为led光源。

有益效果:本发明针对传统工件表面缺陷检测人力资源消耗大、效率低下的问题,提出了一种基于深度学习的工件表面缺陷检测方法。基于多目视觉的图像采集系统保证了推断精度,而基于分布式的图像处理系统大幅提升了系统效率与鲁棒性;通过扩充训练集的方式提高了预测器网络模型的泛化能力,保证了系统准确度。因此大幅降低了人力成本,在保证准确性的情况下提升了系统效率。

附图说明

图1是本发明一种基于深度学习的工件表面缺陷检测方法主流程图;

图2是基于多目视觉的图像采集系统空间方位示意图;

图3是预测器软件流程示意图;

图4是捕获终端簇状分布连接示意图;

图5是预测器网络模型图;

图6是本发明一种基于深度学习的工件表面缺陷检测系统结构图;

图7是基于深度学习的工件表面缺陷检测系统具体实施步骤图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

下面提供一种具体实施例:

本发明所述的基于深度学习的工件表面缺陷检测方法分为以下三个模块:图像采集与预处理模块、预测器模块和通信与数据持久化模块。

图像采集与预处理模块:

(1)图像采集模块:

图像采集系统设计为立方体容器,从空间方向上看,包含上下左右前后共计6个面。然而,由于底面用于固定工件,故实际只有5个面需要检测。按照待检测面可以分为四种角度:侧面视角(即前后左右)、侧棱视角(前左棱、前右棱、左后棱、右后棱)、上侧面视角(顶面)、上侧棱视角(上前棱、上后棱、上左棱、上右棱)。受视野所限,侧面与侧棱视角需要在空间布局上分为上下个捕捉点,故共需要(4+4)×2+4+1=21个摄像头。本实施例中采用树莓派作为终端,并搭载摄像头。

如图2所示,其中数字1、4、5表示可视面,数字2、3、6表示当前的不可视面。各数字意义为1:前面2:后面3:左面4:右面5:顶面6:底面。各棱标识可以由两个面唯一确定,由两位数字所构成,代表生成该棱线的两个相交面,分别为1-3;前左棱1-4;前右棱3-2;左后棱4-2;右后棱5-1;上前棱5-2;上后棱5-3;上左棱5-4;上右棱。

(2)光源选型与光照控制

光源是图像采集的重要前提,采集图像作为缺陷检测系统的输入,其质量好坏很大程度直接决定了预测结果的准确性。合适的光源不仅能够放大缺陷细节,甚至能够屏蔽掉干扰特征,从而降低检测样本的噪声。

光源种类可分为自然光与人工光,由于图像采集系统是封闭构型,因此本系统选择人工光源。鉴于led具有寿命长、功耗低的特性,本实施例中选用led作为光照发生器。

(3)摄像头选型

摄像头主要分为模拟摄像头与数字摄像头两类,其中模拟摄像头较为简单,但由于计算机仅能识别数字信号,所以成像结果在输入计算机前需要经da转换。而数字摄像头直接采集数字信号,不需经由da转换电路即可输入到计算机终端。两者相比,数字摄像头多用于短距离、低干扰的空间环境下。考虑到图像采集系统的空间尺度较小,为便于系统设计,故采用数字摄像头。

预测器模块:

(1)预测器硬件设计

预测器主要由包括显示模块与数据处理主机。其中,处理主机操作系统平台为linux,硬件平台搭载有高性能的gpu与cpu。

(2)预测器软件设计

如图3所示,预测器软件主要由三部分所构成:输入模块、预测器模块、输出模块。各模块的运行机制与功能为:

输入模块:提供检测样本输入的统一接口,利用cv2所提供的cvmat_to_tensorapi将预处理完备的原始图像统一压缩到模型的输入层尺寸(224×224),并转换为tensor作为模型的输入。

预测器模块:载入已训练优化后的静态模型(.pb格式),将输入层节点名与输出层节点名设置为与静态网络模型中对应节点名相同,并调用相应api以运行网络。

输出模块:预测模块执行完毕后,将产生一个tensor类型的队列(预测向量),利用argmax方法提取出每向量中的最大预测分量,作为预测结果。本系统采取的是二分类方式,即预测向量有两个维度,[1,0]表示工件表面存在缺陷,而[0,1]则表示工件表面完好。表1列出了若干与预测器相关的重要函数:

表1

通信与数据持久化模块:

(1)通信系统构建

如图4所示,本方法利用的基础通信方式实现为桥接模式。实现方式为,将一个终端上外扩的若干网口相互连通。即由一个树莓作为“簇头”与其余四个树莓派相连,形成“簇状结构”,再由“簇头”与交换机连通。

(2)数据持久化

本实施例采用redis数据库实现数据持久化。redis是一种分布式key-value数据库,其具有性能高、数据类型丰富、支持原子性的特点,从而保证系统的高效性。

系统主要维护两个管道,分别为channel@1和channel@2。其功能分别为:

channel@1作为上位机与图像采集终端间的消息通道:上位机周期性发出“图像采集”指令,所有监听了该管道的采集终端将调用捕捉脚本,对工件图像进行捕捉,经由预处理步骤后,将图像以二进制串的形式存储在数据库中。采集完毕后,执行持久化,上位机获取当前工件各个角度捕获的图像块,作为预测器的原始输入。

channel@2作为上位机与显示终端间的消息通道:当预测器输出结果,数据处理主机将预测向量通过此频道向显示终端发布。在接收预测向量消息后,显示终端将调用解析器对预测向量进行解析,以图像的形式反馈预测结果。

下面结合图1-7给出本发明的详细实施例。

步骤1、以树莓派作为捕获终端的平台,外扩摄像头作为图像捕获器。在图像采集容器内表面的侧面、侧棱、上侧面、上侧棱角度布置共计21个数字摄像头。考率捕获面的尺度,需要构建线光源,平均分布于采集容器的内表面。

步骤2、在处理计算机开启redis服务,设置好监听网络段与端口号(预设为6379端口)。开启redis服务后,处理计算机运行命令发布进程,在其中设置两个消息管道channel@1与channel@2。随后,批量远程连接至捕获终端与显示终端,开启捕获终端与显示终端的监听进程,捕获终端监听管道channel@1,显示终端监听管道channel@2。开始采集训练图像。每当捕获终端采集到一帧原始图像(大小为2952×1944),将调用脚本对其进行背景填充与分割。得到大小为800×800的分割块后,将rgb制式的图像转换为yuv制式,并以二进制串的形式存储至数据库。

步骤3、处理计算机执行持久化操作,以获取捕获终端采集的图像。根据采集到的工件图像块缺陷显示状况,进行人工标注。在采集了100个工件,共计5300个图像块后,批量进行图像增强与变形,将训练集扩充到约20000。

步骤4、将数据集存放于训练脚本指定目录下,运行训练脚本,初始学习率设置为0.001,采用adam优化器;训练模型按次序各的具体参数分别为:

(1)卷积层1,共计64个卷积核,卷积核大小为11×11,步长设置4,填充模式设置为same;激活函数设置为relu;复合2×2池化并执行局部响应归一化;

(2)卷积层2,共计256个卷积核,卷积核大小为5×5,填充模式设置为same,激活函数设置为relu,复合2×2池化并执行局部响应归一化;

(3)卷积层3,共计256个卷积核,卷积核大小为3×3,填充模式设置为same,激活函数设置为relu,复合2×2池化并执行局部响应归一化;

(4)全连接层1,映射为4096维;

(5)全连接层2,映射为n维,其中n代表标签数目;损失函数为softmax;

经过参数调整,最终得到优化后的动态模型;运行转换脚本后得到.pb格式的静态模型,如图5所示。

步骤5、修改预测器程序的配置文件,指定输入图像的路径与静态模型的存储路径。设置完毕后,运行预测器程序,加载静态模型。

步骤6、预测器程序成功加载静态模型后,即进入预测模式。将待检测工件放置于采集容器内,并在处理计算机上向捕获终端发布采集指令。接收到采集指令后,捕获终端将自动对工件进行图像捕获。经由预处理后的图像块存储至数据库内,与此同时,处理计算机间歇执行持久化。

步骤7、一旦预测器读取到图像块输入,将利用库函数将图像数据转换为tensor作为网络模型的输入,随后运行网络。网络输出预测向量后,处理计算机将该信息传递给运行于后台的消息发布进程,经由channel@2将预测向量发布到显示终端。接收预测向量后,显示终端将以图形化的形式反馈待检测工件的缺陷状况。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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