📚

[tesseract] macでOCRをしてみる

2024/08/14に公開

はじめに

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