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

计算机文字识别也被称为光学文字识别[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所示。