Применение трафарета и чтение зон

Use Case Версия: 0.1 draft

Главный актор
Аналитик

Аналитик загружает трафарет и скан того же вида, выравнивает скан, читает отметки офлайн и текст выбранным движком; результат — JSON и читаемый список полей.

⟨/⟩ Исходник

1. Given

2. When

  1. Аналитик загружает трафарет и скан; скан выравнивается по вертикали (deskew).
  2. Клетки трафарета накладываются на скан по своим координатам (для «плывущих» родственных сканов включается опциональная привязка по линиям сетки).
  3. Аналитик жмёт «Читать зоны»:
    • отметки считаются офлайн прототип-вычитанием (клетка темнее «пустого» прототипа колонки = метка), чувствительность регулируется ползунком;
    • текст: перед каждым полем — офлайн-проверка «есть чернила»; непустые уходят в выбранный движок (Qwen-VL по клетке / Yandex OCR одним запросом на страницу).
  4. Аналитик сверяет результат по подсветке зон и списку распознанных полей.

3. Then

4. Альтернативы и ошибки

Ситуация Поведение
Скан «плывёт» относительно эталона Включается привязка по линиям (кусочная интерполяция, регуляризованная к аффинной): на «своём» скане вырождается в тождество и не вредит
Слабая рукописная метка Разделение метка/пусто на пределе; крутится чувствительность, помогает более крупная съёмка
Крупный бокс Комментария с редким текстом Не считается пустым по абсолютному числу тёмных пикселей, а не по доле
Лимит частоты облачного OCR Yandex — один запрос на всю страницу, слова раскладываются по клеткам через геометрию

5. Трассировка

Шаг Инструмент
Наложение трафарета, deskew, привязка, чтение зон editor/apply-template.html
Отметки офлайн прототип-вычитание (в странице)
Текст Qwen-VL / Yandex OCR через server/

Эпик — эпик «Стенд распознавания карт». Продуктовая цель — EPIC_CardExtraction.

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

Документы