約 1 年前、私はファイルからデータ、主にテーブルに含まれるデータを抽出して構造化するタスクを割り当てられました。私はコンピューター ビジョンに関する事前の知識がなかったため、適切な「プラグ アンド プレイ」ソリューションを見つけるのに苦労していました。当時利用できるオプションは、大規模で扱いにくい最先端のニューラル ネットワーク (NN) ベースのソリューションか、一貫性が十分でない OpenCV ベースのよりシンプルなソリューションのいずれかでした。 既存の OpenCV スクリプトに触発されて、テーブルを抽出するためのシンプルで一貫性のある方法を開発し、それをオープンソースの Python ライブラリ img2table にしました。 リンク: https://github.com/xavctn/img2table 私のライブラリは何をしますか?ディープラーニング ソリューションと比較すると、この軽量パッケージではトレーニングは不要で、パラメータ化も最小限で済みます。以下の機能を提供します:
どうやって使うの?pip 経由でライブラリをインストールして使用することができます。 ドキュメント内のテーブルを識別するのは、1 つの関数を呼び出すだけです。 上記の例で使用されている画像 テーブルの内容を抽出するには、OCR ツールを使用する必要があります。これは次のように実行できます。 PDFから抽出した表の例 最後に、単純なケースでは、borderless_tables パラメータを設定することで、「境界のない」テーブル抽出を実行できます。これにより、セルを境界線で完全に囲まれる必要のないテーブルを検出できます。 「ボーダーレス」テーブル抽出例 それだけです!実際のところ、ライブラリには複雑なものはあまりありません。他の利用可能なソリューションによってもたらされる複雑さを回避するために、ライブラリをできるだけシンプルに保つことが目標だからです。 より詳細なドキュメントと例については、プロジェクトの GitHub ページをご覧ください: https://github.com/xavctn/img2table 低レベルの実装すべての画像処理は OpenCV および opencv-python ライブラリを使用して行われます。しかし、これはまだかなり基本的なものです。 アルゴリズムのバックボーンとなるのはハフ変換で、画像内の線を識別し、画像内の水平線と垂直線を検出できます。 その後、行に対していくつかの処理を実行して行からセルを識別し、次にセルからテーブルを識別します。 アルゴリズムの簡略化された表現を実装する ほとんどの計算は、優れたパフォーマンスと速度を実現するために Polars を使用して実行されます。 |
2019年12月10日、北京で百度地図生態系会議が開催され、「新世代人工知能地図」の生態パノラマが...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
近年、シーンテキスト読み取り(テキストスポッティング)は大きな進歩を遂げており、テキストの検索と認識...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
2019年10月26日、Testinが主催する第2回NCTS中国クラウドテスト業界サミットが北京で開...
前回の記事では、ポーリング、ランダム、最小接続の 3 つの負荷分散アルゴリズムについて説明しました。...
【51CTO.com クイック翻訳】チェックアウト時に銀行カード取引が拒否されると、イライラしたり恥...