## 背景 #742 で、微小な位置・サイズ・フォントサイズの変化を、確認時間(既定900ms)の間に集めたサンプルの中央値で確定するようにした。 ## 問題 - 安定値と微小にずれた値を交互に観測すると、表示がずれた値へ移動する。例: X=100・フォントサイズ24と、X=102・フォントサイズ25を500ms間隔で交互に観測すると、1.5秒の時点でずれた値が確定する。 - 原因の候補: - `Median` は偶数件のとき上側の値を選ぶため、安定値とずれた値が同数でもずれた値が選ばれる。 - サンプルの窓が確認時間で固定され、確定後にクリアされる。安定度4・5でも、窓の中でずれた値が多いと移動する。 - 同じ観測の再処理でサンプルが追加される(#757)。 - 安定度4で、24回中3回の微小なずれでも表示が移動する。 ## 失敗しているテスト - `OcrTextTrackerAccuracyTests.PeriodicPositionAndFontSizeNoiseDoesNotOscillate` - `OcrTextTrackerSettingsTests.HigherGeometryStabilitySuppressesPeriodicMicroGeometryChanges(level: 4)` ## 対応方針案 - 偶数件の中央値で現在の表示値を優先する。 - 現在の表示値から離れる場合は、窓の中でずれた値が過半数を占めることを条件にする。 - 安定度に応じて窓の長さとサンプル数の下限を決める。 ## 完了条件 - 周期的な微小な揺れで表示が振動しない。 - 持続する微小な変化には、安定度に応じた時間で追従する。 ## 関連 - #742 - #757 - #744(追跡精度全般)
Activity