表認識の目的は、画像中の表を解析し、表の構造やセルの位置を正確に識別し、構造化された表形式(HTMLなど)に変換することである。今日の情報化時代においては、大量の重要な表データが依然として非構造化状態で存在し(例えば、スキャン文書中の情報統計表の写真、PDF財務諸表中のデータ統計表など)、直接自動処理することができない。そのため、フォーム認識は、インテリジェントな文書理解や自動データ分析のアプリケーション・シナリオにおける重要な技術となっている。高性能なフォーム認識ソリューションは、財務諸表処理、科学研究データ分析、保険金請求会計などの分野で重要な応用価値を持ち、作業効率を大幅に向上させ、人的ミスを減らすことができる。しかし、さまざまなアプリケーションシナリオにおける複雑なフォームフォーマットを前にすると、従来の汎用フォーム認識モデルでは適応が困難な場合が多い。このため、フライング・パドルは新しい表認識ソリューション、PP-TableMagicを発表しました。
PP-テーブルマジック効果
PP-TableMagicテクニカル分析
現行技術の欠陥
現在、一般的な表認識ソリューションは、通常次のようなフレームワークを採用している。ユーザーが表画像を入力すると、モデルが画像内の表のHTML構造とセル位置の両方を予測し、それを完全なHTML表に縮小する。このソリューションは、一般的で単純な表シナリオでは良好な予測性能を達成しますが、2つの問題があります:
- 通常、表認識モデルのパラメータ数は少なく、表構造予測とセル位置予測という2つのタスクは、目標や依存する特徴量意味階層に大きな違いがあり、共同最適化には性能の上限がある。
- つまり、微調整された表カテゴリの性能は向上するが、他のカテゴリの性能は低下し、全体的な性能は向上するどころか低下する可能性がある。
PP-TableMagicテクニカル・ソリューションと原則
PP-TableMagicでは、軽量な表認識モデルの性能を最大限に活用し、あらゆる種類の表データに対してユーザがターゲットとする微調整をサポートするために、下図のような構造を採用している:
PP-TableMagicはデュアルストリームアーキテクチャを採用し、テーブルを有線テーブルと無線テーブルに分割する。そして、エンドツーエンドのテーブル認識タスクは、セル検出とテーブル構造認識の2つのサブタスクに分割され、最終的に自己最適化結果融合アルゴリズムによって完全なHTMLテーブル予測結果が得られる。具体的には
- Flying Paddleチームは独自の軽量テーブル分類モデルPP-LCNet_x1_0_table_clsを研究し、有線テーブルと無線テーブルの高精度分類を実現しています。
- 研究開発チームは、業界初のオープンソースのテーブルセル検出モデルRT-DETR-L_table_cell_detを発表しました。このモデルには、有線テーブルセル検出の事前学習重みRT-DETR-L_wired_table_cell_detと無線テーブルセル検出の事前学習重みRT-DETR-L_wireless_tablecell_detを含む。
- フライング・パドルは、新しいテーブル構造認識モデルSLANeXtを導入し、SLANetやSLANet_plusよりも優れたテーブル構造の解析を行い、より正確なテーブルHTML構造を実現します。
PP-TableMagicフレームワークでは、FeiPaddleが開発した新しい表構造認識モデルSLANeXtが特に重要である。表構造認識は表認識の最も重要な側面であり、表画像からHTML表現への予測は画像中の高レベルな特徴に依存する。そこでSLANeXtでは、より特徴表現能力の高いVary-ViT-Bを視覚コーダーとして使用し、抽出した特徴をSLAHeadに与えることで、より精度の高い構造認識を実現している。モデル構造の改良に加え、学習戦略も改良されている。フライングパドルの自作フルボリュームデータセット+高品質ファインチューニングデータセットに基づき、新しい3段階の事前学習戦略により、有線テーブルと無線テーブルの構造認識重みをそれぞれ求める。
SLANeXtの形状認識能力を評価するために、研究開発チームは様々な種類のデータセットに基づく多くのテストを実施した。実験結果は以下の通りである:
社内でのハイレベルなフォーム認識レビューセットに基づいている:
パートナーの実際のビジネスデータに基づいている:
実験結果は、SLANeXtがSLANet_plusよりも大幅に性能が向上していることを示している。
アルゴリズム応用
PP-TableMagicを使用すると、その優れたHTMLテーブル予測機能を活用してテーブルを直接操作できるだけでなく、その構造をフルに活用してモデルの微調整をカスタマイズすることもできます。
他のエンド・ツー・エンドのフォーム認識モデルを悪いケース用に微調整する際、この種のデータしか収集できない場合、大規模なトレーニングセットを構築するのは困難であることが多く、モデルの性能が向上するどころか低下する「一長一短」現象が生じる。
さらに、エンド・ツー・エンドの表認識モデルを微調整するには、学習データの表構造とセル位置のアノテーションを同時に行う必要があり、ほとんどの応用シナリオでは非常に時間と労力がかかる。
PP-TableMagicのマルチモデルネットワークアーキテクチャでは、特定のタイプのテーブルのパフォーマンスを向上させる必要がある場合、最も重要なモデルのみを微調整することで、他のタイプのテーブルの認識パフォーマンスへの影響を最小限に抑えることができます。
そのため、PP-TableMagicをベースに実シナリオで微調整を行う場合、各タイプのテーブルの認識性能は互いにほとんど影響しないだけでなく、データアノテーションも対応するカテゴリにマークを付けるだけでよく、工数を大幅に削減できる。
コーディングスキルの高い開発者であれば、PP-TableMagicのアーキテクチャをブランチレベルで直接調整することができます。下図に示すように、ある種の表データが非常に重要であることが判明した場合、処理のために別のブランチを設定することができ、全体的な表認識能力を大幅に向上させることができます。
PP-TableMagicは優れた性能を持ち、様々なアプリケーションシナリオで最高のテーブル認識性能を達成するために、高いカスタマイズ性とターゲットモデルの微調整の高い自由度をサポートしており、あらゆるシナリオで高いカスタマイズ性を達成できる初めてのテーブル認識用オープンソースソリューションです。
はじめに
取り付け
PaddlePaddleをインストールします:
# CPUバージョン
python -m pip install paddlepaddle==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
# GPU バージョン、グラフィックドライババージョン≥450.80.02 (Linux) または≥452.39 (Windows) が必要です。
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
# GPU バージョン、グラフィックドライババージョン ≥545.23.06 (Linux) または ≥545.84 (Windows) が必要です。
python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/
PaddleX Wheelパッケージをインストールします:
pip install https://paddle-model-ecology.bj.bcebos.com/paddlex/whl/paddlex-3.0.0rc0-py3-none-any.whl
クイック・エクスペリエンス
PP-TableMagicを直接呼び出すことができる。
PaddleXは使いやすいPython APIを提供し、わずか数行のコードでモデル予測を体験できます。
テスト画像をダウンロードする:
https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition_v2.jpg
PaddleXはPP-TableMagicをコマンドラインから、またはPythonスクリプト(PaddleXではtable_recognition_v2製品ラインで表される)から呼び出すことができます。
コマンドライン方式:
paddlex --pipeline table_recognition_v2
--use_doc_orientation_classify=False
--use_doc_unwarping=False
--入力 table_recognition.jpg
---save_path ./出力
--device gpu:0
Pythonスクリプトのメソッド:
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="table_recognition_v2")
出力 = pipeline.predict(
input="table_recognition.jpg"、
use_doc_orientation_classify=False、
use_doc_unwarping=False、
)
for res in output.
res.print()
res.save_to_img("./output/")
res.save_to_xlsx("./output/")
res.save_to_html("./output/")
res.save_to_json("./output/")
使用後、認識結果は指定したパスに保存されます。
二次開発
PP-TableMagicの効果にご満足いただけた場合、高性能な推論、サービス展開、または生産ラインでのエンドサイド展開を直接行うことができます。テーブルシナリオが特に縦長で、まだ最適化の余地がある場合は、PaddleXを使用して、独自のシナリオデータに基づいてPP-TableMagicの1つまたは複数のモデルをターゲットとした二次開発を行い、PP-TableMagicのカスタマイズされた微調整の利点を最大限に活用することもできます。PaddleXの便利な二次開発機能に基づき、ディープラーニングの基本原理を理解することなく、統一されたコマンドを使用することで、データ検証、モデル学習、評価推論を完了することができ、要件に応じてシーンデータを準備し、コマンドを実行するだけでモデルの反復を完了することができます。ここでは、無線テーブルセル検出モデルRT-DETR-L_wireless_table_cell_detの二次開発プロセスを示す:
python main.py -c paddlex/configs/modules/table_cells_detection/RT-DETR-L_wireless_table_cell_det.yaml
-o Global.mode=train
-o Global.dataset_dir=./path_to_your_datasetsデータセットへのパス
その他の機種は二次展開に対応していますので、詳細をご覧ください:
https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-rc/docs/pipeline_usage/tutorials/ocr_pipelines/table_recognition_v2.md#4-%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91
サービス指向の展開
PaddleXは同様に、テーブル認識の推論機能をサービスとしてカプセル化し、クライアントがテーブル推論の結果をウェブリクエストでこれらのサービスにアクセスできるようにすることで、PP-TableMagicのサービス展開機能を提供します。
PaddleXは2種類のサービタイゼーションデプロイメントを提供します:基本サービタイゼーションデプロイメントと高安定性サービタイゼーションデプロイメントです。Basic Serviced Deploymentは、シンプルで使いやすく、開発コストが低いサービス化デプロイメントソリューションで、ユーザーは迅速にデプロイし、結果をデバッグすることができます。High Stability Serviced Deploymentは、NVIDIA Triton Inference Serverをベースとしており、より高い安定性を提供し、より高いパフォーマンスを可能にします。
PP-TableMagicの詳細については、PaddleXプロダクションラインの公式ドキュメントをご覧ください:
https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-rc/docs/pipeline_usage/tutorials/ocr_pipelines/table_recognition_v2.md