スキャンしたドキュメントからデータを抽出したいですか? 試す ナノネット™ 高度な AIベースのOCRスキャナー から情報を抽出して整理する スキャンしたドキュメント 自動的に.
概要
世界が便利さのために紙や手書きからデジタル文書に変わったので、画像やスキャンされた文書を意味のあるデータに変換することの重要性が急上昇しました。
高精度のドキュメントデータ抽出の必要性に対応するために、多くの研究施設や企業(Google、AWS、Nanonetsなど)は、コンピュータービジョンと自然言語処理(NLP)の分野のテクノロジーに深く焦点を当てています。
ディープラーニングテクノロジーの開花により、抽出可能な種類のデータに大きな飛躍がもたらされました。 テキストだけでなく、テーブルやキーと値のペアなどの他のデータ構造も抽出する必要がなくなりました。 現在、多くのソリューションが、ドキュメントデータ抽出における個人およびビジネスオーナーのニーズを満たすためのさまざまな製品を提供しています。
この記事では、スキャンされたドキュメントからのデータ抽出に使用されている現在のテクノロジーについて詳しく説明し、続いてPythonでの簡単なハンズオンチュートリアルを行います。 また、この分野で最高の製品を提供する、現在市場に出回っている人気のあるソリューションのいくつかについても見ていきます。
データ抽出とは何ですか?
データ抽出は、非構造化データをプログラムによって解釈可能な情報に変換して、人間によるさらなるデータ処理を可能にするプロセスです。 ここでは、スキャンされたドキュメントから抽出される最も一般的なタイプのデータのいくつかをリストします。
テキストデータ
スキャンされたドキュメントからのデータ抽出で最も一般的で最も重要なタスクは、テキストの抽出です。 このプロセスは一見簡単に見えますが、スキャンされたドキュメントは画像の形式で表示されることが多いため、実際には非常に困難です。 さらに、抽出方法はテキストの種類に大きく依存します。 テキストはほとんどの場合高密度の印刷形式で存在しますが、スキャンが不十分なドキュメントやスタイルが大幅に異なる手書きの文字からまばらなテキストを抽出する機能も同様に重要です。 このようなプロセスにより、プログラムは画像を機械でエンコードされたテキストに変換できます。そこでは、非構造化データ(特定のフォーマットなし)から構造化データに画像をさらに整理して、さらに分析することができます。
テーブル類
表形式は、人間の目で簡単に解釈できるため、データストレージの最も一般的なアプローチです。 スキャンされたドキュメントからテーブルを抽出するプロセスには、文字検出以外のテクノロジーが必要です。適切なテーブル抽出を実行し、さらに計算するためにそれらの情報を構造化データに変換するには、線やその他の視覚的特徴を検出する必要があります。 コンピュータビジョン手法(次のセクションで詳細に説明)は、高精度のテーブル抽出を実現するために頻繁に使用されます。
キーと値のペア
データストレージのドキュメントでよく採用される代替形式は、キーと値のペア(KVP)です。
KVPは、基本的にXNUMXつのデータ項目(キーと値)であり、XNUMXつにリンクされています。 キーは、取得する値の一意の識別子として使用されます。 古典的なKVPの例は辞書であり、語彙はキーであり、対応する定義は値です。 これらのペアは、通常は気付かれませんが、実際にはドキュメントで非常に頻繁に使用されています。名前、年齢、請求書のアイテムの価格などの調査の質問は、すべて暗黙的にKVPです。
ただし、テーブルとは異なり、KVPは不明な形式で存在することが多く、部分的に手書きされることもあります。 たとえば、キーをボックスに事前に印刷し、フォームに入力するときに値を手書きすることができます。 したがって、KVP抽出を自動的に実行するための基礎となる構造を見つけることは、最先端の施設やラボでも継続的な研究プロセスです。
フィギュア
最後に、抽出することも非常に重要です データをキャプチャする スキャンしたドキュメント内の図から。 円グラフや棒グラフなどの統計指標には、多くの場合、ドキュメントの重要な情報が含まれています。 優れたデータ抽出プロセスでは、凡例と数字から推測して、さらに使用するために図からデータを部分的に抽出できる必要があります。
スキャンしたドキュメントからデータを抽出したいですか? ナノネットを与える™ より高い精度、より高い柔軟性、後処理、および幅広い統合セットのためのスピン!
データ抽出の背後にあるテクノロジー
データ抽出は、XNUMXつの主要なプロセスを中心に展開されます。光学式文字認識 (OCR) 続いて自然言語処理 (NLP).
OCR抽出は、テキスト画像を機械でエンコードされたテキストに変換するプロセスです。後者は、意味を推測するための単語の分析です。 多くの場合、OCRには、より包括的な抽出のためにテーブルやKVPなどの前述のデータタイプを抽出するためのボックスおよびライン検出などの他のコンピュータビジョン技術が伴います。
データ抽出パイプラインの背後にあるコアの改善は、コンピュータービジョンと自然言語処理(NLP)の分野に大きく貢献したディープラーニングの進歩と密接に関連しています。
ディープラーニングとは何ですか?
ディープラーニングは、人工知能時代の誇大宣伝の背後にある主要な役割を果たしており、多くのアプリケーションで常に最前線に押し出されてきました。 従来のエンジニアリングでは、私たちの目標は、特定の入力から出力を生成するシステム/関数を設計することです。 一方、ディープラーニングは、入力と出力に依存して、いわゆる、いわゆる新しい目に見えないデータに拡張できる中間関係を見つけます。 ニューラルネットワーク.
ニューラルネットワーク、または多層パーセプトロン (MLP)は、人間の脳がどのように学習するかに触発された機械学習アーキテクチャです。 ネットワークにはニューロンが含まれています。ニューロンは生物学的ニューロンを模倣し、さまざまな情報が与えられると「アクティブ化」します。 ニューロンのセットは層を形成し、複数の層が一緒に積み重ねられてネットワークを形成し、複数の形態の予測目的(つまり、画像分類またはオブジェクト検出用の境界ボックス)を提供します。
コンピュータビジョンの分野では、一種のニューラルネットワークのバリエーションが多用されています—畳み込みニューラルネットワーク (CNN)。 CNNは、従来のレイヤーの代わりに、特徴抽出のためにテンソル(または高次元ベクトル)をスライドする畳み込みカーネルを採用しています。 最終的には従来のネットワークレイヤーを伴い、CNNは画像関連のタスクで非常に成功し、さらにOCR抽出やその他の特徴検出の基盤を形成しました。
一方、NLPは、時系列データに焦点を当てた別のネットワークセットに依存しています。 XNUMXつの画像が互いに独立している画像とは異なり、テキストの予測は、前後の単語も考慮に入れると大きなメリットがあります。 過去数年間で、ネットワークのファミリー、すなわち長期短期記憶 (LSTM)、現在の結果を予測するための入力として以前の結果を取ります。 予測出力を強化するために、両側LSTMもしばしば採用され、前後の結果が考慮されました。 しかし、近年、シーケンシャル時系列を処理する従来のネットワークよりも優れた結果をもたらす柔軟性が高いため、注意メカニズムを使用するトランスの概念が高まり始めています。
データ抽出の応用
データ抽出の主な目的は、データを非構造化ドキュメントから構造化フォーマットに変換することです。このフォーマットでは、テキスト、図、およびデータ構造を非常に正確に取得できるため、数値分析やコンテキスト分析に非常に役立ちます。 これらの分析は、特に企業にとって非常に役立ちます。
ビジネス
企業や大規模な組織は、日常的に同様の形式の何千もの事務処理を処理します。大手銀行は多数の同一のアプリケーションを受け取り、研究チームは統計分析を行うためにフォームの山を分析する必要があります。 したがって、ドキュメントからデータを抽出する最初のステップを自動化すると、人的資源の冗長性が大幅に減少し、作業者は情報を入力する代わりに、データの分析とアプリケーションのレビューに集中できます。
- アプリケーションの検証 —企業は、手書きであろうと申請書のみであろうと、大量の申請書を受け取ります。 ほとんどの場合、これらのアプリケーションには、確認のために個人IDが添付されている場合があります。 パスポートやカードなどのIDのスキャンされたドキュメントは、通常、同様の形式でバッチで提供されます。 したがって、適切に記述されたデータ抽出機能を使用すると、データ(テキスト、表、図、KVP)を機械が理解できるテキストにすばやく変換できます。これにより、これらのタスクの工数が大幅に削減され、抽出ではなくアプリケーションの選択に集中できます。
- 支払い調整 —支払い調整は、銀行の明細書を比較してアカウント間の数値の一致を確認するプロセスです。これは、ドキュメントからのデータ抽出を中心に展開されます。これは、かなりの規模とさまざまな収入源を持つ企業にとって難しい問題です。 データ抽出により、このプロセスが容易になり、従業員は欠陥のあるデータに集中して、キャッシュフローに関する潜在的な不正イベントを調査できます。
- 統計分析 —顧客または実験参加者からのフィードバックは、企業や組織が製品やサービスを改善するために使用します。包括的なフィードバック評価には、通常、統計分析が必要です。 ただし、調査データはさまざまな形式で存在する場合や、さまざまな形式のテキストの間に隠されている場合があります。 データ抽出は、ドキュメントから明らかなデータをバッチで指摘することでプロセスを容易にし、有用なプロセスを見つけるプロセスを容易にし、最終的に効率を高めることができます。
- 過去の記録の共有 —ヘルスケアから銀行サービスの切り替えまで、大企業は多くの場合、他の場所にすでに存在している可能性のある新しい顧客情報を必要とします。 たとえば、引っ越しのために病院を切り替える患者は、新しい病院に役立つ可能性のある既存の医療記録を持っている場合があります。 このような場合、個人がスキャンした記録の履歴を新しい病院に持ち込み、すべての情報を自動的に入力するだけでよいため、優れたデータ抽出ソフトウェアが役立ちます。 これは便利であるだけでなく、特に重要な患者記録が見落とされるという医療業界での広範なリスクを回避することもできます。
スキャンしたドキュメントからデータを抽出したいですか? ナノネットを与える™ より高い精度、より高い柔軟性、後処理、および幅広い統合セットのためのスピン!
チュートリアル
データ抽出の実行方法をより明確にするために、スキャンするドキュメントからデータ抽出を実行するためのXNUMXつの方法を示します。
ゼロから構築する
次のように、PyTesseractエンジンを介してOCRエンジンを抽出する簡単なデータを作成できます。
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
コードの詳細については、公式をチェックアウトすることができます のドキュメントで詳しく説明されています)。
簡単に言うと、コードは特定の画像からテキストやバウンディングボックスなどのデータを抽出します。 エンジンはかなり便利ですが、トレーニング用のかなりの計算能力があるため、高度なソリューションによって提供されるエンジンほど強力ではありません。
GoogleドキュメントAPIの使用
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
最終的に、Google のドキュメント AI を使用すると、ドキュメントから多くの情報を高精度で抽出できるようになります。 さらに、このサービスは、通常の画像と実際の画像の両方のテキスト抽出など、特定の用途向けにも提供されています。
を参照してください こちら 詳細については、。
データ抽出を提供する現在のソリューション
ドキュメントデータ抽出用のAPIを備えた大企業の他に、非常に正確なソリューションを提供するソリューションがいくつかあります。 PDF OCR サービス。 さまざまな側面に特化したPDFOCRのいくつかのオプションと、有望な結果を提供すると思われる最近の研究プロトタイプをいくつか紹介します*。
*補足:実際の画像などのタスクを対象とした複数のOCRサービスがあります。 現在、PDFドキュメントの読み取りのみに重点を置いているため、これらのサービスはスキップしました。
- Google API —最大のオンラインサービスプロバイダーのXNUMXつとして、Googleは、先駆的なコンピュータービジョンテクノロジーを使用して、ドキュメント抽出で驚くべき結果を提供しています。 使用量がかなり少ない場合は無料でサービスを使用できますが、API呼び出しが増えると価格が高くなります。
- ディープリーダー — Deep Readerは、ACCV Conference 2019で公開された調査研究です。これには、次のようなタスクを実行するための複数の最先端のネットワークアーキテクチャが組み込まれています。 ドキュメントマッチング、テキスト検索、およびノイズ除去画像。 データを整理された方法で取得および保存できるようにするテーブルやキーと値のペアの抽出などの追加機能があります。
- ナノネット™ —非常に熟練したディープラーニングチームを備えたNanonets™PDF OCRは、完全にテンプレートおよびルールに依存しません。 したがって、Nanonets™は特定の種類のPDFで機能するだけでなく、テキスト検索用の任意の種類のドキュメントに適用することもできます。
スキャンしたドキュメントからデータを抽出したいですか? ナノネットを与える™ より高い精度、より高い柔軟性、後処理、および幅広い統合セットのためのスピン!
まとめ
結論として、この記事では、スキャンされたドキュメントからのデータ抽出に向けた詳細な説明を、その背後にある課題とこのプロセスに必要なテクノロジーを含めて示します。
さまざまな方法のXNUMXつのチュートリアルが提示され、すぐに使用できる現在のソリューションも参照用に提示されます。
- 2019
- 私たちについて
- 絶対の
- 正確な
- 達成する
- 添加
- NEW
- 高度な
- 進歩
- AI
- アルゴリズム
- すべて
- 既に
- 代替案
- 分析する
- 分析
- 別の
- API
- API
- 申し込み
- アプローチ
- 建築
- 周りに
- 記事
- 人工の
- 人工知能
- 注意
- オートメーション
- 利用できます
- AWS
- 背景
- 銀行
- 銀行
- 基礎
- さ
- BEST
- 越えて
- 最大の
- 国境
- ボックス
- ビルド
- ビジネス
- ビジネス
- カード
- 例
- 現金
- 現金流量
- 一定
- 課題
- 挑戦
- チャート
- 注文
- クラシック
- クラウド
- CNN
- コード
- 来ます
- コマンドと
- 企業
- 会社
- 完全に
- 完了
- 包括的な
- 計算
- コンピュータ
- コンセプト
- 講演
- 信頼
- 交流
- 絶えず
- 含まれています
- 貢献
- 利便性
- 便利
- コンバージョン
- 基本
- 法人
- 対応する
- 可能性
- 重大な
- 電流プローブ
- 現在
- 顧客
- Customers
- データ
- データ処理
- データストレージ
- 取引
- 記載された
- 設計
- 詳細
- 検出
- 異なります
- 難しい
- デジタル
- ドキュメント
- 簡単に
- 効率
- 社員
- エンジン
- エンジニアリング
- 特に
- 本質的に
- 見積もり
- 等
- 評価
- イベント
- 例
- 除く
- 実験
- 探る
- 広範囲
- 抽出物
- 家族
- 特徴
- 特徴
- フィードバック
- フィールズ
- 発見
- 名
- 柔軟性
- フロー
- フォーカス
- 焦点を当て
- 焦点を当てて
- 焦点
- フォロー中
- 最前線
- フォーム
- 形式でアーカイブしたプロジェクトを保存します.
- フォーム
- 無料版
- フランス語
- 満たす
- フル
- さらに
- 目標
- 良い
- でログイン
- 大きい
- 大いに
- ハンドリング
- 実践的な
- ヘルスケア
- ヘルスケア産業
- 役立つ
- こちら
- ハイ
- より高い
- 非常に
- history
- 病院
- 認定条件
- How To
- しかしながら
- HTTPS
- 人間
- 人事
- 人間
- 画像
- 重要性
- 重要
- 改善します
- include
- 含めて
- 所得
- 増える
- 個人
- 個人
- 産業
- 産業を変えます
- 情報
- インスピレーションある
- インテリジェンス
- 問題
- IT
- ジョブ
- キー
- キー
- ラボ
- 言語
- ESL, ビジネスESL <br> 中国語/フランス語、その他
- 大
- 主要な
- LEARN
- 学習
- LINE
- リスト
- 長い
- 機械
- 機械学習
- 主要な
- 大多数
- man
- 方法
- 市場
- 一致
- マッチング
- 医療の
- メソッド
- 他には?
- 最も
- 一番人気
- 移動する
- の試合に
- すなわち
- ナチュラル
- ニーズ
- ネットワーク
- ネットワーク
- 通常の
- 番号
- 多数の
- 提供
- 提供
- 提供すること
- オファリング
- オファー
- 公式
- 継続
- オンライン
- 操作
- オプション
- 注文
- 組織
- 整理
- その他
- 所有者
- 参加者
- 支払い
- 実行
- 期間
- 個人的な
- 先駆者
- 人気
- 潜在的な
- 電力
- 予測する
- 予測
- 現在
- かなり
- 前
- ブランド
- プロセス
- ラボレーション
- 処理
- 製品
- 演奏曲目
- プログラム
- 有望
- 提供します
- 提供
- 目的
- すぐに
- RE
- リーダー
- リーディング
- 受け取ります
- 和解
- 記録
- 減らします
- に対する
- 関係
- 要求
- 必要とする
- の提出が必要です
- 必要
- 研究
- リソース
- 応答
- 結果
- return
- リスク
- スキャニング
- 秒
- サービス
- サービス
- セッションに
- いくつかの
- ショート
- 短期
- 同様の
- 簡単な拡張で
- から
- サイズ
- ソフトウェア
- 固体
- ソリューション
- 一部
- 専門の
- スピン
- 最先端の
- 文
- 統計的
- ストレージ利用料
- 流れ
- 強い
- 構造化された
- かなりの
- 成功した
- サポート
- Survey
- 対象となります
- タスク
- チーム
- テクニック
- テクノロジー
- テクノロジー
- test
- 世界
- したがって、
- 数千
- 介して
- 時間
- <font style="vertical-align: inherit;">回数</font>
- 一緒に
- トーン
- に向かって
- 伝統的な
- トレーニング
- チュートリアル
- わかる
- ユニーク
- つかいます
- 通常
- 値
- さまざまな
- Verification
- 詳しく見る
- ビジョン
- かどうか
- while
- 以内
- 無し
- 言葉
- 仕事
- 労働者
- 世界
- でしょう
- XML
- 年