はじめに
アーティファクトを最大2つまで対象とし、それらをアンタップする。1 nikkieです。
OCR(光学文字認識)ができるソフトウェア Tesseractの触り出しログです。
目次
- はじめに
- 目次
- Tesseract
- macOSにTesseractをインストール
- 日本語を扱えるようにする
- 画像内の日本語テキストを検出
- 終わりに
- P.S. 別解:日本語を読めるようにする
- 追記:tessdata_bestのファイルを置くのがオススメ
- 変更履歴
Tesseract
Brief historyを見たところ、
- ヒューレット・パッカード発(1985〜)
- Googleが開発していた時期がある(2006〜2018)
現在の安定なメジャーバージョンは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, runbrew install tesseract-lang
.
brew install tesseract
に含まれるのは英語(eng)などに限られます(osdとsnumってなんだろう?)。
これら以外の言語(例:日本語)をTesseractはサポートしますが、brew install tesseract-lang
が必要です。
これでサポートする全言語のファイルがダウンロードされるようです(シンボリックリンクを作るらしい)。
tesseract --list-langs
にjpn
やjpn_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の触り出しログでした。
macOSでbrew install
し、日本語を読むのに必要なファイルもインストールして、動かしました
P.S. 別解:日本語を読めるようにする
日本語を読むのに必要なファイルだけインストールする方法です。
GitHubからダウンロードして、/opt/homebrew/share/tessdata
に配置します4。
- jpn: https://github.com/tesseract-ocr/tessdata_best/blob/main/jpn.traineddata
- jpn_vert: https://github.com/tesseract-ocr/tessdata_best/blob/main/jpn_vert.traineddata
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のファイルを置くのがオススメ」を追加(検証して追記を達成)