本发明涉及一种电子元器件批量检测的方法,尤其是基于深层神经网络的电子元器件批量信息检测方法及系统。
背景技术:
现今社会,电子元器件的地位非常重要,应用范围也越来越大。以元器件为例,随着科学技术的飞速发展,其使用数量随之暴增。不论对于哪种电子元器件而言,在生产出来后都需要对其进行内核、外设电路等进行封装及测试,最终再将这些检测结果与元器件表面所印有的型号、批次等信息进行绑定。这样就能在元器件发生故障的情况下及时进行排查、溯源等工作,从而使得电子元器件在工业生产的各个环节都能得到有力的保障。但元器件生产的数量之多,检测工序又较为复杂,特别是在信息检测及录入环节,人为地去操作这些信息目前仍然占据了很大的比重。由于数量巨大,所以在这方面的人工成本也会非常的高,智能化的检测是减少成本的重要途径。
一般情况,同一种功能的元器件会衍生出很多型号。而对于元器件表面信息的检测及录入工作而言,为了尽可能地减小环境因素对后期检测能力的影响、目前所采用的都基于专用光源、专用导轨、专用相机组成的专用系统。一般的检测方式就是对单一目标进行模板匹配,而该方法对阈值化分割的精度要求过高,光源、相机的参数稍有不同就可能导致整个系统的失效。并且此类系统需要经常人工维护,定期校准、调参。而且模板匹配方法,针对性太强,只能对一种特定的元器件做检测,而且对元器件的种类、型号、摆放角度都有限制。针对其他型号的元器件,则需要人工重新去建立合适的模板图像,否则检测精度会受到很大的影响。元器件具有尺寸小的特点,且生产量大,需检测元器件的数目多。目前的检测技术大多采用的仍是逐一检测的方法,速度较慢、容易漏检,且检测过程繁琐,检测效率较低。
因此,现有电子元器件信息检测技术存在难以对多目标批量进行识别、专用性过强、维护和使用难度偏大、检测精度低、检测效率低的问题。
技术实现要素:
为解决上述问题,本发明提供一种能进行批量检测,并且检测的准确率达到99.5%,检测效率高的基于深层神经网络的电子元器件批量信息检测方法,具体技术方案为:
基于深层神经网络的电子元器件批量信息检测方法,包括以下步骤:
图像采集,通过相机获取待检测批量元器件的第一图像;
图像预处理,第一图像通过设定阈值进行形态学处理,去除噪点得到经过增强的灰度图像,将灰度图像作为第二图像;
元器件的位置区域检测,使用设计并训练好的目标定位深层神经网络模型对第二图像进行元器件目标位置检测,检测结果为包含元器件在内的一个最小正向外接矩形边界框,返回结果是此边界框的中心点坐标、宽、高、置信度以及类别概率,从而确定出视野范围内每一个元器件的位置区域;
元器件的偏移角度检测,使用基于halcon建立的图像模板匹配计算出每个位置区域的偏移角度;
偏移角度修正,根据偏移角度对位置区域进行矫正,得到元器件四边与图像视野水平、垂直方向相互平行的正向图,并将正向图单独截取出来作为第三图像;
文本区域位置检测,使用设计并训练好的文本定位深层神经网络模型对第三图像处理得到元器件表面的文本区域位置,并将文本区域位置作为第四图像;
文本内容识别,使用设计并训练好的字符识别深层神经网络模型对第四图像进行识别,得到元器件表面信息;
存档并上传,将元器件信息写入文档,并上传给上位机软件;
得到批量信息,上位机软件将接收到的元器件表面信息,替换缺省状态下文件对应字段的数据,得到检测的批量信息。
其中,所述图像预处理中包括基于opencv对第一图像依次进行腐蚀、膨胀、高帽变换以及中值滤波处理。
优选的,所述目标定位深层神经网络模型的设计和训练包括以下步骤:
大批量地采集目标元器件样本图像,制作网络训练所需要的数据集,并完成位置区域的标定,所述标定时采用两点标注的形式确定位置区域;
将每张图片上的所有目标都以两点坐标的形式储存在一个xml文件之中,所述两点坐标分别为矩形的位置区域的两个对角坐标;
在ubuntu系统上对预设的yolo系列网络进行调优训练,经过迭代得到目标定位深层神经网络模型。
进一步的,所述元器件的位置区域检测时包括以下步骤:
目标定位深层神经网络模型先将输入图片修改为统一的尺416×416像素,接着把图片分割为s×s的网格,输出是一个s×s×(5×b c)的张量,其中s为最开始将图像划分网格的行列数,每个网格需要检测b个边界框,每个边界框都包含5个参数信息,分别为预测参数(x,y,w,h)和置信度评分,其中(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,其数值均被归一化至[0,1],c代表目标类别数;
通过对数据集进行k-means聚类,产生9个不同尺寸的大小的anchor,并将其应用于三个不同的特征层,三个不同的特征层分别为:13×13特征图对应(116,90)、(156,198)和(373,326)的anchor;26×26特征图对应(30,61)、(62,45)和(59,119)的anchor;52×52特征图对应(10,13)、(16,130)和(33,23)的anchor;
其中边界框的置信度评分用于衡量网络内模板物体的准确度和衡量边界框的准确度;
衡量网络内目标物体的准确度时用pr(object)表示,当边界框内检测到物体的时候,pr(object)=1;当边界框内没有检测到物体的时候,pr(object)=0;
衡量边界框的准确度时用预测框与实际框的交并比(intersectionoverunion,iou)来表征,记为
计算方式是“预测边框”与“真实边框”的交集与并集的比值;当目标框内有物体时,置信度评分数值由
其中pr(class|object)为每个网格单元内预测c个条件类别的概率,i的取值为1,2,3lc。
优选的,在使用yolo算法时,当目标被多次检测,有多个框时候使用非极大值抑制算法进行边框回归(boundingboxregression,bbox)的冗余裁剪,去除多余的框,得到最后预测结果。
优选的,所述元器件的位置区域检测时得到的检测结果是与目标网格单元相关的偏移值大小,计算公式如下:
bx=σ(tx) cx
by=σ(ty) cy
其中,bx,by,bw,bh为预测的中心坐标x,y;tx,ty,tw,th则是网络的输出;cx和cy是网格的左上角坐标;pw和ph是anchor的尺寸。
优选的,所述图像模板建立包括以下步骤:
剪裁图像,模板图像采用的是紧密贴合元器件的最小外接矩形,并通过reduce_domain算子裁剪得到;
使用create_shape_model算子创建形状模板,设置numlevel为4,contrast为30;
使用find_shap_model算子搜索匹配最佳区域,并将搜索到的与模板图像的匹配分值储存至参数score中,所述find_shap_model算子返回的结果包括匹配分值、位置区域的坐标以及旋转角度。
优选的,所述文本定位深层神经网络模型的设计和训练包括以下步骤:
大批量地采集各类不同元器件上的文本区域图像,制作网络训练所需要的文本区域定位数据集;
对完成的文本区域进行标定,所述标定时采用两点标注的形式确定文本区域,将每张图片上的所有目标都以两点坐标的形式储存在一个xml文件之中,所述两点坐标分别为矩形的文字区域的两个对角坐标;
在ubuntu系统上对预设的yolo系列网络进行调优训练,经过迭代得到文本定位深层神经网络模型。
优选的,所述字符识别深层神经网络模型的设计和训练包括以下步骤:
采用迁移学习的方法在现有的字符识别网络权重的基础上,结合部分前期采集到的电子元器件表面字符数据库进行迁移学习。
基于深层神经网络的电子元器件批量信息检测系统,包括:图像采集系统,用于采集元器件图像得到第一图像;图像预处理系统,用于对图形采集系统得到的第一图像进行预处理得到第二图像;元器件的位置区域检测系统,用于对第二图像进行元器件目标位置检测得到每个元器件的位置区域;元器件的偏移角度检测系统,用于对元器件的位置区域进行角度检测得到每个位置区域的偏移角度;偏移角度修正系统,用于根据偏移角度修正每个位置区域得到第三图像;文本区域位置检测系统,用于对第三图像进行处理得到元器件表面的文本区域位置,并将文本区域位置定义为第四图像;文本内容识别系统,用于对第四图像进行识别得到元器件表面信息;存档系统,用于对元器件表面信息进行存档,并上传给上位机软件;及上位机软件,用于对存档的元器件表面信息进行整合得到检测批量信息。
与现有技术相比本发明具有以下有益效果:
本发明提供的基于深层神经网络的电子元器件批量信息检测方法检测的准确率可达到99.5%,检测效率高、检测成本低、通用性好、易维护。
1、能一次对芯片等电子元器件进行批量位置检测,相较于以往单一芯片逐个检测的方法而言,极大提升了检测效率;
2、能迅速、准确地识别目标摆放的角度信息,并及时进行矫正,大大降低了后续字符检测环节中文本信息识别的出错率;
3、能快速识别芯片上的数字和字母等信息,并具备通信传输功能,在上位机界面上能及时显示,避免了以往人工录入速度慢、易出错、成本高等问题;
4、对于不同种类的元器件,所训练的字符识别深层神经网络模型均能高效地进行识别,无须重新进行神经网络的训练,具有良好的鲁棒性;
5、能将芯片字符识别结果通过串口发送到测试机台,测试机台上位机接收到串口数据后写入测试机台输出文件中,传输过程流畅迅速,芯片相关信息能得到永久保存;
6、经过深度学习的深层神经网络的网络模型,在对芯片位置、字符识别的检测任务中,能克服阴影或者光照不均的影响,依然可以对目标图像的位置和信息内容做出一个准确的判断,受外界环境因素干扰较小。
附图说明
图1是基于深层神经网络的电子元器件批量信息检测方法的流程图;
图2是元器件的位置区域检测的示意图;
图3是对文字字符区域进行字符内容识别的示意图;
图4是基于深层神经网络的电子元器件批量信息检测系统的结构框图;
图5是基于深层神经网络的电子元器件批量信息检测系统的软件和硬件的结构框图。
具体实施方式
现结合附图对本发明作进一步说明。
如图1至图3所示,基于深层神经网络的电子元器件批量信息检测方法,包括以下步骤:
图像采集,通过相机获取待检测批量元器件的第一图像;
图像预处理,第一图像通过设定阈值进行形态学处理,去除噪点得到经过增强的灰度图像,将灰度图像作为第二图像;
元器件的位置区域检测,使用设计并训练好的目标定位深层神经网络模型对第二图像进行元器件目标位置检测,检测结果为包含元器件在内的一个最小正向外接矩形边界框,返回结果是此边界框的中心点坐标、宽、高、置信度以及类别概率,从而确定出视野范围内每一个元器件的位置区域;
元器件的偏移角度检测,使用基于halcon建立的图像模板匹配计算出每个位置区域的偏移角度;
偏移角度修正,根据偏移角度对位置区域进行矫正,得到元器件四边与图像视野水平、垂直方向相互平行的正向图,并将正向图单独截取出来作为第三图像;
文本区域位置检测,使用设计并训练好的文本定位深层神经网络模型对第三图像处理得到元器件表面的文本区域位置,并将文本区域位置作为第四图像;
文本内容识别,使用设计并训练好的字符识别深层神经网络模型对第四图像进行识别,得到元器件表面信息;
存档并上传,将元器件信息写入文档,并上传给上位机软件;
得到批量信息,上位机软件将接收到的元器件表面信息,替换缺省状态下文件对应字段的数据,得到检测的批量信息。
其中上位机软件还可以将接收到的元器件表面信息与预先输入的元器件信息和/或其他测试信息进行整合,替换缺省状态下文件对应字段的数据,得到检测的批量信息。
具体的,可以按照以下步骤进行:
步骤一:部署相机、光源等设备,在调试好各项参数的情况下,采集电子元器件高质量图像,得到第一图像。对采集到的样本图像的要求为光照均匀、细节清晰、曝光及对比度得当。第一图像也称为目标图像。
步骤二:基于opencv对相机采集的第一图像设定阈值进行形态学处理,去除噪点使图像更加平滑,最终得到经过增强的灰度图像,灰度图像作为第二图像。
步骤三:设计并训练目标定位深层神经网络模型。前期需集中大批量地采集目标元器件样本图像,制作网络训练所需要的数据集,并完成目标区域的标定工作。标定工具使用的是国际机器视觉比赛上常用的labelimg标注软件,采用两点标注的形式确定目标位置。对于每张图片上的所有目标,最终都会以两点坐标的形式储存在一个xml文件之中。随后在ubuntu16.04系统上对所设计的目标定位深层神经网络模型进行调优训练,经过近百万次迭代形成最终所使用的项目权重。
步骤四:对步骤二处理得到的第二图像(灰度图像)利用步骤三所训练得到的深层神经网络模型进行元器件目标位置检测。检测结果为包含目标在内的一个最小正向外接矩形边界框,返回结果是此边界框的中心点坐标、宽、高、置信度以及类别概率,从而确定出每一个目标(元器件)的位置区域。
步骤五:对于每一个元器件的位置区域利用前期基于halcon所建立的目标图像模板,进行元器件偏移角度的检测。根据不同偏移角度将其进行矫正,在避免上下左右颠倒的情况下,得到元器件四边与图像视野水平、垂直方向相互平行的正向图,将正向图单独截取出来作为第三图像。后续的字符信息检测工作都是在得到的这一正向图上进行展开。
步骤六:设计并训练文本定位深层神经网络模型。前期需集中大批量地采集各类不同元器件上的文本区域图像,制作网络训练所需要的文本区域定位数据集,并完成目标文本区域的标定工作,标定方式与步骤三一致,不同的是将标定目标换由电子元器件成了字符文本区域。随后在ubuntu16.04系统上对所设计的文本定位深层神经网络模型进行调优训练,经过近百万次迭代形成最终所使用的项目权重;
步骤七:对步骤五处理得到的第三图像(正向图),利用步骤六所训练得到的文本定位深层神经网络模型进行元器件文本区域位置检测,返回结果的表示方式与步骤四一致,得到第四图像;
步骤八:设计并训练字符识别深层神经网络模型。由于字符识别的数据库样本较为丰富,在光学字符识别(opticalcharacterrecognition,ocr)领域已经有大量成熟的权重参数可供使用。但芯片等一些电子元器件表面信息字符较小且印刷比较集中,存在一定的特殊性。为了提升这类产品表面信息的检测效果,字符识别的训练所采用的是迁移学习的方法,即在现有的字符识别网络权重的基础上,结合部分前期采集到的电子元器件表面字符数据库进行迁移学习,训练平台依然是在ubuntu16.04系统上进行的。相比于完全采用自建数据库进行训练的方式,这种方法极大节约了训练的时间,同时也提升了最终的字符检测效果。
步骤九:对步骤七所识别得到的文本字符区域,利用步骤八经过迁移学习所得到的字符深层神经网络模型对第四图像进行元器件文本字符内容检测,返回结果相比之前额外包含英文、数字等内容信息。
步骤十:将获取到的元件编码、生产批号等信息进行整理写入txt文档,将其通过串口立即传送到上位机软件,并在屏幕上进行显示。
步骤十一:上位机软件将接收到的元器件表面信息与它相关的测试信息进行整合,最终形成测试报告并永久保存。
实施例一
如图1至图3所示,基于深层神经网络的电子元器件批量信息检测方法,包括以下步骤:
步骤一:部署相机、光源等设备,采集高质量的电子元器件的图像。图像的采集依赖于一套完善的光学系统,本设备的光学系统由工业相机、条形光源及同轴光源所组成。光源的目的是为了辅助成像设备,提高成像质量。通过调节相机焦距、光圈大小、光照亮度、曝光时间、对比度、白平衡等参数,最终得到光照均匀、细节清晰、曝光及对比度得当的检测图像作为系统输入。随后会对相机的各项参数进行储存与锁定,在外界环境保持不变的情况下,这套参数将持续使用。
步骤二:对图像进行形态学处理,去除噪点使图像更加平滑,最终得到经过增强的灰度图像。基于opencv,本方法所用到的形态学处理方式包含膨胀、腐蚀、高帽变换以及中值滤波。首先对图像中的某一像素f(x,y),使用结构元g进行灰度形态学腐蚀运算,腐蚀可以使目标缩小,目标内的孔洞增大,能起到消除孤立噪声的作用,具体公式如下:
随后将腐蚀后的图像进行膨胀运算,使其恢复到与原来相似的大小,具体公式如下:
通过对采集到的图像先进行腐蚀再进行膨胀,整个过程也被称为图像的开运算,开运算能去除图像的一些“毛刺”,从而达到平滑图像的效果。但拍摄到的图像往往还会因为光源光照不均等影响,出现局部亮度变化明显的问题,使得印字与塑封体表面的对比度较低,因此还需要对图像进行光照校正。光照矫正采用的是高帽变换的方法,用较大的结构元对图像先进行开运算,然后再用原图像减去开运算的结果。具体公式如下:
h=f-fog
经过光照校正后的图像还会有很多噪声,对后续处理产生干扰,需要对图像进行滤波。试验发现,图像中噪声多为孤立亮点,中值滤波器能有效去除图像中较小的孤立亮点。为此,本文选用一个大小为3×3的中值滤波器,处理方法是用滤波模板在图像上逐个像素滑动,使其遍历整幅图像,对模板覆盖的像素亮度进行排序,选取中间值替换模板中心所在的像素值。
步骤三:设计并训练目标定位深层神经网络模型。经典的深度卷积神经网络的结构具有很多类型,例如全卷积网络fcn、segnet等。但出于对速度和精度的高要求,本文以预设的yolo系列网络为基础来进行训练。
网络训练阶段所使用的数据样本为20000张经步骤二得来的图像。标定工具使用的是国际机器视觉比赛上常用的labelimg标注软件,采用两点标注的形式确定目标位置。标定要求为使电子元器件目标,完全被一个最小外接正向矩形紧密包裹如图2所示,记录矩形框左上与右下两个角点的坐标,以及相应的类别。最终,对于每张图片上的所有目标,都会以两点坐标以及类别的voc数据格式储存在一个xml文件之中。网络训练在ubuntu16.04系统平台上进行,在20000张样本中使用18000张图像进行训练,2000张样本进行来测试。初始学习率设定为0.0001,权值衰减率和动量分别为0.0005和0.9,共进行20000个epoch的训练,每个epoch迭代1000次。网络的损失函数包含两个部分:
(1)边界框回归带来的误差lbox,这一误差来自中心坐标误差和宽高误差之和,公式如下:
lbox=lcenter lwh
上式中,参数
(2)判断框中是否有目标的概率的置信度误差lobj,公式如下。其中
综上所述,电子元器件目标定位深层神经网络的损失函数l设定如下:
l=lbox lobj
网络先将输入图片修改为统一的尺416×416像素,接着把图片分割为s×s的网格。输出是一个s×s×(5×b c)的张量。其中s为最开始将图像划分网格的行列数,每个网格需要检测b个边界框,每个边界框都包含5个参数信息,分别为预测参数(x,y,w,h)和置信度评分,(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,其数值均被归一化至[0,1],c代表目标类别数。对于本方法而言通过对数据集进行k-means聚类,产生了9个不同尺寸的大小的锚点框(anchor),即预测对象约束范围,并将其应用于三个不同的特征层。分别为:13×13特征图对应(116,90)、(156,198)和(373,326)的anchor;26×26特征图对应(30,61)、(62,45)和(59,119)的anchor;52×52特征图对应(10,13)、(16,130)和(33,23)的anchor;
其中边界框的置信度评分可以衡量两方面,其一是衡量网络内目标物体的准确度,用pr(object)表示,当边界框内检测到物体的时候,pr(object)=1。当边界框内没有检测到物体的时候,pr(object)=0。其二是衡量边界框的准确度,用预测框与实际框的交并比(intersectionoverunion,iou)来表征,记为
其中pr(class|object)为每个网格单元内预测c个条件类别的概率,i的取值为1,2,3lc。在使用yolo算法时,存在一个情况是目标被多次检测,有多个框,这个时候使用非极大值抑制算法进行边框回归(boundingboxregression,bbox)的冗余裁剪,去除多余的框,得到最后预测结果。
步骤四:对步骤二处理得到的灰度图像,利用步骤三所训练得到的深层神经网络模型进行元器件目标位置检测。检测结果不是直接的边界框的坐标,而是与目标网格单元相关的偏移值大小。其计算公式如下:
bx=σ(tx) cx
by=σ(ty) cy
其中,bx,by,bw,bh为预测的中心坐标x,y;tx,ty,tw,th则是网络的输出;cx和cy是网格的左上角坐标;pw和ph是anchor的尺寸。置信度是每个边界框输出的一个重要参数,它的大小代表着该框中是否含有目标的概率,后期通过非极大值抑制,低于某一设置阈值的框会被直接去除,从而最终确定出每一个目标的位置区域。
步骤五:对于每一个目标区域,利用前期基于halcon所建立的目标图像模板,进行元器件偏移角度的检测。由于芯片等电子元器件多为矩形,模板图像采用的是紧密贴合目标的最小外接矩形,随后使用reduce_domain算子将其裁剪得来。使用create_shape_model算子创建形状模板,设置numlevel为4,contrast为30,一同优化其他例如anglestart、angleextent、metric等参数。最后使用find_shap_model算子搜索匹配最佳区域。并将搜索到目标对象的匹配分值储存至参数score中。find_shap_model算子返回的结果除了匹配分值外,还有目标的坐标以及旋转角度。根据不同偏移角度将其进行矫正,在避免上下左右颠倒的情况下,得到元器件四边与图像视野水平、垂直方向相互平行的正向图。后续的字符信息检测工作都是在得到的这一正向图上进行展开。
步骤六:设计并训练文本定位深层神经网络文本定位深层神经网络。前期需集中大批量地采集各类不同元器件上的文本区域图像,制作网络训练所需要的文本区域定位数据集,并完成目标文本区域的标定工作,标定方式与步骤三一致,不同的是将标定目标由电子元器件换成了字符文本区域。随后在ubuntu16.04系统上对所设计的文本定位深层神经网络文本定位深层神经网络进行调优训练,在20000张样本中使用18000张图像进行训练,2000张样本进行来测试。初始学习率设定为0.0001,权值衰减率和动量分别为0.0005和0.9,共进行20000个epoch的训练,每个epoch迭代1000次。每1000次保存一个模型,经过近百万次迭代形成最终所使用的项目权重。
步骤七:对步骤五处理得到的正向图,利用步骤六所训练得到的深层神经网络模型进行元器件文本区域位置检测,返回结果的表示方式与步骤四一致。
步骤八:设计并训练字符识别深层神经网络。采用的是迁移学习的方法,即在现有的字符识别网络权重的基础上,结合部分前期采集到的电子元器件表面字符数据库进行迁移学习,训练平台依然是在ubuntu16.04系统上进行的。相比于完全采用自建数据库进行训练的方式,这种方法极大节约了训练的时间,同时也提升了最终的字符检测效果。训练参数大部分仍然与步骤三保持一致,但与之前训练所不同的是,由于网络输出的目标不再仅有一类,而是一个包含72个大小写的英文字母以及从0到9这一共10个阿拉伯数字在内的82个目标。此时网络的损失函数则需添加一个额外的用来计算这82个不同目标的类别误差lclass,公式如下:
此时,字符识别深层神经网络的损失函数l设定如下:
l=lbox lobj lclass
步骤九:如图3所示,对步骤七所识别得到的文本字符区域。利用步骤八经过迁移学习所得到的文本字符深层神经网络模型进行元器件文本字符内容检测,返回结果相比之前额外包含英文、数字等内容信息。对于每一个识别到的字符目标,都能得到其中心点的坐标以及对应每种不同类别的概率信息。取概率最大的类别作为字符识别的最终内容。
步骤十:将获取到的元件编码、生产批号等信息进行整理写入txt文档,将其通过串口立即传送到上位机软件,并在屏幕上进行显示。由于前期在图像预处理环节已经将目标元件正向置于视野之中,所以对平行的不同文本框之间,可以依据文本框中心点的横坐标xt,由小到大依次分不同的行进行信息的写入。而对于同一个文本框的字符目标而言,由于其目标几乎完全处于同一水平线上,所以可以依据同一文本框中不同字符中心点的纵坐标yc从左至右依次将识别到的内容写入文档。
步骤十一:上位机软件将接收到的元器件表面信息与它相关的测试信息进行整合,替换缺省状态下文件对应字段的数据,最终形成测试报告并永久保存。
实施例二
如图4和图5所示,基于深层神经网络的电子元器件批量信息检测系统,包括:图像采集系统,用于采集元器件图像得到第一图像;图像预处理系统,用于对图形采集系统得到的第一图像进行预处理得到第二图像;元器件的位置区域处理系统,用于对第二图像进行元器件目标位置检测得到每个元器件的位置区域;元器件的偏移角度处理系统,用于对元器件的位置区域进行角度检测得到每个位置区域的偏移角度;偏移角度修正系统,用于根据偏移角度修正每个位置区域得到第三图像;文本区域位置处理系统,用于对第三图像进行处理得到元器件表面的文本区域位置,并将文本区域位置定义为第四图像;文本内容识别系统,用于对第四图像进行识别得到元器件表面信息;存档系统,用于对元器件表面信息进行存档,并上传给上位机软件;及上位机软件,用于对存档的元器件表面信息进行整合得到检测批量信息。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明权利要求的保护范围之内。
1.基于深层神经网络的电子元器件批量信息检测方法,其特征在于,包括以下步骤:
图像采集,通过相机获取待检测批量元器件的第一图像;
图像预处理,第一图像通过设定阈值进行形态学处理,去除噪点得到经过增强的灰度图像,将灰度图像作为第二图像;
元器件的位置区域检测,使用设计并训练好的目标定位深层神经网络模型对第二图像进行元器件目标位置检测,检测结果为包含元器件在内的一个最小正向外接矩形边界框,返回结果是此边界框的中心点坐标、宽、高、置信度以及类别概率,从而确定出视野范围内每一个元器件的位置区域;
元器件的偏移角度检测,使用基于halcon建立的图像模板匹配计算出每个位置区域的偏移角度;
偏移角度修正,根据偏移角度对位置区域进行矫正,得到元器件四边与图像视野水平、垂直方向相互平行的正向图,并将正向图单独截取出来作为第三图像;
文本区域位置检测,使用设计并训练好的文本定位深层神经网络模型对第三图像处理得到元器件表面的文本区域位置,并将文本区域位置作为第四图像;
文本内容识别,使用设计并训练好的字符识别深层神经网络模型对第四图像进行识别,得到元器件表面信息;
存档并上传,将元器件信息写入文档,并上传给上位机软件;
得到批量信息,上位机软件将接收到的元器件表面信息,替换缺省状态下文件对应字段的数据,得到检测的批量信息。
2.根据权利要求1所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述图像预处理中包括基于opencv对第一图像依次进行腐蚀、膨胀、高帽变换以及中值滤波处理。
3.根据权利要求1所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述目标定位深层神经网络模型的设计和训练包括以下步骤:
大批量地采集目标元器件样本图像,制作网络训练所需要的数据集,并完成位置区域的标定,所述标定时采用两点标注的形式确定位置区域;
将每张图片上的所有目标都以两点坐标的形式储存在一个xml文件之中,所述两点坐标分别为矩形的位置区域的两个对角坐标;
在ubuntu系统上对预设的yolo系列网络进行调优训练,经过迭代得到目标定位深层神经网络模型。
4.根据权利要求3所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述元器件的位置区域检测时包括以下步骤:
目标定位深层神经网络模型先将输入图片修改为统一的尺416×416像素,接着把图片分割为s×s的网格,输出是一个s×s×(5×b c)的张量,其中s为最开始将图像划分网格的行列数,每个网格需要检测b个边界框,每个边界框都包含5个参数信息,分别为预测参数(x,y,w,h)和置信度评分,其中(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,其数值均被归一化至[0,1],c代表目标类别数;
通过对数据集进行k-means聚类,产生9个不同尺寸的大小的anchor,并将其应用于三个不同的特征层,三个不同的特征层分别为:13×13特征图对应(116,90)、(156,198)和(373,326)的anchor;26×26特征图对应(30,61)、(62,45)和(59,119)的anchor;52×52特征图对应(10,13)、(16,130)和(33,23)的anchor;
其中边界框的置信度评分用于衡量网络内模板物体的准确度和衡量边界框的准确度;
衡量网络内目标物体的准确度时用pr(object)表示,当边界框内检测到物体的时候,pr(object)=1;当边界框内没有检测到物体的时候,pr(object)=0;
衡量边界框的准确度时用预测框与实际框的交并比(intersectionoverunion,iou)来表征,记为
计算方式是“预测边框”与“真实边框”的交集与并集的比值;当目标框内有物体时,置信度评分数值由
其中pr(class|object)为每个网格单元内预测c个条件类别的概率,i的取值为1,2,3lc。
5.根据权利要求4所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,在使用yolo算法时,当目标被多次检测,有多个框时候使用非极大值抑制算法进行边框回归(boundingboxregression,bbox)的冗余裁剪,去除多余的框,得到最后预测结果。
6.根据权利要求4所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述元器件的位置区域检测时得到的检测结果是与目标网格单元相关的偏移值大小,计算公式如下:
bx=σ(tx) cx
by=σ(ty) cy
其中,bx,by,bw,bh为预测的中心坐标x,y;tx,ty,tw,th则是网络的输出;cx和cy是网格的左上角坐标;pw和ph是anchor的尺寸。
7.根据权利要求1至6任一项所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述图像模板建立包括以下步骤:
剪裁图像,模板图像采用的是紧密贴合元器件的最小外接矩形,并通过reduce_domain算子裁剪得到;
使用create_shape_model算子创建形状模板,设置numlevel为4,contrast为30;
使用find_shap_model算子搜索匹配最佳区域,并将搜索到的与模板图像的匹配分值储存至参数score中,所述find_shap_model算子返回的结果包括匹配分值、位置区域的坐标以及旋转角度。
8.根据权利要求1至6任一项所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述文本定位深层神经网络模型的设计和训练包括以下步骤:
大批量地采集各类不同元器件上的文本区域图像,制作网络训练所需要的文本区域定位数据集;
对完成的文本区域进行标定,所述标定时采用两点标注的形式确定文本区域,将每张图片上的所有目标都以两点坐标的形式储存在一个xml文件之中,所述两点坐标分别为矩形的文字区域的两个对角坐标;
在ubuntu系统上对预设的yolo系列网络进行调优训练,经过迭代得到文本定位深层神经网络模型。
9.根据权利要求1至6任一项所述的基于深层神经网络的电子元器件批量信息检测方法,其特征在于,所述字符识别深层神经网络模型的设计和训练包括以下步骤:
采用迁移学习的方法在现有的字符识别网络权重的基础上,结合部分前期采集到的电子元器件表面字符数据库进行迁移学习。
10.基于深层神经网络的电子元器件批量信息检测系统,其特征在于,包括:
图像采集系统,用于采集元器件图像得到第一图像;
图像预处理系统,用于对图形采集系统得到的第一图像进行预处理得到第二图像;
元器件的位置区域检测系统,用于对第二图像进行元器件目标位置检测得到每个元器件的位置区域;
元器件的偏移角度检测系统,用于对元器件的位置区域进行角度检测得到每个位置区域的偏移角度;
偏移角度修正系统,用于根据偏移角度修正每个位置区域得到第三图像;
文本区域位置检测系统,用于对第三图像进行处理得到元器件表面的文本区域位置,并将文本区域位置定义为第四图像;
文本内容识别系统,用于对第四图像进行识别得到元器件表面信息;
存档系统,用于对元器件表面信息进行存档,并上传给上位机软件;及
上位机软件,用于对存档的元器件表面信息进行整合得到检测批量信息。
技术总结