Table Transformer: распознавание структуры таблиц и извлечение данных из документов

Table Transformer, или TATR, — исследовательский проект Microsoft на Python и семейство моделей компьютерного зрения для поиска таблиц в документах и восстановления их структуры. Это не PDF-просмотрщик и не готовый конвертер с графическим окном: модель выделяет таблицы, строки, столбцы, заголовки и ячейки, а текстовое содержимое получает из отдельно подготовленных слов с координатами. Поэтому TATR прежде всего полезен как компонент автоматизированной обработки PDF и изображений.

ПараметрАктуальные сведения
Официальное названиеTable Transformer, сокращение TATR
Разработчик и официальный источникMicrosoft; публичный репозиторий microsoft/table-transformer
ТипОткрытый исследовательский код и предобученные модели для обнаружения таблиц и распознавания их структуры
Основной стекPython, PyTorch, torchvision; доступна интеграция с Hugging Face Transformers
ВходИзображения страниц или таблиц; для текстового результата дополнительно нужны слова и их bounding box
ВыходОбъекты с координатами, список ячеек, HTML, CSV и диагностические визуализации
ЛицензияMIT для кода и опубликованных модельных репозиториев; набор PubTables-1M имеет отдельную CDLA-Permissive-2.0
Опубликованные моделиДетектор таблиц и модели структуры TATR-v1.0, TATR-v1.1-Pub, TATR-v1.1-Fin и TATR-v1.1-All
Цена и аккаунтПлатной редакции и пробного периода нет; для локального запуска аккаунт не требуется
Статус на 11 сентября 2026 годаРепозиторий доступен и не архивирован, но основная ветка не получала новых коммитов после 7 сентября 2023 года

Скачать Table Transformer

Бесплатно
В реестре российского ПО
Чистая установка

Новейшая версия для Виндовс, macOS и Линукс. Удобный редактор PDF под российские реалии.

⬇ Скачать PDF Commander бесплатно

⬇ Скачать Table Transformer

Безопасный исходный источник — публичный репозиторий Microsoft с точным именем microsoft/table-transformer. В нём находятся код обучения, оценки и инференса, конфигурации моделей, файл environment.yml, документация и ссылки на официальные веса. Для воспроизводимости статьи PubTables-1M существует GitHub Release v1.0.0, опубликованный 17 февраля 2023 года. Более новые веса структуры TATR-v1.1 были выпущены 22 августа 2023 года и перечислены в README, но не оформлены как отдельный GitHub Release.

Для Transformers на Hugging Face представлены microsoft/table-transformer-detection и microsoft/table-transformer-structure-recognition, оба с MIT-меткой. Оригинальные веса TATR-v1.1, на которые ссылается README Microsoft, размещены в репозиториях bsmock/TATR-v1.1-Pub, bsmock/TATR-v1.1-Fin и bsmock/TATR-v1.1-All. Pub обучен на PubTables-1M, Fin — на FinTabNet.c, All — на объединении этих наборов. При скачивании важно не путать этапы: детектор и распознаватель структуры решают разные задачи и не являются взаимозаменяемыми файлами.

Официального установщика Windows, пакета macOS, мобильного приложения или веб-сервиса Microsoft для TATR нет. Совпадающее название стороннего пакета не делает его официальным дистрибутивом. Для исходного проекта ориентиром служит организация Microsoft на GitHub; для современного API к опубликованным моделям — класс TableTransformerForObjectDetection в Hugging Face Transformers.

Что такое Table Transformer

Table Transformer вырос из работы Microsoft Research о наборе PubTables-1M и был представлен как применение архитектуры DETR к извлечению таблиц из неструктурированных документов. В опубликованной схеме используются две связанные, но отдельные модели: одна определяет области таблиц на странице, другая принимает изображение уже выделенной таблицы и распознаёт элементы её структуры. В официальных материалах задачи разделены на table detection, table structure recognition и functional analysis.

Под словом «извлечение» здесь не следует понимать полноценный PDF-to-Excel конвертер. TATR работает как модель object detection: результатом сначала являются классы объектов и прямоугольные координаты. Чтобы сформировать таблицу с текстом, официальный inference pipeline сопоставляет предсказанные ячейки со списком токенов — слов и их координат. Если токены не переданы, структуру можно визуализировать, но содержимое ячеек в HTML или CSV получить нельзя.

Именно это отличает Table Transformer от ABBYY FineReader и других законченных OCR-приложений. TATR не содержит пользовательского слоя сканирования, коррекции распознанного текста и экспорта офисного документа. Его назначение — быть компонентом конвейера обработки документов, исследовательским эталоном или основой для собственной системы извлечения таблиц.

Хронология развития и поддержки

Первая версия проекта была опубликована 8 июня 2021 года. Осенью того же года появился полный PubTables-1M, а в марте и мае 2022 года Microsoft выпустила предобученные веса соответственно для обнаружения таблиц и распознавания структуры. В феврале 2023 года был оформлен релиз v1.0.0, предназначенный для воспроизведения результатов исходной научной работы.

В марте 2023 года проект получил особенно важное для прикладного использования обновление: официальный простой inference pipeline умеет выполнять detection, recognition или объединённый extract и выдавать HTML либо CSV. Тогда же reference environment был переведён на Python 3.10.9, PyTorch 1.13.1 и torchvision 0.14.1. 22 августа 2023 года появились три варианта TATR-v1.1, созданные в рамках работы по согласованию наборов данных для table structure recognition.

На 11 сентября 2026 года репозиторий Microsoft остаётся публичным и не помечен как archived, но последний коммит основной ветки датирован 7 сентября 2023 года. Поэтому TATR корректнее считать доступным исследовательским проектом с замедлившейся upstream-разработкой, а не активно версионируемым конечным продуктом. Реализация модели при этом остаётся в актуальной документации Hugging Face Transformers.

Основные функции Table Transformer

Обнаружение таблиц на странице

Модель table detection принимает изображение страницы и определяет прямоугольные области, относящиеся к таблицам. Это отдельный этап, полезный для многостраничных PDF, где таблицы перемежаются текстом, рисунками и другими элементами. В официальном командном интерфейсе режим detect может сохранить найденные объекты, вырезанные изображения таблиц и диагностические визуализации. Параметр crop_padding добавляет поля вокруг найденной области перед передачей результата в модель структуры.

Распознавание строк, столбцов и сложных ячеек

Модель структуры работает на cropped table image. Конфигурация опубликованного распознавателя содержит классы table, table column, table row, table column header, table projected row header и table spanning cell. За счёт этого TATR описывает не только сетку строк и столбцов, но и элементы, важные для многоуровневых заголовков и объединённых областей. Результат после постобработки можно представить как список ячеек с координатами.

Сквозное извлечение

Режим extract объединяет детектор и распознаватель структуры: сначала на изображении страницы ищутся таблицы, затем каждая найденная область обрабатывается второй моделью. Для end-to-end запуска нужны четыре файла: конфигурация и checkpoint детектора, а также конфигурация и checkpoint распознавателя структуры. Это не единая монолитная модель, поэтому при развёртывании необходимо следить, чтобы все четыре компонента соответствовали выбранной версии и задаче.

Присоединение текста к структуре

Официальный pipeline принимает tokens как список словарей с полями bbox и text; координаты задаются в системе изображения, а слова предполагаются отсортированными в порядке чтения. Источник токенов не зашит в TATR. Для цифрового PDF их можно получить средствами PDF-парсинга, для скана — внешним OCR. Если распознавание текста является главной задачей, разумно сначала оценить специализированные решения, например CuneiForm OCR, а TATR использовать именно как слой восстановления табличной структуры.

Экспорт и диагностические представления

Inference pipeline умеет возвращать raw objects с bounding box, список cells, HTML и CSV. Документация прямо указывает, что список ячеек сохраняет больше всего информации, поскольку содержит координаты каждой ячейки. HTML уже теряет эти координаты, а CSV дополнительно упрощает многострочные заголовки: в нём только первая строка используется как набор имён столбцов, поэтому сложный header приходится «сплющивать».

Обучение, дообучение и оценка

Репозиторий включает обучение и fine-tuning для detection и structure recognition, продолжение прерванного обучения из checkpoint и оценку по object-detection метрикам и GriTS. GriTS отдельно оценивает топологию, расположение и текст ячеек, поэтому подходит для регрессионного контроля собственных моделей.

Интерфейс и удобство использования

Графического интерфейса у Table Transformer нет. Основные рабочие поверхности — командная строка, Python-класс TableExtractionPipeline, JSON-конфигурации и структура каталогов с изображениями, токенами, checkpoint и результатами. Для разработчика такой подход прозрачен: параметры видны в команде или коде, а выходные файлы можно сразу подключать к ETL. Для пользователя, ожидающего окно с кнопкой «Открыть PDF», порог входа будет высоким.

Командный сценарий разделён на три режима: detect, recognize и extract. Пользователь выбирает device для каждой модели, каталоги изображений и слов, пути к config и checkpoint, выходной каталог и флаги форматов. Такая модульность помогает диагностировать ошибки: если неверно находится сама таблица, проверяется detection; если область найдена правильно, но сетка ячеек плохая, отдельно исследуется structure recognition.

Документация, имена параметров и консольные сообщения проекта англоязычные. Локализованного русского интерфейса нет, поскольку интерфейс как конечное приложение отсутствует. Освоение требует понимания Python-окружений, координатных систем изображений, object detection и структуры PDF; для одноразового извлечения нескольких таблиц Tabula или готовый OCR-пакет обычно проще.

Поддерживаемые форматы и совместимость

Важное ограничение формулируется так: модель распознаёт таблицы из image input. Официальный inference pipeline ожидает объект PIL.Image в Python или каталог изображений при запуске из командной строки. PDF упоминается как исходный тип неструктурированного документа, однако типовой путь включает предварительное преобразование страницы в изображение. В environment.yml присутствует PyMuPDF, поэтому такой этап естественно реализуется рядом с TATR, но это всё равно отдельная операция до вызова модели.

Для текстового результата требуется второй поток данных — tokens с координатами слов. В цифровом PDF эти координаты можно извлечь непосредственно из текстового слоя; в сканированном документе нужен OCR, способный вернуть не только строку текста, но и bounding box слов. TATR не устанавливает конкретный OCR-движок как обязательный компонент, поэтому совместимость определяется тем, удаётся ли привести результат OCR к ожидаемой структуре bbox плюс text.

На выходе доступны четыре уровня представления. Raw objects полезны для собственного постпроцессинга и визуального аудита. Cells подходят для последующего построения DataFrame или экспорта с сохранением геометрии. HTML удобно передавать в веб-процессы, если координаты уже не нужны. CSV хорошо совместим с электронными таблицами, но не может полностью выразить многоуровневую геометрию сложной таблицы. Для просмотра или дополнительной правки CSV можно использовать офисный пакет вроде LibreOffice.

Паспорт обратимости операций

ЭтапЧто сохраняетсяЧто может потерятьсяКак сохранить обратимость
DetectionКоординаты найденных таблиц и при необходимости cropped imagesКонтекст страницы вне cropНе удалять исходное изображение страницы и сохранять bounding box
CellsГеометрия ячеек, текст и структурные свойстваМинимальные потери относительно других экспортовСчитать список cells мастер-результатом
HTMLЛогическая табличная структура и текстBounding box ячеекХранить HTML вместе с cells, если геометрия важна
CSVПлоские строки и столбцыКоординаты и часть семантики многострочных заголовковНе использовать CSV как единственную копию сложной таблицы

TATR не редактирует исходный PDF или исходное изображение на месте, поэтому базовый процесс обратим: входной документ остаётся источником истины, а распознанные данные создаются отдельно. Потери возникают не в оригинале, а при выборе более простого выходного формата. Для архивного или проверяемого процесса стоит сохранять как минимум исходную страницу, параметры запуска, версии checkpoint и список cells; HTML и CSV рассматривать как производные представления.

Производительность и стабильность

Опубликованные Microsoft показатели относятся к контролируемым benchmark, а не к универсальной скорости и точности на любых документах. Для исходного детектора DETR R18 на тестовой части PubTables-1M в README приведены AP 0,970 и AP50 0,995. Для TATR-v1.0 в table structure recognition опубликованы AP 0,902 и GriTS по топологии 0,9849. Эти числа показывают качество на соответствующем наборе и протоколе оценки, но не дают права ожидать такую же точность на счетах, формах, фотографиях или таблицах с другим визуальным стилем.

Работа 2023 года о согласовании наборов данных показывает ещё один важный вывод: качество сильно зависит от консистентности разметки и домена обучения. Авторы фиксировали одну архитектуру TATR и получали заметное улучшение exact-match accuracy после канонизации и согласования PubTables-1M и FinTabNet. Практический смысл — выбор v1.1-Pub, v1.1-Fin или v1.1-All должен соответствовать типу документов, а для узкого корпоративного шаблона может понадобиться собственное дообучение.

Официальные checkpoint в README имеют размер около 110 МБ каждый; на Hugging Face safetensors-файл моделей структуры занимает примерно 115 МБ, а модель содержит около 28,8 млн параметров. Полный end-to-end сценарий одновременно требует детектор и распознаватель, поэтому объём весов и памяти выше, чем у одного checkpoint. Для обучения PubTables-1M масштабы совсем другие: актуальная копия набора на Hugging Face занимает около 117 ГБ.

Код поддерживает выбор cpu вместо cuda, а в параметрах оценки доступны batch_size и размер пула CPU для GriTS. Наличие CPU-режима расширяет варианты запуска, но Microsoft не публикует гарантированное время обработки на конкретном процессоре или GPU. Поэтому сравнивать скорость следует только в собственном фиксированном наборе страниц с одинаковыми разрешением, моделью, устройством и параметрами постобработки.

Стабильность результата чувствительна к предварительной подготовке. Документация отдельно подчёркивает важность padding вокруг таблицы; слишком тесный crop может ухудшить распознавание структуры по краям. Ещё один класс ошибок связан не с нейросетью как таковой, а с токенами: неверные координаты OCR, другой масштаб изображения или неправильный порядок слов приводят к неверному наполнению уже корректно найденных ячеек.

Лицензирование и версии

Исходный код microsoft/table-transformer опубликован по лицензии MIT с copyright Microsoft Corporation. Она разрешает использование, изменение, распространение, сублицензирование и продажу копий при сохранении уведомления об авторском праве и текста лицензии; программное обеспечение предоставляется без гарантий. Модельные репозитории Microsoft на Hugging Face также помечены лицензией MIT.

Отдельно нужно учитывать набор данных. PubTables-1M на Hugging Face маркирован как CDLA-Permissive-2.0 и имеет собственные условия распространения. Поэтому нельзя автоматически переносить MIT-лицензию кода на все скачанные обучающие данные и документы, используемые организацией. Для коммерческого проекта разумно фиксировать происхождение каждого набора данных и условия его использования отдельно от лицензии TATR.

Платной редакции, подписки, пробного периода и лимита страниц у Table Transformer нет; для локального запуска регистрация не обязательна. Реальные расходы связаны с вычислениями, хранением, OCR и разработкой интеграции. Тарифы сторонних сервисов поверх TATR не относятся к лицензированию Microsoft.

Нумерация требует аккуратности. Единственный оформленный GitHub Release — v1.0.0. Названия TATR-v1.1-Pub, TATR-v1.1-Fin и TATR-v1.1-All относятся к более новым моделям structure recognition, выпущенным в 2023 году. Это не три коммерческие редакции и не уровни подписки: различие прежде всего в обучающих данных.

Системные требования

Официальное reference environment Microsoft

Файл environment.yml закрепляет Python 3.10.9, PyTorch 1.13.1, torchvision 0.14.1 и CUDA Toolkit 11.8.0. В том же окружении указаны pandas 1.5.3, scikit-learn 1.2.1, tqdm 4.65.0, Cython 0.29.33, matplotlib 3.7.0, numpy 1.24.2, pycocotools 2.0.6, Pillow 9.4.0, editdistance 0.6.2, scikit-image 0.20.0, scipy 1.10.1 и PyMuPDF 1.21.1. Официальная установка создаёт conda-окружение с именем tables-detr.

Минимальные объёмы RAM, VRAM, свободного диска и конкретные модели CPU или GPU Microsoft не публикует. Также нет таблицы официально поддерживаемых Windows, macOS и Linux. Поэтому наличие Python и Conda на системе не следует выдавать за сертифицированную поддержку ОС. Проверяемое утверждение ограничивается тем, что код написан на Python, reference environment задаётся через Conda, а команды позволяют выбирать cpu или cuda как устройство вычисления.

Современный маршрут через Hugging Face Transformers

Table Transformer остаётся документированным классом в актуальном Transformers. Текущая документация библиотеки указывает Python 3.10+ и PyTorch 2.5+ для современного стека. Это требования реализации Transformers, а не подтверждение совместимости старых скриптов Microsoft со всеми новыми версиями.

Карта критических зависимостей

ЗависимостьОбязательностьЧто ломается без неё
Python и ML-окружениеОбязательноИсходный код и модели не запускаются
Checkpoint detectionНужен для поиска таблицНельзя автоматически определить области таблиц на странице
Checkpoint structure recognitionНужен для восстановления сеткиНельзя получить строки, столбцы и ячейки
Токены с bbox и textНужны для текстового HTML/CSVОстаётся только геометрическая структура
OCRТолько для сканов без текстового слояНет текстовых токенов из изображения
ИнтернетНужен при первоначальном скачиванииНельзя получить код или веса, если они не закэшированы локально
CUDAНе обязательноОстаётся CPU-исполнение без GPU-ускорения
Облачный аккаунтНе требуется для локального режимаНичего, если код и веса уже находятся локально

С точки зрения приватности это выгодная архитектура: после локального получения кода и весов документ можно обрабатывать без отправки страниц на сервер Microsoft или Hugging Face. Сам TATR не является SaaS и не требует загрузки PDF в облако. Если же организация оборачивает модель сторонним API, размещает её в облачном notebook или подключает внешний OCR-сервис, политика передачи данных определяется уже этими компонентами, а не лицензией и кодом Table Transformer.

Преимущества и недостатки Table Transformer

Плюсы и минусы

— Разделение detection и structure recognition. Можно независимо диагностировать поиск таблиц и восстановление сетки, менять модели и дообучать только проблемный этап.

— Структурный выход. Модель распознаёт строки, столбцы, заголовки и spanning cells, а не ограничивается координатой всей таблицы.

— Несколько уровней экспорта. Доступны raw boxes, подробные cells, HTML и CSV; мастер-представление можно сохранить без потери геометрии.

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

— Воспроизводимый исследовательский контекст. В репозитории есть датасетная инфраструктура, обучение, evaluation и GriTS, поэтому качество можно измерять на собственной разметке.

— Интеграция с Transformers. Опубликованные Microsoft checkpoint доступны через стандартные классы Hugging Face, что упрощает включение TATR в современный Python-стек.

Минусы

— Нет готового настольного приложения. Пользователь должен владеть Python, командной строкой и принципами ML-инференса.

— Нет встроенного OCR. Для сканов приходится добавлять отдельный движок и правильно согласовывать координаты слов с изображением.

— PDF не является простым входом «как есть» для inference.py. Страницы нужно преобразовать в изображения, а текстовый слой — в токены.

— CSV упрощает структуру. Многострочные заголовки и геометрия ячеек при плоском экспорте частично теряются.

— Стареющее reference environment. Официальный conda-файл закрепляет версии 2023 года, а основная ветка проекта давно не обновлялась.

— Доменная зависимость качества. Предобученные веса связаны с PubTables-1M и FinTabNet; нестандартные шаблоны могут потребовать fine-tuning.

Сравнение с аналогами

ИнструментОсновной подходСканы и OCRВыходПорог входа
Table TransformerНейросетевые detection и structure recognitionOCR внешнийBoxes, cells, HTML, CSVВысокий, Python и ML
Camelot 2.0Lattice, Stream, Network, Hybrid и опциональный ML-бэкенд на Table TransformerДля flavor=ml доступен отдельный OCR-маршрут для скановCSV, Excel, JSON, HTML, Markdown, SQLiteСредний, Python или CLI
TabulaИзвлечение таблиц из текстовых PDFСканированные PDF не поддерживаютсяCSV; движок tabula-java также поддерживает TSV и JSONНизкий для локального веб-интерфейса
DoclingПолный конвейер преобразования документов с layout, OCR и TableFormerДа, через подключаемые OCR-движкиСтруктурированный документ, HTML, Markdown, JSON; таблицы можно выгружать в CSVСредний
PaddleOCR PP-StructureV3Комплексный document parsing с layout, OCR и табличными моделямиДаСтруктурированные результаты конвейера, включая таблицыСредний или высокий

Camelot 2.0 особенно интересен как более высокий уровень абстракции: кроме Lattice, Stream, Network и Hybrid он получил опциональный flavor=ml, использующий Table Transformer для структуры, а с OCR-дополнением способен обрабатывать image-only PDF. Tabula проще для ручной работы с текстовыми PDF через локальный веб-интерфейс и прямо не поддерживает сканы. Чистый TATR даёт больше контроля над моделями, геометрией и обучением, но требует самостоятельного конвейера.

Docling и PaddleOCR PP-StructureV3 шире TATR: они объединяют layout, OCR и распознавание таблиц в более полном document-AI конвейере. Для нового end-to-end проекта это часто проще. Sumatra PDF находится в другой категории — это просмотрщик; TATR не заменяет его, а автоматизирует извлечение. Если нужно редактировать сам PDF, уместнее PDF-XChange Editor.

Инструкция по установке

Установка официального исследовательского репозитория

1. Получите исходный код из репозитория microsoft/table-transformer в организации Microsoft на GitHub. Для воспроизведения исходной публикации можно использовать tag или Release v1.0.0; для актуальных файлов основной ветки — main.

2. Установите Conda-совместимый менеджер окружений и из корня проекта выполните создание среды по файлу environment.yml. Официальная команда: conda env create -f environment.yml.

3. Активируйте среду командой conda activate tables-detr. Не подменяйте pinned зависимости случайными новыми версиями, если цель — воспроизводимость исходного кода.

4. Скачайте официальный detection checkpoint и, если требуется структура, соответствующий structure-recognition checkpoint. Для режима extract нужны оба config и оба checkpoint.

5. Перейдите в каталог src. Для первого запуска выберите отдельный выходной каталог и небольшое тестовое изображение страницы или cropped table image.

6. Запустите один режим — detect, recognize либо extract — с явными путями к config, weights и image_dir. Для машины без совместимого GPU укажите cpu; для CUDA-среды используйте cuda только после проверки установленного стека.

7. Проверьте, что появились ожидаемые objects, cells, HTML или CSV в зависимости от выбранных флагов. Для текстового результата заранее подготовьте words_dir с токенами; без него контролируйте только геометрию и визуализацию.

Установка через Hugging Face Transformers

Если исследовательские скрипты Microsoft не нужны, v1.0 можно загружать через актуальный Transformers по идентификаторам microsoft/table-transformer-detection и microsoft/table-transformer-structure-recognition. Для v1.1 берите точные идентификаторы моделей из README исходного репозитория. Установите совместимые Python, PyTorch и Transformers по текущей документации библиотеки. При первом from_pretrained веса скачиваются в локальный кэш; последующие запуски могут использовать его.

Параметры, которые важно настроить сразу

— device. Не оставляйте предположение о GPU скрытым: зафиксируйте cpu или cuda в конфигурации запуска и журнале обработки.

— crop_padding. Подбирайте его на валидационных страницах, потому что слишком тесная обрезка способна отрезать крайние строки и столбцы.

— набор выходов. Для отладки сохраняйте objects и cells, а CSV генерируйте как производный формат, чтобы не потерять геометрию.

— согласование масштаба. Изображение и bbox токенов должны использовать одну систему координат; после любого resize координаты необходимо преобразовать согласованно.

— версия модели. Записывайте точное имя checkpoint и его источник, особенно если сравниваются v1.0, v1.1-Pub, v1.1-Fin и v1.1-All.

Первый запуск и безопасное удаление

Первый запуск лучше делать на одной странице с визуально понятной таблицей. Сначала сохраните detection visualization и убедитесь, что рамка охватывает таблицу с небольшим запасом; затем включайте structure recognition и только после геометрической проверки добавляйте текстовые токены. Такой порядок отделяет ошибку детектора от ошибки OCR или сопоставления слов.

Проект не устанавливает системный драйвер, виртуальный принтер или расширение проводника. Перед удалением сохраните свои config, fine-tuned checkpoint, результаты cells и журналы параметров. После этого можно удалить каталог исходного кода и созданное Conda-окружение средствами менеджера окружений. Если модели загружались через Hugging Face, их кэш хранится отдельно от проекта; удалять его стоит только тогда, когда эти веса больше не используются другими приложениями.

Практические кейсы

Цифровой PDF с научными таблицами в CSV

Цель. Получить таблицы из цифрового PDF. Подготовка. Растеризуйте страницы и извлеките слова с координатами в согласованном масштабе. Шаги. Выполните detection, затем structure recognition с tokens и сохраните cells плюс CSV. Проверка. Сверьте сетку и контрольные значения с оригиналом. Ограничение. Для сложных заголовков храните cells или HTML, поскольку CSV упрощает структуру.

Сканированный документ с отдельным OCR

Цель. Извлечь таблицу из скана. Подготовка. Получите OCR-слова с bounding box на том же изображении. Шаги. Передайте страницу в detection, crop — в structure recognition, а OCR-токены — для заполнения ячеек. Проверка. Оценивайте геометрию и текст отдельно. Ограничение. Сплошной OCR-текст без координат нельзя напрямую использовать как tokens TATR.

Извлечение таблиц из повторяющегося корпоративного шаблона

Цель. Повысить качество на корпоративном шаблоне. Подготовка. Разметьте репрезентативные train, validation и test без утечки похожих документов. Шаги. Возьмите checkpoint как стартовые веса, настройте config и выполните fine-tuning с load_weights_only. Проверка. Сравнивайте AP, GriTS и прикладные ошибки на test. Ограничение. Узкое дообучение может ухудшить перенос, поэтому исходный checkpoint сохраняют для отката.

Регрессионная проверка после смены модели

Цель. Проверить новую модель без субъективной оценки. Подготовка. Зафиксируйте один набор страниц и эталонную разметку. Шаги. Оцените старый и новый checkpoint с одинаковыми параметрами и сохраните AP и GriTS. Проверка. Разберите таблицы с наибольшим падением. Ограничение. Метрики структуры не измеряют ошибки внешнего OCR.

Контроль перед сохранением и передачей

— Сверьте количество обнаруженных таблиц с визуальным количеством на странице.

— Для каждой таблицы проверьте крайние строки и столбцы: именно они первыми страдают от слишком малого crop_padding.

— Сохраните cells, если downstream-процессу могут понадобиться координаты; не оставляйте только CSV.

— Проверьте многострочные и объединённые заголовки после преобразования в HTML или CSV.

— Убедитесь, что числа, даты и идентификаторы не испорчены OCR и не сдвинуты в соседнюю ячейку.

— Зафиксируйте имя модели, config, устройство и параметры preprocessing, чтобы результат можно было воспроизвести.

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

Часто задаваемые вопросы

Распознаёт ли детектор повёрнутые таблицы?

Да. В class map детектора предусмотрены отдельные метки table и table rotated. В reference inference при создании crop область, классифицированная как table rotated, поворачивается вместе с координатами токенов перед последующей обработкой. Это поддержка поворота внутри конвейера, а не универсальное исправление перспективы или геометрических искажений фотографии.

Есть ли ограничение на несколько раздельных областей заголовка?

Да. В постобработке reference inference прямо зафиксировано, что несколько заголовков таблицы одновременно не поддерживаются: алгоритм оставляет верхнюю непрерывную область заголовка и прекращает её расширение после первой обычной строки. Для документов с повторным заголовком в середине таблицы это нужно учитывать при собственном постпроцессинге.

Можно ли получить XLSX напрямую из TATR?

Официальный inference не объявляет XLSX как выходной формат. Его штатные представления — raw objects, cells, HTML и CSV. Если нужен Excel-файл, надёжнее сначала сохранить cells как наиболее информативный результат, а затем сформировать XLSX отдельным библиотечным слоем, явно решив, как переносить объединённые ячейки и многострочные заголовки.

Нужно ли скачивать весь PubTables-1M для обычного инференса?

Нет. Набор PubTables-1M нужен для воспроизведения обучения и оценки на соответствующем benchmark. Для распознавания собственных документов достаточно кода, конфигураций, нужных checkpoint и подготовленных входных изображений; если требуется текст, добавляются токены с координатами. Это существенно уменьшает объём локальных данных по сравнению со скачиванием полного набора.

Можно ли обрабатывать каталог страниц пакетно?

Да. Командные режимы detect, recognize и extract принимают image_dir, то есть рассчитаны на каталог входных изображений. Для многостраничного PDF страницы сначала подготавливают как изображения; затем весь каталог можно передать одному запуску. Выходной каталог следует отделять от исходного, чтобы диагностические файлы и производные форматы не смешивались с входными страницами.

Вывод

Table Transformer остаётся полезным открытым инструментом для разработчиков и исследователей, которым нужны раздельные detection и structure recognition, координаты ячеек, обучение и GriTS. Он особенно уместен в локальном конвейере, где уже есть PDF-парсер или OCR и требуется контролируемый модуль табличной структуры под MIT-лицензией.

Для текстовых PDF и разовых задач проще Camelot или Tabula; для полного современного document-AI конвейера стоит сравнить Docling и PaddleOCR. Для чтения PDF достаточно просмотрщика. TATR выбирают тогда, когда таблица рассматривается как задача компьютерного зрения и нужен управляемый, обучаемый компонент собственной системы, а не готовая кнопка экспорта.


Ваш адрес email не будет опубликован. Обязательные поля помечены *