基于ARM和Linux的字符采集与识别系统
摘要:提出了一种针对嵌入式系统的字符识别方法。介绍了一种基于ARM9处理器和嵌入式L inux 的字符图像采集与识别系统。该系统采用嵌入式L inux操作系统, 图像预处理和字符识别的软件开发可以脱离硬件。通过开发不同的识别软件, 系统可应用于名片识别、二维条码识别、纸币序列号识别等多种字符识别的场合, 提高了通用性。
传统纸质读物的数字化以及诸如条码识别等字符识别系统都离不开图像的读入与识别, 然而目前广泛使用的字符识别设备将这两部分独立开, 即由图像读入设备(如扫描仪)和安装于计算机上的识别软件构成, 但这样的设备构成离不开安装识别软件的计算机, 造成成本上升和使用不便。随着电子产品的普及, 具有摄像功能的电子产品及其上的识别软件也可以构成一个字符识别系统, 但是这种识别系统的识别速度受到摄像头调焦的限制, 难以广泛应用。文中提出的便携式字符采集和识别系统, 其硬件平台是基于接触式图像传感器( C IS) 与ARM9处理器S3C2410,软件平台是基于嵌入式L inux 系统, 可以克服以上两种设备的缺点, 同时满足方便性和快速性的要求。另一方面, 由于设备基于L inux 操作系统, 使得识别软件的开发和扩展可以脱离硬件, 大大提高识别系统的通用性。
1.图像采集模块
字符识别系统主要由图像采集模块和图像处理模块组成, 其中图像采集模块是整个系统的硬件核心,图像采集的质量直接影响系统的整体性能。线阵C IS每次扫描得到一行像素值, 配合运动平台的纵向运动可以完成一幅二维图像的扫描。为保证图像采集的质量, 必须精确控制运动平台与C IS 之间的工作匹配, 本系统以CPLD 作为图像采集模块的控制核心,CIS传感器、步进电机、ADC 以及高速缓存FIFO 在CPLD的控制协调下完成一幅图像的采集、模数转换和数据缓存。系统总体结构框图如图1所示。
类间离散矩阵Sb 和类内离散矩阵Sw 的定义为
其中, c表示为模式的类别数; j 表示为第j 类的均值(其概率为pj ); 0 为全部样本均值; xji 为第j 类模式i的h维向量; nj 是第j 类的样本数; N 是所有样本数。j 和0 定义为:
最优化问题可以通过Sb 和Sw 的特征值的求解而获得。如果在样本离散矩阵中非目标样本占有比重较大, LDA 并不能保证找到最优子空间。LDA 的最优分类标准并不一定对分类准确性最优, 有可能使得已经分开的邻近类引起不必要的重迭。本文采用一种新的加权LDA 方法( ILDA ), 其计算S^b 和S^w 方法如下:
显然, 如果( )是个常数, 在投影方向上, S^b和S^w 分别等同Sb 和Sw。如果每一类的( )是不同的, 这将对临近类的重迭样本的分类产生影响。可以看出, 如果 ij较大, 则( )较小。
实验样本取自手写体通用数据库UC I, 在Bhattacharyya距离( BD)分类器下对加权线性判别分析与相应的算法进行实验比较和分析, 取得较好的识别性能, 证实了该方法提取的特征的有效性。
3.结束语
本文采用嵌入式Linux 和ARM 处理器软硬件平台, 利用C IS传感器配合运动平台实现了图像的采集和存储, 为嵌入式字符识别系统构建了一个图像采集平台。在字符识别的应用方面, 探讨了广泛应用的手写数字识别算法, 在已有的线性判别分析算法基础上, 提出了一种改进的加权线性判别分析算法, 并对该算法进行了实验验证, 获得了较好的识别率。