Применение трафарета и чтение зон
Аналитик загружает трафарет и скан того же вида, выравнивает скан, читает отметки офлайн и текст выбранным движком; результат — JSON и читаемый список полей.
1. Given
- Открыт экран применения (
editor/apply-template.html) через локальный прокси. - Есть трафарет нужного вида (JSON) и скан того же вида страницы.
- По умолчанию: нормализация выключена, deskew включён.
2. When
- Аналитик загружает трафарет и скан; скан выравнивается по вертикали (deskew).
- Клетки трафарета накладываются на скан по своим координатам (для «плывущих» родственных сканов включается опциональная привязка по линиям сетки).
- Аналитик жмёт «Читать зоны»:
- отметки считаются офлайн прототип-вычитанием (клетка темнее «пустого» прототипа колонки = метка), чувствительность регулируется ползунком;
- текст: перед каждым полем — офлайн-проверка «есть чернила»; непустые уходят в выбранный движок (Qwen-VL по клетке / Yandex OCR одним запросом на страницу).
- Аналитик сверяет результат по подсветке зон и списку распознанных полей.
3. Then
- Получен JSON:
marks[](отметка true/false + score) иfields[](значение + путь/подпись). - Пустые клетки помечены и не отправлялись в модель.
- Справа — читаемый список «поле → значение» для быстрой сверки.
4. Альтернативы и ошибки
| Ситуация | Поведение |
|---|---|
| Скан «плывёт» относительно эталона | Включается привязка по линиям (кусочная интерполяция, регуляризованная к аффинной): на «своём» скане вырождается в тождество и не вредит |
| Слабая рукописная метка | Разделение метка/пусто на пределе; крутится чувствительность, помогает более крупная съёмка |
| Крупный бокс Комментария с редким текстом | Не считается пустым по абсолютному числу тёмных пикселей, а не по доле |
| Лимит частоты облачного OCR | Yandex — один запрос на всю страницу, слова раскладываются по клеткам через геометрию |
5. Трассировка
| Шаг | Инструмент |
|---|---|
| Наложение трафарета, deskew, привязка, чтение зон | editor/apply-template.html |
| Отметки | офлайн прототип-вычитание (в странице) |
| Текст | Qwen-VL / Yandex OCR через server/ |
Эпик — эпик «Стенд распознавания карт». Продуктовая цель — EPIC_CardExtraction.