初心者向け光学式文字認識[OCR]の概要

公開: 2021-02-08

OCRまたは光学式文字認識(OCR)は、請求書や領収書、またはそれにコンテンツが書かれているものの画像から情報を抽出するために使用されます。 このソリューションを開発するために、OpenCVを使用して画像を処理し、それらの画像からテキストを抽出できるTesseractOCRエンジンにさらにフィードすることができます。

ただし、テキストの削除プロセスは、画像が鮮明でテキストが十分に表示されている場合にのみ効率的です。 小売アプリケーションでは、請求書からテキストを抽出するために、請求書に透かしが殺到したり、請求書に影ができて情報の取得が妨げられたりする場合があります。

テキストの長いページから情報をキャプチャすることも、骨の折れる作業になる可能性があります。 これらの問題に取り組むために、情報抽出パイプラインには、前述の問題に対処する画像処理モジュールからの場所があることが賢明です。

これは、テキストのローカリゼーション、文字のセグメンテーション、およびそれらの文字の認識など、いくつかのサブプロセスで構成されます。 セグメンテーションなしで管理するシステムはほとんどありませんが。 このような方法は、最小二乗法を適用してエラー率を減らし、文字に一致するサポートベクターマシンをサポートするなど、いくつかの手順を利用して作成されます。

それでも、画像内の文字の占有を識別するために、畳み込みニューラルネットワーク(CNN)がよく使用されます。 テキストは、一貫した文字シーケンスとして表示できます。 これらの文字をより正確に検出および識別することは、特殊なタイプのニューラルネットワーク、つまりリカレントニューラルネットワーク(RNN)と長短期記憶(LSTM)を使用することで解決できる困難です。

単語は、テキストをブロブに調整することによって収集されます。 さらに、これらの行と領域は、同等のテキストがないか調べられます。 テキスト行は、それらの間の間隔の種類に応じてのみ単語に分割されます。 識別方法は2つのステップに分かれています。 まず、各単語が識別されます。 完全または正しく識別されたすべての単語は、トレーニングデータとして適応分類器に追加で渡されます。

入力として受け取った画像は、部分的に検査および処理されます。 テキストは1行ずつLSTMモデルに送られます。 光学式文字認識エンジンであるTesseractは、さまざまなオペレーティングシステムで使用できます。 CNNとLSTMアーキテクチャの組み合わせを使用して、画像データからテキストを正確に識別および導出します。 ただし、ノイズや影のある画像は検索精度を妨げます。

ノイズを最小限に抑える、または画質を向上させるために、OpenCVライブラリを使用して画像の前処理を実行できます。 このような前処理ステップには、ROIまたは関心領域の検出、画像のトリミング、ノイズ(または不要な領域)の除去、しきい値処理、拡張および侵食、輪郭またはエッジの検出が含まれます。 これらの手順が完了すると、OCRエンジンは画像を読み取り、関連するテキストを完全に抽出できます。

目次

使用したツール

1. OpenCV

OpenCVは、もともと言語C /C++およびPythonと互換性のあるライブラリです。 これは、画像サンプルを使用してデータを処理するために一般的に使用されます。 ライブラリには、画像サンプルに必要な変換を実装する多数の事前定義された便利な関数があります。 拡張、侵食、スライス、エッジ検出などの前述のすべての機能は、このライブラリを使用して簡単に実行できます。

2.TesseractOCRエンジン

Googleからリリースされた、テキスト認識に広く使用されているオープンソースライブラリです。 さまざまな言語のテキストを検出および識別するために使用できます。 処理は非常に高速で、画像のテキスト出力をほぼ即座に提供します。 多くのスキャンアプリケーションはこのライブラリを活用し、その抽出技術に依存しています。

テキスト抽出プロセスに含まれるステップ

(1)まず、輪郭検出、ノイズ除去、侵食および拡張機能などの可能な画像処理技術が、入ってくるノイズの多い画像サンプルに適用されます。

(2)このステップの後、請求書から透かしと影を削除します。

(3)さらに、請求書は部分に分割されます。

(4)セグメント化されたパーツは、完全なテキストを取得するためにTesseractOCRエンジンを通過します。

(5)最後に正規表現を使用して、合計金額、購入日、アイテムごとの費用など、すべての重要な情報を取得します。

請求書と請求書など、特定の画像とテキストについて話させてください。 彼らは通常それらに透かしを持っています、請求書を発行している会社のほとんど。 前述のように、これらの透かしは効率的なテキスト抽出の障害になります。 多くの場合、これらの透かし自体にテキストが含まれています。

Tesseractエンジンは行内のあらゆるサイズのテキストを認識するため、これらはノイズと見なすことができます。 透かしと同様に、シャドウもエンジンの精度を阻害してテキストを効率的に抽出します。 画像のコントラストと明るさを高めることで影を取り除きます。

ステッカーや透かしのある画像の場合、多段階のプロセスが実行されます。 このプロセスでは、画像をグレースケールに変換し、形態学的変換を適用し、しきい値を適用し(バイナリ反転または大津変換の場合があります)、暗い領域で暗いピクセルを抽出し、最後に透かし領域で暗いピクセルを貼り付けます。 影の除去のプロセスに戻ります。

まず、グレースケール画像に膨張が適用されます。 この上に、適切なカーネルを備えたミディアムブルーがテキストを抑制します。 このステップの出力は、影の一部やその他の変色が含まれている画像です。 これで、元の画像と取得した画像の間で単純な差分演算が計算されます。 最後に、しきい値を適用すると、影のない画像が得られます。

テキストの認識と抽出

畳み込みニューラルネットワークモデルは、画像にある刻印されたテキストに基づいて構築およびトレーニングできます。 このモデルは、同じフォントの他の同様の画像からテキストを検出するためにさらに使用できます。 Tesseract OCRエンジンは、コンピュータービジョンアルゴリズムを使用して処理された画像からテキストを復元するために使用されます。

光学式文字認識では、テキストのローカリゼーション、文字のセグメンテーション、文字の認識を実行する必要があります。 これらの手順はすべて、TesseractOCRによって実行されます。 Tesseract OCRエンジンは、手書きのテキストではなく印刷されたテキストで使用すると、非常に正確であることが証明されています。

関連情報の取得

特に請求書について話すと、抽出されたすべてのテキストから、購入日、合計金額などの重要な情報を複数の正規表現を使用して簡単に取得できます。 請求書に記載されている合計金額は、通常、請求書の最後に表示されるため、正規表現を適用することで抽出できます。 このような便利な情報の多くは、日付に応じて保存できるため、簡単にアクセスできます。

正確さ

テキスト検索の精度は、Tesseract OCRによって取得され、すでに請求書に含まれている正しい情報数と、テキスト画像に実際に存在する単語の累積数との比率として定義できます。 精度が高いということは、前処理技術の効率が高く、TesseractOCRが情報を抽出できることを意味します。

次は何?

機械学習について詳しく知りたい場合は、IIIT-BとupGradの機械学習とAIのPGディプロマをご覧ください。これは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題、IIIT-を提供します。 B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。

世界のトップ大学からMLコース学びましょう。 マスター、エグゼクティブPGP、または高度な証明書プログラムを取得して、キャリアを迅速に追跡します。

AI主導の技術革命をリードする

機械学習とNLPの高度な証明書プログラムに申し込む