“中”字符(通用12篇)
“中”字符 篇1
这里说的网页传送中的特殊字符是指类似中文字符,特殊符号等字符, 主要指以下两种特殊情况:(1) url中的字符编码, 顾名思义这是为了在url中传送某些字符时进行的编码, 如下面的情况:
通常这类编码后的字符以%开始带两位十六进制字符;(2) 某些类AJax传送的HTTP数据中的非ASCII字符编码 ,如下面的情况:
这里传送给浏览器的数据中大部分字符是ASCII字符, 无须编码, 但某个地方出现了 u79cb, u表明后面跟的是unicode码而非字符本身, u79cb是中文字“秋”的Unicode表示。
当处理这些网页中的字符时, 一般来说呈现给最终用户的不可能选择这些近似乱码的内容, 而肯定会选择解码这些已编码的内容, 让它们回归自己的原来面貌。下面就以.NET C# 为工具说明一下如何解码上面两种情况。
(1) 因为.NET类库已经准备好了有关工具类 , 这个类就是HttpUtility, 该类的UrlDecode方法就是用来解码 (Decode)情况一这种url编码的, 使用方法也很简单, 代码如下:
注意, HttpUtility这个类是在System.Web命名空间下的,更要注意的是, 如果是在WinForm情况下使用这个类, 必须手工添加System.Web引用, 因为系统默认不会为WinForm应用程序添加这个引用。
(2) 没有现成的类库可调用, 只能手动写函数来进行手工转换。不过.NET提供了转换所需的基础类, Encoding, 具体代码如下:
最后使用Unicode解码方式, 利用GetString方法来获取解码后的字符。该方法输入参数是一个byte数组, 这个数组存放了所有unicode编码, 但是unicode编码现在也是以string形式存在在网页中, 而且是一些以 u开头的字符, 因此程序中首先判定输入的字符串参数的某个字符是否为 , 如果是则将后面的unicode字符转换后放入byte数组中; 如果不是, 那么就作为普通字符直接存放在byte数组中。注意对于一般的ASCII字符, 为了让其符合unicode编码方式, 必须补齐高8位字节的0, 而且必须考虑到最极端的情况, 如果所有源字符都是ASCII字符, 那么转换后的byte数组的长度就会是源字符串长度的两倍。最后要注意的是如何转换16进制字符到byte数组,这里要用到下面的方法:
由于16进制字符代表4个bit, 因此对高位4bit需要乘以16, 同时注意 , 16进制中的数字要与ASCII字符‘0’相减 ,而字母需要与ASCII字符‘a’相减, 这样才能得到正确的结果。另外, 必须注意‘u79cb’中79是高位的8bit, 因此在存放时, 首先读入的两个字符换算后的结果应该放在后续读到的字符转换结果的后面。
“中”字符 篇2
2014-03-03python基础教程之元组操作使用详解
2008-12-12python zip文件 压缩
2013-11-11python迭代器的使用方法实例
2013-12-12二种python发送邮件实例讲解(python发邮件附件可以使用email模块
2014-06-06python网络编程学习笔记(二):socket建立网络客户端
2013-03-03python发送邮件的实例代码(支持html、图片、附件)
2014-03-03python操作日期和时间的方法
2013-11-11跨平台python异步回调机制实现和使用方法
制作字符组成的图片 篇3
首先在浏览器中访问www.black-text.com,点击网页右上角的“Start Conuerter”按钮。然后后点击左侧的“Load”按钮,在弹出的窗口选择一张图片作为字符图案框架。上传完成以后,在“Type your text”输入框里面设置需要使用的字符串信息,网站支持所有常见的中英文与特殊字符串符号。除了设置显示的字符串信息,还需要设置一些字体属性。比如分别在“Size”、“Font type”、“minimum”以及“Paper size”选项中,设置字体的大小、类型、间距以及页面的大小(如图1)。
接下来在“Colors”选项中设置自己所需要的背景颜色。设置完成以后点击“Processing”,选择“Quality”选项并点击“Create”按钮,生成字符图片(如图2)。如果用户需要加快图片的处理速度,选择“Processing”选项中的“Fast”项即可。需要注意的是,字符间隔的大小直接影响图片效果,如果用户对生成的效果图不满意,可以点击“Processing”中的“Reset”按钮重新调整字符间距。最后,点击“Save”按钮将其保存到本地硬盘即可。
神经网络在车牌字符识别中应用 篇4
近年来, 神经网络的智能化特征与能力使其应用领域日益扩大, 潜力日趋明显。许多用传统信息处理方法无法解决的问题采用神经网络后取得了良好的效果。其中, 神经网络在车牌字符识别中的应用效果尤为明显。目前, 车牌字符识别主要采用两种方法, 即模式匹配法和神经网络法。由于神经网络模式识别方法能够实现基于计算理论层次上的模式识别理论所无法完成的模式信息处理工作, 这种方法是选用适当的字符图像特征提取方法, 然后使用训练样本训练网络并构建一个识别网络作为分类器。所以, 相信未来一段时期内神经网络在车牌字符识别领域中的应用还会是趋于主导地位。
1. 人工神经网络简介
人工神经网络[1] (ARTIFICIAL NEURAL NETWORK, ANN) , 亦称为神经网络, 是对人脑或生物神经网络的抽象和建模, 具有学习能力, 以类似生物的交互方式适应环境。神经网络是智能科学和计算智能的重要部分, 为解决复杂问题和实现自动控制提供有效的途径。
1.1 人工神经元
人工神经元是可以模拟生物神经元的一阶特性一输人信号的加权和。神经元在获得网络输入后, 它应当给出适当的输出。按照生物神经元的特性, 每个神经元有一个阈值, 当输入信号的累计效果超过阈值时, 就处于激发态;反之, 则处于抑止态。为使系统有更宽的适用面, 人工神经元应有一个更一般的变换函数, 用来变换所获得的网络输入, 这就是激活函数。将人工神经元的基本模型和激活函数合在一起构成人工神经元。一个典型的人工神经元[1]模型如图1:
2. 反向传播网络
反向传播网络 (BP网络) 是一种多层前馈网络, 它是神经网络的重要一类, 一直是神经网络中最为流行的神经计算模型, 得到了极其广泛的应用。反向传播网络有以下三个突出的特点。1.网络中的每个神经元模型包括一个非线性激活函数。2.网络包括一层或多层神经元的隐层, 这些隐层神经元逐步从输入模式 (向量) 中提取更多的有用特征, 可以是网络学习复杂的任务。3.网络的连接强度由网络突触决定。
2.1 反向传播网络的结构
反向传播网络实际上是一个多层感知器[5], 因而具有具有类似多层感知器的体系结构, 也即典型的前馈神经网络的体系结构。下图所示为一个具有一个隐层和一个输出层的多层感知器结构图:
2.2 BP网络的结构设计原则
首先, 隐层数的选择:理论分析表明, 具有单隐层的前馈网可以映射所有连续函数, 只有当学习不连续函数时, 才需要两个隐层, 所以多层前馈网最多只需两个隐层。本文采用只含一个隐含层的三层BP神经网络来进行车牌字符的识别。
其次, 隐节点数的选择:隐节点的作用是从样本中提取并存储其内在规律, 每个隐节点有若干个权值, 而每个权值都是增强网络映射能力的一个参数。隐节点数量太少, 网络从样本中获取的信息能力就差, 不足以概括和体现训练集中的样本规律;若节点数量太多, 则会出现所谓“过度吻合”问题, 反而降低了泛化能力, 还会增加训练时间。因此, 通常情况下, 网络隐含层神经元数目的选择原则是:在能够解决问题的前提下, 再加上1到2个神经元以加快误差的下降速度。
2.3 BP算法的缺陷与改进
将BP算法用于具有非线性转移函数的三层前馈网, 可以以任意精度逼近任何非线性函数, 这一优势是多层前馈网得到广泛的应用。然而标准的BP算法在应用中暴露不少内在缺陷。如:容易形成局部极小;收敛速度慢;学习新样本有遗忘旧样本的趋势等。针对以上问题, 对BP算法的改进常用的方法主要有:增加动量项;自适应调节学习率;引入陡度因子等。
3. 基于神经网络图像识别系统
神经网络的图像识别系统是神经网络模式识别系统的一种。一般神经网络图像识别系统由预处理, 特征提取和神经网络分类器组成。预处理就是将原始数据中的无用信息删除, 二值化和进行幅度归一化等。神经网络图像识别系统中的特征提取部分实际上是传统方法与神经网络方法技术的结合, 这种方法可以充分利用人的经验来获取模式特征以及神经网络分类能力来识别目标图像[6]。特征提取必须能反映整个图像的特征, 具有很强的抗干扰能力。
当BP网用于分类时, 首先要选择各类的样本进行训练, 每类样本的个数要近似相等。其原因在于一方面防止训练后网络对样本多的类别响应过于敏感, 而对样本数少的类别不敏感。另一方面可以大幅度提高训练速度, 避免网络陷入局部最小点。
神经网络在样本学习中就像人记数字一样, 学习样本时的网络权值调整就相当于人记住各个数字的形象, 网络权值就是网络记住的内容, 网络学习阶段就像人由不认识数字到认识数字反复学习过程是一样的。神经网络是按整个特征向量的整体来记忆图像的, 只要大多数特征符合曾学习过的样本就可识别为同一类别, 所以当样本存在较大噪声时神经网络分类器仍可正确识别。在图像识别阶段, 只要将图像的点阵向量作为神经网络分类器的输入, 经过网络的计算, 分类器的输出就是识别结果。
4. BP神经网络在车牌字符识别中应用设计
对采集到的车牌图像, 经过定位、预处理、分割和归一化等处理之后, 下面就要从被分割归一处理完毕的字符中, 提取最能体现这个字符特点的特征向量。将提取出训练样本中的特征向量输入BP网络之中就可以对网络进行训练, 提取出待识别的样本中的特征向量代入到训练好的BP网络中, 就可以对字符进行识别[2]。
4.1 13点特征提取法
本文采用13点特征提取法[4]来提取特征向量, 把字符平均分成8份, 统计每一份内黑色像素点的个数作为8个特征, 即分别统计这8个区域中的黑色像素点的数目, 可以得到8个特征。然后统计水平方向中间两列和竖直方向中间两列的黑色像素点的个数作为4个特征, 最后统计所有黑色像素点的个数作为第13个特征。如下图所示:
4.2 BP网络分类器设计。
根据车牌字符的特点:车牌第一个字符为汉字, 第二个字符为英文字母, 第三、四个字符为英文字母或数字, 第五到第七个字符均为数字。本文构造了4个含一个隐含层的三层BP神经网络, 分别用来识别汉字、英文字母、英文字母或数字以及数字。用于识别汉字的BP神经网络, 它有13节点输入 (即13特征提取法) , 6个输出节点。用于识别英文字母的BP神经网络, 它有13个节点输入, 10个节点输出 (由于实际情况的限制, 拍摄到的汉字和英文字母样本较少) 。用于识别英文字母或数字的BP神经网络, 它有13个输入节点, 20个输出节点 (其中英文字母10个, 数字10个, 共20个) 。用于识别数字的BP神经网络, 它有13个输入节点输出节点10个[3]。
5. 实验
以识别数字的神经网络为例, 通过matlab模拟。
首先, 样本的选择。实验采用由CCD拍摄到的50幅汽车图片, 选取其中的20张为训练样本, 剩余的30张为测试样本。首先对采集到的各图片进行定位、预处理、分割以及归一化等操作后, 各原始图片变成大小都为16×16的字符图像, 接着利用13特征法进行特征提取, 将其作为网络的输入。对于每一个车牌字符, 通常选用5个左右的不同字符作为训练样本, 例如字符1, 从分割后的图片中选, 5个不同的字符1作为网络的输入。
其次, 初始权值、激活函数的选取以及各参数的设定。网络的权值和阈值为随机选取, 各层的激活函数依次为双曲正切S型函数tansig m和线性函数purelin.m。本文采用了附加动量法和自适应学习速率调整法两种策略, 各参数依次设定为:误差目标goal=5×10-3;学习速率η=0.1;学习速率的递增乘因子η_inc=1.15;学习速率的递减乘因子η_dec=0.8;动量因子mc=0.95[1]。
最后, 识别数字的网络输出。网络的设计是为了使其输出矢量在正确的位置上输出为1, 而在其他位置上输出为0。然而噪声输入矢量可能导致网络的1或0输出不正确, 或出现其他输出值。为了使网络具有抗干扰能力, 在网络训练后, 再将其输出经过一层竞争网络函数的处理 (在MATLAB下为compet.m) , 使网络的输出只在最接近输入值的输出位置输出为1, 保证在其他位置输出均为0。对于1到5的这5个数字, 实验结果表明网络对测试样本的识别率接近100%, 其对应的输出表如下表所示:
6. 结论
目前BP网络是神经网络中字符识别应用比较在成功的, BP人工神经网络具有很强的自适应学习能力;具有执行非线性任务和去除噪声的能力, 使它能够很好的用于分类和预测问题;因此, BP神经网络为车牌识别系统中的重要环节即车牌字符识别, 不仅提供了有效的智能化的理论思想, 还对车牌字符识别的效果和速率及质量提供了保障, 扩展和丰富了车牌字符识别的方式方法。
参考文献
[1]高隽人工神经网络原理及仿真实例.2007.2月第2版
[2]魏武, 黄心汉等.基于模板匹配和神经网络的车牌字符识别方法.模式识别与人工智能, 2001, 14 (1) :123~126
[3]苗迪铭, 宣国荣.神经网络在车牌字符识别中的应用.微型电脑应用, 1999, 4 (16) :5~8
[4]刘智勇, 刘迎建.车牌识别中的图像提取及分割.中文信息学报, 2000, 14 (4) :29~34
[5]R.Parisi, et.al.Car Plate Recognition by Netural Networks andImagineProcessing.In:IEEE ISCAS.USA, 1998, Ⅲ-195-Ⅲ-198.
“中”字符 篇5
using System.Collections.Generic;using System.Linq;
using System.Text;
namespace study
{
class Program
{
static void Main(string[] args){
{
{
numberSum=}
{
smallSum=}
{
bigSum=}
{
elseSum=}
}
}
}
}
以括号为特征提取字符 篇6
由于这些数据比较有规律,因此我们可以考虑使用公式进行提取,选择B2单元格,在编辑栏输入公式“=MID(A2,FlND("[",A2)+1,FIND("]",A2)-FIND("[",A2)-1)”,这里通过FIND函数以“[”和“]”作为关键字进行查找确定起始位置,利用MID函数从指定的起始位置起返回指定长度的字符;选择C2单元格,在编辑栏输入公式“=SUBSTITUTE(A2,TEXT(B2,"![0!"),)”,SUBSTITUTE函数是将A2单元格中的部分字符串以TEXT函数得到的内容进行替换.事实上就是A2单元格去除B2单元格的内容,执行之后向下拖拽或双击填充柄,很快就可以看到图2所示的效果。
如果使用的是Excel 2013/2016版本,那么也可以使用快速填充的方法实现上述要求,在B2单元格手工输入1234作为填充示例,选择B2:B12单元格,在“编辑”功能组依次选择“填充→快速填充”,或者按下“Ctrl+E”组合键即可,C列的数据提取可以采取类似的方法进行填充最终效果如图3所示。
提示:
浅析字符串在程序中的应用 篇7
通常意义上的文本是由大小写字母、数字、标点、空格等 组成的, 按一定顺序排成一串。例如:“Iam a student.”这句文本就包含了11字母、3个空格、1个标点, 共15个字符。这种由字符按一定顺序排列所组成的数据对象叫做字符串。直接用标识符string定义的字符串变量的最大长度是255。用户可定义的长度范围是1到255。字符串要想进行运算, 还必须具有一些特定的运算函数及过程:
(1) 求字符串长度: Length (字符串)
示例: Length (‘abcde’) 的结果为5。
(2) 求子串: copy (s,m,n) ;
示例: copy (‘abcdefghijk’ ,4,3) 的结果为‘def’。
(3) 查找子串的位置: pos (s1,s)
示例: pos (‘a’ , ‘this is a pen.’) 的结果为9;
(4) 插入: insert (s1,s,k) ;
示例: insert (‘12’ , ‘abcdefghijk’ ,3) 执行后, s的值为‘ab12cedfghijk’。
(5) 删除: delete (s,m,n) ;
示例: delete (‘abcdefg’ ,2,5) 执行后, s的值为‘ag’。
(6) 数值转换为字符串: str (v,s)
示例: v:=1234;str (v,s) 执行后, s的值为‘1234’。
(7) 字符串转换为数值: val (s,v,k)
示例: val (‘1234’ ,v,k) 执行后, 无错时, k=0, v=1234。
2 实例分析
【实例1】
输入任一字符串, 将其前后位置进行交换, 形成新的字符串输出。
例如: 输入abcdefg123, 输出321gfedcba
问题分析: 此题不难, 解决方法有多种, 为了了解上述字符串函数、过程的使用, 给出的方法是:
【实例2】
数字统计 (2010年全国信息学奥林匹克联赛试题)。
问题描述: 请统计某个给定范围 [L, R] 的所有整数中, 数字2出现的次数。数据范围: 1≤L≤R≤10000。
比如给定范围 [2, 22], 数字2在数2中出现了1次, 在数12中出现1次, 在数20中出现1次, 在数21中出现1次, 在数22中出现2次, 所以数字2在该范围内一共出现了6次。
问题分析: 根据题中给出的数据范围, 利用循环语句去分离每个数, 判断其各个位上的数是否为2, 并进行统计, 这样的方法既不超时, 也能很快计算出结果。如果想不出这种方法, 可以尝试一下将数字利用str函数转换成字符串来进行统计:
【实例3】文档编辑
问题描述: 暑假期间, 妈妈让小华帮忙修改英文资料, 英文中还有一些统计数据 (统计数据都是正整数, 而且其前后都有空格)。妈妈说: 如果文档结尾处有“end”, 则应当删除, 文中所有的统计数据都要加上一个正整数m。你能编程完成小华的任务吗?(说明: 文档的开头没有空格, 也没有连续的空格)
样例输入:
输出: There are 58 students in 32class.
问题分析: 由于统计数据其前后都有空格, 文档的开头又没有空格, 也没有连续的空格, 这样就可以以空格为线索来找统计数据。用pos函数找到空格的位置, 判断其前是否是数值字串, 是, 进行加数; 不是, 输出并删除。参考程序如下:
【实例4】
任给一个三位数abc, 算出abc与cba之和。若该和数不是回文数, 再按上述方法求和。依次类推, 直到得到回文形式的和数或者和数位数超过15时中止计算。
问题分析:
(1) 如果利用整数直接相加 , 计算起来简便 , 但和数很容易超出长整型的范围, 那就要运用字符串, 采用高精度算法进行计算。
(2) 需要用val过程将字符转换成数值进行运算。
参考程序:
【实例5】
请你当编辑 (2000年广东决赛题);
问题描述: 给出一篇文章及n条替换规则 (包括原串和新串)。如果文章中含有第一条规则中的原串, 就把它替换为新串, 一直到文章中已经找不出原串。用同样的方法使用第二、第三……第n条规则进行替换, 直到所有规则都用完。每次必须从文章开头开始寻找原串, 一条规则一旦使用完后, 将不能再使用。每一篇文章都是可编辑的。
问题分析: 一般的思路是从文中一个字符一个字符去截取与原串个数相等的字符, 进行对比, 找到了就替换, 直到文章结束。这种方法虽然能实现, 但编程有些繁锁。如果利用POS函数直接定位原串在文章中的位置进行替换, 程序既简单又易懂。
参考程序:
3 结语
字符串的运用主要是为非数值性数据提供了一个广泛的使用空间。这一内容不是很难, 同学们掌握了这一知识点, 对自己的思维训练及问题的解决都有一定的促进作用。
车牌自动识别中的字符特征提取 篇8
关键词:特征提取,复杂性指数,归一化
0 前 言
汽车牌照自动识别技术是智能交通系统中的关键技术之一,广泛应用于高速公路出入口、港口、机场、停车场管理处、军事要塞等场所。汽车牌照自动识别系统一般由图像采集、牌照定位、字符分割和字符识别4部分组成。车牌定位与字符分割技术已能基本满足实际需要,字符识别仍然是个瓶颈。对于应用模糊神经网络进行车牌字符识别的方法,识别结果与特征提取密切相关,而特征提取比较耗时,因此特征提取是关键所在。
本研究主要探讨车牌自动识别中的字符特征提取。
1 车牌字符的特征提取
特征抽取的目的是获取一组“少而精”的分类特征,即获取特征数目少且分类错误概率小的特征向量。目前,在特征提取与选择时还没有通用的理论作为指导,在实际问题中只能根据实验对比来确定分类的特征及相应的算法。一般的方法主要有基于统计的特征选取和基于字符结构的特征选取方法。无论哪种方法,用于字符识别的分类特征应具有较强的分类能力,即同一类中各样本间距离应尽量小,而类与类之间的距离则应尽量大,最好没有交叠部分。要具有较高的稳定性和抗干扰性,且特征向量应便于提取,算法要尽量简便,在保证识别系统性能的前提下,特征向量的维数不能过高,以减少机器开销,提高运算速度。
综合考虑上述因素,本研究根据车牌字符特性提取了笔画的4个复杂性指数,以及面积、复杂度、占空比共7个字符特征。
1.1 笔画的复杂性指数
车牌字符的结构有的简单,有的复杂。横笔画多的字符,垂直方向复杂;竖笔画多的字符,水平方向复杂[1,2]。为了反映出最能包含字符特点的字形和笔划结构,本研究引入了字符的复杂性指数,根据笔画复杂性指数的不同对字符加以分类。
实验中本研究将字符区域依次划分,如图1所示。图1中,4个方向分别为水平方向、竖直方向、右斜方向和左斜方向,本研究分别在各方向上计算黑象素总数和2阶中心矩。
设字符二值点阵图像为f(i,j),点阵的大小为M×N,ic,jc分别为字符质心的0°、90°方向坐标。S1、S2、S3、S4、S5分别代表0°、45°、90°、135° 几个角度方向的像素点黑像素总数,定义为:
M1,M2,M3,M4为对应方向的2阶中心矩:
字符在4个角度的复杂指数定义为:
由此构成四维特征向量X=(t1,t2,t3,t4)。这些特征量能很好地反映经过倾斜度校正的车牌字符的特征。
1.2 面积
这里的面积指的是字符目标区域所包含的像素个数,对于目标像素的灰度值为“0”的N×M的数字图像,面积A的计算式如下:
1.3 复杂度
复杂度C的计算式如下:
式中 L—周长;A—面积。
在相同条件下,圆形的周长最短,可称为最密集的形状,C=1;随着周界凸凹加剧,周长增大,C随之增大,因此常用复杂度作为区域相对于圆的离散性度量。
1.4 占空比
占空比L的计算式如下:
其中,最小外接矩形的长定义为连接目标边界上最远两点的距离,该直线称为长轴;宽定义为位于长轴两侧的目标边界点到长轴的最远距离之和。
2 数据归一化处理
在统计分析过程中,各个数据之间的量纲不相同,量级差别也很大,若直接进行后续处理,则对系统的性能影响很大。为了消除各特征之间量纲、量级等不同的影响,且使各个指标具有可比性,在分析之前需要对原始数据进行归一化处理[3,4]:
式中 xij、x′ij—第i个字符的第j个特征变换前和变换后的数据;xjmax、xjmin—n个字符中第j个特征的最大值和最小值。
3 字符特征提取
3.1 字符特征提取示例
车牌包含的字符模板可以分为如下3类:①汉字54个,包括京、津等省级简称31个,甲、乙等天干10个,子、丑等地支12个,以及“警”字;②英文字母26个:A、B、……Z;③阿拉伯数字10个:0、1、……、9。
在实验中分别对90类字符进行特征提取。特征提取步骤如下:
第1步,特征形成。根据传感器的测量值产生被识别对象的一组原始特征。
第2步,特征选择。根据本研究提出的特征提取方法确定车牌字符的7个特征。进行字符特征选择的主要原因在于原始特征很多,如果把所有的原始特征都作为分类特征送往分类器,不仅使得分类器复杂,分类计算判别量大,而且分类错误概率也不一定小,因此需要减少特征数目[5,6]。
例如:根据上述步骤对如图2所示的字符图像进行处理,其中字母B和数字2的提取结果,如表1所示。
3.2 归一化处理
由表1可知,各种字符特征数据的值域范围、数据分布均不同,为突出小数据特征的分类作用必须对所有特征值归一化处理。根据本研究提出的方法进行归一化处理,所得结果,如表2所示。由表2可知,归一化后各特征无量纲,各个指标具有可比性,为字符的识别提供了准确信息。
3.3 字符模型库的建立
分类器设计的好坏,对于字符识别效果有着重要的影响。模糊逻辑技术与神经网络技术是解决车牌识别这一复杂非线性问题的理想途径。对于利用模糊逻辑技术设计的模糊分类器,提高识别率的关键因素之一就在于能否获得一个良好的字符模型库。
以每类目标样本集特征的均值和方差来描述该类目标,即每类目标将对应一个确定的均值和方差矢量。假定共有c类目标,每类目标共有D个较好的特征和N个训练样本。每个样本中提取出的特征记为fijk,其中,i表示目标类,j表示特征序号,k表示样本序号。则第i个目标类特征的均值和方差矢量为P(i),Q(i),即:
根据本研究的特征提取方法,D的取值应为7。7个特征不仅具有较强的分类能力而且所构成的特征向量维数低,大大减少了机器开销,从而能提高识别算法速度。此外这7个特征具有较高的稳定性和抗干扰性,对字符的平移、旋转和尺度变换不敏感,从而为字符识别率的提高打下基础。
4 结束语
利用抽取到的90类数据的特征,本研究设计了一种基于模糊决策的模糊分类器,该算法由2部分组成:①建立各类字符的模型库;②利用模糊决策的方法对待识别样本进行识别分类。
以上算法本研究采用Visual C++ 6.0编程,并对1 000幅牌照进行了识别,识别算法不仅运算量小、速度快、效率高而且其字符识别率达96.2%以上,大大超过统计模式识别率92.3%。其主要原因在于本研究根据车牌字符特性提取的7个典型的形态学特征,具有较强的分类能力、较高的稳定性和抗干扰性,有助于建立完善的字符模型库。
参考文献
[1]杨枝灵,王开.数字图像获取处理及实践应用[M].北京:人民邮电出版社,2003.
[2]王永茂,刘贺平.强噪声车牌图像中的字符识别[J].计算机仿真,2006,23(12):244-246.
[3]DEFRIES R S,TOWNSHEND J R G.NDVI-derived landcover classification ata global scale[J].InternationalJournal of Re-mote Sensing,2004,15(17):3567-3586.
[4]王枚,王国宏.利用伴生与互补颜色特征的车牌定位新方法[J].计算机工程与应用,2007,43(1):206-211.
[5]李正峰,侯杰.基于改进遗传算法的车牌图像分割[J].计算机应用研究,2005,26(9):15-17.
“中”字符 篇9
1 联机手写数学公式识别
随着手写识别技术的不断发展,联机手写数学公式识别吸引了众多专家学者的注意,很多大学的相关院系都开展了这方面的研究工作,主要有德国的University of Technology,Munich、美国麻省理工学院(MIT)、加拿大Queen`s University、香港科技大学等[3]。不仅在识别研究的理论上进行了比较深入的研究,不少商业公司也推出了手写数学公式识别的产品,也形成了一些比较成熟的软件,如:The natural Log System,The Freehand Formula Entry System,Infty Editor等[2]。
数学公式识别主要可以分为印刷体识别和手写体识别,手写体识别又可以划分为脱机识别和联机识别。脱机识别是用户用普通的笔和纸书写完数学公式后,利用扫描仪得到图像,系统以这些图像为输入进行识别。而联机识别则是用户在书写数学公式的同时,识别也同时进行。而且联机手写数学公式识别是一种重要的人机交互技术,它为用户提供了一种自然简便的输入数学公式的输入方式。相比于脱机识别,联机识别的好处有:可以获得更多的输入信息,有利于提高识别率;用户每输入一笔,计算机可以马上进行识别,及时反馈信息。
数学公式中包括了数字、英文字符、希腊字母和其他一些特殊字符等,并且这些符号不像简单文本那样线性排列,而是按一定规则分布在二维结构中的,结构比较复杂,这些因素提高了识别的难度。由于书写数学公式时,界面和书写工具的非精确性、数学公式结构的复杂多变性、数学符号的二义性,以及泛化计算理论的要求等原因,使得手写数学公式的识别和编辑成为一个难点。数学公式中的字符主要分类如表1所示。
联机手写数学公式识别主要包括两个阶段———符号识别和结构分析。其中符号识别包括数字的识别、英文字符的识别和简易数学符号的识别,公式结构分析包括四则运算、字符上下标、简单分式和简单根号的表示。
2 字符识别
2.1 系统结构
字符识别的重点是提取特征和字符识别。特征提取的基本任务是研究如何从众多的特征中找出那些对公式识别最有效的特征,从而识别出用户输入的字符。字符识别的基本任务是对经过预处理的符号进行识别。系统结构如图1所示。
联机手写数字公式识别中的字符识别主要有以下步骤:收集用户输入的笔划、预处理、特征提取和字符识别。系统在进行识别时,主要流程如图2所示。
在字符识别部分,主要采用模式识别的方法。模式识别的主要有以下几个步骤:数据采集、预处理、特征选择、模型选择、训练和评估。用于训练和测试的数据必须首先被采集。数据的特性描述影响后续的特征选择和模型选择。然后分类器要被训练以确定系统的参数。评价过程常常导致前面处理的多次重复,以得到满意的结果。任何涉及分类器时所用的方法,只要它利用了训练样本的信息,都可以认为是学习算法。学习算法通常有无监督学习、有监督学习和强化学习。
2.2 收集用户输入的笔划
这一阶段的主要任务是记录用户输入的笔划。用户输入的笔划可以看作由一个一个的点组成,记录用户输入的笔划就是把这些点放入一个二维的数组中记录下来。用户在输入面板上输入笔划后,如图3所示。
2.3 预处理
用户输入的符号大小不一,笔划的方向和笔划之间的顺序也不一致。对用户输入的原始的笔划信息做预处理的目的就是消除这些干扰因素,将符号表示为规整的格式,方便最终的识别[1]。
2.3.1 笔划方向的统一
由于用户的书写习惯不同,每个笔划的书写方向不会总是一致,同一个符号的各个笔划的相对顺序也可能会发生变化。对于离线识别系统来说,由于系统的输入只是最终的图像,书写顺序的变化不会对识别产生干扰。但是对于在线识别系统来说,由于系统是顺序地记录下笔在书写板上的点序列,不同的输入顺序可能导致不同的识别结果。
笔划方向的统一具体的作如下规定:
(1)如果笔划是横的话,则起点在左侧,终点在右侧。
(2)如果笔划是竖的话,则起点在上边,终点下边。
(3)如果是斜线的话,则起点在左侧,终点在右侧。
(4)如果起点和终点距离比较近,则认为是闭合线。
2.3.2 笔划顺序的统一
一个符号可能有不只一笔的笔划,笔划顺序的统一是指符号笔划之间书写的先后顺序。需要对笔划的顺序作统一的规定,这样才更方便后面字符的识别。
如果只有一个笔划,则不需要调整笔划的顺序。如果字符有多个笔划,则以符号所在的包围盒的左上角为基点,以包围盒的上边为基线,每个笔划做从基点到笔划重点的连线,以连线和基线之间的大小进行排序。排序后的顺序可能与平时的书写习惯不一致,但是能保证经过预处理后的字符笔划顺序是统一的[1]。
2.3.3 平移和缩放
经过以上处理,还需要对符号进行平移和缩放,统一符号的大小。因为数学符号是二维结构的,各符号可能在不同的位置,大小也可能不同,为了方便进行符号识别,需要把各个符号缩放为同样的大小,移动到相同的位置。
首先进行的是平移。系统采集到的笔划为一个点序列,其坐标的原点是整个用户区域的左上角。把每个点的坐标值减去符号包围盒的左上角坐标,这样,符号中的点的坐标值就是相对于包围盒的左上角而言的[1]。
其次是对包围盒进行水平和竖直方向的缩放,使得到位和大小成为规定的单元大小[1]。缩放的目的是将大小不一的符号规整为相同大小的符号。在系统中,我们把输入的字符均缩放到360×360大小,原点位于该图的左上角。
如图4所示,所写的两个不同大小的字符,在经过平移和缩放以后规整为相同大小的符号。图4中黑色笔部分为用户书写的字符,红色的笔画为经过处理的符号。
2.3.4 重采样
由于不同的用户输入,不同的符号等因素,使得构成每个笔划的点数也是不同的,这就需要我们对笔划进行重采样,方便后续更好的提取特征。
在具体实现中,规定每个符号,不论它由多少个笔划构成,都只能由30个点坐标来表示它们的形状。选择使用30个点来表示笔划的形状,是由于数字和英文字母的笔划都相对较少,不像汉字,有的汉字笔划很多,用30个点表示可能造成每个笔划只有一个点表示,这对识别造成很大的影响,而对于数字和字母则不会出现这样的情况,所以采用30个点来记录每个符号的形状。因此,对于由N个笔划构成的符号,每个笔划由30/N个点构成。每个笔划的长度保持不变,但是均匀的分割成30/N段,由新产生的分割点来确定原来的笔划的形状。
经过平移、缩放和重采样之后,无论原来的符号的大小,也无论它由多少笔划以及笔划按照什么样的顺序采集,都可以把它用标准大小的正方形中的30个点坐标来表示。把这30个点坐标用一个60维的矢量来表示,其中第1-30维记录30个采样点的横坐标,31-60维记录30个采样点的纵坐标。
在重采样时采用等距离采样的方法,如果现在两个点之间的距离大于分割段的长度,则需要在此段进行采样,否则不需要在这段上进行重采样。
2.4 特征提取
模式识别的任务就是根据选择好的特征对模式进行分类,因此,特征提取是模式识别中的关键部分[4]。特征提取的是从众多特征中找出那些对分类识别最有效的特征,特征提取的过程也就是对对特征空间的维数进行压缩的过程。
一般来说,单个数学字符的笔划不会超过5个,每个笔划经过上述重采样,每个笔划由36个点组成,则可以利用这些点的(x,y)坐标作为符号的特征进行提取。此外,为了克服用户书写符号时不可避免的抖动现象,可以采用二阶微分平方和特征[1]。X方向和Y方向的二阶微分平方之和反映了笔划在X和Y方向的弯曲程度。经过上述处理,得到的符号是由一个74维的矢量表示的。
2.5 字符识别
在字符识别部分,主要采用的是模式识别的方法。
设计一个模式识别主要有3种方法:统计方法、按句法规则或结构化方法、人工神经网络方法。统计模式识别使用统计信息和估计理论的结果,去获得从空间到解释空间的映射。
统计分类方法有很多具体方法,例如贝叶斯决策论、K最邻近结点算法(KNN)、AdaBoost算法、决策树学习算法、MLP人工神经网络等。K最邻近结点算法(k-Nearest Neighbor algorithm)的基本思路是在所有N个样本中找到与测试样本的k个最近邻这,其中各类别所占个数表示成ki,i=1,…,c。定义判别函数为:gi(x)=ki,i=1,2,…,c。k-近邻一般采用k为奇数,跟投票表决一样,避免因两种票数相等而难以决策。AdaBoost算法针对不同的训练集训练同一个分类器(弱分类器),然后把这些在不同训练集上得到的分类器集合起来,构成一个更强的最终的分类器(强分类器)。理论证明,只要每个弱分类器分类能力比随即猜测要好,当其个数趋向于无穷个数时,强分类器的错误率将趋向于零。
贝叶斯决策理论方法是统计模型决策中的一个基本方法,贝叶斯决策论是解决模式分类问题的一种基本统计途径。其出发点是利用概率的不同分类决策与相应的决策代价之间的定量折中[5]。决策问题可以用概率的形式来描述,并且假设所有有关的概率结构均已知。其基本思想是:
(1)已知类条件概率密度参数表达式和先验概率。
(2)利用贝叶斯公式转换成后验概率。
(3)根据后验概率大小进行决策分类。
如果分别知道了两类特征向量分布的概率密度函数,就可以计算出它们各自的后验概率。首先,就是计算各自的类别总体概率密度,也称为出现x的可能性,贝叶斯公式如下:
式中,,称为x的总概率。和都是离散的概率值,和都是概率密度函数值。
在系统实现时,采用的是KNN算法。KNN算法是在一特征向量x为中心的一个邻域里,固定落入邻域中的样本个数为k(n)。在一个合适的距离尺度下,逐渐增大包围x点的区域的体积,知道有k个样本点落入这个区域中。这些就是x周围离它最近的k(n)个样本。这个区域的体积为V(n),则概率密度估计函数为:
如果x的周围的样本点个数较少,那么相应的区域会变得很大,而区域的体积V(n)也会变得很大,因此得到的概率密度值也就会变得很小。如果x周围的样本点个数比较多,则体积V(n)也就会很小,这样得到的概率密度值就会很大。
使用KNN算法测试识别结果如表2所示。
从表2中所列的识别率来看,识别率还是较高的,实现了系统字符识别的功能。系统还需要进一步改进来提高字符的识别率。
3 结语
简单地讨论了联机手写字符的识别技术,主要包括笔划输入、笔划预处理、特征提取、字符识别等各阶段。用户通过鼠标输入笔划,收集到用户输入的笔划后,进行预处理,预处理阶段主要解决笔划方向和笔划顺序的统一、笔划大小和位置的统一、笔划重采样等问题,然后对符号的特征进行提取,最后将其识别为对应的字符。在后续的工程中,将继续研究如何实现数学公式的识别。
摘要:数学公式是科学和工程文档中不可或缺的一部分,而通过手写输入的方式来书写数学公式更为方便,用户使用起来也更自然。联机手写数学公式的识别由字符识别和公式结构分析两个主要部分组成。介绍了进行字符识别的主要过程,包括笔划搜集、预处理、字符识别等。通过对各阶段的研究和分析,设计和实现了字符的识别。
关键词:联机手写,字符识别,模式识别
参考文献
[1]单洪浩.基于笔输入的数学公式编辑器[D].中科院软件所,2001.
[2]胡莹.联机手写数学公式识别系统的研究与实现[D].广州大学,2007.
[3]冯海波.基于手势和两级分类器的联机手写公式识别[D].中国科学院研究生院(软件研究所),2003.
[4]任建国.数学公式手写识别系统的研究与实现[D].新疆师范大学,2009.
“中”字符 篇10
TCP协议在传输报文段时会产生半包、粘包问题,主要有以下3个方面的原因:
(1)协议自身无消息边界。两个应用程序通过TCP连接交换8bit字节构成的字节流,TCP不在字节流中插入记录标识符。
(2)应用程序数据被分段或合并。当程序的一个数据包比较大时,会被放到若干个TCP报文段中传输;数据包比较小时,一个TCP报文段会携带几个数据包;TCP报文段也可能是其它形式数据包的组合。
(3)缓冲区工作机制。为了提高效率,发送方要等到发送缓冲区满,才会把TCP报文段发送出去。接收方同样也会等到缓冲区满才读取数据。
举例:如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发送方每次发送了多少个字节。接收方可以分4次接收这80个字节,每次20个字节。这样一来,前一次发的数据就会和后发的数据粘合在一起;也可能接收方在读数据时只能读取发送数据的一部分。
解决TCP消息无边界,通常有3种办法:①发送固定长度的消息,此方法简单但缺少灵活性;②使用特殊标记分隔消息,此方法需要处理消息的内容;③将消息长度与消息一起发送,此方法灵活但增加开销。
1问题产生分析
英文字符在网络传输时采用ASCII编码,而中文在网络传输时不能采用ASCII编码的方式,ASCII编码使用固定字节的编码方式,无论发送方和接收方都比较容易处理。
ACII编码不能对中文字符编码,在网络传输时可直接采用UTF8编码,这样在发送方不会产生太多问题。但是由于UTF8编码对中文采用不固定字节长度的编码方式,在接收方如果接收的不是完整包,就很容易产生各种问题。比如:若接收方只收到某个中文字符的部分字节,而该中文字符的其余字节还没有收到。在应用层采用基于正文的处理方式,进行读取该数据包的有效长度时会先把字节转换成字符,再进行匹配,取有效长度。收到字节数组在向中文字符转换时,由于不是完整的正文字节数,就会产生乱码,计算转换后的字符串字节长度就会导致与收到的字节长度不一致,可能会产生本来没有收到完整的包但计算的结果是字符已经接收完毕。本文提出一种基于正则表达式解决方案,将消息长度与消息一起发送。
2解决方案
本文将在消息长度与消息一起发送的方法基础上进行改进,提出一种基于正则表达式的方法解决上述问题。
2.1协议设计
数据报分首部和数据两部分组成,如图1所示。
首部字符串格式为:[length=?],其中问号为数据部分长度,单位为字节(不是字体数)。注:若数据部分有与首部同格式字符,则进行变换,此处不再进行叙述。
2.2正则表达式设计
针对协议首部格式,正则表达式设计为: <=^[length=)(d+)(?=]。
2.3算法设计
(1)接收方收到对方发过来的字节数组,设长度为L;(可能半包、完整包、多包几种情况混合)。
(2)把字节数组转换成字符串,若不是以首部格式开头,进行缓存,转到(6),否则转到(3)。
(3)使用正则表达式,取出首部,设首部长度为h1,取出首部中所携带的消息长度d1。
(4)用L-h1与d1比较。若L-h1
(5)得到完整数据的字节数组,对字节数组转换到中文字符串,转到(6)。
(6)程序结束。
2.4流程
总的程序流程如图2所示,流程图1为主调函数部分,实现依次处理每个完整的报文段,流程图2实现取单个完整数据包部分,流程图3为半包、单包和多包分别处理。
2.5实现
定义一个类StickPackag,类有数据成员temp和函数成员GetAllActualString和GetActualString。temp用来缓存不完整的包,GetAllActualString通过调用GetActualString函数返回所有完整包,GetActualString通过每次取出一个完整包。代码用C#语言实现,如下:
3结语
该算法目前已经应用到实际项目中,无论同步传输还是异步传输,从效率和稳定性上来看,满足了用户的需求。实践证明该方法是可行且可靠的。
摘要:TCP提供了一种面向连接的、可靠的字节流服务。但字节流式传输将导致应用层的数据到达接收端后产生半包、粘包等现象。针对如何还原发送端数据,给出了一个基于正则表达式的解决方案,并用C#语言进行了实现。测试结果表明,该方案能很好地解决中文传输的粘包问题,并已经应用到实际项目中。
关键词:网络传输,粘包,半包,正则表达式
参考文献
[1]W.RICHARD STEVENS.TCP/IP详解卷1:协议[M].北京:机械工业出版社,2009.
[2]马骏.C#网络应用编程[M].第2版.北京:人民邮电出版社,2010.
图片字符也要即选即译 篇11
因为工作的原因,我经常需要看一些英文资料。一些文本型的资料,可以轻松使用金山词霸、必应词典之类的软件进行单词翻译,或者通过划译进行整句甚至整篇文章的翻译。但是有些资料是图片形式,虽然翻译软件具有OCR识别功能,但只是译词,无法像划词那样进行整句翻译。能否对图片也进行类似划词那样的整句翻译?(题号:20151302)
解题思路
因为类似金山词霸、必应词典之类的软件进行工作的时候,它们是通过读取鼠标选择的单词或句子,然后从字库中提取单词进行翻译的。默认图片上的元素我们无法直接通过鼠标选取,因此要实现上述整句翻译的效果,我们就需要将图片转换为可选择的文本。下面我们通过“必应词典”+“捷速OCR文字识别软件”来实现。
解题方法
首先下载并安装“必应词典”,启动软件后勾选“划译”并取消“取词”。接着点击“设置”,在打开的设置页面的划译选项下选择划译方式为“Ctrl+鼠标划译”(这样正常选择文本的时候不会自动激活翻译),然后将其最小化到任务托盘(图1)。
接着启动捷速OCR文字识别软件,点击“读取”,然后在打开的页面选择需要进行整句翻译的图片,这样导入图片后就可以将其内容识别为文本(图2)。
图片导入后软件会自动选择文本页面,如果软件选择范围不精确,可以使用鼠标进行微调(注意:尽量精确确定选择范围以提高识别率)。点击“读取”,这样在图片的右侧会自动进行识别扫描。因为识别精度不可能达到100%(对于纯字符图片,软件基本可以识别95%以上的字符),为了方便必应词典进行准确翻译,这里可以依次选中识别错误的字符,然后对照原文直接进行更改(图3)。
完成OCR识别字符的更改后,现在我们就可以像文本划译那样操作了。只要先按下Ctrl键,接着使用鼠标在识别文本上进行选择,此时在选择文本的上方会出现一个必应词典的机器翻译的图标,点击后即可自动对选中的句子进行整句翻译了,具体的使用和文本翻译是一样的(图4)。
“中”字符 篇12
目前,我们使用的大多数OCR(光学字符识别)软件,对于汉字的识别已经有了较成熟的发展,应用于各行各业的文字识别问题中。然而,相比汉字识别而言,目前对于数学公式字符识别的O C R技术还尚不成熟。我们越来越意识到公式识别对文档的电子化传送以及对一些重要的科技文献的录入工作的重要性。因此,对文档中数学公式的识别技术成为文档识别中的热点和难点问题。
对于一个相对成熟的汉字识别O C R技术而言,解决中文文档识别中数学公式字符的定位问题是很有意义的,公式字符定位的错误率会直接影响到公式识别以及整个文档的识别率。
2 字符定位技术
数学公式的定位,包括独立行公式的定位与内嵌公式的定位。对公式的定位技术一般包含两类:基于字符识别结果;没有基于字符识别结果。
K.Inoue提取整个文档的连通体并对其进行分类,并利用识别结果,进行适当合并得到公式[1]。A.KACEM等人利用独立行的特征识别独立行[2],内嵌公式则是通过先识别一些特殊数学符号,然后以特殊符号为中心向两边扩展得到内嵌公式[3]。Chowdhury等把独立公式行分成三类:分式、矩阵、其他,对每一类分别提取特征后,利用决策树进行分类[4]。Xue-Dong Tian则把文档分成文本、公式、图片三类块,先从图片中提取出独立行公式,再从文本中提取内嵌公式[5]。南开大学机器智能研究所研制的M a t h e R e a d e r[6]。Mathe Reader在定位公式时,利用了非参数估计Parzen方法提取独立公式行,并通过水平投影标记异常符号提取内嵌公式。基于多候选的数学公式识别系统[7],在定位字符时,使用3次动态规划方法对公式图像进行多候选公式符号切分。
上述所说的现有定位技术已经基本上可以切分公式字符,然而基于识别结果定位字符必然会增加识别器的负担。Mathe Reader是目前较完整的数学公式识别系统,而在处理内嵌公式时并不能完全的定位公式字符。本文提出了一种新的定位思想,可以有效的对数学公式进行定位。
在本文中,要处理的中文文档以科技文档为主,其特点是中文、英文、标点和数学公式混排的文档。在处理此类文档中,我们发现不同字符的特征区分度是较大的,而且往往只是利用一种特征或者方法是不能完全定位出公式字符的。因此,文中提出公式字符的定位采用两级定位方法,其大体框图如图1所示。
第一步,先对文档中的汉字和符号进行初步分离,即为一级定位,第二步,利用汉字识别器的结果对符号进行拒识,最终定位公式字符,即为二级定位。
3 定位方案
3.1 公式字符一级定位
公式定位的好坏对于整个文档识别系统来说是关键点和难点的问题。字符的一级定位,根据汉字与符号的不同投影分布特征利用投影法[8],对汉字与符号进行初步分离,包括对独立公式行与内嵌公式行的定位处理。
3.1.1 独立公式行定位
独立公式行是在文档中单独成一行的公式。我们知道文档中公式的存在形式往往是在整个文档中独立占一行的,而且独立行的行高和行密度都要高于一般的普通文本行,可以根据这一特征对文档中的独立行进行定位,即为行切分。
独立行公式的定位算法是:
1)将文档的灰度图像转化成二值图像。
2)对整个文档版面逐行向垂直方向上做行投影,记录下每行行密度、每行的上行间距以及下行间距。
设某一图像区域的起点(左上角)坐标为(x1,y1),其终点(右下角)的坐标为(x2,y2),则
垂直方向上的行投影定义为:
对于任意的x∈(x1,x2),y∈(y1,y2)
其中,当二值图像中任意像素点的像素值P(x,y)=0,Numh=0;当P(x,y)≠0时,Numh=1。
3)根据一些经验阈值对独立公式行进行行切分。
具体做法:根据行投影的结果得到测试样本图像的每行行密度H′md、每行的上行间距H s′h以及下行间距H x′h。
该行可能为公式行
else
该行可能为文本行
其中,平均行密度Hmd以及平均行间距Hav是通过大量训练样本得到的训练得到的阈值。
4)然而公式往往都是二维结构的,所以在行分割后,还要适当的合并虚假行完成对独立公式行的定位。
3.1.2 内嵌公式行定位
内嵌公式行是含有公式字符的文本行。在内嵌公式的定位问题上,首先要找到汉字与公式字符的不同特征。通过对文本行进行列投影,可以得到结论:一般汉字的字符宽度比公式字符的字符宽度要宽,且汉字的字符高度比公式字符的字符高度要平均且高,可以根据这些投影特征来初步确定内嵌在文本行中的公式字符,即为字切分。
设某一图像区域的起点(左上角)坐标为(x1,y1),其终点(右下角)的坐标为(x2,y2),则
水平方向上的列投影定义为:
对于任意的x∈(x1,x2),y∈(y1,y2)
其中,当二值图像中任意像素点的像素值。
根据行投影和列投影的结果,对汉字与符号进行一级定位,即行切分与字切分。对于内嵌公式字符而言通过一级定位,可将文本行中的字符初步的分为汉字集和公式字符集。然而,实验证明一级定位不足以对文档中的所有公式字符进行定位,特别是对内嵌公式行的定位还要进行二级定位。
3.2 汉字识别二级定位公式
公式字符的二级定位主要是针对内嵌公式字符的定位。内嵌字符经过一级定位后,对公式字符集再进行汉字识别。汉字识别拒识的字符最终定位为公式字符。
汉字识别O C R技术已经很成熟了,在文中就不进行详细的介绍,下面介绍汉字识别的拒识思想。
通过大量的训练样本,得到汉字的拒识参数阈值e以及汉字的标准样本特征库。计算出每个测试样本字符本身的拒识参数eij,即每个测试样本字符的特征向量与特征库中样本的特征向量之间的距离。
其中,eij是第i个测试样本与第j个特征库样本之间的欧氏距离,n是特征向量的维数。
内嵌公式的定位整体算法如下:
1)得到汉字行的列投影特征,选取区分度较好的字符列投影宽度特征θzk以及的峰值特征θfz作为阈值。
2)得到测试样本字符的高度H(行密度)与宽度W(字密度)。
3)计算高宽比R=H W。
5)将步骤4)的公式字符进行汉字识别,识别器拒识的字符最终定位为公式字符。
汉字识别拒识的字符送到公式识别器中识别,若是无法识别的字符可以进行定位修正。
上述方法中Rmin,Rmax是都利用大量的汉字训练样本训练出的符合大多数汉字的经验值,在此限定条件可以提高定位的准确率。
4 定位结果及分析
下面给出上述介绍的两级定位方法的结构框图以及定位公式字符的效果图。
如图2,我们可以看到行投影确定独立公式行的定位,再利用列投影将文本块中的公式字符进行初步定位,完成一级定位;根据一级定位的结果将公式字符集中的字符进行汉字识别,并把汉字识别器拒识的字符最终定位为公式字符,完成二级定位。图2中的公式识别器可以作为辅助汉字识别器进行最终的定位修正。
如图3,根据上述定位思想实现的对文档中的公式字符的定位效果图。从图3中可以看出公式定位效果是不错的,特别是对内嵌公式字符的定位较准确。同时本文提出的定位方法在定位公式字符的时间和准确率上都有了明显的提高,既避免了利用单纯的特征无法完全的定位公式字符的苦恼,也避免了定位之前对每个字符进行识别的大工作量。
5 结束语
本文提出的公式字符定位方法是通过两级定位对文档中的公式字符有效地进行定位。然而,两级定位是要基于汉字识别的基础之上的,所以汉字识别率的高低问题就成为定位的关键问题。只要汉字识别率较高,就可以得到公式字符较为准确的定位结果,为提高文档识别系统的识别率奠定了基础。
摘要:数学公式字符的定位对整个印刷体中文文档识别系统而言是提高其识别率的重要内容之一。在介绍典型的数学公式字符定位技术的基础上,提出了一种新的两级公式字符定位方法。该方法是采用了印刷体中文文档中不同字符之间的投影分布特征的不同与汉字识别拒识公式字符的思想结合起来对公式字符进行定位。从实验结果可以看出该定位方法能够在公式字符定位的准确率和时间上有了较大的改进,为提高印刷体中文文档识别系统的识别率奠定了基础。
关键词:公式字符定位,两级公式字符定位,投影分布特征,汉字识别
参考文献
[1]K.INOUE,R.MIYAZKI,M.SUZUKU.Optical rec-ognition of printed mathematical doucuments[C].In Pro-ceedings of ATCM’98.1998:280-289.
[2]A.KACEM,A.BELAID,M.Ben AHMED,Automaticextraction of printed mathematical formulas using fuzzylogic and propagation of context[C].International Journalon Document Analysis and Recognition.December 2001,Vol 4,No 2,pp:97-108.
[3]王科俊,王黎斌,林桂芳.科技文献中数学公式定位技术概述[J].自动化技术与应用.2004,23(5):1-4.
[4]CHOWDHURY,S.P.MANDAL,A.K.CHANADA.Automated Segmentation of Math Zones from DocumentImages[C].Proceedings of Seventh International Conferenceon Document Analysis and Recognition.2003,pp:755-759.
[5]XUE-DONE TIAN,WEI-ZHONG SUN,MINT-HU HA.Research on Optical Formulas Extraction[C].Proceedings of 2005 International Conference on Machine Learning and Cybe netics,2005,Vol.8.pp:4886-4890
[6]靳简明,江红英,王庆人.数学公式识别系统:MatheReader[J].计算机学报.2006,29(11):2018-2025
[7]郭育生,黄磊,刘昌平.基于多候选的数学公式识别系统[J].计算机研究与发展.2007.44(7):1144-1150.