美文网首页
中文OCR小测——tesseract

中文OCR小测——tesseract

作者: graphic_zhang | 来源:发表于2017-11-03 02:57 被阅读0次

    故事的开始:

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

           她算着算着,晃了晃可爱的丸子头,把我的心也晃的生疼,我知道夏天坐几个小时的不好受,就和她说:“我回去帮你找找把扫描的文字自动提取出来的软件,这样你也可以轻松些(我当时都还不知道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,用不同的颜色表示不同的置信度就好了,这样校验的时候可以单单检测置信度低的识别结果就可以了。

    故事的结束:

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

    相关文章

      网友评论

          本文标题:中文OCR小测——tesseract

          本文链接:https://www.haomeiwen.com/subject/yxjzpxtx.html