📚
[tesseract] macでOCRをしてみる
はじめに
macでOCRをしてみる。
環境
- System Version: macOS 14.4 (23E214)
- Python 3.12.5
手順
1. tesseractをインストール
% brew install tesseract
2. pytesseractのインストールを確認
% tesseract --version
tesseract 5.4.1
leptonica-1.84.1
libgif 5.2.1 : libjpeg 8d (libjpeg-turbo 3.0.0) : libpng 1.6.43 : libtiff 4.6.0 : zlib 1.2.12 : libwebp 1.4.0 : libopenjp2 2.5.2
Found NEON
Found libarchive 3.7.4 zlib/1.2.12 liblzma/5.4.6 bz2lib/1.0.8 liblz4/1.9.4 libzstd/1.5.6
Found libcurl/8.4.0 SecureTransport (LibreSSL/3.3.6) zlib/1.2.12 nghttp2/1.58.0
3.日本語に対応させる
- 現在扱える言語のリストは以下で確認できる
% tesseract --list-langs|clipcopy
List of available languages in "/opt/homebrew/share/tessdata/" (3):
eng
osd
snum
- 日本語の縦横書きを認識する学習済みモデルをダウンロードする
% curl -LO https://github.com/tesseract-ocr/tessdata_best/raw/main/jpn.traineddata
% curl -LO https://github.com/tesseract-ocr/tessdata_best/raw/main/jpn_vert.traineddata
- ダウンロードしたモデルを
/opt/homebrew/share/tessdata
に移動する
% mv ~/Downloads/*.traineddata /opt/homebrew/share/tessdata
- 日本語が追加されたことを確認する
% tesseract --list-langs|clipcopy
List of available languages in "/opt/homebrew/share/tessdata/" (5):
eng
jpn
jpn_vert
osd
snum
4. OCRを実行する
実行する画像ファイル
ocr.jpg
% tesseract <input> <output> -l lang_code
-
<output>
は-
を指定すると標準出力に出力される -
lang_code
は言語コードを指定する(日本語はjpn)
% tesseract ocr.jpg - -l jpn
当初 二 大 会 すべ て 「 デ ィ フ ェ ン ディ ング チャ ン ピ オ ン 」 の 資格 で 出場 する 予定 だ っ た 安 洗
稼が 不参加 を 決め た 理由 と し て 提示 し た の は 膝 と 足首 の 負傷 だ 。 安 洗 沿 は 昨年 1 0 月 杭州
アジ ア 競 技 大 会 で 右 膝 の 負傷 で 長い 間 リ ハビ リ を 行っ て きた 。 さ ら に 最近 閉幕 し た パリ 五
輪 を 控え て 大 会 開幕 直前 に 足首 の 筋 を 負傷 し た 。
た だ し 、 安 洗 沿 は これ と いう 異常 症状 な く 五輪 日 程 を 完走 し 、 女 子 シ ング ルス に 金メダル
まで も た らし た 。 国際 大 会 不参加 の 決定 に 関連 し 、 金 メダ ル 以 降 に 出し た 発言 と それ に と
も な う 後 続 状況 が 影響 を 及ぼ し た と いう 分 析 も 出 て いる 。 パ リ 五 輪 で 入賞 し た 大 韓 民国 選
手 団 メダ リス ト の うち 、 そ の 後 開 か れる 国 ・ 内 外 の 大 会 日 程 に 不参加 を 決め た の は 現在 ま
で は 安 洗 常 が 唯一 だ 。
正確に認識できている
変則な画像
sagaih.jpg
% tesseract sagaih.jpg - -l jpn
Detected 9 diacritics
あり が と う を 強 さ に 変え て 北部 九州 総体 2024
イン ター が パイ
佐 賀 SS 区 も っ
KYUSHU, SAGA
ビミョ〜に認識できていない
Pythonで実行
% pip install pytesseract
% pip install Pillow
import pytesseract
from PIL import Image
import os
str_img=Image.open('ocr.jpg')
str=pytesseract.image_to_string(str_img,lang='jpn')
print(str)
参考
Discussion