[心得] Excel VBA OCR 文字辨识

楼主: noworneverev (小朋友)   2020-06-19 23:52:43
### OCR是什么
OCR,全名Optical Character Recognition,中译光学字符辨识,
因实务上还满常听到有这个需求要将图片或PDF转成文字,
以下分享一下研究心得以及如何在VBA里如何使用Tesseract-OCR达到上述目标。
### OCR实际应用
实际应用举例如下:
1. 各大会计师事务所的财报搜寻系统基于OCR技术才得以实现,先蒐集所有公开发行
以上的公司财报,使用OCR软件,例如Adobe Acrobat、Abbyy或Ominpage等软件将PDF
转成可搜寻(searchable)的PDF,并将其字符存入数据库,最后再以网页的方式渲染出查询
结果。
2. 因应IFRS 16,若有大量辨识租约扫描档的需求,也可通过上述方法搜寻关键字。
3. 各大事务所在推的RPA(流程机器人),其中最常用的RPA工具-UiPath,
它里面的函式库所可以做到将图片转成文字的功能,即是使用此篇文章要介绍的
Tesseract文字辨识引擎。
### Tesseract-OCR
Windows下载:https://github.com/UB-Mannheim/tesseract/wiki
Github:https://github.com/tesseract-ocr/tesseract
Tesseract是一开源OCR引擎,此开源专案目前由Google维护,支援超过100种语言,
以其辨识精准度及可训练辨识资料(training data)著称,虽是由C++写成,
但其余高阶程式语言,例如Python、Java、.Net都有包装器(Wrapper)可直接调用其
函式。
### VBA使用Tesseract-OCR
影片教学:https://youtu.be/0Wx1Xk5WYX0
范例下载(xlsm):https://tinyurl.com/ybj3dfhz
此教学难度较高,还需要加环境变量等,只下载上面的档案是没办法跑的,
如果想操作的可以看影片跟着操作,然后因为有些外国人会看我的教学,
原谅我的破英文..
范例是辨识英文图片,若要辨识中文,其他程式语言还好处理,
但在VBA若要传回中文会比较麻烦,VBA作为一古老语言,
并没有很好的处理多语系的问题,
例如在命令提式字符(CMD)使用以下指令:
C:\..\tesseract "imagePath" stdout -l chi_tra
可得到中文辨识结果,但在VBA使用Shell执行会变成乱码,
实际应用还是使用别种语言会方便得多。
作者: blackteashop   2020-06-20 11:52:00

Links booklink

Contact Us: admin [ a t ] ucptt.com