見出し画像

【画像処理】OpenCVで画像の歪みを補正して、Tesseract OCRで文字を読み取る

学べること

このノートでは、OpenCV を使用して領収書の画像の歪みを補正して、Tesseract OCR を使用して OCR を行い、画像からテキスト情報を抽出します。OCR を試すだけではなく、画像処理の方法からテキスト情報の抽出までの一連の流れを学ぶことができます。

・OpenCVを使用した画像の歪みの補正方法
・Tesseract OCRの使用方法
・画像の歪みがOCR精度に与える影響度

*こちらのマガジンでは、毎月4本程度の有料ノートをお届けします。月に2本以上読むなら、月額マガジン購読の方がお得です。

概要

このノートでは、まず OpenCV を使用して領収書の画像の歪みを補正します。一般的に領収書などは、ユーザーの携帯のカメラなどで取られることが多く、画像が少し傾いていたりします。そのような場合に、OCR 処理を行うと精度が低くなるため、事前に画像処理を行って画像が OCR で読み取りやすい形式に変換します。

OpenCV を使用して、画像の歪みを補正したあとに、Tesseract OCR を使用して OCR 処理をかけます。Tesseract OCR は Google が管理しているオープンソースの OCR ライブラリです。様々な言語やプラットフォーム上で動作して非常に人気のライブラリです。また、バージョン 4.0 からは従来の認識エンジンに加えて、LSTM ベースのニューラルネットワークによる認識エンジンが搭載されたことにより、日本語の認識精度も大幅に向上しました。

今回は、実際に歪みのある領収書の画像を、歪みの補正前と補正後でどの程度 OCR 精度に差があるのか確認していきしょう。

このノートは、以下のような業務で活用されています。

・経費申請サービスでの領収書 OCR 処理
・名刺の OCR 処理

実行環境

・Google Colaboratory

ライブラリ・ツール

・Python3(実行環境: 3.6)
・OpenCV
・Jupyter Notebook
・Tesseract OCR

事前準備

サンプル画像のアップロード

添付されている「sample.png」ファイルを Google Colaboratory にアップロードしましょう。こちらの画像を実装のときに使用していきます。

画像1

Tesseract OCR のインストール

このレシピでは、Tesseract OCR を使用するため、tesseract-ocr と日本語用の辞書をインストールします。Google Colaboratory を開いて、以下のコマンドを入力して実行してください。

!apt-get install tesseract-ocr
!apt-get install tesseract-ocr-jpn

pytesseract のインストール

また、Tesseract OCR のラッパーライブラリである pytesseract を使用するため、pytesseract ライブラリを Google Colaboratory にインストールしていきます。インストールは pip と呼ばれる Python のパッケージマネージャーを使用して、ライブライをインストールします。次の、コマンドを入力して実行してください。

!pip install pytesseract==0.3.0

1. 実装 - 歪み補正前の領収書を OCR してみる

それでは、まずは歪みの補正前の領収書を OCR して、どのぐらい文字を認識できるのかを確認してみましょう。

下ごしらえでインストールした pytesseract を使用して、画像からテキストを抽出します。次のコードを Google Colaboratory で実行してください。

ここから先は

2,681字 / 1画像

¥ 980

PayPayなら抽選で全額還元 3/30まで
Amazon Payなら抽選で全額還元 4/30まで

サポートして頂くと、こちらからもサポート返しさせて頂きます。

購入者のコメント

コメントするには、 ログイン または 会員登録 をお願いします。
【画像処理】OpenCVで画像の歪みを補正して、Tesseract OCRで文字を読み取る|上田英介
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1