Skip to content

実OCRトレースを収集・再生できるデバッグ機能を追加する #644

Description

@Freeesia

概要

実際のOCRフレーム列を収集・保存し、同じ入力をOCR追跡処理へ再生できるデバッグ機能を追加する。

合成テストだけでは把握しにくい位置ジッター、文字列変動、一時欠落、分割・統合、同一文字列の誤対応を再現可能にし、追跡精度の改善を定量評価できるようにする。

目的

  • 実環境で発生したOCR結果のフレーム間変動を再現する
  • 追跡アルゴリズム変更前後を同一入力で比較する
  • 位置ジッター、表示構造変化、ID切替、欠落復帰、反映遅延を測定できるようにする
  • 不具合報告に再現可能なデータを添付できるようにする

記録内容

各OCRフレームについて少なくとも以下を記録する。

  • トレース形式のバージョン
  • フレーム番号
  • 記録開始からの相対時刻
  • OCR対象画像の幅と高さ
  • IOcrModule.RecognizeAsync が最終的に返した統合済み TextRect の集合
    • OCR文字列
    • X / Y / Width / Height
    • FontSize
    • Angle
    • MultiLine

プライバシー

OCR文字列には個人情報や機密情報が含まれる可能性がある。

  • 通常利用時は無効とする
  • デバッグ時のみ明示的に有効化できる
  • 画像そのものは既定で保存しない
  • 画像保存を追加する場合は、文字列トレースとは別の明示的なオプトインとする
  • 保存先と記録内容を利用者に明示する
  • 不具合報告へ添付する前に内容確認を促す

再生

  • 保存済みトレースをデバッグ用ランナーまたはテストから読み込める
  • 記録時と同じ画像サイズ、フレーム順序、相対時間で追跡処理へ入力できる
  • 各フレームの安定化済み TextRect を取得できる
  • 将来の形式追加に備え、未知の追加フィールドを許容する

信頼性・性能

  • 記録失敗によってOCR・翻訳処理を停止させない
  • 記録無効時のホットパスへの負荷を最小化する
  • 書き込みがOCR処理を長時間ブロックしない
  • 不要な画像・長期履歴を保持しない

評価指標

トレースから少なくとも以下を計算できる設計を検討する。

  • 位置・サイズのフレーム間変動量
  • 文字列変更回数
  • 一時欠落からの復帰率
  • 論理トラックのID切替回数
  • 分割・統合状態の変更回数
  • 実際の変更が反映されるまでの遅延
  • 1フレームあたりの追跡処理時間

テスト

  • 収集データのシリアライズ往復
  • 複数フレームの順序と相対時刻の保持
  • 保存済みトレースの再生
  • 記録無効時にファイルを作成しないこと
  • 保存失敗時もOCR処理が継続すること
  • 形式バージョンの互換性

ドキュメント

開発者向けドキュメントに以下を記載する。

  • 有効化方法
  • 保存場所
  • 記録される情報
  • 再生・テスト方法
  • プライバシー上の注意

受け入れ条件

  • 実OCR結果をフレーム列として保存できる
  • 画像は既定で保存されない
  • 保存したトレースを追跡処理へ再生できる
  • 記録無効時に通常処理へ実質的な追加負荷がない
  • 記録失敗がOCR・翻訳処理を停止させない
  • 収集・シリアライズ・再生のテストがある
  • 利用方法とプライバシー上の注意が文書化されている

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions