计算机辅助视觉下的英文字母识别软件系统设计与实现

李玉霞



摘 要: 传统的英文字母计算机辅助视觉识别方法采用图像边缘轮廓检测方法,在字母识别过程中容易产生虚假轮廓特征干扰,导致识别准确度不高。该文结合嵌入式Linux设备驱动程序开发,进行计算机辅助视觉下的英文字母识别软件优化设计。使用Qt/Embedded作为GUI,构建用户应用程序,基于X86架构的GNU开发工具集进行计算机辅助视觉下的英文字母识别文件系统配置和编译,通过设备驱动程序开发,进行软件设计优化,包括字符设备驱动程序、块设备驱动程序和网络设备驱动程序。系统测试表明,该英文字母识别软件具有较好的识别精度和收敛性,软件可靠度较高,人机交互性能较好。
关键词: 计算机辅助视觉; 英文字母识别; 软件设计; GUI
中图分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2017)04?0044?05
Design and implementation of English letter recognition software with
computer aided vision
LI Yuxia
(Baotou Vocational & Technical College, Baotou 014035, China)
Abstract: The traditional English letter recognition method with computer aided vision is based on the image edge contour detection method, which is easy to be affected by false contour features in the process of letter recognition, which leads to the low recognition accuracy. In this paper, the computer aided design of the English letter recognition software is conducted in combination with the embedded Linux device program. QT/Embedded is taken as GUI to build user application program. The GNU development tool set based on X86 is adopted to carry out configuration and compilation of English letters recognition file system with computer aided vision. The design optimization of software was done by means of development of the device drive program, including the character device driver, block device driver and network device driver. The system testing results show that the English letter recognition software has high recognition accuracy, perfect convergence, high reliability and better man?machine interaction.
Keywords: computer aided vision; English letter recognition; software design; GUI
0 引 言
随着计算机图像处理技术的发展,采用计算机视觉图像处理技术进行目标识别、图像特征分析和对象监控等具有广泛的应用价值。图像识别技术是建立在对图像的特征提取和轮廓信息分割基础上的,采集数字图像处理技术对原始图像进行降噪滤波和智能分割,以此为基础进行图像小波尺度分解,实现对图像的识别和监测。英文字母识别是图像处理领域研究的一个最新方向,英文字母广泛存在于车牌、广告牌、Logo等部位,通过对英文字母的准确识别,通过设计英文字母的优化识别技术和软件设计,提高对英文字母的嵌套目标对象、比如车牌、飞行器打击目标等的视觉跟踪和计算机视觉识别的能力,因此,有效的英文识别技术将在未来的车牌识别、飞行目标识别、Logo动态监测等领域都具有广泛的应用前景,相关的软件系统设计方法受到人们的重视。
对英文字母识别的软件开发的基础在于计算机图像处理,在计算机辅助视觉系统下通过数字图像的采集、图像特征分析和提取、以及图像特征分类,实现对英文字母的视觉监测和分类识别。传统方法中,对英文字母的识别方法主要有基于小波尺度分解的英文字母识别方法、基于边缘轮廓分割的字母识别方法等[1?4]。上述方法是在计算机视觉下进行英文字母的图像特征提取,结合小波分解和边缘轮廓分割,实现对英文字母的有效识别,在此原理上,相关文献进行了图像识别系统的设计,取得了一定的成果。其中,文献[5]提出一种基于空间亮度均衡化平滑处理的英文字母识别算法,并进行了识别系统的模块化设计,提高了英文字母图像的分割精度,但是该方法计算开销较大,实时性不好。文献[6]提出一种基于图像增强和明暗对比度特征分解的字母识别方法,在缺帧环境下实现对英文字母图像的包络特征识别,并进行了软件设计,提高了字母的识别精度,但是该软件设计过程中受到环境的光线等干扰因素的影响较大,导致在信噪比低的环境下对图像的识别准确度不高[7]。针对上述问题,本文在计算机辅助视觉下进行了英文字母识别软件的优化设计,首先进行了英文字母识别的软件系统的总体设计和数据处理,分析英文字母的视觉特征信息,结合嵌入式Linux设备驱动程序,进行英文字母识别系统的交叉编译环境构建,以嵌入式Linux为平台实现软件开发,最后进行了系统调试和仿真分析,得出有效性结论。
1 软件的总体模型构建和开发环境
1.1 计算机辅助视觉下的英文字母识别软件的总体模型构建
为了实现对计算机辅助视觉下的英文字母识别软件的优化设计,首先分析软件系统的总体结构模型,计算机辅助视觉下的英文字母识别软件是建立在对英文字母的图像特征信息采样和特征提取的基础上的,结合图像处理算法进行计算机辅助视觉设计,系统采用LabWindows/CVI进行计算机辅助视觉下的英文字母识别的图像处理和信息通信,选用“波形存储重发”模式,通过模拟预处理机将信号采样控制传输数据转换为电信号,在数据采集处理系统中实现离散数据采样和英文字母的信息评估[8?10]。计算机辅助视觉下的英文字母识别软件的总体模型结构框图如图1所示。由图1可见,英文字母识别软件系统建立在嵌入式操作系统Linux基础上的,采用嵌入式Linux系统从软件的角度进行计算机视觉特征的采样和层次划分,本文设计的英文字母识别软件共分为四个层次,分别为:
(1) Linux內核下的英文字母的引导加载程序(Boot loader);
(2) 在FLASH设备上的文件系统内核(Linux Kernel);
(3) 嵌入式手持设备文件系统(File System)计算机视觉特征分析和识别;
(4) 使用Qt/Embedded作为GUI,构建用户应用程序(Application)。
根据上述软件的层次模型构建,在Linux中可以支持多通道的英文字母识别功能,采用VPP仪器驱动程序构建虚拟文件系统,采用PCI桥接芯片与上位机通信,计算机辅助视觉下的英文字母识别管理系统的外部I/O设备通过A/D,D/A采样进行远程控制信号加载,系统的源代码与开发工具包括初始化、配置、作用/状态。
根据上述分析,得到计算机辅助视觉下的英文字母识别软件系统设计的功能指标描述为采样通道:8通道同步电子监控数据采样,输出信号幅度为ROMFS;D/A分辨率为12位。计算机辅助视觉下的英文字母识别中的图像信息数据传感信号的A/D转换芯片选用AD公司的AD7655。计算机辅助视觉下的英文字母识别系统的模拟转换电路接口的A0为低时,转换A通道,为高时,转换B通道。计算机辅助视觉下的英文字母识别软件的功能的实现还需要核实外围器件,FPGA通用平台系统是由大量高密度分布的处于被监测的英文字母识别对象内部或周围的传感器节点组成,相比于进程管理、内存管理和文件系统,在嵌入式Linux的系统开发中采用简单、统一的系统调用接口,由启动引导程序(BootLoader)进行程序加载,实现对英文字母的识别和视觉特征分析,根据上述系统总体设计模型,进行软件的模块化加载和设计。
1.2 基本开发流程与开发环境的建立
在上述进行了计算机辅助视觉下英文字母识别软件的总体模型描述的基础上,进行软件开发,本文开发的计算机辅助视觉下英文字母识别软件建立在以嵌入式Linux为平台之上,结合计算机视觉图像识别技术和特征提取算法,在前期的计算机视觉图像分析算法的设计基础上,构建一个以Linux内核、文件系统、应用程序为结构组成的嵌入式系统,实现Linux操作系统对ARM硬件平台的移植和计算机视觉下的英文字母识别,采用MVB总线控制技术,进行英文字母识别过程中的帧发送收发和中断控制,面向计算机辅助视觉下英文字母识别的MVB总线控制模型如图2所示。
在MVB总线控制过程中,利用计算机辅助视觉系统进行存储控制和英文字母的像素特征分析,充分利用开源Linux操作系统的丰富网络资源,由A/D,D/A转换器进行转换误差分析,采用交叉编译环境,即开发平台使用通用计算机,采用LabWindows/CVI实现对中断标志位输出,信息监控和识别系统设计中,主控电路的ADC要求稳定到15 Hz。采用能量检测法,得到计算机辅助视觉下的英文字母识别系统D/A转换器输出为一组单帧数据信号,信号脉宽超过32 KB数据时,A15为“1”,将波形特征信息通知CVI,由此实现了计算机辅助视觉下的英文字母识别的网口、串口、USB口的控制,搭建嵌入式Linux软件开发环境,得到本文设计的软件系统的开发环境硬件连接图如图3所示。
2 系统的设计与实现
2.1 英文字母识别文件系统配置和编译
在上述构建的英文字母识别系统的开发环境的基础上,使用已有各种基于X86架构的GNU开发工具集,使用Linux和Windows之间的共享资源进行计算机辅助视觉下的英文字母识别文件系统配置,基于X86架构进行图像识别的软件编译,在主机上完成针对目标机的代码编译,编译生成的可执行代码进行目标机的代码编译,计算机辅助视觉下的英文字母识别文件编译的过程为:
在网上下载arm920t?eabi.tgz,使用命令
tar xvzf arm920t?eabi.tgz
输入arm?linux?gcc?v,将最上层的Makefile文件解压,并把编译器路径加入系统环境变量,运行命令
#gedit.Bashrc
编辑.Bashrc文件,在最后一行加入arch/arm/boot目录
选择退出,并选“Yes”保存
保存退出后,重新登录系统,在计算机辅助视觉下生成交叉编译环境,如图4所示。
命令行输入arm?linux?gcc?v,修改内核解压地址,充分考虑嵌入式Linux系统的根文件系统的源码开放性,利用Busybox的安装脚本,实现配置和剪裁。在上述生成的交叉编译环境下,新建一目录filesystem,建立YAFFS根文件系统,编译过程代码描述如下:
Busybox Settings ???>
Embedded Linux application ???>

[*] Don't use /usr
Applets links(Busybox source open) ???>
(/home/Documents/nfs) Edit the rcS file under the init.d directory
Busybox Download to target board ???>
[*] Support arm?angstrom?linux
[*] /opt/toolchains/arm commands
[*] /dev/tty1 changed to echo
[*] Establish a root file system
[*] production of YAFFS image file
Shells ???>
??? Ash Shell Options下的选项全选
[*]Rootfs.yaffs is generated in the directory.
[*]Lash(Control hardware device)
配置完成后,分别运行make以及make install访问并控制硬件设备,进行编译和安装,完成设备驱动程序是Linux内核的路径文件夹选择,在操作系统与硬件设备之间生成bin,sbin文件夹以及linuxrc文件。
在此基础上,建立英文字母识别软件的YAFFS根文件系统,在该目录下有6个必备的文件夹/etc,/lib,
/dev,/usr,/var和/proc,将其目录下的相关的配置脚本复制到新建根文件系统filesystem的etc下,并下载busybox1.14.2进行相应的修改。具体做法是编辑/dev,/etc等主要目录,在init.d目录下运行make menuconfig命令,启动服务器配置文件,编辑init.d目录下的rcS文件,在36,56以及58行的內容注释掉,/lib目录下提供内核,
/dev/tty1更改为echo“Root File System Loaded Successfully”。
在dev目录下建立需要的设备节点,在/lib目录下提供内核需要用到的计算机辅助视觉下的英文字母识别函数,生成一个rootfs.yaffs文件,在920t?eabi/arm下面所有的文件复制到新建的根文件系统fliesystem的lib中,建立起计算机辅助视觉下的英文字母识别的根文件系统。在Visual DSP++ 4.5中,得到计算机辅助视觉下的英文字母识别文件系统配置和编译集成开发环境如图5所示。
2.2 软件实现流程与驱动程序开发
在上述进行了计算机辅助视觉下的英文字母识别文件系统配置和编译的基础上,通过设备驱动程序开发,进行软件设计优化,作为Linux内核的重要组成部分,设备驱动程序主要包括了字符设备驱动程序、块设备驱动程序和网络设备驱动程序,设备驱动程序完成如下工作:
(1) 优化存储、初始化和释放英文字母识别文件系统的配置程序和设备;
(2) 在计算机辅助视觉下进行英文字符识别软件的内核与硬件之间的数据传送,调用请求函数实现I/O操作,把数据从read(),write()等系统内核传送到计算机视觉识别器和专家系统中;
(3) 改动内核的源文件,实现应用程序与设备之间的数据传送,读取计算机辅助视觉下的识别系统的应用程序传送给设备文件,编译成未连接的模块,使用open(),release(),read()等函数实现数据和回送,在应用程序中请求计算机辅助视觉识别;
(4) 检测错误和处理中断,检测中断服务程序是否能正常工作。
综上分析,得到计算机辅助视觉下的英文字母识别软件的设备驱动的设计和实现流程如图6所示。
根据系统需求分别对tatic int s3c2440_open,控制寄存器s3c2440_pwm_close和A/D转换s3c2440_pwm_
ioctl三个函数进行编程,处理器将读取A/D转换结果,通过计算机辅助视觉识别,完成A/D转换器的打开、关闭操作,在file_operations数据结构中的对应关系如下:
static struct file_operations dev_fops = {
owner:THIS_MODULE //调用s3c2440_adc_read()函数
open:s3c2440_adc_open //控制寄存器进行复位
read:A data transmission on the IIC bus
release:Stop Condition _adc_release //应答信号(ACK)
}
在进行了ZLG7290初始化操作之后,键值寄存器(Key)通过命令接口完成对计算机辅助视觉识别的间接读写,函数ZLG7290_GetKey()在中断响应中实现SD存储,设定地址00H,复位值F0H,加载SD卡的设备驱动程序,实现图像识别的程序加载,达到英文字母优化识别的目的。
3 系统测试仿真分析
为了测试本文设计的计算机辅助视觉下英文字母识别软件的应用性能,进行仿真测试分析,实验中,采用嵌入式设备的Qt C++ API,Qt/Embedded的Qt/X11构建计算机视觉辅助识别系统,运行Qt/Embedded所需要的计算机视觉识别资源,编译Qt/Embedded进行程序加载和可视化的界面设计。
在应用程序框架和窗口系统中,调用窗口管理系统和图形引擎,利用FrameBuffe图形函数库作为底层图形接口,安装完成后,生成Qt/Embedded for ARM的开发编译环境所需要的英文字母视觉识别的编译文件,配置qt?embedded?arm、编译和安装实现英文字母的识别和识别性能分析。通过上述分析,以识别车牌中的英文字母为例,进行仿真测试,得到识别结果如图7所示。
为了测试本文设计字母识别方法的收敛性能,以字母识别的收敛曲线为测试指标,得到仿真结果见图8。
由图8可见,采用本文方法进行计算机辅助视觉下的英文字母识别,收敛性较好,在较短的时间内将识别误差收敛到0,能有效降低识别误差和识别时间。为了对比识别精度,采用本文方法和传统的系统方法,进行字母识别的精度测试,得到结果如图9所示,由图9可见,该识别方法精度较高,准确性较好,展示了较好的应用价值。
4 结 语
通过设计英文字母的优化识别技术和软件设计,提高对英文字母的嵌套目标对象,比如车牌、飞行器打击目标等的视觉跟踪和计算机视觉识别的能力,本文在计算机辅助视觉下进行了英文字母识别软件的优化设计,结合嵌入式Linux设备驱动程序,进行英文字母识别系统的交叉编译环境构建,使用Linux和Windows之间的共享资源进行计算机辅助视觉下的英文字母识别文件系统配置,基于X86架构进行图像识别的软件编译,实现软件开发,该研究表明,本文设计的英文字母识别软件性能较好,准确度较高。
参考文献
[1] 林兆华,米阳,葛兵.一种粗精结合的快速图像自动调焦算法[J].国外电子测量技术,2015,34(10):28?31.
[2] 胡棚,施惠娟.基于视觉掩蔽模型的视频水印算法[J].电子测量技术,2014,37(12):36?40.
[3] 王小玉,张亚洲,陈德运.基于多块局部二值模式特征和人眼定位的人脸检测[J].儀器仪表学报,2014,35(12):2739?2745.
[4] 余淮,杨文.一种无人机航拍影像快速特征提取与匹配算法[J].电子与信息学报,2016,38(3):509?516.
[5] JAFAR S A. Interference alignment; a new look at signal dimensions in a communication network [J]. Foundations and trends in communications and information Theory, 2011, 7(1): 129?134.
[6] GOMADAM K, CADAMBE V R, JAFAR S A. A distributed numerical approach to interference alignment and applications to wireless interference networks [J]. IEEE transactions on information theory, 2011, 57(6): 3309?3322.
[7] PATCHARAMANEEPAKRON P, ARMOUR S, DOUFEXI A. Coordinated beamforming schemes based on modified signal?to? leakage?plus?noise ratio precoding designs [J]. IET communications, 2015, 9(4): 558?567.
[8] KALEVA J, TOLLI A, JUNTTI M. Weighted sum rate maximization for interfering broadcast channel via successive convex approximation [C]// proceedings of IEEE Global Communications Conference. Anaheim, USA: IEEE, 2012: 3838?3843.
[9] LIU H, DING Z G, FAN P Z, et al. Precoding design for interference suppression in multi?cell multi?user networks [J]. IET communications, 2014, 8(9): 1534?1540.
[10] RATHEESH M and DAVID M J. System?level performance of interference alignment[J]. IEEE Transactions on wireless communications, 2015, 14(2): 1060?1070.