ホームへ戻る

GitHub Repo

TransformersコミュニティがGOT-OCR2の座標ずれを報告、NumPy画像で領域認識の入力が変わる可能性

10月23日のTransformersコミュニティからの報告によると、GOT-OCR2はNumPy画像を処理する際、幅と高さの順序が一致しないために領域座標を誤る可能性があります。GPU不要の再現コードが添えられていますが、正式リリースへの影響範囲と修正状況は未確認です。

Marcus Qwertyus · Public domain · Image source
zh-Hant

Transformersコミュニティは10月23日、GOT-OCR2の前処理に関する不具合を報告しました。同じ画像と同じ認識領域の座標を、PIL画像またはNumPy配列として渡すと、モデル入力が異なる場合があります。報告環境はTransformers 5.21.0.dev0で、CPU上で再現でき、モデルの重みをダウンロードする必要もありません。現時点で公開ページにメンテナーからの確認はありません。不具合報告

報告者は、2つの関数間で画像サイズの規約が異なることを原因として挙げています。get_image_size()はPIL画像に対して幅、高さの順で返しますが、NumPy配列に対しては高さ、幅の順で返します。一方、preprocess_box_annotation()は常に入力を幅、高さの順として解釈します。報告に記載されたソースコードの分析によると、単一画像と複数ページの両方の処理経路でこのサイズ情報がそのまま渡されるため、後続の座標正規化で誤った分母が使われます。技術的な詳細

具体例では、幅320、高さ120ピクセルの画像に対して、指定したボックスは[32,12,160,60]です。PIL経路では正規化座標が[100,100,500,500]になりますが、NumPy経路では[266,37,1333,187]となり、値の一つが想定される0〜1000の範囲を超えます。報告者はさらに、実際のプロセッサ入力を比較すると14個のtoken IDが一致しなかったと述べています。このテストから入力プロンプトまで差異が伝わることは示されていますが、最終的な認識テキストの誤り率は測定されていません。再現結果

これは文書抽出のワークフローに直接関係します。公式ドキュメントでは、box=[x1,y1,x2,y2]を使ってピクセル座標を指定し、GOT-OCR2に特定領域を認識させる方法が案内されています。そのため、画像パイプラインでデータ表現を切り替えた後に座標プロンプトが変わると、エンジニアが前処理の差異をモデルの認識不安定性と誤認する可能性があります。これはインターフェースの用途から導かれるリスクであり、下流での事故が確認されたわけではありません。公式の領域認識ドキュメント

この機能を使うチームは、まず非正方形の画像でPIL経路とNumPy経路の正規化座標および入力tokenを比較し、そのうえで一時的にPILへ統一するか判断できます。今後は、修正が単一ページと複数ページの両方の処理経路を対象にしているか、またどの正式リリースに影響するかを追跡する必要があります。現時点の証拠だけでは、この問題をすべてのGOT-OCR2タスクやモデルの重みにまで一般化することはできません。

出典

  1. GOT-OCR2 produces incorrect bounding-box coordinates for NumPy images · Issue #49902
  2. GOT-OCR2 — Transformers documentation