Если сверточные фильтры, используемые для обнаружения таблиц, могут быть усилены фильтрами обнаружения столбцов, это должно значительно улучшить производительность модели. Модель TableNet использует эту интуицию и основана на модели кодировщика-декодера для семантической сегментации.

Кодировщик модели является общим для обеих задач, но декодер появляется как две разные ветви для таблиц и столбцов. В частности, мы заставили слои кодирования использовать для обучения достоверные данные как таблиц, так и столбцов документа. Однако уровни декодирования разделены для ветвей таблицы и столбца.

Архитектура

Входное изображение для модели сначала преобразуется в изображение RGB, а затем изменяется до разрешения 1024 * 1024.

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

Модель TableNet использует ту же интуицию для сети кодировщика/декодера, что и архитектура FCN. В качестве базовой сети используется предварительно обученный уровень VGG-19. Полностью связанные слои (слои после pool5) VGG-19 заменяются двумя (1x1) слоями свертки.

Каждый из этих сверточных слоев (conv6) использует активацию ReLU, за которой следует слой отсева с вероятностью 0,8. После этого уровня добавляются две разные ветви сети декодера.

Выход слоя (conv6 + dropout) распределяется по обеим ветвям декодера. В каждой ветви добавляются дополнительные слои для фильтрации соответствующих активных областей.

В табличной ветви сети декодера используется дополнительный (1x1) слой свертки, таблица conv7, перед использованием серии слоев свертки с дробным шагом для масштабирования изображения. Выходные данные слоя таблицы conv7 также масштабируются с использованием сверток с дробным шагом и дополняются слоем объединения pool4 той же размерности.

Точно так же комбинированная карта объектов снова масштабируется, и к ней добавляется пул pool3. Наконец, окончательная карта объектов масштабируется, чтобы соответствовать размеру исходного изображения.

В другой ветке для обнаружения столбцов есть дополнительный слой свертки (столбец conv7) с функцией активации ReLU и слой отсева с той же вероятностью отсева. Карты объектов подвергаются повышающей выборке с использованием сверток с дробным шагом после слоя свертки (1x1) (столбец conv8).

Карты объектов с повышенной частотой дискретизации объединяются со слоем объединения pool4, а комбинированная карта объектов подвергается повышенной выборке и объединяется со слоем объединения pool3 того же измерения. После этого слоя карта объектов масштабируется до исходного изображения.

В обеих ветвях перед транспонированными слоями используется несколько (1x1) сверточных слоев. Интуиция, стоящая за использованием свертки (1x1), заключается в уменьшении размеров карт признаков (каналов), которые используются в предсказании классов пикселей, поскольку выходные слои (выход сети кодировщика) должны иметь каналы, равные количеству классов (канал с максимальная вероятность назначается соответствующим пикселям), которая позже подвергается повышающей дискретизации.

Таким образом, выходные данные двух ветвей вычислительных графов дают маску для области таблицы и столбца.

Извлечение строки таблицы

После обработки документов с помощью TableNet генерируются маски для областей таблиц и столбцов. Эти маски используются для фильтрации области таблицы и ее столбцов из изображения.

Поскольку все позиции слов в документе могут быть известны (с помощью Tesseract OCR), отфильтровываются только фрагменты слов, лежащие внутри областей таблицы и столбца. Теперь, используя эти отфильтрованные слова, строку можно определить как набор слов из нескольких столбцов, находящихся на одном горизонтальном уровне.

Однако строка не обязательно ограничивается одной строкой, и в зависимости от содержимого столбца или разграничения строк строка может занимать несколько строк. Поэтому, чтобы охватить различные возможности, авторы сформулировали три правила сегментации строк:

  • В большинстве таблиц, для которых присутствуют разграничения строк, линии сегментируют строки в каждом столбце. Чтобы обнаружить возможную демаркацию строк (для строк), каждое пространство между двумя вертикально расположенными словами в столбце проверяется на наличие строк с помощью преобразования Радона. Наличие горизонтальной демаркационной линии четко разделяет ряд.
  • Если строка занимает несколько строк, строки таблицы с максимальным количеством непустых записей помечаются как начальная точка для новой строки. Например, в многостолбцовой таблице некоторые столбцы могут иметь записи, занимающие только одну строку (например, количество и т. д.), а другие могут иметь многострочные записи (например, описание и т. д.). Таким образом, каждая новая строка начинается, когда все сущности в каждом столбце заполнены.
  • В таблицах, где все столбцы полностью заполнены и нет разграничения строк, каждая строка (уровень) может рассматриваться как уникальная строка.

Обучение

Для обучения модели TableNet используется набор данных распознавания таблиц Marmot. Это самый большой общедоступный набор данных для обнаружения таблиц.

Бумага

TableNet: модель глубокого обучения для сквозного обнаружения таблиц и извлечения табличных данных из отсканированных изображений документов: 2001.01469

Выполнение

Таблнет

Просмотреть все темы этой серии здесь