中文OCR小测——tesseract

故事的开始:

       某年的一个暑期,初恋在学校找了个兼职,内容是把图书馆中旧一点的书籍打字录到电脑。她高兴的和我说打千字可以给七八块钱,如果她一天不动的话,可以打几万字,这样就是两百了,打十天就有多少多少了......

       她算着算着,晃了晃可爱的丸子头,把我的心也晃的生疼,我知道夏天坐几个小时的不好受,就和她说:“我回去帮你找找把扫描的文字自动提取出来的软件,这样你也可以轻松些(我当时都还不知道OCR这个词)。” 她对我的回答没有放在心上,也没有太大的反应。

       回实验室之后,产生的一点雄心壮志,被新的烦心事迅速所泯灭。直到再一次见面后,她开心的和我说这几天赚了多少钱后,我终于舍得强迫自己去尝试一个从来没有碰过的技术了。

      故事的结局并没有一点点甜蜜,而是我在找了github后,发现没有一个我可以立马上手的实现,查到的仅有的一个靠谱的百度实现,好像也关停了。于是我默默的关掉了浏览器,把这件事抛到脑后,安慰自己:我又没有接触过,而且实验室还有那么多东西要忙,大不了给她多买些礼物赔偿赔偿。

        她当然不会责怪我什么,也是过了两个星期后她才和我说,图书馆派给她的活已经做完了。我也小松了口气,可以不用考虑实现的问题了。

......

       昨天我在清除电脑存储的时候,意外的找到了我们玩gopro时拍的唯一一段视频,视频里面没有我和她的图像,这让我庆幸而又失望,不过在把声音调到最大后,我还是听到了曾经最熟悉的声音。过去的记忆再也压制不住,汹涌而来。辗转反侧,难以入眠,故而想到“打字”的故事,于半夜中搜索项目,调试代码,写下此文。



一.十分钟快速实(跑)现(通)中文OCR

tesseract ,然后按照README.md来就行了(摔,你这不是废话吗!)好吧,我还是接着写写我的过程,可以连README.md都不用看了(Mac OSX系统)。

1.1从源码编译

先装依赖(brew 好久没有update的,可以先更新一下)直接复制到终端,已经装过的自然会跳过去,因为网络问题而中断的自然要先想办法解决网问题:

brew install automake autoconf autoconf-archive libtool

brew install pkgconfig

brew install icu4c

brew install leptonica

brew install gcc

再下源码编译:

git clone https://github.com/tesseract-ocr/tesseract/

cd tesseract

./autogen.sh

./configure CC=gcc-6 CXX=g++-6 CPPFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib

make -j

sudo make install #if desired

make training

后面两行我画斜杠,是因为我没install(实际上就是各种移动文件的过程,顺便定义一个命令),我也没有训练(我觉得那要耗时很久,也没试。)

可执行文件调用就是进入tesseract文件夹后:

./api/tesseract

执行一下会出现一页的命令提示信息,这说明编译的至少没有问题了(我中间出过错误,执行了brew update 就可以了。)

接下来需要下载训练好的字符数据:字符数据,这是一百多种语言训练好的数据。

接下来可以执行命令:

./api/tesseract ./testing/phototest.tif ./testing/out

这时候如果报错:

Error opening data file /usr/local/share/eng.traineddata

Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.

Failed loading language 'eng'

Tesseract couldn't load any languages!

Could not initialize tesseract.

那是因为训练库的路径没有给,从提示上看要么把刚刚下载的的字符数据包移动到第一行的指定文件夹中,要么确定TESSDATA_PREFIX这个环境变量,我选择的是后者。

具体过程:

vim ~/.bash_profile

添加:

export TESSDATA_PREFIX="刚刚下载的字符数据的文件夹路径"

我是直接放在已有的/tesseract/tessdata中。

source ~/.bash_profile

这样一切都配好啦~

重复刚刚失败的执行命令,就可以有英文的结果了。

1.2 不自己源码编译。

brew install tesseract

一句,然后等就行了,GOOGLE做事当然是这样啦~呵呵哒。


下面放个识别英文网页截图的效果。


识别结果:

iStat Menus — Bjango

https://bjango.com/mac/istatmenus/ v

Weather with current temperature, hourly forecast, weekly overview and so much more. A compact 

Notification Center widget, covering some of the popular iStat ...

iStat Menus version history : Apps : Help : Contact

iStat View for iOS — Bjango

https://bjango.com/ios/istat/ v

iStat View is a highly detailed remote monitoring app, letting you check the vital stats for Macs, PCs and

servers from anywhere in the world.

Istat. it

www.istat.iten/ v

The National Institute for Statistics (Istat) is the main supplier of official statistical information in Italy. It

collects and produces information on Italian economy and ...

About Istat — Dati ISTAT : Labour and wages : Databases

About Italian National Institute of Statistics — Istat

https://www.istat.iten/about—istat v

The history of Istat starts in 1926, when the Central Institute of Statistics was created under law n. 1162:

the idea of statistics as a tool for understanding ...

i—STAT Handheld Blood Analyzer | Abbott Point of Care

https://www.pointofcare.abbott/us/en/offerings/istat/istat—handheld x

i—STAT Advanced Quality Features and STATNotes also help integrate test results into your facility‘s

software. istat—system—integration—lis—emr.jpg ...

National Institute of Statistics (Italy) — Wikipedia

https://en.wikipedia.org/wiki/National_ Institute_of_Statistics_(Italy) v

The Italian National Institute of Statistics is the main producer of official statistics in Italy. Its activities

include the census of population, economic censuses and a number of social, economic and

environmental surveys and analyses. Istat is by far the largest producer of statistical information in Italy,

and is an ...

我扫了一下,除了个小三角符号识别成了“V”,其他好像没有错误。

中文(简体)的执行命令:

./api/tesseract  待识别文件  输出文本 -l chi_sim

中文识别结果展示:



结果:

文 章 都 有 确 定 的 主 题 , 作 者 环 绕 文 章 的 主 题 表 述 自 己 的 忌煜 与 感 情 , 需 要 使 用 大 量 的 语 言 材 料 。 

语 言 材 料 使 用 得 是 否 恰当 , 疚 很 大 程 度 上 影 响 文 章 的 质 量 。语 言 材 料 包 括 词 、 词 组 、 句 子 、 段 落 。 这 些 成 分 自 小 到 大 ,逐 淅 结 合 , 组 成 一 体 而 成 文 章 。 本 书 就 词 组 、 叶 子 和 段 落 提 供 一定 数 量 的 紊 材 , 给 读 者 参 考 、 借 鉴 。

本 书 是 从 大 量 的 中 外 文 学 作 品 中 精 选 了 挡 写 人 物 的 外 貂神 态 、 心 理 性 格 以 及 事 件 情 状 、 自 然 景 象 等 词 组 、 句 子 , 片 段 , 按题 材 分 门 别 类 , 汇 集 编 篱 而 成 。 本 辞 典 有 如 下 特 点 :

一 、 在 写 作 和 阅 读 两 方 面 可 供 读 者 借 鉴 。 文 章 耍 写 得 好 ,在 主 题 确 立 并 有 了 全 篇 提 纲 之 后 , 遣 词 造 句 便 成 了 非 常 重 要 的环 节 , 要 使 词 句 达 到 准 确 、 鲜 明 、 生 动 的 地 步 , 参 阅 优 秀 作 品 中的 表 现 手 法 是 十 分 重 要 的 。 本 辞 典 正 是 适 应 写 作 者 的 这 一 需要 , 收 集 了 大 量 表 现 力 强 的 词 组 、 句 子 和 段 落 , 这 些 内 容 既 能 供读 者 阅 读 , 又 能 使 读 者 从 阅 读 之 中 学 习 到 词 语 按 配 、 句 子 组 线以 至 谋 箭 成 章 的 各 种 方 法 , 从 而 提 高 自 己 的 写 作 水 平 。

二 、 辞 典 所 收 的 词 组 和 旬 子 , 寓 词 的 搭 配 和 辞 藻 修 饰 两 方面 的 用 意 。 词 语 相 互 间 的 搭 配 十 分 复 杂 , 而 修 饰 成 分 对 语 句 表现 生 动 与 否 又 极 为 重 要 , 本 辞 典 以 一 半 以 上 的 读 者 提 侩词 语 按 配 和 修 饰 的 手 法 。 例 如 描 写 炎 热 的 夏 天 , 跋 奠 提 供 了 :炎 热 的 夏 天 火 热 的 夏 天 _ 灼 热 的 夏 灭 炽 热 的 蚊天 炎 热 的 夏 天 “ 熬 热 的 夏 天 “ 糜 热 的 夏 天 “ 疏 热 的 夏天 暑 气 熙 腾 的 夏 天 “ 热 浪 滚 演 的 寻 天 “ 易 气 逗 人 的 夏

我调整了一下段落,粗的大约就是红线标出来的,看起来错的不算少,但是这个质量的影印识别结果,我觉得还是挺厉害了。

再贴几个结果:



知 乎 - 维 基 百 科 , 自 由 的 百 科 全 书 - 维 基 百 科

https:/zh.wikipedia.org/zh-cn/ 知 乎 “

知 乎 是 一 家 创 立 于 2011 年 1 月 26 日 的 中 国 大 陆 社 会 化 问 答 网 站 , 产 品 形 态 模 仿 了 美 国 类 似 网 站 Quora。 “ 知

乎 “ 在 文 言 文 中 意 为 “ 知 道 吗 “。2012 年 2 月 底 , 知 乎 使 用 “ 发 现 更 …

知 乎 - Android Apps on Google Play

https:/play「google.com/store/apps/details?id=com.zhihu.android v

文 文 友 文 央 评 分 : 4.3 - 16,463 票 - 免 费

知 乎 , 中 文 互 联 网 最 大 的 知 识 平 台 。 拥 有 认 真 、 专 业 、 友 商 的 社 区 氛 围 , 聚 焦 热 点 事 件 、 讨 论 深 度 话

题 , 观 点 犀 利 , 生 动 有 趣 。 知 友 可 以 第 一 时 间 在 知 乎 参 与 众 多 新 鲜 …

知 乎 的 微 博 _ 微 博 - 微 博 台 湾

weibo.com/zhihu

知 乎 , 知 乎 网 官 方 微 博 , 新 浪 微 博 社 区 委 员 会 专 家 成 员 。。 知 乎 的 微 博 主 页 、 个 人 资 料 、 相 册 。 新 浪 微

博 , 随 时 随 地 分 享 身 边 的 新 鲜 事 儿 。

知 乎 _ 百 度 百 科

https:/baike.baidu.com/item/ 知 乎 “

准 确 地 讲 , 知 乎 更 像 一 个 论 坛 : 用 户 围 绕 着 某 一 感 兴 趣 的 话 题 进 行 相 关 的 讨 论 , 同 时 可 以 关 注 兴 趣 一 致 的

人 。 对 于 概 念 性 的 解 释 , 网 络 百 科 几 乎 涵 盖 了 你 所 有 的 疑 问 ; …

知 乎 的 1 野 心 与 终 局 」 | 雷 锋 网

https:/www.leiphone.com/news/201701/Pmsr9n3y0AI3VAxR.html “

2017 年 1 月 16 日 - 知 乎 的 终 局 到 底 会 是 什 么 ? 还 有 多 大 的 上 升 空 间 ? 该 如 何 盈 利 ?

知 乎 作 了 什 么 恶 ? _ 科 技 _ 腾 讯 网

tech.qq.com/a/201702251/044047.htm “

2017 年 2 月 25 日 - 本 文 转 载 自 微 信 公 众 号 “ 霍 老 爷 “. 这 篇 文 章 会 比 较 长 , 一 共 分 为 三 个 部 分 : . 1. 知 乎 是 个

什 么 网 站 . 2. 怎 么 成 为 知 乎 大 V 3. 知 乎 之 死 . 回 答 标 题 提 出 的 问 题 …

知 乎 的 相 关 搜 索


这个识别结果可以说很不错了。

接下来挑个独特点的身份证识别:



姆 名 爱 新 觉 罗 。 玄 烨

性 别 男 - 民 族 满

出 生 1654 年 5 月 4 日

佳 址 北 京 市 东 城 区 景 山 前 街 4 号

紫 禁 城 钦 清 宫

公 民 身 份 证 号 码 88B8831654858498 42

固定的字错了两个,内容字错了一个,数字0则完全当成了8,当然如果你仅仅选择很多身份证的数据作为训练集的话,我相信肯定会有更好的结果的。

一个外行人的建议:如果可以输出一个PDF,用不同的颜色表示不同的置信度就好了,这样校验的时候可以单单检测置信度低的识别结果就可以了。

故事的结束:

删了程序,睡觉,“打字”这个事情结束了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,574评论 25 707
  • 高粱青又青 麦子黄又黄 男女老少割麦忙 一家大小喜洋洋 …… 麦子黄了。麦子割了。麦子收仓了。棉花白了。棉花摘了。...
    周世恩阅读 583评论 1 1
  • 曾祖母那个时代似乎已经离我而去。就如泛了黄的老照片一般,偶尔翻开,也只会觉得好看,有种淡淡的历史香味,并不想去深入...
    知秋之否阅读 1,140评论 0 2
  • 一边学习,一边记录,分享出来,一起共勉,大家多多指教~ 简单说下常量和变量的定义和使用 常量和变量的类型必须和你赋...
    风格随心阅读 158评论 0 0
  • 手写我心 Day 2 善 意 的 伤 害 上周四世媛老师带着我们和秋天来了一场...
    Emma燕子阅读 472评论 0 3