Pythonで文字認識

カテゴリ:Pythonの話

公開日:2020.08.10 最終更新日:2023.10.03
このエントリーをはてなブックマークに追加

今回はPythonの文字認識エンジン「tesseract」を使って画像の文字を認識させてみます。Djangoを使用してブラウザ上で認識した文字を表示させてみます。

また、弊社ではWebプロモーション成功事例集をまとめた限定資料を無料で配布しています。

Webマーケティングに興味がある方は、下記ページより目を通してみてください。

環境

  • Python 3.7.7
  • Django 3.0.7
  • pyocr 0.7.2
  • opencv 4.2.0.34

目次

OCRとは

似ている文字があると誤差が少しあります。

OCR(Optical Character Recognition/Reader)とは「光学的文字認識」のことです。要するに機械学習した情報を元に画像から文字を検出してくれるソフトウェアのことです。

今回はそのOCRでよく使われるtesseract(テッセラクト)を使用します。tesseractはGoogleが学習させたデータを元に画像から文字を認識してくれます。

インストール

まずは画像ファイルを読み込む為にPillowをインストールします。

次にopencv。opencvは読み込んだ画像の文字をどのように認識してくれたかを確認する為に用います。

最後にtesseractをインストール。

読み込み処理

ここではDjangoのインストールについては割愛します。導入についてはこちらを参考にしてください。

work/views.py

ここではテンプレートから送られる画像の受け渡しを行っています。

4行目ではこれから作成する文字認識処理を読み込んでいます。

work/ocr/tesseract_img.py

work/urls.py

work/templates/work/work.html

ここまでできたら一度画像ファイルを読み込ませて見てください。私はこちらの画像を使用しました。文字が表示されれば成功です。

opencvで読み込んだ画像の確認

アプリフォルダと同じ階層に画像フォルダを作成します。

img_tesseract/tesseract/aiueo.jpg

次に先程文字認識をしたファイルに新しくopencvの記述をします。

work/ocr/tesseract_img.py

これでどのように画像が読み込まれたのか赤線部分で確認ができるはずです。

tesseract応用知識

31行目のtesseract_layoutの数字を下記を参考に変えてみてください。それによって認識の精度が上がります。

0: 文字角度の識別と書字系のみの認識(OSD)のみ実施(OCRは実施されない)
1: OSDを利用した自動ページセグメンテーション
2: OSDまたはOCRを利用しない自動セグメンテーション
3: OSDなしの完全自動セグメンテーション(デフォルト)
4: 可変サイズの1列テキストを想定する
5: 縦書きの単一のテキストブロックと想定する
6: 横書きの単一のテキストブロックと想定する
7: 画像を1行のテキストと想定する
8: 画像を1つの単語と想定する
9: 円の中に記載された1単語と想定する(①などの丸数字等)
10: 画像を1文字と想定する

検出パターンの変更もできます。同じく31行目のbuilder=pyocr.builders.「ビルダー」でビルダーの箇所を下記を参考にしてみてください。

TextBuilder  文字列を認識 
WordBoxBuilder  単語単位で文字認識 + BoundingBox 
LineBoxBuilder  行単位で文字認識 + BoundingBox 
DigitBuilder  数字 / 記号を認識
DigitLineBoxBuilder  数字 / 記号を認識 + BoundingBox 

tesseractが苦手な画像処理は下記になります。これらに気をつけて読み込み処理をすれば比較的高い精度で読み込んでくれます。

  • 文字の間隔が狭い
  • 文字以外の背景が含まれている
  • 日本語や英語が混在している

おわりに

ビルダーの変更によって数字なども読み込めますので必要に応じて使い分けてみてください。

またwebで集客する方法を別の記事にまとめております。

詳しく解説しているので、web集客について深く知りたい方は、ぜひこちらもご覧ください。

web集客
【2023年更新】Web集客の方法と種類を無料・有料別に紹介!
今回の記事を読むことで、Web集客をして、実際に売上を伸ばすための最適な方法をご紹介します。





弊社inglowでは、これから広告の運用を考えている方、あるいはこれから広告代理店に運用をお願いされる方向けに、「業界別Web広告の成功事例」をまとめた資料を無料配布しております。

下記の画像をクリック、または、フォームに入力いただくだけで、無料で資料をダウンロードしていただけます。ぜひご利用下さい。

    このサイトはreCAPTCHAとGoogleによって保護されています。プライバシーポリシー利用規約が適用されます。

    一覧へ戻る