Skip to content

文字列の候補が変わり続けるときの強制確定で一時的な誤認識が確定する #766

Open

Description

@Freeesia

背景

#742 で、文字列の確定を経過時間で判定するようにした。候補が変わり続ける場合は、TextChangeTimeout(既定1.2秒)を過ぎた時点の観測を確定する。

問題

  • OcrTextTracker.TextTrack.UpdateText は、タイムアウト時に出現頻度を考慮せず、その時点の観測(current)を確定する。
  • 確定済みの文字列に対して種類の異なる一時的な誤認識が続くと、タイムアウト時の誤認識が確定する。例: Stable に対して Stab1e・StabIe・Stab|e・Stab!e が500ms間隔で続くと、2秒の時点で Stab!e が確定する。
  • 候補がばらつく場合も、多数派ではなくタイムアウト時の観測が確定する。例: 安定度4で PanelA・PanelB・PanelA・PanelC と続くと PanelC が確定する。

失敗しているテスト

  • OcrTextTrackerAccuracyTests.DistinctTransientTextErrorsDoNotReplaceConfirmedTextBeforeTheHistoryLimit
  • OcrTextTrackerSettingsTests.ScatteredTextVotesNeedEnoughRecentWeight(level: 4, pendingFrames: 5)
  • OcrTextTrackerSettingsTests.ScatteredTextVotesNeedEnoughRecentWeight(level: 5, pendingFrames: 6)

対応方針案

完了条件

  • 一時的な誤認識が続いても、多数派でない候補が確定しない。
  • 文字列が実際に変わり続ける場合は、従来どおり最新の文字列へ追従する。

関連

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