## 背景 #742 で、追跡ループが最新のOCR観測を100ms周期で再処理し、文字列・位置・分割統合の確定を経過時間で判定するようになった。 ## 問題 - `OcrTextTracker.TextTrack.Observe` は、観測時刻が変わらない再処理でも `UpdateText`・`UpdateGeometry` を処理時刻で呼ぶ。移動速度だけは観測時刻が変わったときに限って更新している。 - そのため、1回だけ誤認識したOCR結果でも、次のOCRを待たずに再処理だけで文字列の確認時間(既定300ms)を満たして確定する。キャプチャ間隔が確認時間より長い場合、確認時間による誤認識の抑制が実質的に効かない。位置の確認時間も同様。 - 微小な位置変化の `noiseGeometrySamples` に、同じ観測が100msごとに追加される。中央値が観測の内容ではなく再処理の回数で偏る。偶数件で上側の値を選ぶ `Median` もこの偏りを強める。 - 分割・統合の確認時間も処理時刻で進むかを確認する。 ## 対応方針案 - 確定の根拠になる候補の開始時刻・サンプルは、新しいOCR観測(観測時刻の更新)でだけ進める。再処理では欠落時間の判定と予測位置の更新だけを行う。 - 確定条件を「経過時間」と「異なるOCR観測の件数」の組み合わせにするか検討する。 - 中央値は観測ごとに1サンプルとして扱う。 ## 完了条件 - 同じOCR観測を何回再処理しても、文字列・位置・分割統合の確定状態が変わらない。 - キャプチャ間隔を3秒程度にしても、1回だけの誤認識が確定しない。 ## 関連 - #742 - #744(追跡精度全般)
Activity