tesseractでOCRする

tesseract

tesseractとはオープンソースのOCRエンジンです.エンジンのみなので画像を読み取る前に事前におぜん立てをする必要があります.ここでは,tesseractのfedora 36へのインストールから実際に画像データから文字を読み取りテキストファイルにするまでを説明します.

tesseractのインストール

fedora 36ではdnfコマンドでイントール可能です.これで,日本語の横書き用と縦書き用の学習データもインストールされます.

# dnf -y install tesseract
メタデータの期限切れの最終確認: 0:01:04 時間前の 2022年08月02日 11時35分42秒 に実施しました。
依存関係が解決しました。
===================================================================================================================================
 パッケージ            アーキテクチャー       バージョン                   リポジトリー            サイズ
===================================================================================================================================
インストール:
 tesseract                     x86_64           5.0.1-5.fc36           fedora                  1.3 M
依存関係のインストール:
 giflib                        x86_64           5.2.1-14.fc36          updates                  51 k
 leptonica                     x86_64           1.82.0-6.fc36          fedora                  1.1 M
 tesseract-langpack-eng        noarch           4.1.0-3.fc36           fedora                  1.7 M
 tesseract-tessdata-doc        noarch           4.1.0-3.fc36           fedora                   13 k
弱い依存関係のインストール:
 tesseract-langpack-jpn        noarch           4.1.0-3.fc36           fedora                  1.4 M
 tesseract-langpack-jpn_vert   noarch           4.1.0-3.fc36           fedora                  1.9 M

トランザクションの概要
===================================================================================================================================
インストール  7 パッケージ

ダウンロードサイズの合計: 7.6 M
インストール後のサイズ: 16 M
パッケージのダウンロード:
(1/7): leptonica-1.82.0-6.fc36.x86_64.rpm                              1.3 MB/s | 1.1 MB     00:00
(2/7): tesseract-5.0.1-5.fc36.x86_64.rpm                               1.4 MB/s | 1.3 MB     00:00
(3/7): tesseract-langpack-eng-4.1.0-3.fc36.noarch.rpm                  1.6 MB/s | 1.7 MB     00:01
(4/7): tesseract-tessdata-doc-4.1.0-3.fc36.noarch.rpm                  294 kB/s |  13 kB     00:00
(5/7): giflib-5.2.1-14.fc36.x86_64.rpm                                 1.6 MB/s |  51 kB     00:00
(6/7): tesseract-langpack-jpn-4.1.0-3.fc36.noarch.rpm                  4.4 MB/s | 1.4 MB     00:00
(7/7): tesseract-langpack-jpn_vert-4.1.0-3.fc36.noarch.rpm             3.2 MB/s | 1.9 MB     00:00
---------------------------------------------------------------------------------------------------
合計                                                                   2.4 MB/s | 7.6 MB     00:03
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                               1/1
  インストール中   : tesseract-tessdata-doc-4.1.0-3.fc36.noarch                                     1/7
  インストール中   : giflib-5.2.1-14.fc36.x86_64                                                    2/7
  インストール中   : leptonica-1.82.0-6.fc36.x86_64                                                 3/7
  インストール中   : tesseract-langpack-eng-4.1.0-3.fc36.noarch                                     4/7
  インストール中   : tesseract-langpack-jpn-4.1.0-3.fc36.noarch                                     5/7
  インストール中   : tesseract-langpack-jpn_vert-4.1.0-3.fc36.noarch                                6/7
  インストール中   : tesseract-5.0.1-5.fc36.x86_64                                                  7/7
  scriptletの実行中: tesseract-5.0.1-5.fc36.x86_64                                                 7/7
  検証             : leptonica-1.82.0-6.fc36.x86_64                                                1/7
  検証             : tesseract-5.0.1-5.fc36.x86_64                                                 2/7
  検証             : tesseract-langpack-eng-4.1.0-3.fc36.noarch                                    3/7
  検証             : tesseract-langpack-jpn-4.1.0-3.fc36.noarch                                    4/7
  検証             : tesseract-langpack-jpn_vert-4.1.0-3.fc36.noarch                               5/7
  検証             : tesseract-tessdata-doc-4.1.0-3.fc36.noarch                                    6/7
  検証             : giflib-5.2.1-14.fc36.x86_64                                                   7/7

インストール済み:
  giflib-5.2.1-14.fc36.x86_64                  leptonica-1.82.0-6.fc36.x86_64
  tesseract-5.0.1-5.fc36.x86_64                tesseract-langpack-eng-4.1.0-3.fc36.noarch
  tesseract-langpack-jpn-4.1.0-3.fc36.noarch   tesseract-langpack-jpn_vert-4.1.0-3.fc36.noarch
  tesseract-tessdata-doc-4.1.0-3.fc36.noarch

完了しました!

画像データの変換

tesseractはpdfは扱えないのでpng形式へ変換する必要があります.なお,pdftoppmはfedora36に標準でインストールされています.

% pdftoppm -png out.pdf out

1ページ1pngファイルとして出力されます.ファイル名はout-001.png,out-002.png,…となります.

画像からテキストを読み取る

tesseractには日本語OCR用の学習データが用意されています.またこれには横書き用と縦書き用が別に用意されています.確認方法は以下のコマンドを実行します.jpnが横書き用,jpn_vertが縦書き用となっています.

% tesseract --list-langs

実際に読み取るには以下のようにコマンドを実行します.

% tesseract out-072.png test -l jpn_vert

out-072.png(日本語の縦書きで書かれている画像データが格納されている)のテキストデータをtest.txtというファイル名で保存します.

tesseractの学習データについて

tesseractの学習データは,自身で学習することもできますし,すでに学習してあるデータを利用することも可能です.学習データについては,今後追記していきます.

コメント

タイトルとURLをコピーしました