OCR(Optical character recognition) —— 光学文字识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向。可惜国内的科研院所,基本没有大量的高识别率的训练集—笔者联系过北京语言大学研究生一篇论文的作者,他们说有%90的正确识别率,结果只做了简单的2000字。真的是为了论文而论文。

斯坦福大学有个工程项目,专门做中文汉字的识别——欧美发达国家的科研院所更有研究精神

 

提高识别率,训练集是关键!

 提高识别率,训练集是关键!!

 提高识别率,训练集是关键!!!

下载训练集—traineddata请移步:

https://github.com/tesseract-ocr/tessdata

中文请选如下4个:

chi_sim.traineddata (简体— 对于宋体,像素>= 300dpi:识别率高达%100,同时对英文阿拉伯数字识别率高达百分之90以上
chi_sim_vert.traineddata (简体,竖排)
chi_tra.traineddata (繁体)
chi_tra_vert.traineddata(繁体,竖排)【CoderBaby】

经过测试得出如下结论:

  • 对于宋体,白色背景,非倾斜等,像素大于等于300dpi—识别率%100
  • 英文和数字,识别率超过90%
  • 特殊字符识别率不高
  • 像素太低,识别率急剧下降
  • 多种背景颜色变化,识别率极低
  • 字体换成草书等,识别率大幅降低
  • 电影屏幕字幕和网页截图识别率较低
  • 扫描件如果字体太淡,太小,完全识别不出来
  • 提高识别率,需要自己做训练集,工作量巨大的体力活(简体汉字最少6753个,混合一些复杂的,至少要10000个字符;不同字体要重新做,因为本质上是图形几何计算,国内科研院所和开源的做的不多—待确认)
  • Java源码实现,tika结合Tesseract-OCR

1)源码如下(支持多个图片识别)

    @Testpublic void testCode() throws IOException, SAXException, TikaException, InterruptedException {List<String> fileNames = new ArrayList<>();fileNames.add("chi_eng.png");fileNames.add("chi_eng01.png");fileNames.add("chi_old.png");fileNames.add("chi-scan-75dpi.jpg");fileNames.add("chi-scan-100dpi.jpg");fileNames.add("chi-scan-300dpi.jpg");fileNames.add("chi-smartphone.jpg");fileNames.add("chi-subtitle-v1.jpg");fileNames.add("english00.png");fileNames.add("pdf_shaomiao.png");fileNames.add("test.tiff");fileNames.add("weather.png");// 转载请注明出处:https://www.cnblogs.com/NaughtyCat/p/how-to-install-tesseract-ocr-on-windows-and-centos.htmlTesseractOCRParser parser = new TesseractOCRParser();TesseractOCRConfig config = new TesseractOCRConfig();// 设置简体中文训练集config.setLanguage("chi_sim");// 设置Tesseract 安装路径config.setTesseractPath("C:/Program Files/Tesseract-OCR");// 设置train data 路径config.setTessdataPath("C:/Program Files/Tesseract-OCR/tessdata");ParseContext context = new ParseContext();context.set(TesseractOCRConfig.class, config);context.set(TesseractOCRParser.class, parser);fileNames.forEach(filename -> {BodyContentHandler handler = new BodyContentHandler();File file = new File("E:/tika/testData" + File.separator + filename);if (file.exists()) {Metadata metadata = new Metadata();try (InputStream stream = new FileInputStream(file)) {parser.parse(stream, handler, metadata, context);} catch (Exception e) { }handler.toString();}});}
}

  • 测试数据(图片)说明及下载地址

具体说明及测试效果请参见:https://ocr.space/blog/2015/03/best-ocr-software-for-chinese.html

相关测试图片请参见:https://github.com/A9T9/OCR-Benchmark

  •  如何做自己的测试数据集

请参考官网:https://github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract-3.00%E2%80%933.02

(2)原始图片及效果

图1

转换效果如下:

【结论】

300dpi,识别率:%100


图2

转换效果如下:

Brief history

Tesseractwes orginally developed at HewlettPackard Laboratones Bristol and
atHewettPackard Co Greeley Colorado beween 1985 and 1994 wthsome
more changes made in 1996 to portto Windows and some C++zing in1998
In2005 Tesseract was open sourced by HP Since 2006 itis developed by Goosgle

Thelatest (LSTM based]j stableversionis4.10, released on July 7.2019.Latest source codes avaable from
master branch on GlHub.Openissues can be foundin ssue racker and Planning iki

Thelatest35 version 5 3.05.02 released onjune 19,2018.Latestsource code for3.055 avaable from
305 branch on GlHHub.There sno development forthisversion,butitcan be used forspecial cases .
see Regression offeatures from 30x

See Release Notes and Change Log formore detas ofthe releases-
Installing Tesseract

You can ettherInstall Tesseractvia prepulltbinary package or pulld iLfrom sourcey
Supported Complersare:

* GCC48 and above
* ang34and above
* MSVC 2015.2017.2019

Othercompllersmightwork butare notofially supportedl
Running Tesseract
Basiccommand line usage:

tesseract inagenane outputbase [-1 ]ang】 [--osn ocrenginenode] [--psn pagesegnode
[configfiles...]

Formore information aboutthe various command line options use esseract --henp or man tesseract .

Examples can befoundin thewiki
For developers

Developers can use Tbtessaract Cor

【结论】
英文,特殊符号等会识别失败。识别率:>%80


图3.

转换效果如下:

E g 气

Even as Tvanja praised 8e parties Envoyed i 功 i5 7el gzamt7 comgpi 地 08
Qchieveze1 Q 7W7Der- Ofsocial media lsers appeared crilical of er as-
Sesszet 0f 加 e Trip adiistration「5 role 加 功 i5 endeavou7
IBM 表 示 不 服 ,Google 不 care。 下 而 让 我 们 逐 字 逐 句 来 看 他 们 的 论 文
吧 , 对 于 争 论 的 事 情 , 自 己 下 功 夫 搞 清 楚 。

松 贵 莹 坊 办 少
忠 : https:/ww.cnblogs-com/NaughtyCatpytranslate-of-google-
Quantum-supremacy-article-published-on-nature.html

Quantum supremacy using
a programmable

superconducting
processor

基 于 可 编 程 的 超 导 处 理 器 实 现 的 量 子 霸

动 关 盘 源 ,https://doorg/10.1038/s41586-019-1666-5
煌 收 船 2019 乐 7 历 20 历
旋 准 8 船 2019 乐 9 历 20 厂
坊 终 发 疗 2019 知 10 月 23 厅

Abstract
引 言

量 子 计 算 机 吹 牛 遢 说 , 对 于 特 定 的 计 算 任 务 , 基 于 量 子 处 理 器 的 计 算
机 , 其 速 度 相 较 于 经 典 处 理 器 呈 指 数 级 增 长 。 根 本 的 挑 战 在 于 构 建 一

【结论】
宋体,加粗,黑色——识别率%100;倾斜,绿色等——识别率:%70

图4(扫描件).

 转换效果如下:

节 P a
为客户服务是华为存在的睢一理由” 从 公 司 层 面
看 , 为客户创造价值的主业务流只有一个!

Ipo - nisgniedProductDevelopment

B croeis PaFA 4 辜蒙扁)

Unc - LomdTocash
芸 a npe waa8 2 菅墨

E Ig - ssueToResoliton 林
P L a 颤〉

n i t t

6 P: 01

IP0 主 业 务 流 包 括 : MW 流 程 、0R 流 程 、IPD 流 程

D
4 一

【结论】
pdf扫描件,只有比较大,比较粗的字能识别出来,颜色较淡的识别不出来
识别率:约%10


 图5.

转化效果如下:

大 行 佳 孔 当 自 弼 不 。

巧 者 劳 而 春 者 忱 , 无 能 者 无 所 必 , 作 食 而 邀
游 , 陆 若 不 系 之 舟 。

Chacgyuisdt.

124565.


12256 dogdogunnn

【结论】
汉字、英文、数字混合
识别率:%60~%70


图6(天气网页截图)

转换效果如下:

L f

全 国 > 囚 川 > 尿 膳 > 坂 区
今 夺 伟 8-15 天

llc/4rc

208 238 028 058
人 [ [ 92
s
c E E
无 RR 无 RR 无 RR 无 RR

< < < <

【结论】
背景颜色(蓝色,灰色,黑色、橙色);字体颜色(黑色、白色)。识别率:不到%10


图7.

转换效果如下:

机 器 人 餐 厅

cra arenzanmu nnanmes
seeu xraguagpt. ssepumes
人 吊 pahs ztpznaapsus anea
an sro an sessuassnet
e ssoangm crmazees aas
iusiaanorg.mmouz rpeae
snreenatesezur eeae t
+ngszensenapenecieme
矿 svapgzanohat

【结论】
75dpi,识别率:约为%5 【CoderBaby】


图8(电影字幕截图).

转换效果如下:

E
1 30
E
55

【结论】

背景颜色(渐变灰),字体为白色——识别率:%0


图9(古籍).

转换效果如下:

茂 长 万 灰 咆
恍 “ 望 泷 “ 松 驱
明 匹 一 图 抚 札 狐
东 非 “ 柳 一 吴
埕 跃 X“ 埋 煌 弟
仪 怀 坂 称 鸟 场 “
下 泊 聪 遇 林固 “
| 靴 犹 “

【结论】

竖排,古籍版 (需要“chi_tra.traineddata及“chi_tra_vert.traineddata”)——识别率:%0


图9(手机拍照图片).

转换效果如下:

在 中 国 , 餐 厅 里 的 菜 通 常 很 特 别 , 但 是 有 时 候 做 菜 和 服 务
的 人 也 很 特 别 : 不 久 前 昆 山 一 家 餐 厅 开 业 , 这 家 餐 厅 从 欢 迎 宰
人 、 点 菜 、 制 作 到 上 菜 , 大 部 分 工 作 都 由 机 器 人 完 成 。 餐 厅 经 理
宋 育 刚 对 他 的 “ 员 工 “ 很 满 意 。 这 些 机 咤 人 能 理 解 40 句 日 常 生

活 用 语 , 因 此 可 以 与 顾 客 交 流 。 让 宋 育 刚 最 满 意 的 是 , 他 的 这 些
员 工 们 既 不 会 生 病 也 不 会 请 假 。 充 电 两 个 小 时 后 , 它 们 就 又 能
投 入 使 用 了 , 因 此 它 们 要 比 普 通 员 工 优 秀 。 对 于 顾 客 来 说 , 技 术
水 平 有 没 有 达 到 能 使 这 些 机 蹇 人 厨 师 很 好 地 调 味 还 不 得 而 知 。
不 过 , 机 器 人 厨 师 倒 是 非 常 令 人 期 待 。

【结论】
手机拍照图片,还算清晰的——识别率:%100

转载请注明出处:https://www.cnblogs.com/NaughtyCat/p/tika-support-Tesseract-OCR-with-source-code-and-test-data.html

参考:

1)https://stackoverflow.com/questions/23792373/installing-tesseract-ocr-on-centos-6

2)http://www.zmonster.me/2015/04/17/tesseract-install-usage.html 

*****************************************************************************************************

精力有限,想法太多,专注做好一件事就行

  • 我只是一个程序猿。5年内把代码写好,技术博客字字推敲,坚持零拷贝和原创
  • 写博客的意义在于打磨文笔,训练逻辑条理性,加深对知识的系统性理解;如果恰好又对别人有点帮助,那真是一件令人开心的事

*****************************************************************************************************

Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码实现及真实测试数据和训练集下载地址...相关推荐

  1. Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址...

     OCR(Optical character recognition) -- 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向.可 ...

  2. 【汉字识别】汉字精准识别【含GUI Matlab源码 2197期】

    ⛄一.汉字识别简介 汉字作为中华民族文化的信息载体,与人们的日常学习和工作密不可分.在网络信息交流中,需要输入大量的中文信息 ,重复.单调的传统键盘手工输入方式效率低下,已逐渐不能满足迅速发展的信息化 ...

  3. 【光学】基于matlab涡旋光产生【含Matlab源码 1927期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab涡旋光产生[含Matlab源码 1927期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏物 ...

  4. 【光学】基于matlab模拟拉盖尔高斯【含Matlab源码 2167期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab模拟拉盖尔高斯[含Matlab源码 2167期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专 ...

  5. 【光学】基于matlab GUI杨氏双缝干涉【含Matlab源码 001期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI杨氏双缝干涉[含Matlab源码 001期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  6. Tesseract OCR图片提取中文并转换为Excel的示例(附Python代码)

    1.背景描述: 日常工作会遇到这样的问题,工作群中收到以截图方式转发的表格或文字信息,需要将其中大量的数据.文字等信息从图片中摘取下来,并以Excel表格的方式进行存储和统计处理. 2.流程简述: 识 ...

  7. 『带你学AI』一文带你搞懂OCR识别算法CRNN:解析+源码

    目录 前言 一.CRNN 1.1 CRNN 介绍 1.2 CRNN 网络结构 1.2.1 CNN 1.2.2 Map-to-Sequence 1.2.3 RNN 1.2.4 CTC Loss 1.3 ...

  8. asp写的百度ocr识别文字-通用文字识别(高精度版)源码下载

    今天接到一个客户需求,需要用ASP写一个百度OCR文字识别代码,他的程序都是用ASP写的,所以我们也需要用ASP给他实现百度OCR文字识别,我们在百度AI网站上启用了通用文字识别高精度版,利用高精度板 ...

  9. Tesseract OCR与文本智能识别

    博主简介 博主是一名大二学生,主攻人工智能研究.感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享. 如果有需要的小伙伴可以关注博主,博主会继续更新 ...

最新文章

  1. 用 Python 动态可视化,看看比特币这几年
  2. 使用Vscode进行远程炼丹
  3. 使用公网IP的非80端口访问内网中SharePoint2013的Web站点
  4. JavaScript之图片操作3
  5. 高职职业技能测试题计算机,2019年高职高考职业技能测试信息技术考什么?
  6. mysql主从数据库验证_数据库主从一致性验证
  7. 11g java 驱动_Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号
  8. python正则_正则化方法及Python实现
  9. Zookeeper - 简述ZAB 协议和zookeeper
  10. win10wifi间歇性断网重启后恢复_实用!Xbox Series X 在重启后也能快速恢复之前的游戏状态...
  11. Linux扫描工具rootkit部署
  12. oracle讲师视频教程,赵强老师:Oracle数据库系列视频课程
  13. 专业实训三:智慧养老商业画布举例
  14. 计算机绘图培训心得,AutoCAD2000软件学习心得总结工程
  15. html饼图显示百分比,Excel饼图中既显示百分比又显示数量的方法
  16. 几个鲜为人知但很有用的 HTML 属性
  17. win10网络计算机显示不全,win10系统局域网显示计算机设备不完全的解决方法
  18. ODATA 后台报错,添加message
  19. mysql workbench 主从_MySQL Workbench 使用教程 (四)
  20. Linux进程间通信详解

热门文章

  1. Python爬虫百度新闻标题
  2. AR的昨天、今天和明天
  3. Asp.Net MVC学习记录之“一个实体对象不能由多个 IEntityChangeTracker 实例引用”
  4. 神经网络-非线性激活ReLU
  5. 第10课:生活中的迭代模式——下一个就是你了
  6. 套路(Jony J)
  7. 温度场有限容积法程序入门之六:后处理.花絮.Contour Plotter and 3D Function Grapher Together - the Applet and the Souce Co
  8. ljd-2008+下载式多功能实验开发系统_运动控制模型仿真实验平台(YXMCP-ATCA-150)...
  9. 2022-2028全球2-氨基-5-甲基吡啶行业调研及趋势分析报告
  10. 【BUG】The import XXX collides with another import statement