方針
OcrTextTracker の多数の内部パラメータは直接公開せず、ユーザーには挙動を表す 3設定だけを公開する。
設定は TargetSettings に持たせ、アプリごとに調整可能にする。
1. 位置・サイズの安定性
位置・サイズなどの OCR 矩形の揺れをどの程度抑制するか。
対象:
X, Y
Width, Height
FontSize
Angle
MultiLine
UI:
- 最小:
1(追従重視)
- 最大:
5(安定重視)
- 既定:
3(現在相当)
- step:
1
内部マッピング案:
| レベル |
Geometry 確定回数 |
Micro Geometry 確定回数 |
| 1 |
1 |
1 |
| 2 |
1 |
2 |
| 3 |
2 |
4 |
| 4 |
3 |
6 |
| 5 |
4 |
8 |
レベル3で現在の StructureConfirmationFrames = 2 / MicroGeometryConfirmationFrames = 4 相当を維持する。
特定のアプリで位置と FontSize が細かく周期的に振動するケースがあり、既存のトラッキングである程度は抑制できているが完全には抑えられていない。このケースではこの設定だけを4または5へ上げられるようにする。
大きな移動を即時反映する既存処理は維持し、安定性を上げても明らかな移動まで一律に待たせない。
2. 認識結果の安定性
OCR 文字列や split / merge / restore の一時的な変動をどの程度抑制するか。
UI:
- 最小:
1(追従重視)
- 最大:
5(安定重視)
- 既定:
3(現在相当)
- step:
1
内部マッピング案:
| レベル |
Structure 確定回数 |
MinimumTextVotes |
TextVoteThreshold |
TextVoteHistorySize |
| 1 |
1 |
1 |
1.0 |
3 |
| 2 |
1 |
2 |
1.25 |
4 |
| 3 |
2 |
2 |
1.5 |
5 |
| 4 |
3 |
3 |
2.0 |
6 |
| 5 |
4 |
4 |
2.5 |
8 |
TextVoteDecay = 0.75 は固定する。
レベル3で現在の挙動を維持する。
表示位置だけを安定させたい場合に、文字列や構造変更の追従速度まで遅くならないよう、位置・サイズの安定性とは分離する。
3. 一時消失の保持
OCR が一時的に対象を認識できなかった場合に、表示中の既存トラックを何回の欠落まで保持するか。
UI:
- 最小:
0
- 最大:
7
- 既定:
3(現在相当)
- step:
1
値は MaxMissedFrames に直接対応させる。
0: 最初の欠落で除去
3: 現在相当
7: 7回の連続欠落まで保持
OCR 実行間隔は一定とは限らないため、秒数ではなく欠落回数として扱う。
dormantRetention はこの設定には連動させず、現在の5秒を固定する。dormant track は表示保持ではなく split / merge 後の identity 復元に使われるため、ユーザーの「一時消失の保持」とは責務を分ける。
ユーザー設定に連動させないもの
以下のようなトラック同一性・候補選択の正しさに関わる値は固定する。
MinimumAssignmentScore
StrongOneToOneScore
TrackingDistanceGate
- 文字列類似度の判定閾値
- overlap / size / font / angle の判定閾値
- assignment score の重み
- Geometry をノイズと判定する閾値
- motion prediction の係数
dormantRetention
これらを緩めると追従性ではなく誤対応率や identity 判定が変わるため、ユーザーの好みを表す設定とは分離する。
内部構造の整理
現在の StructureConfirmationFrames は通常の Geometry 更新と merge / restore の確定の両方に使われているため、設定追加時に責務を分離する。
少なくとも内部では以下を独立させる。
- Geometry 変更の確定回数
- Micro Geometry 変更の確定回数
- 構造変更の確定回数
これらは直接公開せず、上記レベルから明示的なプロファイルとして導出する。
補間式ではなくレベルごとの明示的なマッピングを使用し、特定レベルだけ個別にチューニングできるようにする。
MaxMissedFrames と assignment recency の分離
現在 MaxMissedFrames は track の保持だけでなく assignment score の recency 計算にも利用されている。
一時消失の保持を変更しただけで assignment score まで変化しないよう、recency の基準値を別の固定パラメータへ分離する。
既定値では現在の MaxMissedFrames + 1 = 4 と同等になるようにする。
既定値・互換性
- 位置・サイズの安定性:
3
- 認識結果の安定性:
3
- 一時消失の保持:
3
既定設定では現在の OcrTextTracker と同等の挙動を維持する。
既存設定ファイルに項目がない場合も上記既定値を使用する。
実装時に確認すること
- 位置・
FontSize が周期的に振動する既知ケースで、位置・サイズの安定性 4 / 5 の効果を確認する
- レベル3で既存の accuracy test の挙動が変わらないことを確認する
- 位置・サイズの安定性だけを変更しても文字列の確定速度が変わらないことを確認する
- 認識結果の安定性だけを変更しても Geometry の確定速度が変わらないことを確認する
- 一時消失の保持を変更しても assignment recency の計算基準が変わらないことを確認する
調整余地
以下の値は実際の振動ケースと既存テストを基準に実装時に最終調整する。
- 位置・サイズ安定性レベル4 / 5の
3/6, 4/8
- 認識結果安定性レベル4 / 5の投票条件
- 一時消失の保持の最大値
7
UI値を百分率へ正規化する必要はなく、設定ごとに意味のある min / max を使用する。
受け入れ条件
方針
OcrTextTrackerの多数の内部パラメータは直接公開せず、ユーザーには挙動を表す 3設定だけを公開する。設定は
TargetSettingsに持たせ、アプリごとに調整可能にする。1. 位置・サイズの安定性
位置・サイズなどの OCR 矩形の揺れをどの程度抑制するか。
対象:
X,YWidth,HeightFontSizeAngleMultiLineUI:
1(追従重視)5(安定重視)3(現在相当)1内部マッピング案:
レベル3で現在の
StructureConfirmationFrames = 2/MicroGeometryConfirmationFrames = 4相当を維持する。特定のアプリで位置と
FontSizeが細かく周期的に振動するケースがあり、既存のトラッキングである程度は抑制できているが完全には抑えられていない。このケースではこの設定だけを4または5へ上げられるようにする。大きな移動を即時反映する既存処理は維持し、安定性を上げても明らかな移動まで一律に待たせない。
2. 認識結果の安定性
OCR 文字列や split / merge / restore の一時的な変動をどの程度抑制するか。
UI:
1(追従重視)5(安定重視)3(現在相当)1内部マッピング案:
TextVoteDecay = 0.75は固定する。レベル3で現在の挙動を維持する。
表示位置だけを安定させたい場合に、文字列や構造変更の追従速度まで遅くならないよう、位置・サイズの安定性とは分離する。
3. 一時消失の保持
OCR が一時的に対象を認識できなかった場合に、表示中の既存トラックを何回の欠落まで保持するか。
UI:
073(現在相当)1値は
MaxMissedFramesに直接対応させる。0: 最初の欠落で除去3: 現在相当7: 7回の連続欠落まで保持OCR 実行間隔は一定とは限らないため、秒数ではなく欠落回数として扱う。
dormantRetentionはこの設定には連動させず、現在の5秒を固定する。dormant track は表示保持ではなく split / merge 後の identity 復元に使われるため、ユーザーの「一時消失の保持」とは責務を分ける。ユーザー設定に連動させないもの
以下のようなトラック同一性・候補選択の正しさに関わる値は固定する。
MinimumAssignmentScoreStrongOneToOneScoreTrackingDistanceGatedormantRetentionこれらを緩めると追従性ではなく誤対応率や identity 判定が変わるため、ユーザーの好みを表す設定とは分離する。
内部構造の整理
現在の
StructureConfirmationFramesは通常の Geometry 更新と merge / restore の確定の両方に使われているため、設定追加時に責務を分離する。少なくとも内部では以下を独立させる。
これらは直接公開せず、上記レベルから明示的なプロファイルとして導出する。
補間式ではなくレベルごとの明示的なマッピングを使用し、特定レベルだけ個別にチューニングできるようにする。
MaxMissedFramesと assignment recency の分離現在
MaxMissedFramesは track の保持だけでなく assignment score の recency 計算にも利用されている。一時消失の保持を変更しただけで assignment score まで変化しないよう、recency の基準値を別の固定パラメータへ分離する。
既定値では現在の
MaxMissedFrames + 1 = 4と同等になるようにする。既定値・互換性
333既定設定では現在の
OcrTextTrackerと同等の挙動を維持する。既存設定ファイルに項目がない場合も上記既定値を使用する。
実装時に確認すること
FontSizeが周期的に振動する既知ケースで、位置・サイズの安定性4/5の効果を確認する調整余地
以下の値は実際の振動ケースと既存テストを基準に実装時に最終調整する。
3/6,4/87UI値を百分率へ正規化する必要はなく、設定ごとに意味のある min / max を使用する。
受け入れ条件
MaxMissedFramesと assignment recency の責務を分離する