asysbang

 找回密码
 立即注册
查看: 3546|回复: 1
打印 上一主题 下一主题

4.x训练记录

[复制链接]

520

主题

2

好友

6551

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2019-9-4 17:31:08 |只看该作者 |倒序浏览
针对4.0开始支持的lstm训练,想学习了解一下,但这个目前资料太少,看起来一头雾水
这里做一些记录,方便以后整理

参考https://ivanzz1001.github.io/rec ... /tesseract-traininghttps://ivanzz1001.github.io/records/post/ocr/2017/09/18/tesseract-training#101-%E5%88%9B%E5%BB%BA%E5%88%9D%E5%A7%8Btraineddata
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00
https://www.jianshu.com/p/6c4424252168

注意上面两个参考例子的目录结构是不一致的需要自己想的很清楚自己的目录结构

1.样本数据准备(training data)
  
Training data is created using [url=https://github.com/tesseract-ocr/tesseract/blob/master/src/training/tesstrain.sh]tesstrain.shas follows:
src/training/tesstrain.sh --fonts_dir /usr/share/fonts --lang eng --linedata_only \  --noextract_font_properties --langdata_dir ../langdata \  --tessdata_dir ./tessdata --output_dir ~/tesstutorial/engtrain
2.训练文件由.ltsmf代替原来的.tr文件
   用tesstrain.sh生成大量的ltsmf文件,作为原始的测试数据


中文训练流程
1.找到支持中文的字体
2.每种字体生成ltsmf文件
3.训练
4.验证


osd.traineddata是什么?
教程中的目录结构
=====
查看系统支持中文的字体,生成列表
training/text2image --find_fonts --fonts_dir /usr/share/fonts --text ../langdata/chi_sim/chi_sim.training_text --min_coverage .9  --outputbase ../results/chi_sim/chi_sim
下面命令对输出的数据进行字符串截取获得字体名
training/text2image --find_fonts \
--fonts_dir /usr/share/fonts \
--text ../langdata/chi_sim/chi_sim.training_text \
--min_coverage .9  \
--outputbase ../results/chi_sim/chi_sim\
|& grep raw | sed -e 's/ :.*/" \\/g'  | sed -e 's/^/  "/' >../results/chi_sim/fontslist.txt


生成训练数据
training/tesstrain.sh --fonts_dir /usr/share/fonts --lang chi_sim --linedata_only \
  --noextract_font_properties --langdata_dir ../langdata \
  --tessdata_dir ./tessdata \
  --exposures "0" \
  --fontlist "AR PL UKai CN" \
  "AR PL UKai HK" \
  "AR PL UKai TW" \
  --output_dir ../tesstutorial/chi_simtrain \
  --overwrite

生成评估数据

========
我的目录结构
engeval  engtrain  impact  impact_full  impact.traineddata  langdata  output  tesseract


训练命令
mkdir -p ~/tesstutorial/engoutput
training/lstmtraining --debug_interval 100 \
  --traineddata ~/tesstutorial/engtrain/eng/eng.traineddata \
  --net_spec '[1,36,0,1 Ct3,3,16 Mp3,3 Lfys48 Lfx96 Lrx96 Lfx256 O1c111]' \
  --model_output ~/tesstutorial/engoutput/base --learning_rate 20e-4 \
  --train_listfile ~/tesstutorial/engtrain/eng.training_files.txt \
  --eval_listfile ~/tesstutorial/engeval/eng.training_files.txt \
  --max_iterations 5000 &>~/tesstutorial/engoutput/basetrain.log

评估命令(import)
training/lstmeval --model ~/tesstutorial/engoutput/base_checkpoint \
  --traineddata ~/tesstutorial/engtrain/eng/eng.traineddata \
  --eval_listfile ~/tesstutorial/engeval/eng.training_files.txt
本地评估命令(import)
lstmeval --model ~/train_eng/output/base_checkpoint --traineddata ~/train_eng/engtrain/eng/eng.traineddata --eval_listfile ~/train_eng/engeval/eng.training_files.txt
本地评估结果(import)
At iteration 0, stage 0, Eval Char error rate=73.506941, Word error rate=99.017371

在第一次训练基础上增量训练impact命令
training/lstmtraining --model_output ~/tesstutorial/impact_from_small/impact \
  --continue_from ~/tesstutorial/engoutput/base_checkpoint \
  --traineddata ~/tesstutorial/engtrain/eng/eng.traineddata \
  --train_listfile ~/tesstutorial/engeval/eng.training_files.txt \
  --max_iterations 1200
本地第一次训练基础上增量训练impact命令
lstmtraining --debug_interval 100 --model_output ../impact/impact --continue_from ~/train_eng/output/base_checkpoint  --traineddata ~/train_eng/engtrain/eng/eng.traineddata --train_listfile ~/train_eng/engeval/eng.training_files.txt --max_iterations 1200 &>~/train_eng/impact/train.log

增量之后评估命令(import)
training/lstmeval --model ~/tesstutorial/impact_from_small/impact_checkpoint \
  --traineddata ~/tesstutorial/engtrain/eng/eng.traineddata \
  --eval_listfile ~/tesstutorial/engeval/eng.training_files.txt

本地增量之后评估命令(import)
lstmeval --model ~/train_eng/impact/impact_checkpoint --traineddata ~/train_eng/engtrain/eng/eng.traineddata --eval_listfile ~/train_eng/engeval/eng.training_files.txt
增量之后评估结果
At iteration 0, stage 0, Eval Char error rate=8.6180806, Word error rate=20.466931

在原有的eng训练集上增量训练命令
lstmtraining --debug_interval 100 --model_output ../impact_full/impact --continue_from ~/train_eng/impact_full/eng.lstm --traineddata tessdata/best/eng.traineddata --train_listfile ~/train_eng/engeval/eng.training_files.txt --max_iterations 400  &>~/train_eng/impact_full/train.log


在原有的eng训练集上增量评估命令
lstmeval --model ~/train_eng/impact_full/impact_checkpoint --traineddata tessdata/best/eng.traineddata --eval_listfile ~/train_eng/engeval/eng.training_files.txt

输出最终的模型文件
lstmtraining --stop_training --continue_from ~/train_eng/impact_full/impact_checkpoint --traineddata tessdata/best/eng.traineddata --model_output ~/train_eng/impact.traineddata

这个去识别Impact Condensed  会比默认的eng.traineddata好一些









回复

使用道具 举报

520

主题

2

好友

6551

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

沙发
发表于 2019-11-11 14:36:33 |只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2026-1-28 21:45 , Processed in 0.043994 second(s), 19 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部