nikkie-ftnextの日記

イベントレポートや読書メモを発信

macOSでTesseractをインストールし、画像内の日本語テキストを検出する

はじめに

アーティファクトを最大2つまで対象とし、それらをアンタップする。1 nikkieです。

OCR光学文字認識)ができるソフトウェア Tesseractの触り出しログです。

目次

Tesseract

Brief historyを見たところ、

現在の安定なメジャーバージョンは5系(2021/11/30〜)

macOSにTesseractをインストール

https://tesseract-ocr.github.io/tessdoc/Installation.html

Homebrewでインストールできます2

brew install tesseract

インストールが終わると、tesseractコマンドが使えるようになります。

日本語を扱えるようにする

brew install時のCaveats(注意書き)にあるのですが、

This formula contains only the "eng", "osd", and "snum" language data files.
If you need any other supported languages, run brew install tesseract-lang.

brew install tesseractに含まれるのは英語(eng)などに限られます(osdとsnumってなんだろう?)。
これら以外の言語(例:日本語)をTesseractはサポートしますが、brew install tesseract-langが必要です。

これでサポートする全言語のファイルがダウンロードされるようです(シンボリックリンクを作るらしい)。

tesseract --list-langsjpnjpn_vertが含まれています(後者は縦書き用)

画像内の日本語テキストを検出

以前Vision APIにも渡した画像3をTesseractにも渡してみましょう。

% tesseract -l jpn kanji.png tmp
% cat tmp.txt  # OCR結果がtmp.txtに書き出されています
あなた

飯田橋から神楽坂エリアで、新和

人7000F

ChatGPT
飯田橋や神楽坂エリアで新年会

会にぴったりの

居酒屋を探してください。 予算は1

以下で、 8人では入れるお店にしてください。

におすすめの居酒屋として、
~!があります。 こちらは本格的なイタリア料理を提供するお店で、ビザや

パスタが特徴です。 最大64人までの宴会が可能で、 予算は宴会コースで5000円か

ら利用できます。 また、
提供する隠れ家的な究

'もお

すすめで、こちらは本格イタリアンを

気のお店です。 5名以上で利用できるコースがあり、

7500円の特別ビツツアコースが特におすすめです [。

日本語を読めています!
ただ真横に読めていないですね(脳内で再構成が必要)

終わりに

Tesseractの触り出しログでした。
macOSbrew installし、日本語を読むのに必要なファイルもインストールして、動かしました

P.S. 別解:日本語を読めるようにする

日本語を読むのに必要なファイルだけインストールする方法です。
GitHubからダウンロードして、/opt/homebrew/share/tessdataに配置します4

brew install tesseract-langでは https://github.com/tesseract-ocr/tessdata_fast からインストールされたようですが、
別解の方法は https://github.com/tesseract-ocr/tessdata_best からインストールします(fastとbestの違いがあります)。
リポジトリを見たところ、fastの方は更新が止まっている(4系)ので、もしかするとbestから必要なファイルを配置するほうがいいかもしれません(検証したら追記します

追記:tessdata_bestのファイルを置くのがオススメ

別解のやり方のことです。
処理に時間はかかりますが、精度が上がるので私のユースケースにマッチしました。

  • brew unlink tesseract-langシンボリックリンクが削除され、tesseract --list-langsのリストが減ります
  • tessdata_bestからダウンロードしたjpn{,_vert}.traineddata(2ファイル)を/opt/homebrew/share/tessdataに配置します5

tesseract -l jpn kanji.png tmpを実行すると、精度が高いです6

あな た
飯田 橋 か ら 神楽 坂 エ リア で 、 新 年 会 に ぴっ た り の 居酒屋 を 探し て くだ さい 。 予算 は 1
人 7000 円 以下 で 、8 人 で は 入れ る お 店 に し て くだ さい 。

ChatGPT

(略)

tessdata_fastもtessdata_bestも、リポジトリのリリースが4系で止まっています。
ですが、これらのファイルはTesseract 5系でも使えると記載がありました。
https://tesseract-ocr.github.io/tessdoc/#traineddata-files

Language model traineddata files same as listed above for version 4.0.0 can be used with Tesseract 5.x.x.

変更履歴

  • 2024/03/25 「追記:tessdata_bestのファイルを置くのがオススメ」を追加(検証して追記を達成)

  1. Tesseractは四次元超立方体の意らしいのですが、私は《求道者テゼレット》を思い出します
  2. インストールのドキュメントを見ると、Homebrew以外のやり方も案内されています
  3. 画像 kanji.png 自体はこちらのツイートから
  4. 配置先はtesseract --list-langsで確認できます。
  5. シンボリックリンクでもよいですね
  6. 半角スペースの除き方は別記事(2024/03/25)で案内します