公开/公告号CN113159054A
专利类型发明专利
公开/公告日2021-07-23
原文格式PDF
申请/专利权人 苏州弘皓光电科技有限公司;
申请/专利号CN202110470849.5
申请日2021-04-29
分类号G06K9/34(20060101);G06K9/40(20060101);G06K9/46(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);G06T7/11(20170101);G06T7/136(20170101);G06T7/187(20170101);G06T7/90(20170101);
代理机构32483 苏州尚为知识产权代理事务所(普通合伙);
代理人李凤娇
地址 215636 江苏省苏州市张家港市大新镇新创路8号
入库时间 2023-06-19 11:57:35
技术领域
本发明涉及芯片表面字符识别技术领域,尤其涉及一种基于神经网络的字符识别方法、计算设备及可读介质。
背景技术
芯片在电子设备生产过程中会被安装在主板上,其表面往往印刷了一串或多串字符,这些字符通常由字母和数字组成,包含了芯片的生产商、型号、流水号等信息。通过这些信息可以实现芯片在电子设备生产过程中的管理和追踪,甚至还可以用于芯片的安装质量管控。生产环境中的芯片图像使用工业相机采集,受生产环境特点的影响,工业相机采集的芯片图像往往光照不均衡且噪声较高,加上不同类型芯片的外观和尺度差异非常大,导致采集的部分芯片图像的分辨率过低。此外,图像中芯片的周围还有焊锡、引脚等与字符颜色近似的干扰信息,也对芯片表面字符的识别带来负面影响,使得其识别的正确率非常低。
发明内容
本发明为解决现有设备对芯片表面字符识别错误率高的问题,所采用的技术方案是:一种基于神经网络的字符识别方法,包括如下步骤:
芯片字符图像获取及预处理;
芯片字符分割;
基于BP神经网络进行芯片字符识别;
对于识别出来的字符与预设标准字符进行对比,对对比结果进行语音播报。
进一步改进为,所述字符图像获取及预处理包括如下步骤:
图片倾斜校正;
芯片引脚与字符区域的分割;
字符图像二值化处理;
字符图像去噪;
字符区域定位。
进一步改进为,所述图片倾斜校正包括如下步骤:
对采集装置采集的芯片图片采用canny算子进行边缘检测,得到芯片的目标边缘图像;
在芯片目标边缘图像中通过Hough变换提取最长直线;
基于Hough变换提取的最长直线计算芯片倾斜角度,根据倾斜角度进行旋转校正,并将旋转校正后的目标区域存在的白边进行去除。
进一步改进为,所述芯片引脚与字符区域的分割包括如下步骤:
对芯片图像二值化后进行膨胀、腐蚀处理实现引脚区域的连通,分别对引脚的行列遍历像素值,在像素值由1变成0的位置进行直线标记,进而得到四条直线坐标位置并进行保存,针对其它芯片图片调用该四条直线的坐标位置进行分割,进而可得到字符区域。
进一步改进为,所述字符区域定位包括如下步骤:
采用投影法得到x方向和y方向的投影像素范围,根据投影法得到的投影像素范围进行字符区域的定位分割。
进一步改进为,所述芯片字符分割包括如下步骤:
首先对字符定位后得到的剪切区域进行灰度化,再进行二值化;
对字符图像分别进行垂直、水平方向像素统计并求和以寻找二值图像中的白色区域;
分别对各个寻找到的字符区域进行像素分割,并归一化为30×60像素的统一格式。
进一步改进为,所述基于BP神经网络进行芯片字符识别包括如下步骤:
字符特征提取;
BP神经网络训练与分类。
进一步改进为,所述BP神经网络训练与分类包括如下步骤:
基于MATLAB平台建立了两个BP子网络分别识别不同类别的字符,其中第一个BP子网络用于识别芯片表面数字,第二个BP子网络用于识别芯片表面大写字母;
对于两个BP子网络,分别输入其对应种类字符的13维特征值进行训练;
对于每个测试字符,将提取到的13维特征输入训练好的BP神经网络进行分类,输出BP神经网络识别结果。
本发明还提供了一种计算设备,所述计算设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当所述计算机程序指令被所述处理器执行时,触发所述计算设备执行上述方法。
本发明还提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现上述方法。
本发明的有益效果是:
本发明提供的基于神经网络的字符识别方法,针对性强、鲁棒性高,针对复杂的拍摄环境,采用基于连通域面积的去噪方法可以有效去除各种噪点,便于后续字符分割和识别。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的基于神经网络的字符识别方法流程示意图;
图2是本发明的芯片引脚与字符区域的分割示意图;
图3是本发明的去噪前图像示意图;
图4是本发明的去噪后图像示意图;
图5是本发明的定位前图像示意图;
图6是本发明的定位后图像示意图;
图7是本发明的灰度二值化后图像示意图;
图8是本发明的分割后字符区域示意图;
图9是本发明的字符分割后示意图;
图10是本发明的字符图像第1-8维特征示意图;
图11是本发明的字符图像第9-10维特征示意图;
图12是本发明的字符图像第11-12维特征示意图;
图13是本发明的部分数字图片训练集示意图;
图14是本发明的部分大写字母图片训练集示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1所示,本发明提供了一种基于神经网络的字符识别方法,包括如下步骤:
S01:芯片字符图像获取及预处理;
S02:芯片字符分割;
S03:基于BP神经网络进行芯片字符识别;
S04:对于识别出来的字符与预设标准字符进行对比,对对比结果进行语音播报。
语音播报的内容为:若对比成功则语音提示:“字符印刷正确!”,若对比失败则语音提示:“字符印刷错误!”。
本发明提供的基于神经网络的字符识别方法,针对性强、鲁棒性高,针对复杂的拍摄环境,采用基于连通域面积的去噪方法可以有效去除各种噪点,便于后续字符分割和识别。
进一步改进为,所述字符图像获取及预处理包括如下步骤:
图片倾斜校正;
芯片引脚与字符区域的分割;
字符图像二值化处理;
字符图像去噪;
字符区域定位。
进一步改进为,所述图片倾斜校正包括如下步骤:
对采集装置采集的芯片图片采用canny算子进行边缘检测,得到芯片的目标边缘图像;
在芯片目标边缘图像中通过Hough变换提取最长直线;
基于Hough变换提取的最长直线计算芯片倾斜角度,根据倾斜角度进行旋转校正,并将旋转校正后的目标区域存在的白边进行去除。
如图2所示,进一步改进为,所述芯片引脚与字符区域的分割包括如下步骤:
对芯片图像二值化后进行膨胀、腐蚀处理实现引脚区域的连通,分别对引脚的行列遍历像素值,在像素值由1变成0的位置进行直线标记,进而得到四条直线坐标位置并进行保存,针对其它芯片图片调用该四条直线的坐标位置进行分割,进而可得到字符区域。
进一步改进为,字符图像二值化处理包括如下步骤:
一般的图像二值化操作需要提前人工设定阈值,而针对芯片字符图像采用OSTU法(大津法)自动获取合适的二值化阈值进行二值化处理。运用该种方法省去了人工设定阈值步骤,提高效率。
如图3和图4所示,由于拍摄环境复杂多变,会产生不同大小和类型的噪点,若采用膨胀、腐蚀等去噪操作,容易造成字符的粘连,使得单个字符分割错误,可能也会消除一些字符区域。但是每个噪点的连通域面积基本上都小于每个字符的连通域面积,基于该种特征,本技术方案进一步改进为,字符图像去噪包括如下步骤:
计算每个连通域(包括字符和噪点)的面积大小,根据不同芯片字符连通域的数目设置相应阈值n,只保留面积从大到小前n个连通域,其余的连通域消除。采用该种方法有效的消除了噪点并保留了字符。
如图5和图6所示,分割去噪得到的字符区域图片四周仍有大量的像素点为0的区域,为了后续分割字符,需要进行字符区域的定位,本技术方案进一步改进为,所述字符区域定位包括如下步骤:
采用投影法得到x方向和y方向的投影像素范围,根据投影法得到的投影像素范围进行字符区域的定位分割。
进一步改进为,所述芯片字符分割包括如下步骤:
首先对字符定位后得到的剪切区域进行灰度化,再进行二值化,如图7所示(图中字符为示例);
对字符图像分别进行垂直、水平方向像素统计并求和以寻找二值图像中的白色区域,如图8所示;
分别对各个寻找到的字符区域进行像素分割,并归一化为30×60像素的统一格式,如图9所示。
进一步改进为,所述基于BP神经网络进行芯片字符识别包括如下步骤:
字符特征提取;
BP神经网络训练与分类。
进一步改进为,所述字符特征提取包括如下步骤:
对分割后的每个灰度二值化字符图像进行基于白色像素的特征提取,共提取13维特征。
以上述字符分割后的第6个字符为例,将单个字符按照四行两列分为8块小区域,统计每个小区域中白色像素的个数,得到第1-8维特征,如图10所示。在水平方向画两条横线,将单个字符在水平方向上分为三部分,统计两条横线上的白色像素个数,得到第9-10维特征,如图11所示。在垂直方向上画两条竖线,将单个字符在垂直方向上分为三部分,统计两条竖线上的白色像素个数,得到第11-12维特征,如图12所示。最后,统计整个字符图片上白色像素的总点数,作为第13维特征。
进一步改进为,所述BP神经网络训练与分类包括如下步骤:
基于MATLAB平台建立了两个BP子网络分别识别不同类别的字符,其中第一个BP子网络用于识别芯片表面数字,第二个BP子网络用于识别芯片表面大写字母;对于第一个BP子网络,建立13个输入层、4个隐含层、10个输出层;对于第二个BP子网络,建立13个输入层、6个隐含层、26个输出层;这两个BP子网络的第一层神经元的激活函数均为logsig,第二层均为purelin,学习方法均采用traingdx。
对于两个BP子网络,分别输入其对应种类字符的13维特征值进行训练;对于第一个BP子网络,收集了数字0-9,共10种输出类别,共计1270幅字符图片进行13维特征提取,并输入BP子网络进行训练,部分训练样本如图13所示。对于第二个BP子网络,收集了大写字母A-Z,共26种输出类别,共计1560幅字符图片进行13维特征提取,并输入BP子网络进行训练,部分训练样本如图14所示。
对于每个测试字符,将提取到的13维特征输入训练好的BP神经网络进行分类,输出BP神经网络识别结果。
本发明还提供了一种计算设备,所述计算设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当所述计算机程序指令被所述处理器执行时,触发所述计算设备执行上述方法。
本发明还提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现上述方法。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
机译: 基于神经网络的字符识别方法和装置,可读存储介质
机译: 字符识别设备,字符识别方法,介质处理方法,字符识别程序和字符识别程序是记录有字符识别设备的计算机可读记录介质
机译: 字符识别设备,字符识别方法,介质处理方法,字符识别程序和计算机可读记录介质记录字符识别程序