Приёмка: ручная разметка линий и сверка с авторазметкой

Проверка шла на работающем сервисе, в браузере, мышью — так же, как это делает человек. Взят «Пример 2», страница 1, вкладка «После выравнивания». Пройден весь путь: нарисовать свои линии, удалить лишнюю, передвинуть одну, сохранить, обновить страницу и посмотреть, совпала ли автоматическая сетка с этой ручной разметкой. Отдельно проверено, что четыре остальных примера не сломались.

Что прошло, а что нет

Шаг путиРезультат
Выбрать «Пример 2», открыть вкладку «После выравнивания» Да. На экране один вид, картинка не показывается «рядом» сама по себе.
Распознать страницу и увидеть сетку Да. 44 линии (24 вертикальных, 20 горизонтальных), 131 размеченная ячейка, 102 строки в таблице справа.
Клик по ячейке подсвечивает поле справа Да. Клик по ячейке на скане подсветил ровно одно поле справа (в проверке это был адрес покупателя).
Нарисовать линии мышью Да. Было 24 линии (сохранённая ранее разметка подтянулась сама), нарисовал ещё три — стало 27.
Удалить лишнюю линию Да. Клик по линии — она выделяется, «Удалить линию» убирает её: 27 → 26, появляется подпись «Линия удалена».
Передвинуть линию мышью Да. Линия взята мышью и перетащена с 30% высоты листа на 42%, кнопка «Отменить» стала доступной.
Сохранить Да. Подпись «Эталон сохранён: линий — 26».
Обновить страницу — правки на месте Да. После перезагрузки и повторного открытия примера вернулись те же 26 линий на тех же местах (расхождение меньше половины процента ширины листа — это округление при подгонке картинки под размер окна).
Сверка автоматической сетки с ручной разметкой Да, экран сравнения открывается и считает: 16 линий из 24 совпали, 8 алгоритм не нашёл, 2 линии лишние.
Шапка товарной таблицы размечена ячейками Нет. В полосе с названиями столбцов («Код товара/работ, услуг», «Наименование товара», «Цена (тариф) за единицу измерения» и т. д.) нет ни одной ячейки: сетка находит только верхнюю и нижнюю границу этой полосы, а внутри она пустая.
Крайний правый столбец попал в сетку Нет. Сетка обрывается сразу после столбца «9» («Стоимость товаров … с налогом — всего»). Столбцы «10», «10а» (страна происхождения) и «11» (регистрационный номер декларации) в сетку не попали.
Ошибки на странице Нет ни одной — ни на экране распознавания, ни на экране сравнения, ни на четырёх остальных примерах.

Остальные четыре примера не сломались

ПримерЛиний сеткиЯчеек на скане Строк в таблице справаОшибки
Пример 162366163нет
Пример 3275931нет
Пример 45313546нет
Пример 55134593нет

Каждый пример открыт заново, распознан целиком, сетка нарисовалась, на экране всё время виден один вид — переключение вкладками работает.

Снимки экрана

1. «Пример 2», страница 1 после распознавания: сетка ячеек поверх выровненного скана, справа — распознанные блоки.
Экран распознавания с сеткой ячеек
2. Ручная разметка: линии нарисованы мышью, одна удалена, одна передвинута, внизу подпись «Эталон сохранён: линий — 26». Выбранная ячейка подсвечена и на скане, и в списке справа.
Редактор линий с сохранённым эталоном
3. Крупно, верх «Примера 2»: полоса с названиями столбцов ячейками не разбита, а справа сетка заканчивается на столбце «9» — столбцы «10», «10а» и «11» остались снаружи.
Шапка таблицы и правый край крупным планом
4. Правый край ещё крупнее: за столбцом «9» линий нет.
Правый край таблицы без сетки

Вывод

Ручная разметка линий готова и работает целиком. Линии ставятся мышью, берутся и двигаются, удаляются, последнее действие отменяется, сохранение переживает перезагрузку страницы, авторазметку можно спрятать и вернуть. Клик по ячейке с подсветкой поля справа и распознавание текста не задеты, ошибок на страницах нет, остальные четыре примера работают как раньше.

Главное требование пока не выполнено. На «Примере 2», странице 1 шапка товарной таблицы по-прежнему не разбита на ячейки, а правые столбцы «10», «10а» и «11» не попали в сетку. По замерам предыдущего шага причина не в настройках длины линии: на этом скане линейки правых столбцов слишком бледные — после выравнивания фона от них остаются обрывки. Лечится это порогом, по которому светлые линии вообще считаются линиями, — это отдельная правка распознавания, в объём выполненных шагов она не входила.

Мелочь на будущее: если включить «+ гориз. линия» и щёлкнуть точно по уже стоящей линии, новая не поставится — щелчок засчитывается самой линии. Достаточно кликнуть на свободном месте.

Экран сверки автоматической сетки с ручной разметкой — «Сетка алгоритма против эталона». Его счётчик «пропущено в шапке — 0» считает только те линии, что есть в ручной разметке: шапка обозначена в ней верхней и нижней границей, поэтому пустоту внутри полосы счётчик не видит, а глазами она видна (снимок 3).