【方法】Tesseract-OCR使用心得_tesseract-ocr过时了-程序员宅基地

技术标签: Google  Chinese-OCR  Tesseract  Python  OCR  

Goggle的Tesseract是目前OCR领域最强大的开源项目了,我将在这里介绍Windows环境下的使用说明:

官方网站https://github.com/tesseract-ocr/tesseract

帮助介绍https://github.com/tesseract-ocr/tesseract/wiki

参数解释https://github.com/tesseract-ocr/tesseract/wiki/ControlParams

数据文件https://github.com/tesseract-ocr/tesseract/wiki/Data-Files

Windows下载地址https://github.com/UB-Mannheim/tesseract/wiki ,尽量下载最新版,目前是4.0.0。

如果想要在全局使用tesseract指令,你需要将安装tesseract的文件夹地址添加到环境变量里面。

 

一、最简单的上手

打开命令行窗口,输入:

tesseract imagename outputbase

你需要在工作目录下放一个图片,其中imagename为图片名称(需要后缀),outputbase为输出文件的名称(可以自己随意),运行结果就是在图片的目录下新产生一个名为outputbase的txt文件。

上述指令默认是英文检测,如果你想要检测中文,需要先下载中文的包,在上面的数据文件链接下载中文的包,添加到tesseract文件夹下的tessdata文件夹里面。执行:

tesseract imagename outputbase -l chi_sim

就能检测中文了。

 

二、优化识别

1、首先可以添加分页参数--psm,命令为

tesseract imagename outputbase -l chi_sim --psm 6

参数6,可以改从1到13,你可以自己尝试哪一个效果最好。官方的解释是

 

  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.
 11    Sparse text. Find as much text as possible in no particular order.
 12    Sparse text with OSD.
 13    Raw line. Treat the image as a single text line,
       bypassing hacks that are Tesseract-specific.

2、优化图片本身

一般进行的操作包括二值化等等,参考官方的https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality

三、进行模型训练

1、传统操作

请查阅其他人的博客,先安装一个jTessBoxEditorFX,然后把多张图片处理成一个tif文件,然后执行:

tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l chi_sim batch.nochop makebox
echo font 0 0 0 0 0>font_properties
tesseract chi_my.font.exp0.tif chi_my.font.exp0 nobatch box.train
unicharset_extractor chi_my.font.exp0.box
mftraining -F font_properties -U unicharset -O chi_my.unicharset chi_my.font.exp0.tr
cntraining chi_my.font.exp0.tr

2、最新操作

传统操作是tesseract3.0版本时候的训练手段,在最新的4.0里面,使用的LSTM模型,之前只能是单字单字的训练,训练得你怀疑人生,好在4.0版本横空出世,让你可以直接训练一整句话了。

 

...未完待续,有时间再写。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yzy_1996/article/details/80797371

智能推荐

关于XML解析报错问题(LF、CRLF)-程序员宅基地

文章浏览阅读2.1k次。报错内容的主要部分:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position123: illegal multibyte sequence问题产生在做目标检测时,使用的数据集来自网络,在将xml和图片转换到特定格式时,有些xml文件解析出现了问题。像这样:我发现,当我未使用labelImg工具,而直接通过记..._xml解析报错

C1083_qt 提升自定义控件 no such file or directory-程序员宅基地

文章浏览阅读145次。在使用QT过程中会自定义一些控件。比如:自定义了一个树形控件。使用的时候,在界面上拖动创建一个树形控件,然后使用“提升为”当前自定义的树形控件。提升之后的结果:但是编译的时候,出现了错误:\GeneratedFiles\ui_QtGuiUserDraw.h(23): fatal error C1083: 无法打开包括文件: “userdrawgeotree.h”: No such file or directory (编译源文件 QtGuiUserDraw.cpp)1。_qt 提升自定义控件 no such file or directory

java中所有的类都继承于_Java中所有的类都是通过直接或间接地继承( )类得到的...-程序员宅基地

文章浏览阅读4.2k次。Java中所有的类都是通过直接或间接地继承( )类得到的答:java.lang.Object关于主机地址 192.168.19.125 (子网掩码: 255.255.255.248 ),以下说法正确答:广播地址为:192.168.19.127 ; 网络地址为:192.168.19.120 ;在小儿基本手法中,逆运内八卦的功效是?(??)答:宽胸利膈,行滞消食对事物的知觉是答:人脑对直接作用感官的..._java中所有的类都是通过直接或间接地继承( )类得到的。 2分 a、java.lang.object

【幻化万千戏红尘】qianfengDay21-java基础学习:进程、线程、Timer-程序员宅基地

文章浏览阅读222次。课程回顾:面向对象数组异常常用类集合IO流今日内容:进程:应用程序运行时,产生的独立的应用程序,拥有独立的代码和存储空间多进程:操作系统可以并发的执行多个进程线程:进程内部的一条执行路径多线程:java语言支持程序内部进行多线程开发进程内部可以有多个线程线程的作用:可以分担压力,提高性能主要用来完成耗时

重生奇迹mu武器镶嵌顺序-程序员宅基地

文章浏览阅读71次。例如:雷1J10%冰技能+37火每等级,这样就可以30%出现属性,如果没有出,可以破坏某一个洞,继续镶嵌同属性的宝石,直到定现为止,由于1J雷和37技能冰的比较贵,所以可以破坏火荧石,不断镶嵌到出现属性为止。荧光宝石可从以前的物品中获得。从上到下的镶嵌顺寻按照雷、冰、火镶嵌,就有30%的概率出现技能攻击力加11的幸运荧光属性。从上到下的镶嵌顺寻按照土、风、水镶嵌,就有30%的概率出现最大生命值+29的幸运荧光属性。从上到下的镶嵌顺寻按照火、冰、雷镶嵌,就有30%的概率出现攻击力加11的幸运荧光属性。

人工智能第三章(1)——无信息搜索(盲目搜索) (附书本资料)_无信息搜索又称为-程序员宅基地

文章浏览阅读8.8k次,点赞21次,收藏51次。这篇文章的意义在于哪里呢?1)向大家展示如何形式化定义一个搜索问题,又如何去求解;2)通过讲述各种盲目搜索算法,帮大家梳理无信息搜索的脉络。_无信息搜索又称为

随便推点

日志文件分析_日志分析-程序员宅基地

文章浏览阅读818次,点赞2次,收藏3次。8.在test2这台服务器查看test1的/var/log/ssg.log日志。_日志分析

OpenCV 2.4.8组件结构全解析_opencv2.4 build结构-程序员宅基地

文章浏览阅读501次。之前啃了不少OpenCV的官方文档,发现如果了解了一些OpenCV整体的模块架构后,再重点学习自己感兴趣的部分的话,就会有一览众山小的感觉,于是,就决定写出这篇文章,作为启程OpenCV系列博文的第二篇。 至于OpenCV组件结构的研究方法,我们不妨管中窥豹,通过opencv安装路径下include目录里面头文件的分类存放,来一窥OpenCV这些年迅猛发展起来的庞杂组件架构。_opencv2.4 build结构

source insight遇到__attribute__解析不到函数_sourceinsight识别不了特殊的函数类型-程序员宅基地

文章浏览阅读7.2k次,点赞10次,收藏8次。bestboyxie 励志做一名能帮助到他人的程序员,如果你觉得这篇文章对你有帮助,麻烦你点赞最近分析DPDK代码的时候遇到 __attribute__这种东西。就无法解析对应的函数,跳转苦不堪言:如果你遇到这个问题,然后有幸,看到了我的文章。告诉你有幸啦打开 source insight 安装目录C:\Program Files (x86)\Sou_sourceinsight识别不了特殊的函数类型

Android 单独抽取 WebRtc-VAD(语音端点检测) 模块_android webrtc vad-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏10次。本文基于webrtc最新源码进行抽取编译做简单讲解。最终目的是Android 单独抽取 WebRtc-VAD 模块,封装好JNI层,并且ndk-build出so库。希望对大家有所帮助,有需要看JNI层实现和完整demo的,请加我V:15092216090先来看一下vad模块的头文件,webrtc_vad.h,该文件路径为common_audio\vad\include\webrtc_v..._android webrtc vad

夏天到,装饰器让Python秀出性感属性:Property+Decorators+-+Getters,+Setters,+and+Deleters_@property (decorators)-程序员宅基地

文章浏览阅读262次。John Smith曾经是我的好基友,没有之一,今天我们拿他做个试验:初始代码,我们做一个打印员工John Smith信息的类,实例emp_1会用类属性输出:class Employee: def __init__(self, first, last): self.first = first self.last = last self.email = first + "." + last + '@email.com' def fullnam_@property (decorators)

Oracle单个字段多记录拼接_oracle 一个字段多条记录的拼接-程序员宅基地

文章浏览阅读2.4k次。sql查询中,一个字段多个结果拼接的两种方式_oracle 一个字段多条记录的拼接