基于ARM和Linux的字符采集与识别系统

发布者:数据迷航者最新更新时间:2010-12-23 来源: 维库开发网关键字:ARM  Linux  字符采集 手机看文章 扫描二维码
随时随地手机看文章

    传统纸质读物的数字化以及诸如条码识别等字符识别系统都离不开图像的读入与识别, 然而目前广泛使用的字符识别设备将这两部分独立开, 即由图像读入设备(如扫描仪)和安装于计算机上的识别软件构成, 但这样的设备构成离不开安装识别软件的计算机, 造成成本上升和使用不便。随着电子产品的普及, 具有摄像功能的电子产品及其上的识别软件也可以构成一个字符识别系统, 但是这种识别系统的识别速度受到摄像头调焦的限制, 难以广泛应用。文中提出的便携式字符采集和识别系统, 其硬件平台是基于接触式图像传感器( C IS) 与ARM9处理器S3C2410,软件平台是基于嵌入式L inux 系统, 可以克服以上两种设备的缺点, 同时满足方便性和快速性的要求。另一方面, 由于设备基于L inux 操作系统, 使得识别软件的开发和扩展可以脱离硬件, 大大提高识别系统的通用性。

1.图像采集模块

    字符识别系统主要由图像采集模块和图像处理模块组成, 其中图像采集模块是整个系统的硬件核心,图像采集的质量直接影响系统的整体性能。线阵C IS每次扫描得到一行像素值, 配合运动平台的纵向运动可以完成一幅二维图像的扫描。为保证图像采集的质量, 必须精确控制运动平台与C IS 之间的工作匹配, 本系统以CPLD 作为图像采集模块的控制核心,CIS传感器、步进电机、ADC 以及高速缓存FIFO 在CPLD的控制协调下完成一幅图像的采集、模数转换和数据缓存。系统总体结构框图如图1所示。

图1系统结构框图。

1.1硬件平台

( 1)ARM 处理器。

    采用三星公司的ARM9系列S3C2410A 作为处理器, 工作频率可达203MH z, 片上资源丰富, 可以满足实时性要求, 为图像处理提供运行平台并配合CPLD 完成图像采集模块的逻辑和读写控制。

( 2)图像传感器及运动平台。

    接触式图像传感器( C IS) 具有体积小、重量轻、功耗低、结构紧凑、连接方便以及无阱深等优点, 在扫描仪等领域被广泛应用。本系统采用SV643C10型C IS, 其物理分辨率600 dpi( 236 do t /mm ) , 有效扫描宽度292mm, 共688个传感器像素单元, 其像素输出频率为5MH z。

    运动平台由步进电机和光电传感器等组成, 光电传感器实现对进纸的检测, 启动扫描。步进电机控制扫描件换行, 配合C IS完成图像的采集。

( 3)信号调理电路。

    信号调理电路完成对C IS 输出模拟信号的差分、放大等, 实现降噪和电压匹配的作用。

( 4)高速A /D转换器。

    由于C IS的像素输出频率高于处理器内部的A /D转换器, 所以本系统采用高速的外部ADC 器件TLC5540, 其最大采样率40 MB s- 1, 拥有8 位分辨率。

( 5)数据缓存。

    为了实现ADC 和ARM 的速度匹配, 提高系统工作效率, 在ADC 与ARM 处理器之间加一个F IFO 存储器作为高速数据缓存, 选用Averlog ic公司的1 MB8 bit的AL4V8M 440。

( 6) CPLD模块。

    实现图像采集模块的逻辑控制。为C IS传感器提供的时钟信号CP 和行转移信号SP。为ADC 提供采集时钟, 为FIFO 提供读写控制和写时钟等。

( 7)存储器。

    本系统采用三星公司的64 MB NAND Flash 存储器K 9F1208作为程序和数据的存储单元, 采用两片16位的HY57V561620CT- H (总容量64MB ) SDRAM作为系统内存, 同时作为DMA 方式读取缓存数据的目的存储器。其中Flash存储器存储空间分配情况如图2所示。

图2NAND Flash地址分配。

1.2软件设计

    图像采集模块的程序设计主要任务是实现该模块各元器件的协调工作以及实现对图像数据的读取。主要分为3部分内容。

    ( 1) CPLD 上的逻辑设计。采用VHDL 语言编写,该程序将外部晶振的10MH z输入进行分频, 为C IS、ADC、FIFO 等提供时钟和控制信号, 并为步进电机提供工作时序。

    ( 2)嵌入式L inux 系统的裁剪、配置和移植。

    本系统采用26内核, 宿主机环境为Ubuntu804。

图3L inux内核配置。

    ( 3) L inux 驱动程序的编写。由于采集模块对于Linux系统来说可看作为一个设备, 因此该部分程序应作为嵌入式L inux 设备驱动程序来编写, 该驱动程序通过CPLD间接实现采集模块的逻辑控制和图像数据的读取, 为应用程序的开发提供底层硬件的接口[ 5 ] 。从FIFO 缓存读取图像数据采用DMA 方式,DMA的目的存储器为ARM 系统的SDRAM。

    图像采集模块工作流程图和图像采集效果分别如图4和图5所示。

2.图像识别模块

    本文的目的是构建一个通用的字符识别系统,图像采集模块实现了对扫描件图像数据的获取。由于系统基于嵌入式L inux, 使得后续的图像处理与字符识别软件设计可以脱离硬件系统独立进行, 具有较高的通用性, 可以根据实际应用场合开发和扩展不同的识别软件, 本文仅探讨手写体数字识别的应用。

识别算法:

    线性判别分析( L inearity D istinct ion Analysis,LDA)是有效的特征抽取方法之一, 广泛用于人脸识别和字符识别等领域[ 6] 。其基本思想是选择使F isher准则函数达到极值的一组矢量作为最佳投影方向, 样本在该矢量集上投影后, 达到最大的类间离散度和最小的类内离散度。为找到投影轴, 应最大化类间离散矩阵Sb 和类内离散矩阵Sw 的比值:

    类间离散矩阵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传感器配合运动平台实现了图像的采集和存储, 为嵌入式字符识别系统构建了一个图像采集平台。在字符识别的应用方面, 探讨了广泛应用的手写数字识别算法, 在已有的线性判别分析算法基础上, 提出了一种改进的加权线性判别分析算法, 并对该算法进行了实验验证, 获得了较好的识别率。

关键字:ARM  Linux  字符采集 引用地址:基于ARM和Linux的字符采集与识别系统

上一篇:采用ARM+Linux 2.6 内核的仪器控制系统设计
下一篇:基于STM32微控制器处理先进电机控制方法

推荐阅读最新更新时间:2024-05-02 21:13

基于PROTEUS技术的ARM7显示系统设计与仿真实现
0 引言     随着科技的发展,ARM在社会各个方面的应用越来越广。ARM芯片广泛应用于无线产品、PDA、GPS、网络、消费电子产品、STB及智能卡。LPC2138是Philips公司生产的基于ARM7TDMI的RISC微处理器,主频可达50MHz。液晶显示是嵌入式系统中反映系统输入/输出的人机交互界面,液晶显示以其微功耗、体积小、显示内容丰富、模块化,接口电路简单等诸多优点得到广泛应用。本文在介绍以HD44780为控制器的LM 016L液晶模块的引脚结构、功能的基础上,搭建LM016L与LPC2138芯片的硬件接口电路、用c语言编写显示程序,采用Proteus软件进行功能仿真。 1 液晶模块结构及功能简介     LM016
[单片机]
基于ARM9的智能车载系统设计
引 言     随着社会经济的发展,汽车已成为人们工作、生活中不可缺少的一种交通工具。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,开发了各种各样的电子控制系统。本文设计一种基于ARM9 S3C2410A的智能车载系统,它能够通过GPS全球定位系统和GPRS无线通信技术,实现车辆定位以及车辆与控制中心之间的数据通信,构建CAN总线控制模块用于采集车辆主要部分的工作状态,实时监控汽车的主要技术参数,并通过LCD模块显示车载信息的综合信息。 1 智能车载系统的功能     车载智能导航终端应具有如下功能:     车辆定位 它指通过GPS全球定位系统获取车辆的当前所处位置,包括经度、纬度、运动
[嵌入式]
应对ARM 瑞萨探寻微控制器发展新战略
据国外媒体报道,为了应对在嵌入式市场中与ARM的竞争,瑞萨准备将三个高端的微控制器系列统一成一个整体处理器架构。 目前,瑞萨有三个32位的单片机系列,分别是:V850, SH 和RX家族。 “我们准备创造一种新型的战略模式,并正在研究如何将其方式统一化。” 瑞萨电子欧洲区主席,三木先生说。 整合后,一种支持工具箱和IP生态系统的新型32位处理器,将在嵌入式市场与ARM的激烈竞争中,助瑞萨一臂之力。 三木先生提到,瑞萨的“MCU合作伙伴计划”涵盖了工具箱、IP和参考平台。目前,该计划已经有了700多名会员。 他坦言:“我们十分认同ARM的生态系统,因为通过生态系统来合并半导体设备,将是半导体业务下一
[单片机]
ARM或与AMD制造工厂结盟 真正威胁英特尔
    9月28日消息,据国外媒体报道,知情人士透露,ARM本周将与AMD制造工厂GlobalFoundries达成一笔战略交易,势必将对英特尔构成威胁。     GlobalFoundries前身是AMD半导体制造部门,去年分拆独立。上周,美国总统奥巴马(BarackObama)还造访了GlobalFoundries的纽约州工厂厂址。     此外,GlobalFoundries还将收购全球第四大半导体代工厂商特许半导体。在此之前,GlobalFoundries只要有AMD和意法半导体两大客户。但知情人士称,真正的客户数量约为150家。     对于GlobalFoundries的迅速壮大,台积电都有些恐慌。如果ARM再与
[嵌入式]
Arm推出TCS23,都有哪些亮点?
近日,Arm宣布推出2023 全面计算解决方案(TCS23),TCS23提供一整套针对特定工作负载而设计与优化的最新 IP,其中包括最新的CPU IP Cortex-X4、Cortex-A720和Cortex-A520,最新的GPU Immortalis-G720、 Mali-G720和Mali-G620,以及在安全领域的重要更新。 Arm还强调了所有大小核均实现了向64位的迁移,Arm高级副总裁兼终端事业部总经理Chris Bergey说道:“Arm 在十年前就开始陆续将64位处理器推向市场,从32位向64位计算的过渡期是一个缓慢的过程,而我们相信只有64位才是正确的方向。仅支持64位不光保证了更高的性能,也进一步夯实了计算
[手机便携]
<font color='red'>Arm</font>推出TCS23,都有哪些亮点?
ARM7还是选Cortex-M3?
要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。 1.ARM实现方法 ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线( 冯诺伊曼结构下,数据和指令共用一条总线)。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。 ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。在
[单片机]
记:关于W806的Linux下基本教程(一)——环境建立与第一次烧写
0x00 前言 本文主要在Linux下实现了对于联盛德的W806芯片的SDK相关的操作,包括但不限于指定烧写、擦除、编译。 0x10 准备工作 首先需要一个Linux系统,这里笔者选择了Debian 11,按照默认的安装方式下,下面就可以在完成换源、准备账号,之后就可以安装一些依赖。这里笔者选择饱和安装,里面应该有一些东西不需要,但是也不怎么重要。 sudo apt install gcc-10-cross-base gcc-10-arm-linux-gnueabihf gcc-10-arm-linux-gnueabi cpp-10-arm-linux-gnueabi cpp-10-arm-linux-gnueabihf
[单片机]
记:关于W806的<font color='red'>Linux</font>下基本教程(一)——环境建立与第一次烧写
以s3c2440为例讲解arm芯片的启动过程
arm 嵌入式芯片的启动过程对于嵌入式菜鸟来说其实是很复杂的,很多人都是一知半解,存在很多误区。在笔者看来,要想真正了解这一启动过程必须要首先了解存储器的区别与联系,参考文章:各种主流半导体存储器的区别与联系。还需要了解程序是如何编译链接和执行的。 本文将以s3c2440为例详细讲述 arm 芯片的启动过程。s3c2440支持两种启动模式:NAND FLASH 启动和非 NAND FLASH 启动(一般是NOR FLASH 启动,并且可以配置数据宽度),通过 OM1、OM0 两个管脚来控制。 NAND FLASH启动过程 当 OM1、OM0 两个管脚都为低电平时,CPU 就被配置成了 NAND FLASH 启动。此时 CP
[单片机]
以s3c2440为例讲解<font color='red'>arm</font>芯片的启动过程
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved