Стенд распознавания карт

Epic Версия: 0.1 draft

Браузерный инструментарий аналитика: разметить трафарет (геометрию клеток) по эталонному бланку, применить его к сканам, прочитать отметки офлайн и текст выбранным движком, сравнить подходы. Живёт вне продуктового кода, в src-tools.

⟨/⟩ Исходник

1. Цель

Дать аналитику средства спроектировать распознавание одного вида бумажной карты и проверить его на реальных сканах, не трогая продуктовый код. Ключевой результат стенда — переиспользуемые трафареты по видам страниц (page_type): описание точной геометрии клеток бланка, снятое один раз с эталонного скана.

Устройство подчинено принципу «математика вперёд, модель — только на текст»: выравнивание, привязка сетки, детекция отметок — детерминированные алгоритмы по пикселям (бесплатно, воспроизводимо, мгновенно); большая языковая модель (VLM) или облачный OCR вызывается только для чтения рукописного/печатного значения в непустой ячейке.

Стенд — исследовательский слой перед реализацией: на нём отрабатывается подход, который затем ложится в продуктовую обработку пакета (см. Связанные артефакты).

2. Акторы

Актор Роль в эпике
Аналитик размечает трафареты по эталонным бланкам, применяет к сканам, читает зоны, сравнивает движки распознавания
Разработчик сопровождает стенд, переносит отработанный подход в продуктовую обработку

3. Границы

Входит:

Не входит: продуктовая обработка пакета и её конвейер, сервис нормализации кадра (orthocover) как таковой, обучение/дообучение моделей, ведение форм и видов ИК (администрирование). Стенд их использует или имитирует, но не реализует.

4. Критерии приёмки

  1. Трафарет — это JSON вида страницы (page_type): рамка-якорь, линии сетки и клетки {id, type: checkbox|text, section (путь), label, x, y, w, h} в долях 0..1.
  2. Разные виды бланка требуют своего трафарета: они отличаются не только координатами, но и составом колонок (пример: Декор-Обрез — 5 опций в back_v1 против 3 в back_v2).
  3. Отметки (галочка/крестик/штрих — любая) читаются офлайн, без обращения к модели; устойчивость к форме метки обеспечивает прототип-вычитание по колонке.
  4. Текст читается выбранным движком; перед вызовом — офлайн-проверка «есть ли чернила», пустые клетки не отправляются.
  5. Скан обрабатывается без нормализации: по умолчанию только выравнивание вертикали (deskew); нормализация (orthocover) и привязка по линиям — опциональны.
  6. Инструменты — статические HTML, открываются в браузере через локальный прокси; ключи доступа проходят насквозь и никуда, кроме целевого API, не пишутся.

5. Открытые вопросы

Вопрос
OQ-RS-1 Автоопределение вида страницы (page_type) — чтобы форма подбиралась сама. Механизм решён геометрическим детектором — ADR-015 «Опознание формы и страницы кадра»; открытым остаётся перенос в продуктовую обработку и прод-устойчивость (см. OQ-RS-2)
OQ-RS-2 Запас прочности привязки на произвольном (прод) фото. На эталонных сканах решено: Y-граница кадра берётся по крайним горизонталям сетки (frameYbyLines), регистрация по линиям регуляризована к аффинной (мёртвая зона + отбраковка выбросов) — на «своём» скане вырождается в тождество. Открыт вопрос устойчивости на сильно «плывущих» и низкокачественных сканах
OQ-RS-3 Потолок точности упирается в разрешение фото (~816px, клетка ~55px); при съёмке 2000px+ офлайн и VLM резко точнее
OQ-RS-4 Формат и версионирование библиотеки трафаретов, перенос отработанного подхода в продуктовую обработку

Связанные артефакты

Документы