2019-06-14

以root身份执行以下所有命令

#Ubuntu的更新
$ apt update && apt upgrade
#Alexander Pozdnyakov的PPA
$ add-apt-repository ppa:alex-p/tesseract-ocr -y && apt update
#Tesseract本体
$ apt install -y tesseract-ocr
#建立一个工作目录
$ mkdir ~/tess && cd ~/tess
#Tesseract源代码使用testrain.sh
$ git clone --depth 1 https://github.com/tesseract-ocr/tesseract.git
#所有语言的配置文件(約232MB)
$ git clone --depth 1 https://github.com/tesseract-ocr/langdata.git
 OCR模型的设定

#将PATH设置为现有模型到环境变量
$ echo "export TESSDATA_PREFIX=/usr/share/tesseract-ocr/4.00/tessdata/" >> ~/.profile && source ~/.profile
# 除了默认包含4个现有模型(jpn, eng_best, jpn_best, jpn_vert)
# jpn_vert 是垂直字体模型 jpn, jpn_best 是必不可少的
$ wget https://github.com/tesseract-ocr/tessdata/raw/master/jpn.traineddata -P $TESSDATA_PREFIX
$ wget https://github.com/tesseract-ocr/tessdata_best/raw/master/eng.traineddata -O $TESSDATA_PREFIX/eng_best.traineddata
$ wget https://github.com/tesseract-ocr/tessdata_best/raw/master/jpn.traineddata -O $TESSDATA_PREFIX/jpn_best.traineddata
$ wget https://github.com/tesseract-ocr/tessdata_best/raw/master/jpn_vert.traineddata -P $TESSDATA_PREFIX
#确认现有模型
$ tesseract --list-langs
#将jpn_best转换为LSTM模型格式
$ combine_tessdata -e $TESSDATA_PREFIX/jpn_best.traineddata ~/tess/jpn_best.lstm


日语标准字体和IPA字体
$ apt install -y fonts-noto-cjk fonts-takao fonts-vlgothic fonts-ipafont
检查已安装的字体
$ text2image --list_available_fonts --fonts_dir /usr/share/fonts
插入以下命令,注意路径以自己本地路径为准
run_command python3 /home/ubuntu/normalize_text.py $ {TRAINING_DIR}
学习数据的生成

#创建数据保存目录
$ mkdir ~/tess/training_bs/
#根据tesstrain.sh生成lstm学习数据
$ nohup time bash ~/tess/tesseract/src/training/tesstrain.sh
--fonts_dir /usr/share/fonts --lang jpn  
--fontlist "TakaoGothic" "TakaoPGothic" "VL Gothic" "VL PGothic" 
"Noto Sans CJK JP Bold" "Noto Sans CJK JP" 
--linedata_only --training_text ~/training_bs.txt  
--langdata_dir ~/tess/langdata --noextract_font_properties 
--output_dir ~/tess/training_bs > ~/tess/training_bs/generate.log 2>&1 &
#监控进度
$ tail -f ~/tess/training_bs/generate.log


#创建目录
$ mkdir ~/tess/katakana
#最初400次迭代
$ nohup time lstmtraining 
--model_output ~/tess/katakana/400 
--continue_from ~/tess/jpn_best.lstm 
--old_traineddata $TESSDATA_PREFIX/jpn_best.traineddata
--traineddata ~/tess/training_bs/jpn/jpn.traineddata 
--train_listfile ~/tess/training_bs/jpn.training_files.txt
--max_iterations 400 >> ~/tess/katakana/train.log 2>&1 &
#监控进度
$ tail -f ~/tess/katakana/train.log
#将lstm模型改写为traineddata形式
$ lstmtraining --stop_training 
--continue_from ~/tess/katakana/400_checkpoint 
--traineddata ~/tess/training_bs/jpn/jpn.traineddata
--model_output $TESSDATA_PREFIX/katakana_400.traineddata

追加两百次
$ nohup time lstmtraining 
--model_output ~/tess/katakana/600 
--continue_from ~/tess/katakana/400_checkpoint 
--traineddata ~/tess/training_bs/jpn/jpn.traineddata 
--train_listfile ~/tess/training_bs/jpn.training_files.txt 
--max_iterations 200 >> ~/tess/katakana/train.log 2>&1 &

你可能感兴趣的:(2019-06-14)