私の環境
iMacOS vetura 13.2
Python 3.10.4
Homebrew 4.2.4
pip 23.3.2
そもそも、画像の文字認識ってできるの?から始まりました。
蔵書管理のprogramを作っているけど、その中に内容の概要があれば後から分かり易いけど、「裏表紙のあらすじ」を文字化できないかな?
そこでchatGPTに聞いてみました。
出来ると言うことから、チャレンジしてみました。
でも、結論から言うと、目的である「裏表紙のあらすじ」を文字化して利用するには、もう少し研究しないとダメかもしれないと言うことです。
でも、新しい?(自分の中では)技術を知ったことは大変な喜びです。色々と使えそうです。
最初は失敗しました。
私はここで躓きました。
それは原因は"homebrew"を通さずに、"pytesseract"をインストールしたため、肝心な日本語(縦書きを含む)を読み込む段階でErrorとなりました。
また、次には、縦書きでは読み込めないことでした。
でも、以下の通りで解決しました。
参考にしたサイト
まず、最初に行うこと
HomeBrewに"tesseract"をインストール
# HomeBrewに"tesseract"をインストール
xxxxx@xxxxxnoiMac ~ % brew install tesseract
こんな感じで始まりました。1分ぐらい動いてました。そして”他の言語が必要な場合はbrew install tesseract-lang」”を実行しろと表示が出て終わりました。
xxxxx@xxxxxnoiMac ~ % brew install tesseract
Running `brew update --auto-update`...
##################################################################
:
省略
:
==> Caveats
==> tesseract
This formula contains only the "eng", "osd", and "snum" language data files.
If you need any other supported languages, run `brew install tesseract-lang`.
(この式には、「eng」、「osd」、および「snum」言語データ ファイルのみが含まれています。
サポートされている他の言語が必要な場合は、「brew install tesseract-lang」を実行してください。)
なので、指示通り「brew install tesseract-lang」をインストールしました。
# 日本語(jpn)を使用するため、上記指示に従い「brew install tesseract-lang」をインストール
xxxxx@xxxxxnoiMac ~ % brew install tesseract-lang
簡単にインストールは終了しました。pipだとインストールが成功すると
Successfully installed xxxxxxとか表示されるけど、なにも表示されませんでした。
変わりに”この動作を無効にします。”と表示がされましたが、警告でもエラーでもないので放っておきました。特に問題はなかったです。
ちなみに chatGPTの回答は
xxxxx@xxxxxnoiMac ~ % brew install tesseract-lang
==> Downloading https://ghcr.io/v2/homebrew/core/tesseract-lang/manifests/4.1.0-1
###########################################################100.0%
:
省略
:
==> Running `brew cleanup tesseract-lang`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
HOMEBREW_NO_INSTALL_CLEANUP を設定して、この動作を無効にします。
これらのヒントは HOMEBREW_NO_ENV_HINTS で非表示にします (「man brew」を参照)。
次に、pipに"pytesseract"をインストールします。これは特に問題なことはなく通常通り終了しました。
# "pytesseract"をインストール
xxxxx@xxxxxnoiMac ~ % python3 -m pip install pytesseract
xxxxx@xxxxxnoiMac ~ % python3 -m pip install pytesseract
pytesseract
Collecting
:
省略
:
Installing collected packages: pytesseract
Successfully installed pytesseract-0.3.10
(pytesseract-0.3.10が正常にインストールされました)
これで準備は整いました。
次にサンプルの画像を準備します。これらの”スクリーンショット”を、current directory(下のprogramの置いてあるディレクトリ)に保存します。(jpgでもpngでも大丈夫ででした。PDFはダメでした>)
こんな感じです。
コードは以下の通り簡単です。
# PythonとOCR(光学文字認識)の組み合わせによる画像内のテキストを自動的に読み取る
# 日本語のOCDテストprogram
import pytesseract
from PIL import Image
import os
# current_directryを調べる
cur_path = os.getcwd()
#OCRするPhotoを指定
photo = '/横書き.png'
str_img = Image.open(cur_path + photo)
# 日本語(縦書きを含む)を読み込む
str = pytesseract.image_to_string(str_img,lang="jpn+jpn_vert")
print(str)
photo = "/ "のところにphotoの名前を入力してください。
ターミナル上に表示されます。
上手く行かない画像の例です。
これは出発点が一文字が2列分になっていて誤読されます。
<ターミナルへの表示>
しPD
ノ が本部長を務めるロス北郊のサンフェ
ルナンドの市警察に誘われ、無給の嘱託
刑事として勤務するようになっていた。
一方で取り直した免許により、私立探偵
として個人的な仕事を受けていた。ある
日、刀歳の大富楽ホイットニー・ヴァン
スから呼び出され、人捜しを依頼される。
レーい先短いことを悟った富革には学生
の頃知り合い妊娠させながらも、親
り計和培全丈おスキロスS稀べく会お?
その子どもが生きていれば捜してほしい
と頼まれたボッシュは調査を引き受ける。
方、同僚刑事と連続婦女暴行事件捜査
を進めるなか、同一犯によると思しき暴
行末遂事件が起こり、事態が急展開する。
原因はわかりませんが、こんな感じで表示されます。
<ターミナルへの表示>
=ここ 消僚の女が首を給った
忌まわしき旧法眼邸。 明治から
戦手まで隆盛を極め、"病院坂"
という地名にまでなった大病院
の屋敷跡であった……。本條写
真館の息子直吉は、ある晩そこ
で奇妙な結婚記念写真を依頼さ
れた。 住む人もない廃屋での撮
影は、不吉な出来事を暗示して
いるようであった。 数日後、再
び撮影で屋敷を訪れた直吉は、
そこに鮮血を滴らせ風鈴の如く
ぶら下がった男の生首を発見す
るが…!?
# PythonとOCR (光学文字認識) の組み合わせによる画像内のテキストを
# 日本語の0OCDテストprogram
1mport pytesseract
from PIL import Image
import os
# Current_directryを調べる
cur_path = os.getcwd( )
#0CRするPhotoを指定
photo = '/横書き.png'
str_img = 1mage.open(cur_path + photo)
# 日本語 (縦書きを含む) を読み込む
動的に読み取る
str = pytesseract.image_to_string(str_img, Lang="]Dpn+]Dn_Vert")
print(str)
'''