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

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

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

3 系统软件设计
本设计软件部分基于嵌入式Linux。首先在NiosⅡ处理器中植入嵌入式Linux;然后在Linux内核中配置外围设备驱动并加入一些自定义的设备驱动;最后基于Linux移植或者开发交互界面、文字识别引擎等。另外,还需要移植bootloader,系统启动后,bootloader将Linux内核搬到SDRAM中运行,从而实现系统开机自启动的功能。
整体流程是:首先将bootloader和Linux内核下载进入Flash,同时设定复位地址为Flash中内核bootloader的入口地址。系统启动时先启动bootloader,初始化外围设备,并通过串口打印输出信息,同时将Linux内核搬运到SDRAM进行解压。Linux内核解压完成后内核启动。只是Linux初始化所有的外围硬件设备,启动nano-X图形接口和nano-wm窗口管理器和基于FLTK的交互界面。交互界面上是各种的按钮选择,包括图片浏览、图像采集、文本浏览编辑、网络连接及文字识别等应用程序的按钮。当按键选择各种功能后会进入相应的功能模块。当程序运行完成后通过选择返回按钮再次进入到交互界面的按键选择部分。
4 系统功能验证
将硬件信息配置进入FPGA,同时通过Flashprogrammer将bootloader和Linux下载到Flash。Linux内核启动完成后,调用交互界面程序,系统可以通过鼠标键盘进行输入操作,通过VGA输出交互界面。此外,可通过串口对系统进行调试并看到打印出来的系统信息。
本设计通过NiosⅡ控制图像采集模块,通过DE2-70开发板上的开关可以调节曝光,采集回的图像通过NiosⅡ写入SD卡,用来验证图像采集模块的功能。开发板和摄像头通过支架固定在文字识别区域上方。实际采集的效果满足应用需求。
由于受DE2-70开发板上SDRAM大小的限制,本设计Tesseract引擎的数据文件不能太大。因此先使用默认引擎进行英文的识别,然后用拍摄的几幅文字图像对引擎进行训练;再使用经过训练的引擎对图像进行识别。最终的图像识别结果存入SD卡中。文字识别的效果图如图4所示。

图4(a)是默认引擎的识别效果图,图4(b)是经过训练的引擎识别效果图。通过对比可以看出,未经训练的识别效果错误率高达18.59%,而经过训练的引擎识别效果明显好于默认引擎识别的结果,错误率仅为7.7%。但是在一些图像伪影和不连续处,两个引擎都出现了不同程度的错误。其原因在于目前的文字识别理论还尚未成熟,难以达到百分之百的文字识别精确度。
本文通过硬件电路完成文字图像采集和文字图像预处理,嵌入式软件完成文字识别,实现了一种基于SoPC的嵌入式文字识别系统。此设计中构建了完整的SoPC系统,嵌入了Linux操作系统,通过软硬件协同充分发挥各自的优点,达到了较好的文字识别效果。

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

网站地图

Top