再度試したとこ、macOS でトレーニング環境が動きました。
一旦動かなくなったのは、どうやら酔っ払っているうちに、意図しないファイルパスを登録したために、それが原因で動いてしまったようです。
ただし、まともなトレーニングデータを得るには至っておりません。とにかくトレーニング環境が動く事を目指しました。
書込の末のトレーニング方法を見直せば、何とかなると考えられます。
また、ターミナルに入力したコマンドを解説せずに記載しております。ご使用時にはご注意ください。例えばJava のツールのインストール時にGUI 側(Finder とか。)の操作が必要かもしれません。私はssh でリモートで行っていたため、画面に出た警告に気付かず時間を浪費した気がします。
参考にしたサイトは下記。他多数です。
https://github.com/tesseract-ocr/tesseract/issues/1453
下記は一部を参考にしました。
https://stackoverflow.com/questions/55361379/osx-compiling-training-tools-for-tesseract-4-0-pango-libraries-not-found
環境は下記。
macOS High Sierra 10.13.6 VMware Fusion
tesseract 4.1.1-rc1
leptonica-1.78.0
libgif 5.2.1 : libjpeg 9c : libpng 1.6.37 : libtiff 4.1.0 : zlib 1.2.11 : libwebp 1.0.3 : libopenjp2 2.3.1
Found AVX
Found SSE
無駄な物がたくさん含まれています。ご使用になる場合は適宜、自分に合わせて変更してください。
以下、Homebrewのインストールが必要です。
brew install automake autoconf autoconf-archive libtool
brew install pkgconfig
brew install icu4c
brew install leptonica
brew install gcc
brew install cairo pango
xx.xは変えること。
ls -l /usr/local/Cellar/icu4c
ln -hfs /usr/local/Cellar/icu4c/xx.x /usr/local/opt/icu4c
mkdir tesseract
フォルダにTeseract4.1のソースをコピー
cd tesseract
./autogen.sh
export PKG_CONFIG_PATH=\
$(brew --prefix)/lib/pkgconfig:\
$(brew --prefix)/opt/libarchive/lib/pkgconfig:\
$(brew --prefix)/opt/icu4c/lib/pkgconfig:\
$(brew --prefix)/opt/libffi/lib/pkgconfig:\
$(brew --prefix)/opt/libpng/lib/pkgconfig
brew info icu4c
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile & \
echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile & \
export LDFLAGS="-L/usr/local/opt/icu4c/lib" & \
export CPPFLAGS="-I/usr/local/opt/icu4c/include" & \
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
./configure \
CPPFLAGS=-I/usr/local/opt/icu4c/include \
LDFLAGS=-L/usr/local/opt/icu4c/lib
make -j
sudo make install
sudo update_dyld_shared_cache
make training
sudo make training-install
echo "export TESSDATA_PREFIX=/usr/local/share/tessdata/" >> ~/.bash_profile && source ~/.bash_profile
cd java
SCROLLVIEW_PATH=~/tesseract/java
Java のコマンドラインツールとかいうののインストールが必要です。
make ScrollView.jar
git clone https://github.com/tesseract-ocr/langdata
cd ..
text2image --list_available_fonts --fonts_dir=/Library/Fonts
下記の() 内の操作は不要。(
- export FONT_CONFIG_CACHE=$(mktemp -d --tmpdir font_tmp.XXXXXXXXXX)
+ export FONT_CONFIG_CACHE=$(mktemp -d -t font_tmp.XXXXXXXXXX)
)
git clone https://github.com/tesseract-ocr/tessdata_best
リンク先より「Copy the tessdata_best/eng.traineddata (for english training) from the tessdata you just cloned and past at tesseract/tessdata/」との事です。
学習準備だそうです。
PANGOCAIRO_BACKEND=fc \
~/tesseract/src/training/tesstrain.sh \
--fonts_dir /Library/Fonts \
--lang eng \
--linedata_only \
--noextract_font_properties \
--exposures "0" \
--langdata_dir ~/tesseract/java/langdata \
--tessdata_dir ~/tesseract/tessdata \
--fontlist "Verdana" \
--output_dir ~/tesstutorial/engtrain
PANGOCAIRO_BACKEND=fc \
~/tesseract/src/training/tesstrain.sh \
--fonts_dir /Library/Fonts \
--lang eng \
--linedata_only \
--noextract_font_properties \
--exposures "0" \
--langdata_dir ~/tesseract/java/langdata \
--tessdata_dir ~/tesseract/tessdata \
--fontlist "Times New Roman," \
--output_dir ~/tesstutorial/engeval
mkdir -p ~/tesstutorial/engoutput
SCROLLVIEW_PATH=~/projects/tesseract/java \
~/tesseract/src/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 2>&1 &
tail -f ~/tesstutorial/engoutput/basetrain.log
lstmtraining \
--stop_training \
--continue_from ~/tesstutorial/engoutput/base_checkpoint \
--traineddata ~/tesstutorial/engeval/eng/eng.traineddata \
--model_output ~/tesstutorial/base.traineddata