爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1475|回复: 20
收起左侧

Mini Ocr 汉字显示字体识别软件

[复制链接]
发表于 2005-9-1 19:52:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
Mini Ocr 汉字显示字体识别软件

首先声明,我不是一个OCR领域的专家。我的经验来自我写Mini Ocr软件的过程。


                                                             ―― 马飞涛


关于Mini Ocr 软件


    本软件是飞涛软件工作室开发的一款免费Ocr软件,主要用于识别图像文件之中,出现

的汉字显示字体。Ocr的中文含意是光学字符识别。

    为什么叫Mini呢?因为现有的识别汉字的商业Ocr软件,动辄二三十兆,而本软件解

压后,也不过三兆多,身材比较纤小,再加上本软件主要用于识别字体比较小的汉字,所

以叫Mini,中文的发音是“迷你”,中文含义是超小型。

下载 汉字识别显示字体识别软件

(下载地址:  http://www.18ie.com/miniocr.zip )

软件大小:2.7M



既然有了商业Ocr软件,为什么还要开发这个软件?


    不同于商业Ocr软件,本软件是免费的,可以自由使用。第二个不同之处,本软件的

识别对象是屏幕出现的“显示汉字”,而不是针对扫描仪扫出来的“打印汉字”。二者有什

么不同呢?最重要的一点: 扫描出来的打印汉字的高度和宽度一般都在30多个像素点之

上,这是我用画图软件,打开某个商业Ocr的samples\sample1.tif,然后一点一点数出

来的。从文件名和目录名的中文含意可以看出,这个点数应该是一个典型值。那么,如果

用商业Ocr识别屏幕上出现的小五号字,汉字的高度是12个像素点,会出现什么情况呢?

    测试方法:用记事本随便写几行汉字,设置字体为小五号字。这大概是看着还算舒服

的最小号的汉字字体了(高度是12个像素点),如果再小,字体就很难看了。然后,按拷

屏键PrtSc,把屏幕的图像拷贝、粘贴到画图软件中,修剪尺寸后,保存为bmp的格式。

然后,我找了两个国内最著名的Ocr软件进行测试,结果让人大吃一惊,识别率几乎为零。

把图像放大两倍,再测试,结果仍然很不理想,大概也只有百分之二三十的样子。



开发Mini Ocr软件的由来


    我在开发护花使者反黄图像识别软件的时候,遇到有些图像里,嵌有某些文字,如果能

把文字识别出来,图像的含义就很容易让计算机理解了。预算有限,我连扫描仪都舍不得

买,就更别想买商业Ocr的开发包了,大概几十万,或者更多,或者别人压根就不卖。况且

它们的识别率对小字体几乎为零,不符合我的要求。看来,只好自力更生,重新写一个了。



开发Mini Ocr的历程


    经过三个多月的努力,终于诞生了这款Mini Ocr 软件。第1个月做出了汉字识别的

核心模块,第2个月做出了文章段落切分的算法,并加入了对英文,数字,标点的支持,

第三个月继续调整英汉混排和汉字切分的算法,并用MFC 做了一个界面。




Mini Ocr的软件架构

   为了让更多的人能使用到这个软件,我在windows系统下,采用VC进行编程,界面当

然只好用MFC写了。软件架构是一个SDI框架下的多窗口切分界面,左上角的窗口是一个

CFormView,用来显示常用的按钮;左下角是一个CEditView,用来显示帮助信息;右上角

是一个CView,用来显示要识别的图像;右下角是一个CEditView,用来存放识别出来的文

字。识别部分采用了工作者线程,以避免显示界面的主线程僵掉。识别部分是整个软件的

核心,与操作系统无关,可以单独摘出来放在dos窗口里跑,也可以移植到Linux系统中跑。



汉字识别软件的难点所在:


    英文识别有一些开放源码的软件,我看过的软件,主要采取两种识别方法:基于规则

的方法,和采用神经网络方法。而这两种方法,在识别汉字时,都不宜采用。因为汉字数

目众多,最常用的国标2312的一级汉字就有3755个。如果借用基于规则的方法,需要对

三千多个汉字,逐一人工写出分类规则,工作量太大,我一个人无法完成;如果采用神经

网络的方法,这么多汉字,我不敢想象,需要多少层网络和神经节点呀!如果采用网格法,

抗位移的效果太差;而采用不变矩法,识别人和入,土和士,相似度又难于控制。除此之

外,汉字切分也是一大难题。英文宽度大概只有汉字一半,标点符号大概只有汉字三分之

一宽,数字大概只有四分之一的宽度。而汉字本身又有二分字,和三分字。某些字,如“啊”,

字体小时可能是独体字,字体大些,变为二分字,字体再大,又变为三分字。加上汉字与

汉字之间的粘连、汉字与英文的混排,英文与英文的粘连,造成汉字切分模块的算法,甚

至比汉字识别模块的算法还要复杂得多。为了克服这些难点,并加快识别速度,我在算法

设计时,采用了一些优化和简化的策略。经过实践检验,证明行之有效。




Mini Ocr进行汉字识别的策略:

1) 采用复合特征的分类方法。

2) 字符集选择3755个一级汉字。

3) 字体选择最常用的宋体。

4) 字号选择从小五号到一号汉字,主要针对20个点之内的小字体。

5) 英汉混排时,汉语优先。

6) 汉字粘连时,进行动态优化切分。

7) 识别前,先进行页面切分,把页面分割成一个一个的文字段落,擦除图形块,保留文字块。按照文字块先后顺序进行识别,以期处理图文混排的页面时,能达到更好的识别效果,并排除图形的干扰,加快文字的识别速度。

展望与下一步的开发计划:

1) 重新优化英文识别的算法;

2) 对英文粘连的切分算法进行调整;

3) 移植进入Linux;



选择Ocr软件的建议:


    如果您选择Ocr软件,目的是用来识别扫描仪出来打印字体,推荐还是选用知名的商业Ocr。

    如果您要识别屏幕上显示的汉字,Mini Ocr是一个比较不错的选择。真诚地希望您在使用

中,能喜欢上它。


    如果您有任何意见、建议,或者开发需求,或者希望进行源代码的交流与合作,欢迎与我联系!


Mini Ocr软件作者:

马飞涛

[ 本帖最后由 sousou 于 2005-9-1 21:03 编辑 ]

评分

参与人数 1实力分 +2 收起 理由
myirene + 2

查看全部评分

发表于 2005-9-1 19:58:43 | 显示全部楼层
厉害,支持,~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2005-9-1 20:00:58 | 显示全部楼层
提醒一下,好像不能下载哦~~~
回复 支持 反对

使用道具 举报

发表于 2005-9-1 20:05:21 | 显示全部楼层
我能下,多谢分享。
回复 支持 反对

使用道具 举报

发表于 2005-9-1 20:21:45 | 显示全部楼层
下了,试试看,谢谢LZ
回复 支持 反对

使用道具 举报

发表于 2005-9-1 20:23:11 | 显示全部楼层
下了个乱七八糟,呵呵,不能用,LZ给重新看看吧。
回复 支持 反对

使用道具 举报

发表于 2005-9-1 21:11:38 | 显示全部楼层
LZ厉害!           。。。。
回复 支持 反对

使用道具 举报

发表于 2005-9-1 21:17:47 | 显示全部楼层
厉害~~~~~~~~~~!加分!
回复 支持 反对

使用道具 举报

发表于 2005-9-1 21:20:33 | 显示全部楼层
不知能否把PDF,CAJ,VIP的文章识别出来呢
这岂不是拿着数码相机进书店、图书馆,一顿拍然后回来用这个识别保存为文本呢。
一些无法复制的网页也可以保存内容了~~~~~~~~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-1 21:21:32 | 显示全部楼层
原帖由 写轮眼 于 2005-9-1 21:17 发表
厉害~~~~~~~~~~!加分!


写轮眼斑竹骗俺...................
回复 支持 反对

使用道具 举报

发表于 2005-9-1 22:02:52 | 显示全部楼层
超强!向你学习.
回复 支持 反对

使用道具 举报

发表于 2005-9-1 22:08:21 | 显示全部楼层
原帖由 写轮眼 于 2005-9-1 21:20 发表
不知能否把PDF,CAJ,VIP的文章识别出来呢
这岂不是拿着数码相机进书店、图书馆,一顿拍然后回来用这个识别保存为文本呢。
一些无法复制的网页也可以保存内容了~~~~~~~~~~



应该能达到这个效果吧,呵呵,下载了试试看。

CAJ5.5版本自带的OCR功能就很强啊,但是6.0就没有了。
回复 支持 反对

使用道具 举报

发表于 2005-9-1 22:52:59 | 显示全部楼层
强!支持楼主
回复 支持 反对

使用道具 举报

发表于 2005-9-1 22:58:35 | 显示全部楼层
幸亏我用的是CAJ5.5~~
刚才做试验,对着书拍了张照片,无法识别……悲愤
不知道要什么样的图片才合格?

楼主,不要哭,你看,这不是加了么

[ 本帖最后由 写轮眼 于 2005-9-1 23:02 编辑 ]

就是这个图

就是这个图
回复 支持 反对

使用道具 举报

发表于 2005-9-1 23:05:27 | 显示全部楼层
好强啊~很好用,用示范的图片真的一字不留的辨别出啦,但用自己的图片就有乱码的情况,不过效果也算不错
回复 支持 反对

使用道具 举报

发表于 2005-9-1 23:37:30 | 显示全部楼层
楼主厉害,要是多看看小8相关,我们就有福了!
回复 支持 反对

使用道具 举报

发表于 2005-9-1 23:46:26 | 显示全部楼层
再次表示支持!加分了
回复 支持 反对

使用道具 举报

发表于 2005-9-1 23:53:16 | 显示全部楼层
这个软件不能识别自己拍的文字图像!
使用office2003工具中的Document imaging就行了(完全安装才有)
识别率超高!
回复 支持 反对

使用道具 举报

发表于 2005-9-2 00:19:55 | 显示全部楼层
范例图片识别效果很好,
用DC拍的文字就....
回复 支持 反对

使用道具 举报

发表于 2005-9-2 08:08:53 | 显示全部楼层
扫压缩包自带的效果超好,但是我用自己的图片,好几百个字啊,认识的没几个,都快成文盲了:D
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-7-2 12:56

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表