![見出し画像](https://assets.st-note.com/production/uploads/images/141362893/rectangle_large_type_2_212058c9b592948896025485050306f1.png?width=800)
pythonで、画像ファイルから文字を認識してテキスト化する手順をChatGPTに教えてもらった
画像ファイルから文字抽出する機能を作成した際に、まずはpytesseractをセットアップしましたが、その設定手順についてもChatGPTに教えてもらいました。
設定中に所々でエラーが発生しましたが、そんな時もエラーメッセージをそのままChatGPTに投げれば解決法を教えてもらえるので、だいぶ助かりました!
以前に、pytesseractを使用して、画像から文字抽出した記事
1. pythonで、画像ファイルから文字を認識してテキスト化するpytesseractの設定手順
ChatGPTへのプロンプトまで記載すると、膨大になってしまうので、セットアップ関連の箇所のみを抜粋しまとめました。
1-1. pytesseract、Pillowのインストール
写真ファイルから文字を認識してテキスト化するためには、pytesseract というライブラリを使用する方法があります。pytesseract はGoogleのOCRエンジンであるTesseractをPythonから利用できるようにしたライブラリです。
まずは pytesseract と画像処理ライブラリの Pillow をインストールします。
pip install pytesseract
pip install Pillow
1-2. Tesseractのインストール
Tesseractのインストール
まず、Tesseractをインストールする必要があります。以下の手順でインストールします。
sudo apt-get install tesseract-ocr
1-3. Tesseractのパス設定
Tesseractのパス設定
Tesseractが正しくインストールされたら、settings.py ファイルで TESSERACT_CMD を設定してパスを指定します。以下のように設定します。
TESSERACT_CMD = '/usr/bin/tesseract'
上記のように、TESSERACT_CMD には実際の tesseract コマンドのパスを指定します。これにより、pytesseract はTesseractを呼び出して画像から文字を認識することができます。どのOSを使っているかに応じて、適切なパスを設定してください。
1-4. Tesseractの日本語言語データのインストール
Tesseractの日本語言語データのインストール
まず、Tesseractに日本語の言語データ jpn.traineddata をインストールします。
sudo apt-get install tesseract-ocr-jpn
1-5. TESSDATA_PREFIXの設定
TESSDATA_PREFIXの設定
Tesseractが日本語の言語データを正しく読み込むためには、TESSDATA_PREFIX 環境変数を設定する必要があります。通常は /usr/share/tesseract-ocr/ 以下に tessdata フォルダがあります。
以下の手順で環境変数を設定します。
export TESSDATA_PREFIX=/usr/share/tesseract-ocr/
Djangoの設定
Djangoの settings.py ファイルで TESSDATA_PREFIX を設定することもできます。
# settings.py
TESSDATA_PREFIX = '/usr/share/tesseract-ocr/'
2. 学習データを変える
最後はおまけで、実施しなくても良く、読み取る文字の形状を微調整したい場合など適宜実施する形で。
tesseractの配置場所を調べる
find / -type d -name "*tesseract*" 2>/dev/null | grep -v "Permission denied"
/usr/share/doc/tesseract-ocr-osd
/usr/share/doc/libtesseract4
/usr/share/doc/tesseract-ocr-eng
/usr/share/doc/tesseract-ocr-jpn
/usr/share/doc/tesseract-ocr
/usr/share/tesseract-ocr
/opt/bitnami/python/lib/python3.11/site-packages/pytesseract
/opt/bitnami/python/lib/python3.11/site-packages/pytesseract-0.3.10.dist-info
学習データのディレクトリの内容を確認する
/usr/share/tesseract-ocr/4.00/tessdata$ ls -ltr
total 16764
-rw-r--r-- 1 root root 4113088 Sep 15 2017 eng.traineddata
-rw-r--r-- 1 root root 10562727 Sep 15 2017 osd.traineddata
-rw-r--r-- 1 root root 2471260 Feb 21 2018 jpn.traineddata
-rw-r--r-- 1 root root 572 Feb 4 2021 pdf.ttf
drwxr-xr-x 2 root root 4096 Apr 23 01:12 tessconfigs
drwxr-xr-x 2 root root 4096 Apr 23 01:12 configs
元々存在していた学習データファイルをバックアップ
sudo mv jpn.traineddata jpn.traineddata.org.20240515
学習データをgithubから取得する
sudo wget https://github.com/tesseract-ocr/tessdata_best/raw/main/jpn.traineddata -P /usr/share/tesseract-ocr/4.00/tessdata/
sudo wget https://github.com/tesseract-ocr/tessdata_best/blob/main/jpn_vert.traineddata -P /usr/share/tesseract-ocr/4.00/tessdata/
おまけ(OpenCVの設定について)
pytesseractとは別件ですが、OpenCVもセットアップしたので、その時のメモ。
pip install opencv-python
sudo apt-get update
sudo apt-get install -y libgl1-mesa-glx
おわりに
最後まで読んで頂き、ありがとうございます!
ChatGPTを使用すると、作業スピードが格段に上がり、本来、精査とトライアンドエラーで1週間かかる作業が、1日以内で出来るぐらい生産性が上がったような気がします。生産性が上がると出来ることも増えるので、今後もChatGPTの活用方法を模索していきたいと思います!
この記事が気に入ったらサポートをしてみませんか?