• 用MODI一次OCR一整本书并将结果发送到WORD


    作者:马健
    邮箱:stronghorse_mj@hotmail.com
    主页:http://www.comicer.com/stronghorse
    发布:2022.05.29

    一、相关问题及解答

    Q:MODI是什么?
    A:MODI是Microsoft Office Document Imaging的简称,是微软在Office 2003、2007中提供的一套OCR工具组件,用于将扫描图像文件或传真文件识别成可编辑的文字。从Office 2010起,OCR功能转移至OneNote中,因此不再提供MODI组件。但使用从Office 2007中提取的MODI精简版,或微软官方提供的免费版SharePointDesigner安装包单独安装MODI,均能与后续版本的Office共存,测试过从Office 2010到Office 2019的各版本。

    Q:有了Acrobat、Abbyy等软件,为什么还要用MODI做OCR?
    A:如果是OCR单页图像,其实可供使用的工具很多,有在线的,也有离线的。但如果是要一次OCR整本书,可供使用的软件就少得多。这些工具需要解决以下问题:

    1. 整本书以什么文件格式为载体?Acrobat只以PDF为载体,Abbyy以PDF和多页TIFF为载体,MODI以多页TIFF和MDI文件为载体。多页TIFF还好说,MDI文件格式在Office 2007之后就成为绝响。
    2. OCR结果以什么格式存放?Acrobat以PDF为载体,OCR结果也就放在PDF中;Abbyy可以把OCR结果另存为WORD、TXT等;MODI可以把OCR结果封装到多页TIFF或MDI文件中,也可以把结果发送到WORD中——这是我最喜欢的功能,也是我一直折腾MODI的动力。

    PDF中的文本有一个毛病:有文字,无排版。即PDF中的文字最多是按行合并,但不会把行合并成段落,这样的文字导出、复制到WORD中,不排版根本没法用,手工排版又太累。但MODI发送到WORD中的OCR结果是经过排版(段落合并)的,虽然排版效果有时候也不太靠谱,但大多数情况下还是可用的,至少可以省掉很多事情。

    另外如前所述,MODI是微软允许免费使用的SharePointDesigner一部分,Acrobat、Abbyy都是要小钱钱的。

    Q:现在提供的精简版MODI,与以前提供的MODI OCR引擎有什么关系?
    A:以前我曾在我的网盘上提供过从Office 2007 SP3中提取的支持21种语言OCR的OCR引擎,但引擎毕竟只是引擎,它不含用户界面,所以只能被其他软件工具所调用,例如DjVuTou、FreePic2Pdf、IdxSubOcr、Pdg2Pic、UnicorViewer等。但这次提供的精简版MODI包含GUI用户界面,可以直接对多页TIFF进行OCR,并将结果发送到WORD。另外:

    1. 精简版MODI中已经含了21种语言的OCR引擎,所以安装了精简版MODI后,可以不再安装MODI OCR引擎,即可在DjVuTou、FreePic2Pdf、IdxSubOcr、Pdg2Pic、UnicorViewer等软件中运行OCR功能。
    2. 以前封装的MODI OCR引擎在Win7、Win10下,要求调用程序必须以管理员权限运行,否则可能OCR失败。这次封装MODI精简版已经解决了这个问题,所以如果安装的是精简版MODI或新封装的MODI OCR引擎,将不再要求调用MODI OCR引擎的程序必须以管理员权限运行。最新版的DjVuToy、FreePic2Pdf、Pdg2Pic、UnicornViewer等已对此进行了修正。

    Q:精简版MODI与原版MODI相比,有什么区别?
    A:与原版MODI相比最大的区别是“精简”:以简体中文SharePointDesigner安装包为例,只安装MODI(从本机运行全部程序,含虚拟打印驱动)、简体中文校对工具_光学字符识别模块(OCR)、英语校对工具_光学字符识别模块(OCR),文件总长度704 MB,且只能OCR简体中文、英语两种语言。而简体中文版的精简版MODI安装后文件总长度仅86.2 MB,即完整版的文件长度是精简版的8倍还多,且精简版能OCR 21种而不是区区两种语言。另外精简版还精简掉了以下东东:

    1. MDI格式打印机(MODI Writer)。众所周知,Office 2007只有32位版,Office 2010才有64位版,所以这个打印驱动在原始官方安装包中就只有32位版,在64位Windows下安装的时候也不含这个打印机。现在谁还在用32位版Windows的请站出来让我瞻仰一下?
    2. 导入为MDI格式。这个依赖于MDI打印机,没有打印机也就没有什么意义。
    3. 用扫描仪扫描成多页TIFF或MDI文件。我目前没有扫描仪,没法测试这个功能,不如直接干掉。不过有扫描仪的时候我更习惯使用扫描仪自带的软件,所以没有就没有吧。

    二、安装MODI,准备OCR

    安装方法一:通过封装好的安装包进行安装,适合普通、不喜折腾的用户

    如果打算安装精简版,从我的网盘下载精简版安装包,双击运行,选择语言后就是一键安装,安装完直接支持21种语言的OCR。

    如果对我封装的精简版表示信不过,也可以用正版Office 2007,或者到我的网盘下载来自微软官网的免费版SharePointDesigner安装包,用那个安装MODI,在微软官网上有图文并茂的完整安装步骤说明:
    http://support.microsoft.com/kb/982760/

    注意:

    1. 如果是用正版Office安装盘安装,Office 2007的典型安装根本就不装MODI,因此如果想使用MODI,只能在安装时选择自定义安装,然后手工选择Office工具中的MODI组件,“从本机运行全部程序”,参见上面微软知识库链接。
    2. 如果是用正版Office安装盘安装,必须打SP补丁,不论是SP1、SP2还是SP3都可以,否则不能正常OCR中、日、韩语言。
    3. 另外选定一种语言的Office 2007或者SharePointDesigner安装包,比如说英语或者简体中文,安装MODI后,还可以用微软免费的Office 2007语言包DVD,安装其他语言的OCR支持。精简版MODI OCR引擎中的21种OCR语言、精简版MODI中的9种语言用户界面(包括CHM版帮助文件)就是这么来的。

    安装方法二:通过批处理安装,适合程序员或者不折腾就不舒服斯基的用户

    请从我的网盘下载批处理版安装zip包,解压后按照说明文件的说明执行批处理进行安装。看得懂安装批处理,就能知道具体的安装过程,因此对于程序员而言如果自己的程序调用了MODI引擎,就可以把MODI引擎照此封装到自己的安装包中,与自己的软件一起发行。

    三、用MODI做OCR并将结果发送到WORD

    OCR之前先要准备好需要OCR的图像文件,要OCR整本书就要准备好整本书的图像文件。MODI支持多页TIFF和MDI两种格式,如果你使用的是32位版Windows,或者是32位版Windows(如XP)虚拟机,可以选择用SharePointDesigner安装完整版,含MODI Writer打印机,然后就可以把需要OCR的图像打印到MODI Writer打印机,形成MDI文档。

    如果用的是64位Windows,就只能准备多页TIFF。我的准备步骤是:

    1. 用ComicEnhancerPro(CEP)处理需要OCR的全部图像,颜色选“纯黑白”,存为单页TIFF。
    2. 用TiffToy把全部单页TIFF合并成多页TIFF。

    理论上说如果省略第1步,直接把JPG、PNG等文件用TiffToy合并成多页TIFF,也可以在MODI里做OCR。但所有的OCR操作均只针对二值化(纯黑白)图像,所以这样做其实就是由MODI自己在内部做二值化工作,但讲真我绝对不信MODI的二值化能做到CEP的程度,所以我宁愿自己在CEP里处理,就不麻烦MODI了。

    准备好需要OCR的多页TIFF或MDI文件后,就可以开始OCR:

    1. 运行MSPVIEW,启动MODI用户界面。如果安装的是精简版MODI,会在桌面上创建MSPVIEW图标,双击即可运行,或者从开始菜单的MODI菜单组中选择MSPVIEW运行,注意在菜单组里如果不小心点了uninstall就变成删除MODI了。如果是从SharePointDesigner安装的MODI完整版,则在开始菜单中点击“Micorsoft Office -> Micorsoft Office工具 -> Microsoft Office Document Imaging”菜单项运行。
      如果运行MSPVIEW.EXE时提示“应用程序缺少组件。请重新安装该应用程序。”,那么就是电脑里安装过旧版的MODI引擎,新版MODI与之发生冲突,手工删除下面的文件夹就好:
      C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12
      如果是x86版Windows,则删除
      C:\Program Files\Common Files\microsoft shared\OFFICE12
      这个文件夹下面其实就一个mso.dll,新版里这个文件已经被转移到了MODI文件夹下面,如果旧版的文件还在,就会与新版发生冲突。
    2. 点击工具条最左侧的“打开”按钮,打开需要OCR的多页TIFF或MDI文件。
    3. 如果有必要,点击“工具 -> 选项”菜单,在OCR页签中选择OCR语言。该页签中的“自动旋转”、“自动拉伸”这两个选项一般也要去掉勾选,否则图像可能莫名其妙就被旋转了。该页签中的选项会被记录到注册表里,所以选择过一次以后,后续OCR都会自动按照此选项操作。
    4. 点击工具条上的“将文本发送到WORD”按钮,或点击“工具 -> 将文本发送到WORD...”菜单项,把“默认文件夹”改成你希望存放结果文件的文件夹,点击“确定”按钮。
    5. 弹出提示“Microsoft Office Document Imaging 必须在您执行此操作前识别该文档中的文本(OCR)。这可能需要一些时间。”,点击“确定”按钮。等待OCR结束,会自动打开WORD并调入结果文件。如果电脑或虚拟机里没有装WORD,则会提示“无法启动 Microsoft Word。请检查该计算机上是否已安装该程序并设置正确。”,但不影响结果文件的生成。
    6. 生成的结果文件是html文件,就放在所选的“默认文件夹”下。如果其中有插图,会单独创建一个子文件夹存放插图。不过一般我都是直接在WORD里另存为文本文件或WORD文件,方便校对。

    四、用MODI做OCR的一些限制

    我曾经在《用MODI OCR 21种语言》里说过,MODI支持的亚洲语言包括简体、繁体、日文、朝鲜语,这4种语言的OCR引擎都由清华文通(Tsinghua Wintone)出品。清华文通的其他产品我没用过,但MODI中的中日韩OCR引擎却存在下列问题,使用时务必注意:

    1. 如果最终的识别结果不足8个汉字,则会返回OCR结果为空。IdxSubOcr、UnicorViewer等软件对此的解决办法是“拼图”,即把需要识别的图像重复排列,或者多个需要OCR的图像拼接在一起OCR,确保OCR结果不少于8个汉字。
    2. 如果需要识别的图像中含有插图、表格,则OCR引擎会变得极不稳定,一言不合就死给你看。在DjVuTou、FreePic2Pdf、Pdg2Pic、UnicorViewer等软件中分两个部分解决这个问题,第一是在OCR之前先对图像进行预处理,即这些软件界面中“去掉大于页面尺寸1/n的图表”选项。预处理虽然不能杜绝OCR引擎故障,但可以大大降低故障出现的概率。第二是把OCR功能放到独立的进程中,即MODI_Engine.exe,其他软件通过进程间通讯(IPC)调用它,它再调用MODI,如果MODI引擎挂了,挂的也是MODI_Engine.exe进程,不是调用MODI_Engine.exe的进程,这就是程序员经常说的“线程是不安全的,进程是”。
    3. OCR过程中存在累积性的资源泄露,即连续OCR到300多页后,就可能出各种幺蛾子。因此在TiffToy的“文件合并”功能中,缺省情况下是每300页合并成一个多页TIFF文件,一次就OCR这么多。如果是自己写的软件调用MODI,则最好是用上面的方法进行解决,即每OCR 300页左右,就重启一次MODI_Engine.exe进程。
    4. MODI只有32位版,不能直接被64位应用所调用。这个也是用上面的方法,IPC可以在32位和64位软件之间通讯。
    5. OCR纯中文或者纯英文都没有问题,但OCR中英文混排的时候,效果确实不如Abbyy,这个无解。

    尽管存在上面各种问题,但MODI,尤其是MODI引擎仍然是目前能找到的最好的免费离线版OCR引擎。毕竟是商业级OCR引擎,tesseract之流拍马也追不上。

    (完)

  • 相关阅读:
    URAL——DFS找规律——Nudnik Photographer
    URAL1353——DP——Milliard Vasya's Function
    URAL1203——DPor贪心——Scientific Conference
    递推DP HDOJ 5389 Zero Escape
    区间DP UVA 1351 String Compression
    树形DP UVA 1292 Strategic game
    Manacher HDOJ 5371 Hotaru's problem
    同余模定理 HDOJ 5373 The shortest problem
    递推DP HDOJ 5375 Gray code
    最大子序列和 HDOJ 1003 Max Sum
  • 原文地址:https://www.cnblogs.com/stronghorse/p/16324372.html
Copyright © 2020-2023  润新知