基于机器视觉的OCR自动识别系统的研发

2019-08-31 13:05沈臻韩震宇
科技与创新 2019年8期
关键词:机器视觉机器学习

沈臻 韩震宇

摘要:研发了一种基于机器视觉的OCR识别技术,以满足某半导体芯片公司的批量生产的需求,极大地提高了其生产线的自动化、无人化程度。使用工业相机对芯片料盒的字符部分进行采图,得到了原始图像后,对图像进行二值化、图像分辨率更改以适应显示器、膨胀腐蚀等操作。预处理完成后,利用已训练完成的yml格式的文件进行字符的识别,并对识别结果进行控制。在现场使用后表明,该OCR识别技术具有很高的响应速度和可靠性,综合检测成功率高达gg%.

关键词:机器视觉;OCR;图像二值化;机器学习

中图分类号:TP391.41

文献标识码:A

DOI:10.15913/j .cnki.kj ycx.2019.08.063

1 前言

1.1 背景

OCR(光学字符识别)技术的概念是在1929年由德国科学家Tausheck首次提出的,20世纪六七十年代,世界各国开始有OCR技术的研究,研究初期,多以文字识别方法为主[1]。随着我国改革开放后生产力的快速发展,计算机已成为必不可少的物品,OCR技术也逐渐发展到了实际应用阶段。一个OCR系统的好坏由以下几个指标组成,包括字符识别的准确率、识别的速度、识别的稳定性和上手难度等,其中字符识别的准确率是最重要的指标。目前,OCR技术得到了极大的发展,国内外都有一些比较成熟的商用OCR识别软件,比如abbyy、汉王等。此系统并没有采用Google的Tesseract开源OCR引擎,而是独自制作了标签与样本,主要考虑的是此系统需要识别的字符比较简单和单一,不需要Tesseract也能满足系统需求。

1.2 设计需求

某半导体芯片公司为了提高生产线的自动化程度和减少操作员的人数,需要一套识别芯片料盒的OCR系统。芯片料盒上通过激光打标标注出此次需要加工的芯片批号的索引码,此索引码和芯片批号是一一对应的。生产线分为上料位和下料位;在使用此OCR识别系统之前,在上料位,操作员通过文字记录下芯片料盒的索引码,再去数据库中寻找此索引码对应的芯片批号;在下料位,操作员与数据库交互,此批次加工完成。原先的工作方式工作效率低下、繁杂,且因为操作员长时间工作的原因,错误频发,很有必要研发一项OCR自动识别的技术,以适应公司的自动化发展要求。

此系统在上料位通过工业相机获取芯片料盒上的索引码,直接传递给数据库,从数据库中得到此批次芯片的批号。在下料位,同样进行一次字符识别,以保证上、下工位之间加工的是一个批次的芯片;同时将此批次的索引码和批号解除绑定。

2 系统设计

2.1 系统的硬件选择

本系统采用大华华睿的12MG-E工业相机,此相机体积较小,长时间的工作对其性能的影响很小,大華公司提供的SDK开发包也便于二次开发。工业镜头为MH1220M,工作距离为250 mm;因为涉及到对两个相机的控制,采用了一块intel的LREC9224PT的双路网卡,以满足相机的高速传输需求。光源采用的是JA-RL180-A30-W的环形LED光源,颜色采用为红色。

2.2 系统软件的整体设计

此系统加装在原芯片加工的机器平台之上,相机的外触发源为控制芯片加工平台的PLC,当运送芯片料盒的机构到达指定位置时,PLC就给相机一个触发信号,告知相机应该在此处进行采图;采图完成后,芯片继续移动到下一工位进行加工,而系统根据采集的图像进行识别,将识别到的信息以文字形式显示在系统屏幕上;同时显示的还有根据此信息寻找到的产品批次码,批次码和索引码一一对应。系统的开发平台为Visual studi02010,加以运用openCV2.4.10,流程图如图1所示。

2.3 影像预处理

据统计,成像的质量至少对整个机器视觉有70%的影响。而影像预处理是把采集而来的图像进行一系列的图像操作以服务于后续的程序,同时预处理也是OCR识别的必需步骤。预处理的质量对识别准确率起着举足轻重的作用。可以说,整个系统的成败就在于成像和预处理的优劣。

系统的原图像背景为黑色,字符为白色,字体为黑体,这给我们识别处理带来了一些便利。现场的传送芯片料盒的装置具有较高的稳定性,可以把料盒每次推送到相对固定的位置,但是出于OCR识别的可靠性考虑,将ROI(感兴趣的区域)设置得稍大,以保证每次料盒的字符区域都处于ROI范围内。原图的ROI区域如图2所示。

图像处理对采图的环境非常敏感,环境的变动会对图像的质量带来不可估量的影响,比如光源亮度的变动,高亮度和低亮度采集的图可能是两幅质量完全不相同的图。基于此,进行滤波操作也就显得相当有必要。均值滤波是一种使用很频繁的滤波函数,它可以消除图像中的噪声,以便凸显出需要的部分,剔除无用的部分。均值滤波的输出图像的每一个像素是核窗口内输入图像对应像素的平均值[2]。滤波后的图像如图3所示。

滤波后需要将字符与背景分割开来,因为在此应用中字符的白色和背景的黑色有很大的差异性,所以使用阈值分割。如图4所示,分割后的字符已经非常清楚,为后续图像的处理带来了便利。观察此时的阈值分割图可以发现,由于光照的不均匀性和表面材质的不平整,会有一些孤立点的存在影响字符的识别,使用形态学的操作可以解决这一问题。开运算是一典型的形态学操作,简单来说就是先腐蚀再膨胀,可以去除掉不明显的“小白斑”。模板的选取上采用3×3的模板,防止过度腐蚀,进而影响图像质量。如图5所示,经过开运算后的图4中的“白斑”已经消除了。

此外,在一些极端情况下,简单的开运算并不能将所有的“白斑”全部消除,究其原因,是没有腐蚀掉这些缺陷,经过膨胀后反而明显了。这时,将所有经过函数findC ontours()提取到的轮廓进行面积的计算,将面积小于一定值的白色区域进行擦除,而保留面积较大的部分,此时保留下来的区域可以保证是需要的字符。

2.4 机器学习在OCR中的运用

机器学习是一门研究计算机如何模拟和实现人类的学习行为的学科,它通过学习以获得新的知识和见解,不间断地学习可以使其趋于完美。机器学习的魅力无穷,在很多领域已经有了广泛的应用,如自然语言处理、搜索引擎、数据挖掘、计算机视觉等等。本课题中,同样采用机器学习来帮助OCR识别系统提高准备率和稳定性。在openCV中,提供了ml( machine leaming)模块,借助这个模块可以使用一组统计分类、回归分析、数据聚类与统计模式函数。

本课题使用了Knearest类,在正式识别之前,需要将样本和标签输入以供学习,并通过train()函数将两者之间建立一一对应的联系。样本的选取与生产线实际使用的字体相同,均为黑体,然后将A-Z,0-9-共36个字符打印出来,用相机采集,尽量模拟出与生产线相同的环境。与正式识别一样,识别样本同样需要进行一定的预处理,滤波、阈值化、轮廓提取等等,将提取到的轮廓(也就是一个字符)就作为样本;此时,将所提取到的字符通过键盘响应输入一个相同的键盘符。36个字符都响应完成,将样本数据和标签数据都写进yml格式的文件,正式识别的时候就可以读取这些文件从而进行识别。

为了提高识别的准确率,考虑到生产线需要识别的字符都是5个一组,且前两个字符为英文大写,后三个字符为数字,如图2所示,因此,提取的时候分两组提取;第一组总是被认为是英文大写,第二组总是被认为是数字。识别的时候,先通过对轮廓的外接矩形的生成来分割单个字符;Knearest类生成两个对象,分别对应于英文大写字符和数字,它们的样本中分别只有英文大写和数字。每个对象都通过find_nearest ( )函数在样本数据中寻找K近邻来确定需要识别字符的类别,所寻得的结果即为当前字符。基于此,第一组识别到的字符只可能是英文大写,第二组识别到的字符只可能是数字。通过这种办法,巧妙地解决了相似字符识别的难题,如大写英文的0和数字0,大写英文的I和数字1的识别就比较困难。这个问题的解决对提高系统的准确性和可靠性具有很大意义,识别效果如图6所示,其中上料盒信息即为芯片的索引码。

3 结束語

研究了一种基于机器视觉的编带机料盒的OCR识别系统。首先利用图像处理技术将原图进行预处理,然后进行图像的分割;为了解决识别不准确的问题,依据现场的实际环境和使用情况,将字符人为地分成两组,对每一组单独进行识别。经过生产线的试用,综合识别成功率高达99%,程序运行可靠稳定,极大地减少了操作员的工作负担,推动着企业的自动化高速发展。

参考文献:

[1]秦守鹏.基于OCR的CRTSⅢ型轨道板类型和编号自动识别技术研究[J].轨道勘察,2017,43 (6): 24-26.

[2]毛星云,冷雪飞.openCV3编程入门[M].北京:电子工业出版社.2015.

猜你喜欢
机器视觉机器学习
基于词典与机器学习的中文微博情感分析
全自动模拟目标搜救系统的设计与实现
基于机器视觉的自动浇注机控制系统的研究
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
大场景三维激光扫描仪在研究生实践教学培养中的应用
基于机器视觉的工件锯片缺陷检测系统设计
基于支持向量机的金融数据分析研究
基于机器视觉技术的动态“白带”常规检测系统的开发
机器视觉技术在烟支钢印检测中的应用