はじめに
アーティファクトを最大2つまで対象とし、それらをアンタップする。1 nikkieです。
OCR(光学文字認識)ソフトウェア Tesseract をPythonから触ります。
目次
前回のTesseract!
macOSにインストールし、日本語のOCRができるように設定済みです。
tesseract -l jpn kanji.png tmp
OCR結果がtmp.txtに書き出されます
- tesseract 5.3.4
- 日本語のファイル(jpn, jpn_vert)は tessdata_best からダウンロードしたものを使用
pytesseract
TesseractのPythonラッパーが存在します。
pytesseractで、画像内の日本語テキストを検出
前回記事と同じ kanji.png を使います。
>>> from PIL import Image >>> import pytesseract >>> image = Image.open("kanji.png") >>> result = pytesseract.image_to_string(image, lang="jpn") >>> print(result) あな た 飯田 橋 か ら 神楽 坂 エ リア で 、 新 年 会 に ぴっ た り の 居酒屋 を 探し て くだ さい 。 予算 は 1 人 7000 円 以下 で 、8 人 で は 入れ る お 店 に し て くだ さい 。 ChatGPT 飯田 橋 や 神楽 坂 エ リア で 新年 会 に お すす め の 居 酒屋 と し て 、 ・! が あり ます 。 こち ら は 本 格 的 な イタ リア 料理 を 提供 する お 店 で 、 ピ ビザ や パス タ が 特徴 で す 。 最大 64 人 まで の 宴会 が 可能 で 、 予算 は 宴会 コー ス で 5000 円 か ら 利用 で きま す 。 また 、 ! も お すす めで 、 こ ちら は 本 格 イ タリ アン を 提供 する 隠れ 家 的 な 雰囲気 の お 店 で す 。 5 名 以上 で 利用 で きる コー ス が あり 、 7500 円 の 特別 ピッ ツア コー ス が 特に お すす めで す 引 。
読めてますね!
pytesseractのソースコードを覗いて
subprocessでtesseract
コマンドを叩いていました。
出力結果のバリエーションがあることを知りました。
- テキスト
pytesseract.image_to_string()
tesseract kanji.png tmp -l jpn txt
(最後に拡張子を指定できる。この指定はモードのようにも働く)
- 文字+座標
pytesseract.image_to_boxes()
tesseract kanji.png tmp -l jpn -c 'tessedit_create_boxfile=1 batch.nochop makebox'
- 文字のまとまり+座標
pytesseract.image_to_data()
tesseract kanji.png tmp -l jpn tsv
終わりに
Tesseractの環境構築ができていれば、pytesseractでPythonから操作できます。
実装を覗いて、Tesseractで座標情報も出力できることを知りました。
- 《求道者テゼレット》↩
- リポジトリにはPyPIより新しいバージョンがありました。https://github.com/madmaze/pytesseract/releases/tag/v0.3.13↩
-
オメガグッショブ!
↩Tesseract触ったところ、日本語のOCRはめっちゃ半角スペース入るようなんですが、過去記事参考に後処理を一発で書き上げられた!
— nikkie / にっきー (@ftnext) 2024年1月3日
過去の私、オメガグッショブ!https://t.co/msVCxvHXhb