APP下载

字符识别耦合的ROI视觉引导应用

2015-07-21王帮元

湖北文理学院学报 2015年5期
关键词:控制卡字符识别字符

王帮元



字符识别耦合的ROI视觉引导应用

王帮元

(安徽经济管理学院信息工程系,安徽合肥230051)

字符是标识产品的重要信息,由于产品表面成像画质多样性,当字符目标不清晰或者背景干扰大,往往会影响识别算法的精准度. 鉴于此,提出了一个基于Emgucv与Tesseract的字符识别机制,用来识别平板电脑表面薄膜字符. 首先利用网络摄像头,对平板电脑表面薄膜字符区域取像;再对获取的灰度图进行阈值分割得到包含目标的二值图;然后利用形态学处理去除杂质干扰、提取目标特征,得出感兴趣区域(ROI);最后基于Tesseract开源库,实现对ROI区域的字符识别. 整个系统图像处理部分由C#和Emgucv实现,根据字符识别结果,用运动控制卡传递命令给机构,对薄膜进行分流,完成视觉引导. 通过实验测试本文字符识别系统性能,结果表明本机制与当前字符识别技术相比具有更好的识别效果.

网络摄像头;字符识别;运动控制卡;视觉引导;ROI

字符识别技术已经运用在很多领域,如安防、军事、医疗、制造业等. 尤其在电子制造业,可以实现产业自动化生产,提高生产效率和产品质量,节约人力成本[1-2]. 本文主要研究的是在平板电脑的生产组装中,对平板电脑表面薄膜字符的识别,用机器视觉代替了肉眼检测. 字符是标识不同薄膜的ID,在流水线上需要将不同薄膜自动分类,进行分流处理. 这样做对准确识别不同薄膜上的字符很重要. 若想顺利实现分流,需要首先准确识别字符,再与数据库比较,经一系列操作后,最终方能得到正确的数据,完成分流作业. 但是,薄膜作为平板电脑的重要零部件之一,其字符往往不够清楚. 传统的工作方法是安排熟练作业员用肉眼识别检查,然后手动分流,处理效率低下,而且不可避免地产生一定数量的错误分流. 但是,如果采用相机取像,传送至带智能图像分析的PC机进行处理和检测,再由运动控制卡控制机构完成分流,就会大大提高识别精度和工作效率[3-4].

近几年,字符识别技术已经在该领域得到了广泛应用,推动了生产力发展[5-6]. 已有部分学者设计了相应的字符识别算法,取得了一些效果,实践表明这些算法具备良好的识别效果[7]. 但是,当字符特征不够清晰时,它们识别精度较低,会出现明显的识别偏差.

对此,本文提出了一个基于字符识别与运动控制卡的视觉引导机制. 本机制基于网络摄像头来完成薄膜字符图像采集. 再用字符ROI定位算法,得出字符ROI区域. 本文字符ROI定位算法是基于字符与图片背景的灰度差异,采用阈值分割,即二值化字符区域,从而把字符从背景分离;借助Canny算子[8]得到字符的边缘结构;利用定位算法[9]确定关键点,获取矩形度,确定字符的ROI范围. 字符区域一般呈矩形,根据矩形度即可定位字符区域. 本文矩形度范围取0.8~1.2. 通过提取字符ROI范围,剔除非字符区域与伪信息,改善字符识别精确度与效率. 最后,基于Tesseract开源库,实现对ROI区域的字符识别,基于运动控制卡传递命令给机构,实现薄膜分流,完成视觉引导,并用实验对本机制识别精度进行了测试.

1 本文整体视觉引导机制

在平板电脑生产线中,需要对不同薄膜进行分类处理,进而分流作业. 薄膜上的字符就是薄膜的唯一ID,在工厂的产品数据库中有字符对应的产品信息和分流方向. 正确识别字符尤显重要,直接决定了机构对薄膜的分流动作和方向. 因此,本文设计了一种相应的字符识别机制.

为满足使用性能、尽量降低成本,该设计方案中采用网络摄像头采集图像,这对成像不要求特别精确是比较适用的. 硬件环境是一个网络摄像头、支架、可由下而上打光的底部面光源,如图1所示. 该设计中的带字符薄膜为透明的,字符往往较模糊,这对于识别功能的实现有一定难度. 如图2所示.

图1 本机制的硬件环境

图2 带字符薄膜

图3 本机制架构

设计采用ROI定位算法得出字符ROI区域,并基于Tesseract开源库实现对ROI区域的字符识别. 整个系统图像处理部分由C#和Emgucv实现,根据字符识别结果,利用运动控制卡传递命令给机构,实现对薄膜的分流,最终完成视觉引导. 整体工作流程如图3所示.

2 基于Emgucv与Tesseract的字符识别算法

算法步调主要如下:

1)对待识别图像如图2所示,完成灰度处理获取灰度图,如图4所示.

2)进行最大类间阈值分割,调试出最优阈值,该设计中最优阈值为168,分割出带有字符的二值图;进行形态学腐蚀处理去除杂质干扰,形态学闭运算处理,形态学核分子取5×5矩形,膨胀字符,使字符圆满,为字符识别准备数据,如图5所示.

图4 灰度示意

图5 二值示意

3)提取字符ROI区域,根据面积形状特征,定位ROI区域并提取,面积像素总个数为450~600,矩形度范围是0.8~1.2.

4)将ROI区域图像传递给Tesseract字符识别函数OCR(),得到字符识别结果,如图6所示;具体工作流程如图7所示.

图6 ROI示意

图7 字符识别结果

图8 字符识别机制

Tesseract是一个开源字符识别库,可免费直接调用. 该设计中的ROI定位算法为Tesseract提供字符准确的位置和数据信息,提供了Tesseract精准和快速识别的可能性[10-12]. 算法流程如图8所示.

以下是字符ROI提取与识别的部分代码.

Image img = new Image(textBox_filename.Text);

Image chanels = img.Convert();

Image gray = img.Convert();

CvInvoke.cvThreshold(gray, gray, 40, 255, Emgu.CV.CvEnum.THRESH.CV_THRESH_BINARY);

IntPtr element = Emgu.CV.CvInvoke.cvCreateStructuringElementEx(3, 3, 0, 0,Emgu.CV.CvEnum.CV_ELEMENT_SHAPE.CV_SHAPE_RECT, System.IntPtr.Zero);

CvInvoke.cvShowImage("3", chanels);

CvInvoke.cvNot(chanels, chanels);

CvInvoke.cvShowImage("4", chanels);

CvInvoke.cvDilate(chanels, chanels, element, 11);

CvInvoke.cvShowImage("5", chanels);

IntPtr Dyncontour = new IntPtr();

IntPtr contour = new IntPtr();

IntPtr Dynstorage = CvInvoke.cvCreateMemStorage(0); Dyncontour = CvInvoke.cvStartFindContours(chanels, Dynstorage, Emgu.CV.Util.StructSize.MCvContour, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_CCOMP, Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, new Point(0, 0));

contour = CvInvoke.cvFindNextContour(Dyncontour);

contour = CvInvoke.cvEndFindContours(ref Dyncontour);

if (area < 9800) OCROCR = 1;

else OCROCR = 0;

pt1 = new System.Drawing.Point(xmin + 25, ymin);

pt2 = new System.Drawing.Point(xmax + 10, ymax);

CvInvoke.cvRectangle(img, pt1, pt2, new MCvScalar(0, 255, 0), 2, Emgu.CV.CvEnum.LINE_TYPE.CV_AA, 0);

imageBox.Image = img;

Size size = new Size(xmax - 15 - xmin, ymax - ymin);

Rectangle rectOCR = new Rectangle(pt1, size);

Emgu.CV.CvInvoke.cvSetImageROI(gray, rectOCR);

CvInvoke.cvSmooth(gray, gray, Emgu.CV.CvEnum.SMOOTH_TYPE.CV_BLUR, 5, 0, 0, 0);

CvInvoke.cvShowImage("5", gray);

CvInvoke.cvSaveImage("D:\ocr.jpg", gray, IntPtr.Zero);

textBoxResult.Text = Ocr(videoSourcePlayer1.GetCurrentVideoFrame());

private string Ocr(System .Drawing .Image image)

{

m_tesseract.Clear();

m_tesseract.ClearAdaptiveClassifier();

return m_tesseract.Apply(image);

}

3 基于运动控制卡与字符识别的视觉引导

运动控制卡是一种工业PC机,用于各种运动控制场合的位控制单元,是基于PC总线,利用高性能微处理器DSP及大规模可编程器件实现多个伺服电机的多轴协调控制的一种高性能步进/伺服电机的运动控制卡. 产品广泛应用于工业自动化,需要精确定位、定长的位置控制系统和基于PC的NC控制系统. 具体就是将实现运动控制的底层软件和硬件集成,使其具有伺服电机控制所需的各种速度、位置控制功能,并通过计算机随时调用.

该机制将字符识别结果传递给运动控制卡,由运动控制卡控制机构对薄膜的动作和分流方向. 机构完成动作后,再反馈给运动控制卡和PC软件. 工作流程如图9所示.

图9 视觉引导机制

图10 原图

4 实验与讨论

为验证本机制效果,在此将传统的字符识别技术视为对照组,再用基于C#、Emgucv、运动控制卡编程完成对字符图像的识别和机构对薄膜分流作业动作,如图10所示. 仿真平台:DELL微型机;2.5GHz双核CPU;400GB硬盘;内存16GB;Windows7.0系统. 该设计参数设置:分割阈值为168,面积阈值为450~600,矩形度阈值为0.8~1.2. 测试结果如图11、图12所示. 从图11可看出,本机制设计中采用ROI定位与Tesseract有机结合的算法,对字符表面模糊情况下的识别比较准确. 可见,本机制设计具有更好的识别定位质量,可精度定位识别字符,几乎无偏差. 而对照组算法的识别效果相比较差,其单纯采用字符识别,缺少智能ROI定位,其定位和识别结果存在漏定位和误识别,如图12所示. 上述验证结果表明本机制设计对薄膜字符的识别效果好于传统识别方法.

图11 本文字符识别结果

图12 传统字符识别结果

最后,再选取A和B两组薄膜,每组100个,类型相同. A组用传统方法和控制卡分流薄膜,B组用本方法和控制卡分流薄膜,最后以薄膜分流正确率和占用时间作比较指标,两种机制的准确度和效率如表1所示. 从表1中可发现,本机制在速度和效率上要高于传统机制. 究其原因是在本机制设计中采用了ROI定位机制,通过提取图片中字符的ROI区域,剔除非字符区域,实现只对字符ROI区域的识别,亦即局部识别,从而大幅度减少降低识别运算量;而对照组则为全局识别,需要对整个图片的信息内容进行识别运算,结果时耗长.

表1 测试数据

5 结论

本文提出了一个基于字符识别与ROI的视觉引导机制,用于识别平板电脑表面薄膜字符. 采取阈值分割、形态学处理、特征提取与分析,从而形成了字符ROI区域定位算法. 定位机制跟Tesseract开源库有机耦合,完成对ROI区域的字符识别. 整个系统图像处理部分由C#和Emgucv来实现. 根据字符识别结果,采用基于运动控制卡来传递命令给机构,对薄膜进行分流,完成视觉引导. 由于本机制设计中首先对字符完成ROI区域定位,提取字符信息的ROI区域,剔除与字符无关的伪信息,显著消除了图片中伪信息对字符识别的干扰,然后借助识别算法完成对字符ROI区域的定位识别,有效地提高了识别精准度. 对于传统字符识别方法来说,采用的是全局识别,容易受到图片中非字符信息的干扰,其精确度明显不如本机制设计. 结果表明,与当前字符识别技术相比,本机制具有较好的识别效果.

[1] 常晓玮. 基于机器视觉的数字化仪表字符识别[J]. 计算机测量与控制, 2014, 22(9): 83-86.

[2] 常永鑫, 余化鹏, 徐智勇, 等. 适应光照突变的工件字符识别系统[J]. 光电工程, 2014, 41(7) : 38-42.

[3] 刚亚州, 黄元元, 戴 群. 一种快速名片字符识别算法[J]. 计算机应用研究, 2014, 31(9): 2860-2862.

[4] 林 川, 吴正茂, 覃金飞. 基于机器视觉的分级车牌字符识别方法[J]. 电视技术, 2014, 38(11): 198-201.

[5] 文 广, 李 莺, 李其阳. 基于Gabor特征与支持向量机的字符识别系统研究[J]. 四川理工学院学报: 自然科学版, 2014, 27(5): 29-32.

[6] 童文超, 舒小华, 龙永红, 等. LED显示仪表的字符识别方法[J]. 湖南工业大学学报, 2014, 28(1): 67-70.

[7] NOORI H, SARYAZDI S. A bilateral image inpainting [J]. IJST Trans Electr Eng, 2011, 25(E2): 95-108.

[8] 周晓明, 马秋禾, 肖 蓉. 一种改进的Canny算子边缘检测算法[J]. 测绘工程, 2008, 17(1): 28-31.

[9] 李 凯, 艾斯卡尔·艾木都拉. 基于边缘和基线的维吾尔文图像文字定位算法[J]. 计算机工程与应用, 2014, 50(10): 203-206.

[10] 谢聪凌, 李 征, 王俊峰. 一种改进的汉字字符识别法[J]. 四川大学学报: 自然科学版, 2014, 51(5): 927-930.

[11] JEHMANN, TPAPPAS, DNEUHOFF. Structure Texture similarity metrics for image analysis and retrieval [J]. IEEE Transactions, 2013, 22(7): 2545-2258.

[12] 黄 斌, 郭海华, 江进兵. 基于机器视觉的点阵字符识别系统设计[J]. 测控技术, 2014, 33(12): 24-26.

(责任编辑:陈 丹)

Visual Guide Technology Based on Character Recognition and ROI

WANG Bangyuan

(Department of Information Engineering, Anhui Economic Management Institute, Hefei 230051, China)

Character is important information identifying a product. Owing to the product surface imaging quality diversity, with the character not clear or background interference, the accuracy of recognition algorithm would be greatly influenced. Therefore, this paper proposes a character recognition mechanism based on Emgucv and Tesseract to identify the tablet PC’s surface film character. First, to capture the tablet PC’s surface film character area via a webcam. Then, to harvest a binary image containing the character object via making threshold segmentation in the grey-scale map obtained. Third, to get ROI region via wiping off impurity. Finally, based on the open source Tesseract library, to realize the character recognition in ROI region. The image processing in the whole system is achieved by C# and Emgucv, according to the character recognition results, the films were shunt based on the motion control card to send orders to complete visual guide. It comes to a conclusion that this mechanism has better recognition effect compared with the current character recognition technology.

Webcam; Character recognition; Motion control card; Visual guide; ROI

TP391

A

2095-4476(2015)05-0012-05

2015-04-02;

2015-04-23

安徽省教育厅自然科学研究项目(KJ2013Z038)

王帮元(1963— ), 男, 安徽含山人, 安徽经济管理学院信息工程系副教授.

猜你喜欢

控制卡字符识别字符
兼容多种运动控制卡的V割机数控系统关键技术*
字符代表几
三轴机械手控制器设计
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
一种改进深度学习网络结构的英文字符识别
基于运动控制卡的桁架机器人控制系统设计
仪表字符识别中的图像处理算法研究
基于CUDA和深度置信网络的手写字符识别