一、FAQ
Q:什么是OCR?
A:OCR是Optical Character Recognition(光学字符识别)的缩写,简单点说,就是将扫描出来的书籍图像文件,转换成可以编辑、查找的文本文件。
Q:为什么要OCR?
A:理由如下(不是全集,您还可以想象其它的理由):
以目前的技术,图像文件还不能进行全文检索,但是转换成文本后想怎么检索都好说。
图像文件上的文字很难被引用,但是复制、粘贴文本谁不会?
与文本文件的尺寸相比,图像文件显得大了点。
图像文件的浏览比较受限制,看多了容易疲劳,文本文件相对好一点。当然也有人对此持相反观点。
不可否认,目前网上文本格式的书源要比图像格式的贫乏许多,在OCR的门槛降低到人人都能参予后,相信会有助于丰富文本格式的书源。
Q:OCR的好处已经明白了,那么它有没有什么短处?
A:世间不如意,常十之八九:
以目前的OCR技术,还不能保证准确率达到100%,因此OCR出来的结果可能会包含大量的错字、别字,需要进行校对。
以目前的技术,想完整再现原文版式是一件很有难度的工作,因此OCR出来的结果通常还需要重新排版。
OCR需要进行复杂的内部运算,消耗大量的CPU时间。
最关键的一点:以目前能够达到的技术,OCR用来识别以文字为主的文史类书籍还凑合,要想识别图文混排、中英文混排、包含复杂表格、字体应用比较丰富(尤其是斜体)的理工类书籍,识别出来的结果多半有点哭笑不得。
如果看了上面的说明后您已经对OCR心灰意冷,可以不必浪费时间往下看了。
Q:为什么要用Pdg2Pic、TextForever来做OCR?
A:目前市面上有很多成熟的OCR产品,包括清华、汉、丹青等。从我使用的情况看,这些产品的识别率基本上已经接近技术的极限, 只是在使用方便性上还有一些不足,尤其是在批量识别方面。而Pdg2Pic、TextForever(以下简称PT)则是专门为了批量OCR而设计的。如果您觉得批量识别用处不大,建议您还是选择这些专业OCR软件。
Q:PT在技术上有什么特点?
A:PT基于微软Office 2003提供的Microsoft Office Document Imaging (MODI)所带的OCR引擎。这个引擎的中文识别(包括简体和繁体)采用的是清华的技术,因此具有下列特点:
在简体中文环境下识别简体,或在繁体中文环境下识别繁体都没有问题,但是想在简体环境下识别繁体,或在繁体下识别简体,则需要对软件进行配置或安装,详见后面的叙述。
识别率比上不足,比下有余,毕竟清华也不会傻到自断财路。但是在所有商业级OCR软件中,微软MODI是唯一公开编程接口的,因此才能被PT所调用。如果您能够提供识别率更高,并且没有法律后患的其它OCR引擎的编程接口,我很愿意对PT进行更改。
OCR引擎本身提供了对字符的识别,但是没有提供版式恢复功能。MODI将识别结果发送到wps里的版式校正是微软自己做的,我自认做不到那个水平,所以OCR出来的结果在排版方面需要多花点功夫。
Q:为什么其它OCR软件都很大,而MODI的尺寸这么小(简体中文版安装包才5MB多一点)?
A:在历史上,针对印刷体OCR的技术路线,国内OCR界曾经爆发过一场争议,主要观点分成两派:
一派认为为了提高识别率,应该先识别出印刷(打印)时采用的字体,然后针对字体特征进行识别。国外OCR界在识别字母文字时也有人持相同的观点。这种路线的好处是显而易见的:
1、在识别出字体后,字符特征相对固定,识别率能够得到提高。
2、得到原文的字体后,便于恢复原文版式。
当然缺点也是明摆着的:需要针对每一种可能遇到的字体建立特征库,如果需要识别的字体不在事先建立的特征库范围内,则识别率急剧下降。但是众多的特征库不仅占用存储空间,对OCR的运行效率也有影响。
另一派认为事物是有区别的,但又是普遍联系的,如果割裂这些联系,就会……(以下省略高中《辨正唯物主义》教材中的若干着名论断)。总之,在他们看来,字体会变,但是汉字的笔画是不会变的,中文的“文”字那一横在宋体中是平的,在楷书中是斜的,但是一横就是一横,绝对不会变成一竖。因此该派认为没有必要为所有字体建立特征库,大家共用一个就可以了。这种路线的好处是:
1、特征库比较单纯,库的体积相对较小,识别速度也相对较快。
2、即使需要识别的字体比较少见,识别率也不会差到离谱。
这种路线的缺点是:
1、需要针对大量字体进行特征归纳,并在机器归纳基础上手工调整,开发的时候比较累。
2、由于大量字体之间的平均效果,识别率会比采用第一种路线的差上那么一点点,不过做好了感觉就不是那么明显了。
3、由于没有字体信息,很难恢复原文版式。
在开始的时候,由于硬盘资源对于用户来说是一种比较昂贵的资源,因此清华是第二条路线的坚定支持者和倡导者。但是随着OCR引擎的竞争逐渐转移到对原文版式的恢复上,而硬盘价格直线下降,清华开始全线转移到第一条技术路线上。从MODI安装的文件来看,微软购买的显然是清华采用第二条技术路线时的产品,所有字体共用一个特征库,尺寸当然就下来了。
与此形成对照的是某些人喜欢用的CAJViewer。从文件上看,它采用的也是清华的OCR引擎,而且是按第一条路线实现的,附带庞大的字体特征库,安装包几乎是MODI的10倍大小,速度也比MODI慢。但是从应用功能上看,CAJViewer仅仅识别出纯文本,没有字体信息,至少没有将识别出来的字体信息展现出来。用一个形象但不一定恰当的比喻,相当于花钱买了一整只烤鸭,结果只吃了一个鸭PP就算了,总给人一点冤大头的感觉。
Q:如果我对OCR出来的结果不满意,怎么办?
A:OCR效果和下列因素有关:
OCR引擎。这个不行就只能换一个。不过如前所述,我能用的就只有MODI一个。
图像质量。这个其实是决定OCR质量最为关键的因素。好的图像应该黑白分明、页面端正、字迹清楚,无笔画间断、粘连,或污迹干扰。如果原始图像较差,可以先手工进行修正,包括纠斜、去除污迹、调整图像明暗等。处理时推荐使用专业图像处理软件,如果用不了也可以用简单点的ComicEnhancer Pro。
语言选择。中文简体和繁体的识别是不同的,英文和中文的识别也不同,因此针对图像中的文字,选择合适的语言,有助于提高识别率。
二、开始转换
1、为在简体中文环境下OCR繁体中文所做的准备
如果您不需要在简体环境下识别繁体,或在繁体环境下识别简体,可以跳过本节。
让繁体Office 2003支持中文简体OCR非常简单:到下面的页面去下载一个简体OCR安装包,运行即可安装:
简体中文Office 2003想支持繁体OCR则没有这么简单,至少在我写这篇文章的时候,微软尚未发布繁体OCR的安装包。不过变通的方法也不是没有:找一台安装了繁体中文Office 2003的机器,进入下面的文件夹:
C:\Program Files\Common Files\Microsoft Shared\MODI\11.0
将下面的文件复制到安装了简体中文Office 2003的相同文件夹下:
TCCODE.UNI
TCPRINT.DAT
TCPRINT2.DAT
TERHT.DAT
TCTREE.DAT
TW_BU.DAT
TW_UB.DAT
TWBIG532.DLL
这样改造后,直接用Office 2003的MODI还不能OCR繁体,因为在MODI的“工具->选项”中,在“OCR”这一页的“OCR语言”项里就没有“中文(繁体)”选择。不过对于直接调用MODI的编程接口的PT来说,这样处理后就已经可以识别繁体中文了。
我比较了一下,似乎在繁体中文Office 2003环境下安装简体OCR包后,并没有改变MODI的EXE文件,所以我猜测可以通过更改配置的方法让简体中文MODI出现“中文(繁体)”选项,不过我试了一下没有试出来,如果有哪位高人愿意指点,还请不吝指教。
另外在简体中文环境下,按照上述步骤设置后,用PT识别出来的繁体中文是GBK编码的繁体字,可以用TextForever的“编码转换功能”批量转换成GB编码的简体字。
2、OCR前的图像准备
想要OCR,当然首先就要有OCR所需的图像文件。对于Pdg2Pic,只需准备PDG文件即可。对于TextForever,由于它只认单色(黑白)TIFF文件,因此如果原始图像文件不是单色TIFF,需要先对图像进行转换,转换的时候如果能顺手对图像进行一下清理、纠斜当然更好。
转换、清理、纠斜都可以使用专业图像处理软件完成,不过对于一般用户,建议使用简单点的免费软件ComicEnhancer Pro 。 这个软件不仅能够批量将图像转换成单色TIFF(“色彩”选项选“单色”),而且能够对图像进行处理,以改善页面效果。所有处理功能都能实时预览到处理效果,便于修改。
需要注意的是,对于PDG文件,建议不要转成图像后再用TextForever识别,而是直接用Pdg2Pic识别,以避免某些多层PDG转来转去损失质量。
3、开始OCR
Pdg2Pic和TextForever的操作都差不多,先选择需要OCR的文件夹,然后选择结果文件,即可开始转换。对OCR选项的解释如下:
自动旋转:选中此复选框可检测页面中文本的方向,并旋转倒置或倾斜的页面图像。
自动拉伸:选中此复选框可检测页面中文本的方向,并对正稍未对齐的页面。
语言:选择OCR语言。可供选择的有英文、中文简体、中文繁体。缺省为中文简体。
注意:自动旋转、自动拉伸均需要时间,考虑到多数文件不需要进行校正,因此这两个选项缺省不选中。如果页面确实变形比较厉害,可以选中后重新OCR。不过有时“自动旋转”出来的结果偏差比较大,所以建议只选“自动拉伸”即可。
4、OCR之后的麻烦事
OCR过程很简单,点几下鼠标就完事了,但是要想真正将结果实用化,还至少需要做两件事:校对和排版。当然这两件事也可以合二为一。
对于有条件的人来说,校对可以用软件自动进行,但是自动校对软件不是一般人愿意装或能够装的,那就只能靠人工校对。人工校对的时候建议用ComiViewer,它能同时显示图像和文本,便于对照。对于真正对电子书比较投入、对校对要求较高的人,建议还是仿照一般电子书网站的作法,找几个同道,成立一个校对组做校对,一个人做太枯燥了。
排版也是一个比较麻烦的过程,各人喜好不同。我比较喜欢用TextForever的“段落合并”功能,通过调整“上一行行长比平均行长短少1/x”参数来改变效果(这个选项缺省不选,需要手工打开)。