From 134436245a1ebdadbfd8ba3c870f0f3c866f39a7 Mon Sep 17 00:00:00 2001 From: Christoph Auer <60343111+cau-git@users.noreply.github.com> Date: Tue, 25 Nov 2025 05:14:51 +0100 Subject: [PATCH] feat(experimental): Add experimental TableCropsLayoutModel (#2669) * feat: Scaffolding for layout and table model plugin factory Signed-off-by: Christoph Auer * Add missing files Signed-off-by: Christoph Auer * Add base options classes for layout and table Signed-off-by: Christoph Auer * feat(experimental): Add experimental TableCropsLayoutModel Signed-off-by: Christoph Auer * Add example Signed-off-by: Christoph Auer --------- Signed-off-by: Christoph Auer --- docling/cli/main.py | 12 +- docling/datamodel/pipeline_options.py | 4 +- .../datamodel/table_crops_layout_options.py | 13 ++ docling/experimental/models/__init__.py | 3 + .../models/table_crops_layout_model.py | 114 ++++++++++++++++++ docling/models/plugins/defaults.py | 4 + .../experimental/process_table_crops.py | 40 ++++++ tests/data/2305.03393v1-table_crop.png | Bin 0 -> 56975 bytes 8 files changed, 184 insertions(+), 6 deletions(-) create mode 100644 docling/experimental/datamodel/table_crops_layout_options.py create mode 100644 docling/experimental/models/__init__.py create mode 100644 docling/experimental/models/table_crops_layout_model.py create mode 100644 docs/examples/experimental/process_table_crops.py create mode 100644 tests/data/2305.03393v1-table_crop.png diff --git a/docling/cli/main.py b/docling/cli/main.py index 63324645..9dddadba 100644 --- a/docling/cli/main.py +++ b/docling/cli/main.py @@ -71,6 +71,7 @@ from docling.datamodel.pipeline_options import ( PipelineOptions, ProcessingPipeline, TableFormerMode, + TableStructureOptions, TesseractCliOcrOptions, TesseractOcrOptions, VlmPipelineOptions, @@ -645,10 +646,13 @@ def convert( # noqa: C901 do_picture_classification=enrich_picture_classes, document_timeout=document_timeout, ) - pipeline_options.table_structure_options.do_cell_matching = ( - True # do_cell_matching - ) - pipeline_options.table_structure_options.mode = table_mode + if isinstance( + pipeline_options.table_structure_options, TableStructureOptions + ): + pipeline_options.table_structure_options.do_cell_matching = ( + True # do_cell_matching + ) + pipeline_options.table_structure_options.mode = table_mode if image_export_mode != ImageRefMode.PLACEHOLDER: pipeline_options.generate_page_images = True diff --git a/docling/datamodel/pipeline_options.py b/docling/datamodel/pipeline_options.py index 052b5621..30d4e50c 100644 --- a/docling/datamodel/pipeline_options.py +++ b/docling/datamodel/pipeline_options.py @@ -354,9 +354,9 @@ class PdfPipelineOptions(PaginatedPipelineOptions): ) # If True, text from backend will be used instead of generated text - table_structure_options: TableStructureOptions = TableStructureOptions() + table_structure_options: BaseTableStructureOptions = TableStructureOptions() ocr_options: OcrOptions = OcrAutoOptions() - layout_options: LayoutOptions = LayoutOptions() + layout_options: BaseLayoutOptions = LayoutOptions() images_scale: float = 1.0 generate_page_images: bool = False diff --git a/docling/experimental/datamodel/table_crops_layout_options.py b/docling/experimental/datamodel/table_crops_layout_options.py new file mode 100644 index 00000000..7e4cfaec --- /dev/null +++ b/docling/experimental/datamodel/table_crops_layout_options.py @@ -0,0 +1,13 @@ +"""Internal options for the experimental TableCrops layout model.""" + +from typing import ClassVar + +from docling.datamodel.pipeline_options import BaseLayoutOptions + +__all__ = ["TableCropsLayoutOptions"] + + +class TableCropsLayoutOptions(BaseLayoutOptions): + """Options for TableCropsLayoutModel (internal-only).""" + + kind: ClassVar[str] = "docling_experimental_table_crops_layout" diff --git a/docling/experimental/models/__init__.py b/docling/experimental/models/__init__.py new file mode 100644 index 00000000..4c1c1db2 --- /dev/null +++ b/docling/experimental/models/__init__.py @@ -0,0 +1,3 @@ +"""Experimental models for Docling.""" + +__all__: list[str] = [] diff --git a/docling/experimental/models/table_crops_layout_model.py b/docling/experimental/models/table_crops_layout_model.py new file mode 100644 index 00000000..726956c8 --- /dev/null +++ b/docling/experimental/models/table_crops_layout_model.py @@ -0,0 +1,114 @@ +"""Internal TableCrops layout model that marks full pages as table clusters.""" + +from __future__ import annotations + +import warnings +from collections.abc import Sequence +from pathlib import Path +from typing import Optional + +import numpy as np +from docling_core.types.doc import DocItemLabel + +from docling.datamodel.accelerator_options import AcceleratorOptions +from docling.datamodel.base_models import BoundingBox, Cluster, LayoutPrediction, Page +from docling.datamodel.document import ConversionResult +from docling.experimental.datamodel.table_crops_layout_options import ( + TableCropsLayoutOptions, +) +from docling.models.base_layout_model import BaseLayoutModel + +__all__ = ["TableCropsLayoutModel"] + + +class TableCropsLayoutModel(BaseLayoutModel): + """Experimental layout model that treats the full page as a table cluster. + This is useful in cases where a Docling pipeline is applied to images of table crops only. + + This model is internal and not part of the stable public interface. + """ + + def __init__( + self, + artifacts_path: Optional[Path], + accelerator_options: AcceleratorOptions, + options: TableCropsLayoutOptions, + ): + self.options = options + self.artifacts_path = artifacts_path + self.accelerator_options = accelerator_options + + @classmethod + def get_options_type(cls) -> type[TableCropsLayoutOptions]: + return TableCropsLayoutOptions + + def predict_layout( + self, + conv_res: ConversionResult, + pages: Sequence[Page], + ) -> Sequence[LayoutPrediction]: + layout_predictions: list[LayoutPrediction] = [] + + for page in pages: + if page._backend is None or not page._backend.is_valid(): + existing_prediction = page.predictions.layout or LayoutPrediction() + layout_predictions.append(existing_prediction) + continue + + clusters = self._build_page_clusters(page) + prediction = LayoutPrediction(clusters=clusters) + + self._update_confidence(conv_res, page, clusters) + + layout_predictions.append(prediction) + + return layout_predictions + + def _build_page_clusters(self, page: Page) -> list[Cluster]: + page_size = page.size + if page_size is None: + return [] + + bbox = BoundingBox( + l=0.0, + t=0.0, + r=page_size.width, + b=page_size.height, + ) + + cluster = Cluster( + id=0, + label=DocItemLabel.TABLE, + bbox=bbox, + confidence=1.0, + cells=[], + ) + + clusters = [cluster] + + if not self.options.skip_cell_assignment: + page_cells = list(page.cells) + cluster.cells = page_cells + + if not page_cells and not self.options.keep_empty_clusters: + clusters = [] + + return clusters + + def _update_confidence( + self, conv_res: ConversionResult, page: Page, clusters: list[Cluster] + ) -> None: + """Populate layout and OCR confidence scores for the page.""" + with warnings.catch_warnings(): + warnings.filterwarnings( + "ignore", + "Mean of empty slice|invalid value encountered in scalar divide", + RuntimeWarning, + "numpy", + ) + + conv_res.confidence.pages[page.page_no].layout_score = 1.0 + + ocr_cells = [cell for cell in page.cells if cell.from_ocr] + ocr_confidence = float(np.mean([cell.confidence for cell in ocr_cells])) + conv_res.confidence.pages[page.page_no].ocr_score = ocr_confidence diff --git a/docling/models/plugins/defaults.py b/docling/models/plugins/defaults.py index 06b87080..11c8d7b3 100644 --- a/docling/models/plugins/defaults.py +++ b/docling/models/plugins/defaults.py @@ -31,11 +31,15 @@ def picture_description(): def layout_engines(): + from docling.experimental.models.table_crops_layout_model import ( + TableCropsLayoutModel, + ) from docling.models.layout_model import LayoutModel return { "layout_engines": [ LayoutModel, + TableCropsLayoutModel, ] } diff --git a/docs/examples/experimental/process_table_crops.py b/docs/examples/experimental/process_table_crops.py new file mode 100644 index 00000000..90c87db9 --- /dev/null +++ b/docs/examples/experimental/process_table_crops.py @@ -0,0 +1,40 @@ +"""Run Docling on an image using the experimental TableCrops layout model.""" + +from __future__ import annotations + +from pathlib import Path + +import docling +from docling.datamodel.document import InputFormat +from docling.datamodel.pipeline_options import ThreadedPdfPipelineOptions +from docling.document_converter import DocumentConverter, ImageFormatOption +from docling.experimental.datamodel.table_crops_layout_options import ( + TableCropsLayoutOptions, +) +from docling.experimental.models.table_crops_layout_model import TableCropsLayoutModel +from docling.models.factories import get_layout_factory + + +def main() -> None: + sample_image = "tests/data/2305.03393v1-table_crop.png" + + pipeline_options = ThreadedPdfPipelineOptions( + layout_options=TableCropsLayoutOptions(), + do_table_structure=True, + generate_page_images=True, + ) + + converter = DocumentConverter( + allowed_formats=[InputFormat.IMAGE], + format_options={ + InputFormat.IMAGE: ImageFormatOption(pipeline_options=pipeline_options) + }, + ) + + conv_res = converter.convert(sample_image) + + print(conv_res.document.tables[0].export_to_markdown()) + + +if __name__ == "__main__": + main() diff --git a/tests/data/2305.03393v1-table_crop.png b/tests/data/2305.03393v1-table_crop.png new file mode 100644 index 0000000000000000000000000000000000000000..a29e72360214810aefd4b6a183109d47eaf7f321 GIT binary patch literal 56975 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%0A$? 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

EYD>lpk8N?k@jDY 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