Tesseract

点点圈 提交于 2020-02-26 17:16:15
最近将族谱数字化,需要用到OCR软件。选择了Tesseract,但是官网的指南不是很亲切,所以记录了一些要点和脚本。

要点

  1. 族谱通常是竖向编排的,所以psm(页面分割模式)选项要用5。
  2. 合并多图,要先将图单独转换成tif格式,再进行合并。
  3. LSTM引擎生成的盒子都是一条条的,和Legacy引擎框住单个字符的不一样。
  4. LSTM盒子文件每一列文字最后要有一行\t开头的座标以示分隔。
  5. 训练时最好使用阈值“--target_error_rate 0.001”。

 

参考:

https://blog.csdn.net/qq_19313495/article/details/102977915

https://blog.csdn.net/Hu_helloworld/article/details/100923215

脚本

#!/bin/sh
export TESSDATA_PREFIX=/usr/share/tesseract/tessdata
f_img=$1
nm=${f_img%.*}
convert $f_img -density 300 $f_img
convert $f_img $nm.tif

#生成box
tesseract $nm.tif $nm -l chi_sim_vert --psm 5 lstmbox

#处理box
##把字符串拆成单独一行,每11行用?分隔
cat uni_string.txt | sed -e 's/\(.\)/\1\n/g' | sed -e '1~11i\?' > uni_char_row.txt

#生成lstmf
tesseract uni_char.tif uni_char -l chi_sim_vert --psm 5 lstm.train
find $(pwd) -name "*.lstmf" > training_files.txt

#提取lstm
combine_tessdata -e \
/home/ydx/Project-yushizupu/tesseract-train/71-model/yu.traineddata \
/home/ydx/Project-yushizupu/tesseract-train/71-model/yu.lstm

#训练
lstmtraining --model_output="./output/output" --continue_from="/home/ydx/Project-yushizupu/tesseract-train/71-model/yu.lstm" \
--train_listfile="/home/ydx/Project-yushizupu/tesseract-train/54/training_files.txt" \
--traineddata="/home/ydx/Project-yushizupu/tesseract-train/71-model/yu.traineddata" \
--debug_interval -1 --target_error_rate 0.01

#产出模型
lstmtraining --stop_training --continue_from="./output/output_checkpoint" \
--traineddata="/home/ydx/Project-yushizupu/tesseract-train/71-model/yu.traineddata" \
--model_output="./model/yu.traineddata"

#移动模型
cp ./model/yu.traineddata /home/ydx/Project-yushizupu/tesseract-train/71-model/yu.traineddata
sudo cp ./model/yu.traineddata /usr/share/tesseract/tessdata

模型产出

图像:

识别结果对比:

我的模型 - yu.traineddata 提取码:ifkr

十三丑时三子
宏戌宏艺宏达
二女长字大茶
李门次字黄人竹
城曾门氏终十
一月二十申时
葬大岭头向东
公寿八十一终
一九八七年丁
卯八月廿八葬
大石岭向南

官方best模型 - chi_sim_vert.traineddata

 十三于时三子
宏成宏艺宏达
二女长字大茶
李门次字黄人竹
城曾门氏终十
-月二十申时
苦大岭头向东
公寿八十一绿
一九八七年本
师八月革八霓
大石叭向南

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!