4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[ Chrome OS / Debian ] Tesseract + PyOCR で日本語 OCR 環境を構築する

Last updated at Posted at 2022-02-13

はじめに

a. 記事概要

  • タイトルの通り、Chromebook 上で Tesseract + PyOCR で日本語 OCR 環境を構築します。

b. 動作確認環境

# OS
$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# Python
$ python --version
Python 3.9.10

インストール手順

1. Tesseract OCR

下記コマンドを実行し、Tesseract OCR をインストールします。

$ sudo apt install tesseract-ocr
$ sudo apt install libtesseract-dev

2. PyOCR

下記コマンドを実行し、PyOCR をインストールします。

$ pip install pyocr

PyOCR 経由で Tesseract OCR を利用できるか確認します。Python Shell を起動し、下記スクリプトを実行します。

$ python

Python 3.9.10 (main, Feb  2 2022, 12:14:21) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyocr
>>> 
>>> tools = pyocr.get_available_tools()
>>> tool = tools[0]
>>> tool
<module 'pyocr.tesseract' from '/home/hroki/.pyenv/versions/sphinx/lib/python3.9/site-packages/pyocr/tesseract.py'>
>>> 
>>> tool.get_available_languages()
['eng', 'osd']

Tesseract OCR を問題なくインストール出来ているようです。しかし、利用可能な言語に日本語 ("jpn") がありません。別途、日本語データを OCR エンジン側に認識させる必要があります。

3. 日本語データ

GitHub のリポジトリ より、jpn.traineddata をダウンロードし、エンジン側が認識できる適切なディレクトリに配備します。ディレクトリの場所が分からない場合は、以下のコマンドを打つなどして他言語データ ("eng", "osd" など) がどこにあるかを確認すると良いと思います。

root@penguin:~# find / -name *.traineddata
# (... omit ...)
/usr/share/tesseract-ocr/4.00/tessdata/eng.traineddata
/usr/share/tesseract-ocr/4.00/tessdata/osd.traineddata
# (... omit ...)

日本語データ (jpn.traineddata) を同じ場所に移動またはコピーした上で、再度利用可能な言語を確認します。

>>> tool.get_available_languages()
['eng', 'jpn', 'osd']

きちんと日本語データが認識されています。

動作確認

適当な画像データで OCR の動作確認を行ってみます。例として、以下の画像を使用します。

what-is-ocr.png

In
filepath = "./what-is-ocr.png"
text = tool.image_to_string(Image.open(filepath), lang="jpn")
print(text)
Out
光 学 文 字 認 識

出 目 フ リ ー 百 斗 事 六 ` ウ ィ キ ペ デ ィ ア (Wikipeda)』

先 学 文 托 部 譚 ( こ う が く も じ に ん し き 、 奇 Optca chaxier ecognton) は 、 活 字 、 手 書 き テ キ ス ト の 画 像 を 文 学 コ ー ド の 列 に 変 探 す る ソ フ ト ウ ェ ア で あ る 。 画 像 は イ メ ー ジ ス キ ャ ナ ー や 冗 真 で
取 り 込 ま れ た 文 書 、 風 景 写 真 風 映 内 の 相 板 の 文 字 な ど 、 画 像 内 の 字 薇 ( テ レ ビ 政 画 像 内 な ど ) が 使 わ れ る J。 一 餐 に OCR と 協 記 さ れ る 。

パ ス ポ ー ト 、 語 求 書 銀 行 M 頓 組 哉 _ レ シ ー ト 、 名 粟 メ ー ル 、 デ ー タ や 文 書 の 印 別 物 な ど 、 紙 に 記 載 さ れ た デ ー タ を デ ー タ 入 力 す る 手 法 と し て 広 く 使 わ れ 、 紙 に 印 剛 さ れ た 文 書 を デ ジ タ イ ズ
し 、 よ り コ ン パ ク ト な 形 で 記 録 す る の に 必 要 と さ れ る 。 さ ら に 、 文 字 コ ー ド に 変 換 す る こ と で コ グ ニ テ ィ ブ コ ン ピ ュ ー テ ィ ン グ 、 機 械 啓 許 や 音 田 合 成 の 入 力 に も 使 え る よ う に な り 、 テ キ ス ト マ イ
ニ ン グ も 可 能 と な る 。 研 究 映 と し て は 、 パ タ ー ン 認 譚 、 人 工 知 彦 、 コ ン ピ ュ ー タ ビ ジ ョ ン が 刑 応 す る 。

初 朗 の シ ス テ ム は 特 定 の 言 体 を 読 む た め の ` ト レ ー ニ ン グ 」 が 哉 で あ っ た ( 事 前 に そ の 書 伸 の サ ン プ ル を 読 ま せ る こ と を 意 味 す る )。 現 在 で は 、 ほ と ん ど の 静 体 を 高 い 螺 字 振 変 探 す る こ と が

可 能 で あ る 。 い く つ か の シ ス テ ム で は 読 み 込 ま れ た 画 像 か ら そ れ と ほ ほ ぼ 呪 じ に な る よ う フ ォ ー マ ッ ト さ れ た 出 力 ( 初 え ば ぼ 、 ワ ー ド プ ロ セ ッ サ の フ ァ イ ル の よ う な も の ) を 生 成 す る こ と が 可 能 で あ
り 、 中 に は 画 像 な ど の 文 書 以 外 の 部 分 が 君 ま れ て い て も 正 し く 認 霧 す る も の も ぁ る 。

所々間違ってはいるものの、人手による修正を前提とするならギリギリ我慢出来る範疇かなと思います。(我慢できなければ、有料のエンジン導入も検討した方が良いかもしれません)

出力結果の各文字の間に半角スペースが入ってしまっているので、実際に利用する際はこれらを取り除くクレンジング処理なども合わせて開発する必要がありそうです。

参考


EOF

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?