★悩み★
・OCR(文字認識)ソフトであるTesseractを使ってみたいなぁ。
・Tesseractを使って、縦書き日本語が記載された画像の文字認識をしたい。
・Tesseract(OCR/文字認識)で縦書き日本語を認識する手順を知りたい。
こういった「悩み」に答えます。
★本記事の内容★
➀ Tesseractで縦書きな日本語を文字認識(OCR)するための準備をご紹介
➁ Tesseractで縦書きな日本語を文字認識(OCR)する手順をご紹介
これからご紹介する「Tesseractで縦書き日本語を文字認識(OCR)する手順」を実践したことで、筆者は5分以内でTesseractで縦書きで記載された日本語の文字認識をできました。
記事の前半では「Tesseractで縦書きな日本語を文字認識(OCR)するための準備」をコマンドベースで紹介します。記事の後半では「Tesseractで縦書きな日本語を文字認識(OCR)する手順」を紹介します。
この記事を読み終えることで、「Tesseract(OCR/文字認識ソフト)で縦書きに記載された日本語の文字認識」を実現できます。
ちなみに、「Web上で公開された文字認識精度が高い学習データを使う」といったTesseract関連の情報を知りたい方には、以下のURLがオススメです。
★Tesseractとは★
Tesseractは、Google社が開発しているオープンソースの光学式文字認識ソフトウェアです。Tesseractのライセンスは、Apache License 2.0(2021年10月11日時点)であるため、「無料で画像内の文字抽出」ができます。
メリット/デメリットや事例に関しては、以下の記事をご覧ください。
>> 【要点】Tesseractとはを解消!初心者向けに特徴から使い方を図解
Tesseractで縦書きな日本語を文字認識(OCR)するための準備
「Tesseractで縦書きな日本語を文字認識(OCR)するための準備」に関してご紹介します。
★Tesseractで縦書きな日本語を文字認識(OCR)するための準備★
手順1:OCR(文字認識)ソフトであるTesseractをインストール
手順2:Tesseractで文字認識したい縦書き日本語の画像をダウンロード
上記の流れで、「Tesseractで縦書きで記載された日本語を文字認識(OCR)するための準備」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
Tesseractのバージョン:4.1.1-rc2-20-g01fb
動作確認済み日時:2021年10月6日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「Tesseractで縦書きな日本語を文字認識(OCR)するための準備」の各手順に関してご説明します。
手順1:OCR(文字認識)ソフトであるTesseractをインストール
「手順1:OCR(文字認識)ソフトであるTesseractをインストール」に関して解説します。
縦書きで記載された日本語の画像をOCR(文字認識)するために、OCR(文字認識)ソフトウェアであるTesseractをインストールしましょう。
「Tesseractのインストール手順」に関しては、以下の記事をご覧ください。
既にTesseractをインストールされている方は、本手順を省略してください。
以上で、「手順1:OCR(文字認識)ソフトであるTesseractをインストール」は完了です。
手順2:Tesseractで文字認識したい縦書き日本語の画像をダウンロード
「手順2:Tesseractで文字認識したい縦書き日本語の画像をダウンロード」に関して解説します。
Tesseractで文字認識させたい縦書き日本語の画像をダウンロードしましょう。
以降では、下の画像を用いた手順などを解説します。
以上で、「手順2:Tesseractで文字認識したい縦書き日本語の画像をダウンロード」は完了です。
上記の流れで、Tesseractで縦書きな日本語を文字認識(OCR)するための準備ができました。
Tesseractで縦書きな日本語を文字認識(OCR)する手順
「Tesseractで縦書きな日本語を文字認識(OCR)する手順」に関してご紹介します。
★Tesseractで縦書きな日本語を文字認識(OCR)する流れ★
手順1:Tesseract内に縦書き日本語の学習データがあることを確認
手順2:Tesseractで縦書きな日本語を文字認識(OCR)する
上記の流れで、「縦書き日本語が記載された画像から文字認識」できます。
上記の各手順は、以下の日時と環境で動作確認済みです。
Tesseractのバージョン:4.1.1-rc2-20-g01fb
動作確認済み日時:2021年10月6日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「Tesseractで縦書きな日本語を文字認識(OCR)する流れ」の各手順に関してご説明します。
手順1:Tesseract内に縦書き日本語の学習データがあることを確認
「手順1:Tesseract内に縦書き日本語の学習データがあることを確認」に関して解説します。
Tesseract内に「縦書き日本語の学習データ(辞書みたいなもの)」がないと、縦書きな日本語の文字認識ができません。まずは、存在することを確認しましょう。
Tesseract内に縦書き日本語の学習データが存在することを確認するために、以下のコマンドを実行してください。
# tesseract --list-langs
List of available languages (5):
deu
eng
jpn
jpn_vert
osd
コマンド実行後、「jpn_vert」が表示された場合、「Tesseract内に縦書き日本語の学習データが存在する」と判断できます。
「jpn_vert」が表示されなかった場合は、「Tesseract内に縦書き日本語の学習データをインストール」するために、以下の記事を参考にして、ウェブ上で公開されている学習データをダウンロードしてください。
ウェブ上で公開されている学習データをダウンロード後、「Tesseract内に縦書き日本語の学習データをインストール」するために、以下のコマンドを実行してください。
# cp -p /tmp/tessdata_best/jpn_vert.traineddata /usr/share/tesseract/4/tessdata/
# cp -p /tmp/tessdata_best/jpn.traineddata /usr/share/tesseract/4/tessdata/
# tesseract --list-langs
List of available languages (5):
deu
eng
jpn
jpn_vert
osd
#
以上で、「手順1:Tesseract内に縦書き日本語の学習データがあることを確認」は完了です。
手順2:Tesseractで縦書きな日本語を文字認識(OCR)する
「手順2:Tesseractで縦書きな日本語を文字認識(OCR)する」に関して解説します。
Tesseractで縦書き日本語が記載された画像を文字認識してみましょう。
縦書き日本語が記載された画像を文字認識(OCR)するために、以下のコマンドを実行してください。コマンド内の「適宜変更」と書いてある部分は、自分用に書き換えてください。
# tesseract -l jpn_vert <縦書き日本語が記載された画像のPath(適宜変更)> stdout
Warning: Invalid resolution 0 dpi. Using 70 instead.
Estimating resolution as 198
日本語の組版において
っ維書きと横書きの選択肢がある」
ということは極めて自然ですが、
世界的にはマイナーな
書字方向でもあります。
#
正解データと突き合わせたところ、間違いなく縦書き日本語の文字認識(OCR)ができていました。
ちなみに、縦書き日本語の学習データを利用せずに、Tesseractを実行すると以下のようになります。
# tesseract -l jpn <縦書き日本語が記載された画像のPath(適宜変更)> stdout
Warning: Invalid resolution 0 dpi. Using 70 instead.
Estimating resolution as 198
Detected 10 diacritics
ロ必亡@団加ロRS2ツ
「雇和綿みつ壮綿み9遇政夫人SQ」
つう璧りつ民鳳代り終や
志蜂鐘ロでホー
崩仲S選しりるSmゃ"
以上で、「手順2:Tesseractで縦書きな日本語を文字認識(OCR)する」は完了です。
上記の流れで、Tesseractで縦書き日本語を文字認識(OCR)できました。
【まとめ】Tesseractで縦書き日本語を文字認識(OCR)する手順
今回の記事を通して、「Tesseractで縦書き日本語を文字認識(OCR)する手順」をご紹介することで、以下の悩みを解消しました。
★悩み★
・OCR(文字認識)ソフトであるTesseractを使ってみたいなぁ。
・Tesseractを使って、縦書き日本語が記載された画像の文字認識をしたい。
・Tesseract(OCR/文字認識)で縦書き日本語を認識する手順を知りたい。
「Tesseractで縦書き日本語を文字認識(OCR)する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。