📚

[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.日本語に対応させる

  1. 現在扱える言語のリストは以下で確認できる
% tesseract --list-langs|clipcopy

List of available languages in "/opt/homebrew/share/tessdata/" (3):
eng
osd
snum
  1. 日本語の縦横書きを認識する学習済みモデルをダウンロードする
% 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
  1. ダウンロードしたモデルを/opt/homebrew/share/tessdataに移動する
% mv ~/Downloads/*.traineddata /opt/homebrew/share/tessdata
  1. 日本語が追加されたことを確認する
% 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)

参考

https://qiita.com/aspiratio/items/be5c23ca06f4911bff56
https://qiita.com/seigot/items/7d424000c8d35e5146e4#縦書きの場合
https://dev.classmethod.jp/articles/ocr-on-a-mac-device-with-pytesseract/

GitHubで編集を提案

Discussion