微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于SoPC的嵌入式文字识别系统设计

基于SoPC的嵌入式文字识别系统设计

时间:11-07 来源:互联网 点击:

摘 要: 设计了一种基于SoPC的嵌入式文字识别系统。在FPGA平台下,基于SoPC框架搭建软硬件协同系统,设计硬件电路完成文字图像的采集和预处理,嵌入Linux系统,使用其下的识别引擎完成文字图像的识别。采用Altera公司的SoPC builder构建系统框架,Quartus II完成硬件电路的设计,在宿主机Linux环境下完成了软件部分的交叉编译并嵌入到FPGA平台。整体设计在DE2-70开发板上完成了系统验证。
关键词: 文字识别;可编程逻辑器件;可编程片上系统;Linux

 计算机文字识别也被称为光学文字识别[1]OCR(Optical Character Recognition),在智能计算机和办公自动化领域有着极其重要的应用。文字识别的基本原理是通过诸如照相机、扫描仪等图像输入设备获取文字图片,经过图像处理后使用光学模式判别等算法分析文字图片,最后将判断出的文字编码储存起来从而完成文字识别。
文字识别设备对识别速度要求较高,因此图像采集和预处理的速度十分关键。同时对识别率要求高,识别字体种类多,因此选用带学习功能的软件引擎非常重要。另外系统需要交互界面和大量外围设备的驱动,因此需要引入操作系统以方便设计开发。
1 SoPC系统设计
系统功能设计的整体方案如图1所示。各部分功能介绍如下:

(1)图像采集功能,通过外接的摄像头模块完成图像的采集;
(2)由硬件模块完成文字图像预处理功能,能够对采集的文字图像进行倾斜纠正[2]、图像分割[3]、二值化[4]等处理,保证系统的性能和速度,以提高后续的文字识别率;
(3)文字图像识别功能,能够将文字图像中的文字识别出来并保存在TXT中;
(4)识别结果的存储和发送功能,能够将识别结果文件存入SD卡或U盘中,或者通过网络发送给上位机;
(5)交互界面功能:能够通过LCD模块或者外接的VGA设备等输出设备以及键盘、触摸屏或者鼠标等输入设备与使用者交互。
整个系统由一块FPGA和摄像采集、输入输出等外围设备组成。FPGA硬件模块完成摄像采集控制和图像预处理,CPU作为系统主控控制外设和硬件模块的数据流。文字识别模块和外围设备驱动在Linux平台上进行开发或移植。
本文采用Altera Cyclone2系列的FPGA,通过Altera提供的SoPC技术,可以将Nios Ⅱ软核处理器和外围设备接口IP通过Avalon总线连接起来,并集成在一块FPGA上。图2是系统的SoPC设计。

2 系统硬件设计
文字识别硬件设计主要包括文字图像的采集控制和文字图像的预处理。文字图像的预处理又分为边缘检测、倾斜纠正、文字区域提取、二值化。硬件模块总体设计图如图3所示。

对于待识别的文字图像,影响文字识别准确率的不仅仅是后端引擎的性能,更重要的是文字图像的质量和实际使用的文字图像,除了光照不均匀且有倾斜外,还会有不少干扰信息。因此,本设计选取倾斜纠正、文字图像分割、二值化等预处理方法来减少干扰因素,保证后续文字识别的质量。本设计的处理方法概括如下:
(1)图像边缘就是图像中灰度发生急剧变化的地方。本设计采用一阶导数的Sobel算子的边缘检测算法可以满足设计的需要。本设计中将最后得到的梯度值简化为水平方向梯度绝对值和垂直方向梯度绝对值之和。求出梯度后采用基本全局门限:当某像素点(x,y)的梯度值大于或等于设定的门限T时,规定该点的像素值为1,反之则为0。
(2)文字图像倾斜纠正包括倾斜角计算和图像旋转,即将拍摄中获取的倾斜图像根据倾斜角度进行旋转,最后得到校正后的图像。本设计采用基于Hough的变换来计算倾斜角。基本原理是通过找出图像中通过最多点的直线,即为图像的倾斜角。变换中,将二维图像中的点通过极坐标系表示,而平面坐标系中一条直线上的所有点对应的极坐标系曲线交于极坐标系中唯一一点(ρ,θ),因此,只需要寻找极坐标系中最大值即可。
(3)文字图像的分割可以提取文字信息区域以减少背景等干扰,同时,由于图像区域的减少,对于光照不均匀也有一定的改善。本设计根据文字图像的具体特点设计分割方法,首先将经过倾斜纠正的文字图像通过边缘检测算法得到边缘检测图片;后通过逐行和逐列扫描确定行和列的阈值;接着对所有符合阈值的区域进行分析,相隔较近的区域进行联通,从而确定最终的分割区域。最后根据分割区域对原图进行图像分割。
(4)经过倾斜纠正和图像分割后得到的文字图像仍有光照不均匀和噪声的影响,因此需要进行二值化处理。对图像进行二值化不仅能提高文字识别的精度,对后端引擎的识别速度也有不少的帮助。考虑到实际拍摄的图片光照不均匀的程度较高,使用全局或者混合二值化的效果都不理想,且考虑到硬件实现等因素,本设计采取局部阈值二值化。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top