ОБНОВЛЕНИЕ 2/26: Я решил свой вопрос, хотя не стесняюсь отвечать быстрыми или лучшими решениями.
Одна из основных проблем заключается в том, что таблицы примерно одинаковы по размерам, но они различаются от страницы к странице.Отсканированные изображения также слегка смещены от страницы к странице, что создает две проблемы с выравниванием .Мой текущий рабочий процесс решает и то, и другое:
Выравнивание типа таблицы
Решение:
- Используйте инструменты редактирования изображений в ABBYY длявырезать каждую страницу по горизонтали.Это дает одну таблицу на каждой странице.
- Обратите внимание, что существует 4 типа таблиц.Четные страницы и нечетные страницы имеют отдельные макеты.Первая таблица на каждой странице содержит поле для даты.
- Это дает четность первой таблицы, нечетную первую таблицу, четную reg-table, нечетную reg-table.Обработка по одному типу за раз с фиксированными областями таблицы и столбцами устраняет смещение из-за различий в разметке таблиц.
Выравнивание изображения
Изображения одного типа таблицы по-прежнему не выровненыпоэтому указание макета таблицы в координатах (x, y) не сработает.Расположение таблиц на каждом изображении различается.
Мне нужно было выровнять изображения по местоположению таблицы, но без определения таблицы не было никакого хорошего способа сделать это.
Iрешил проблему интересным способом, но сначала я попытался выполнить следующие шаги:
- Обнаружение вертикальных линий с помощью Opencv.Результат: плохо обнаружил слабые линии.Часто пропускает линии, что делает его бесполезным для выравнивания.
- Используйте Scan Tailor для обнаружения содержимого.Результат: алгоритм обнаружения может обрезать некоторые таблицы в одних файлах, а в других включать пробелы из-за пятен на изображении.Удаление пятен не помогло.
- Используйте Камелот с широкими областями таблицы, без значений столбцов.Результат: Это, вероятно, будет работать хорошо в других случаях, но Камелот упал здесь.Данные доводятся до центов, и между каждыми тремя цифрами есть пробелы.Это привело к неправильному расположению 00 в нескольких столбцах.
Решение:
После разрезания изображений на таблицы, описанные в разделе «Выравнивание типов таблиц», используйтеФункция автоматического выравнивания слоев в Photoshop для выравнивания изображений.
Пошаговое решение:
- Открытие Photoshop
- Загрузка изображений одного типа таблицы в одинфайл с помощью: File-Scripts-Load Files to Stack
- Использование: Edit-Auto-alignment layer
- Используйте инструмент кадрирования, чтобы каждый файл имел одинаковый размер.
- Экспорт каждогоизображение как собственный файл: File-Export-Layers в файлы
- Используйте редактор OCR ABBYY для каждого из 4 типов таблиц, жестко закодируйте столбцы и строки с помощью графического редактора.
- Экспорт в CSV изABBYY
- Используйте что-то вроде clean.py для удаления пробелов и плохих символов.
Готово!Объедините файлы для каждой таблицы, как вам нравится.Я опубликую свой код Python для этого, когда я закончу с проектом.После очистки я также опубликую данные.