#Tesseractについて
TesseractはGoogleが開発したオープンソースのテキスト認識(OCR)エンジンで、Apache 2.0ライセンスで利用可能です。直接使用することも、APIを使用して画像から印刷されたテキストを抽出することもできます。幅広い言語をサポートしています。
また、バージョン4.0からは、従来の認識エンジンに加え、LSTMベースのニューラルネットワークによる認識エンジンが搭載されている。
#今回の最新Tesseractの導入の目的
私は8月頃からWindows PCで接触確認アプリの利用状況を解析するために、Tesseractを用いてシステムを構築していた。今回は,従来のシステムを手元にあるRaspberry Piに移行し,PCから独立した形で自動化を行いたかった経緯があった。詳しい内容はhttps://qiita.com/Unagi_Create/items/7e1b01e43b71e0770727で公開している。
しかし、移行する上で問題があった。WindowsPCではTesseract 5.0.0-Aplphaを用いていたが、Raspberry PiにTesseractを導入しようとしたところ,ネット上の解説ではTesseract 3.x系がインストールされる手順であった。
私自身,既にバージョンが低いと文字の認識精度が著しく低下することを確認していたため、Tesseract 5.x系をRaspberry Pi 3B+に導入する必要があった。
Tesseract 3.x系がインストールされる手順例を以下に示す。(参考リンク:neko.ne.jp)
sudo apt-get update
sudo apt-get -y install tesseract-ocr
#前提環境
Hardware : Raspberry Pi 3 Model B+
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.13 (stretch)
Release: 9.13
Codename: stretch
pi@raspberrypi:~ $
#インストール手順
##1. ターミナルを開いて apt-transport-https をインストールします。
sudo apt-get install apt-transport-https
##2. etc/apt/sources.listを開きます。
nano /etc/apt/sources.list
or
vi /etc/apt/sources.list
##3. 手順2で開いたsources.listにこの行を追加。
deb https://notesalexp.org/tesseract-ocr-dev/raspbian/stretch/ stretch main
##4. source.listを保存して閉じる。
##5. GnuPGキーの取得とインストール
sudo apt-get update -oAcquire::AllowInsecureRepositories=true
sudo apt-get install notesalexp-keyring - oAcquire::AllowInsecureRepositories=true
sudo apt-get update
or
wget -O - https://notesalexp.org/debian/alexp_key.asc | sudo apt-key add -
sudo apt-get update
##6. 最後にtesseract-ocrをインストール
sudo apt-get install tesseract-ocr
#トレーニングデータ(tessdata)の導入方法
tesseractをインストールできたが、認識させたい言語のトレーニングデータを入れなければ文字認識(OCR)が行えない。
そこで、文字認識を行うトレーニングデータの中でbest
かfast
を選んでダウンロードし、tessdataディレクトリにコピーする。2つのリンク先のファイルをダウンロードする。
今回は、日本語のtessdataを導入する場合のリンク先を紹介する。
保存場所は/usr/share/tesseract-ocr/tessdata
or /usr/share/tessdata
or /usr/share/tesseract-ocr/5/tessdata
のどれかである。
- best(精度重視)トレーニングデータ
https://github.com/tesseract-ocr/tessdata_best/blob/master/jpn.traineddata
https://github.com/tesseract-ocr/tessdata_best/blob/master/jpn_vert.traineddata
- fast(速度重視)トレーニングデータ
https://github.com/tesseract-ocr/tessdata/blob/master/jpn.traineddata
https://github.com/tesseract-ocr/tessdata/blob/master/jpn_vert.traineddata
日本語以外が必要な場合、各言語に対して適宜ダウンロードを行う。
tessdataのリポジトリ: https://github.com/tesseract-ocr
#動作確認
##1. バージョン確認
pi@raspberrypi:~ $ tesseract --version
tesseract 5.0.0-alpha-773-gd33e
leptonica-1.78.0
libgif 5.1.4 : libjpeg 6b (libjpeg-turbo 1.5.1) : libpng 1.6.28 : libtiff 4.0.8 : zlib 1.2.8 : libwebp 0.5.2 : libopenjp2 2.3.0
Found NEON
Found OpenMP 201511
Found libarchive 3.2.2 zlib/1.2.8 liblzma/5.2.2 bz2lib/1.0.6 liblz4/1.7.1
pi@raspberrypi:~ $
##2. インストールされている言語の確認
pi@raspberrypi:~ $ tesseract --list-langs
List of available languages (4):
eng
jpn
jpn_vert
osd
pi@raspberrypi:~ $
##3. Tesseractの実行テスト
-
tesseract-ocrのコマンド形式
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
-
pi@raspberrypi:~ $ tesseract /home/pi/Documents/Github/cocoagetinfo/getIMG_pool/cocoa_info_0901.png stdout -l jpn 接触 確認 アプ リ は 、iOS・Android と も に 、 現 在 、「1.1.2」 を 配布 し て いま す 。
古い バー ジョ ン の アプ リ を ご 利用 の 方 は 、 App Store ま た は Google Play か ら 「 接 触 確
認 ア プリ 」 を 検索 いた だ き 、 アッ プ デ ー ト を お 願い し ます 。
ダウ ン ロ ー ド 数 は 、9 月 1 日 17:00 現 在 、 合計 で 約 1.577 万 件 で す 。
・ios、Android 両 方 の 合計 の 数 に な り ま す 。
・ ダ ウン ロー ド 後 に 削除 し 、 再 度 ダ ウン ロー ド し た 場合 は 、 複 数 回 カウ ント され る 場
合 が あり ます 。
陽性 登録 件 数 は 、9 月 1 日 17:00 現 在 、 合計 で 533 件 で す 。
pi@raspberrypi:~ $
```
#参考文献・引用
一部Deeplで翻訳した文を本記事内に引用しています。