以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 &
网友评论