一、环境与版本选择
- 环境: window10家庭版
- 版本选择:
- tesseract5.x 不行,使用
text2image.exe --list_available_fonts
没有结果输出 - 使用采用tesseract-ocr-w64-setup-v4.1,缺少64位的库
- 所以采用tesseract-ocr-w32-setup-v4.1.0.20190314
二、环境装备:
- 安装jre:
- 下载地址: https://www.oracle.com/java/technologies/downloads/#jre8-windows
- 安装jTessBoxEditorFX:
- 下载地址:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/
- jTessBoxEditorFX可以处理中文,jTessBoxEditor处理中文显示乱码方框
- 安装tesseract-ocr-w32-setup-v4.1:
- 下载地址:https://digi.bib.uni-mannheim.de/tesseract/
- 安装完成将tesseract安装目录加入到PATH
- 测试:
tesseract -v tesseract --list-langs
三、使用
1.官网地址: https://tesseract-ocr.github.io/tessdoc/
2.获取系统中的字体:
给出配置文件的路径.\data\fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>C:\windows\fonts</dir>
<cachedir>.\data\</cachedir>
<config></config>
</fontconfig>
text2image.exe --list_available_fonts --fonts_dir=C:\windows\fonts --fontconfig_tmpdir=.\data\
3.构造需要训练的文本:GB2312汉字编码字符集
- 01区为特殊符号(・∈∽§除外,这四个字符训练有问题),chi_sim.training_text.exp1.txt
、。ˉˇ¨〃々―~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∷√⊥∥∠⌒⊙∫∮≡≌≈∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰№☆★○●◎◇◆□■△▲※→←↑↓〓
- 03区为特殊符号,chi_sim.training_text.exp2.txt
!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄
- 16-55区为一级汉字,按拼音排序,共3755个,chi_sim.training_text.exp5.txt
56-87区为二级汉字,按部首/笔画排序,共3008个,chi_sim.training_text.exp6.txt
4.生成~.tif 和 ~.box 文件:
text2image --text=chi_sim.training_text.exp1.txt --outputbase=chi_sim.SimSun.exp1 --font=SimSun --fonts_dir=C:\windows\fonts --fontconfig_tmpdir=.\data\
text2image --text=chi_sim.training_text.exp2.txt --outputbase=chi_sim.SimSun.exp2 --font=SimSun --fonts_dir=C:\windows\fonts --fontconfig_tmpdir=.\data\
text2image --text=chi_sim.training_text.exp5.txt --outputbase=chi_sim.SimSun.exp5 --font=SimSun --fonts_dir=C:\windows\fonts --fontconfig_tmpdir=.\data\
text2image --text=chi_sim.training_text.exp6.txt --outputbase=chi_sim.SimSun.exp6 --font=SimSun --fonts_dir=C:\windows\fonts --fontconfig_tmpdir=.\data\
5.生成font_properties文件:(该文件没有后缀名)
echo SimSun 0 0 0 0 0 >font_properties
6.使用tesseract生成.tr训练文件:
tesseract chi_sim.SimSun.exp1.tif chi_sim.SimSun.exp1 nobatch box.train
tesseract chi_sim.SimSun.exp2.tif chi_sim.SimSun.exp2 nobatch box.train
tesseract chi_sim.SimSun.exp5.tif chi_sim.SimSun.exp5 nobatch box.train
tesseract chi_sim.SimSun.exp6.tif chi_sim.SimSun.exp6 nobatch box.train
7.生成字符集文件:
- 执行下面命令:执行完之后会在当前目录生成一个名为“unicharset”的文件。
unicharset_extractor chi_sim.SimSun.exp1.box chi_sim.SimSun.exp2.box chi_sim.SimSun.exp5.box chi_sim.SimSun.exp6.box
8.生成聚字符特征文件:
- 执行下面命令,会生成 inttemp、pffmtable、shapetable和my_chi_sim.unicharset四个文件。
mftraining -F font_properties -U unicharset -O chi_sim.unicharset chi_sim.SimSun.exp1.tr chi_sim.SimSun.exp2.tr chi_sim.SimSun.exp5.tr chi_sim.SimSun.exp6.tr
9.生成字符正常化特征文件:
执行下面命令,会生成 normproto 文件。
cntraining chi_sim.SimSun.exp1.tr chi_sim.SimSun.exp2.tr chi_sim.SimSun.exp5.tr chi_sim.SimSun.exp6.tr
10.文件改名:
rename unicharset chi_sim.unicharset
rename inttemp chi_sim.inttemp
rename pffmtable chi_sim.pffmtable
rename shapetable chi_sim.shapetable
rename normproto chi_sim.normproto
11.生成文件
combine_tessdata chi_sim.