From 7a3ef336fdb453227259f8dcb66930a15ff83249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Doumouro?= Date: Fri, 14 Mar 2025 14:31:24 +0100 Subject: [PATCH] fix(ocr): tesseract support mis-oriented documents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Clément Doumouro --- docling/models/tesseract_ocr_cli_model.py | 75 ++++++++++------ docling/models/tesseract_ocr_model.py | 57 ++++++------ docling/utils/ocr_utils.py | 84 ++++++++++++++++++ .../docling_v1/ocr_test_rotated.doctags.txt | 3 + .../docling_v1/ocr_test_rotated.json | 1 + .../docling_v1/ocr_test_rotated.md | 1 + .../docling_v1/ocr_test_rotated.pages.json | 1 + .../ocr_test_rotated_180.doctags.txt | 4 + .../docling_v1/ocr_test_rotated_180.json | 1 + .../docling_v1/ocr_test_rotated_180.md | 3 + .../ocr_test_rotated_180.pages.json | 1 + .../ocr_test_rotated_270.doctags.txt | 3 + .../docling_v1/ocr_test_rotated_270.json | 1 + .../docling_v1/ocr_test_rotated_270.md | 1 + .../ocr_test_rotated_270.pages.json | 1 + .../ocr_test_rotated_90.doctags.txt | 3 + .../docling_v1/ocr_test_rotated_90.json | 1 + .../docling_v1/ocr_test_rotated_90.md | 1 + .../docling_v1/ocr_test_rotated_90.pages.json | 1 + .../ocr_test_rotated_180.doctags.txt | 3 + .../docling_v2/ocr_test_rotated_180.json | 1 + .../docling_v2/ocr_test_rotated_180.md | 3 + .../ocr_test_rotated_180.pages.json | 1 + .../ocr_test_rotated_270.doctags.txt | 3 + .../docling_v2/ocr_test_rotated_270.json | 1 + .../docling_v2/ocr_test_rotated_270.md | 1 + .../ocr_test_rotated_270.pages.json | 1 + .../ocr_test_rotated_90.doctags.txt | 3 + .../docling_v2/ocr_test_rotated_90.json | 1 + .../docling_v2/ocr_test_rotated_90.md | 1 + .../docling_v2/ocr_test_rotated_90.pages.json | 1 + tests/data_scanned/ocr_test_rotated_180.pdf | Bin 0 -> 94703 bytes tests/data_scanned/ocr_test_rotated_270.pdf | Bin 0 -> 94702 bytes tests/data_scanned/ocr_test_rotated_90.pdf | Bin 0 -> 94126 bytes tests/test_e2e_ocr_conversion.py | 32 +++---- 35 files changed, 224 insertions(+), 71 deletions(-) create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.md create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.pages.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.md create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.pages.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.md create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.pages.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.json create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.md create mode 100644 tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.pages.json create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.md create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.pages.json create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.md create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.pages.json create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.doctags.txt create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.md create mode 100644 tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.pages.json create mode 100644 tests/data_scanned/ocr_test_rotated_180.pdf create mode 100644 tests/data_scanned/ocr_test_rotated_270.pdf create mode 100644 tests/data_scanned/ocr_test_rotated_90.pdf diff --git a/docling/models/tesseract_ocr_cli_model.py b/docling/models/tesseract_ocr_cli_model.py index 33ca0c10..48d6da4a 100644 --- a/docling/models/tesseract_ocr_cli_model.py +++ b/docling/models/tesseract_ocr_cli_model.py @@ -6,10 +6,9 @@ import tempfile from collections.abc import Iterable from pathlib import Path from subprocess import DEVNULL, PIPE, Popen -from typing import List, Optional, Tuple, Type +from typing import List, Optional, Tuple, Type, cast import pandas as pd -from docling_core.types.doc import BoundingBox, CoordOrigin from docling_core.types.doc.page import BoundingRectangle, TextCell from docling.datamodel.base_models import Page @@ -21,7 +20,12 @@ from docling.datamodel.pipeline_options import ( ) from docling.datamodel.settings import settings from docling.models.base_ocr_model import BaseOcrModel -from docling.utils.ocr_utils import map_tesseract_script +from docling.utils.ocr_utils import ( + Box, + map_tesseract_script, + parse_tesseract_orientation, + tesseract_box_to_bounding_rectangle, +) from docling.utils.profiling import TimeRecorder _log = logging.getLogger(__name__) @@ -93,14 +97,13 @@ class TesseractOcrCliModel(BaseOcrModel): return name, version - def _run_tesseract(self, ifilename: str): + def _run_tesseract(self, ifilename: str, osd: pd.DataFrame): r""" Run tesseract CLI """ cmd = [self.options.tesseract_cmd] - if "auto" in self.options.lang: - lang = self._detect_language(ifilename) + lang = self._parse_language(osd) if lang is not None: cmd.append("-l") cmd.append(lang) @@ -139,11 +142,10 @@ class TesseractOcrCliModel(BaseOcrModel): return df_filtered - def _detect_language(self, ifilename: str): + def _perform_osd(self, ifilename: str) -> pd.DataFrame: r""" Run tesseract in PSM 0 mode to detect the language """ - assert self._tesseract_languages is not None cmd = [self.options.tesseract_cmd] cmd.extend(["--psm", "0", "-l", "osd", ifilename, "stdout"]) @@ -154,7 +156,11 @@ class TesseractOcrCliModel(BaseOcrModel): df_detected = pd.read_csv( io.StringIO(decoded_data), sep=":", header=None, names=["key", "value"] ) - scripts = df_detected.loc[df_detected["key"] == "Script"].value.tolist() + return df_detected + + def _parse_language(self, df_osd: pd.DataFrame) -> Optional[str]: + assert self._tesseract_languages is not None + scripts = df_osd.loc[df_osd["key"] == "Script"].value.tolist() if len(scripts) == 0: _log.warning("Tesseract cannot detect the script of the page") return None @@ -225,8 +231,14 @@ class TesseractOcrCliModel(BaseOcrModel): ) as image_file: fname = image_file.name high_res_image.save(image_file) - - df_result = self._run_tesseract(fname) + df_osd = self._perform_osd(fname) + doc_orientation = _parse_orientation(df_osd) + if doc_orientation != 0: + high_res_image = high_res_image.rotate( + doc_orientation, expand=True + ) + high_res_image.save(fname) + df_result = self._run_tesseract(fname, df_osd) finally: if os.path.exists(fname): os.remove(fname) @@ -238,13 +250,22 @@ class TesseractOcrCliModel(BaseOcrModel): text = row["text"] conf = row["conf"] - l = float(row["left"]) # noqa: E741 - b = float(row["top"]) - w = float(row["width"]) - h = float(row["height"]) - - t = b + h - r = l + w + rotated_bbox = ( + row["left"], + row["top"], + row["width"], + row["height"], + ) + rotated_bbox = cast( + Box, tuple(float(c) for c in rotated_bbox) + ) + rect = tesseract_box_to_bounding_rectangle( + rotated_bbox, + offset=ocr_rect, + scale=self.scale, + orientation=doc_orientation, + rotated_image_size=high_res_image.size, + ) cell = TextCell( index=ix, @@ -252,17 +273,7 @@ class TesseractOcrCliModel(BaseOcrModel): orig=str(text), from_ocr=True, confidence=conf / 100.0, - rect=BoundingRectangle.from_bounding_box( - BoundingBox.from_tuple( - coord=( - (l / self.scale) + ocr_rect.l, - (b / self.scale) + ocr_rect.t, - (r / self.scale) + ocr_rect.l, - (t / self.scale) + ocr_rect.t, - ), - origin=CoordOrigin.TOPLEFT, - ) - ), + rect=rect, ) all_ocr_cells.append(cell) @@ -278,3 +289,9 @@ class TesseractOcrCliModel(BaseOcrModel): @classmethod def get_options_type(cls) -> Type[OcrOptions]: return TesseractCliOcrOptions + + +def _parse_orientation(df_osd: pd.DataFrame) -> int: + orientations = df_osd.loc[df_osd["key"] == "Orientation in degrees"].value.tolist() + orientation = parse_tesseract_orientation(orientations[0].strip()) + return orientation diff --git a/docling/models/tesseract_ocr_model.py b/docling/models/tesseract_ocr_model.py index 79d1e450..16cc665b 100644 --- a/docling/models/tesseract_ocr_model.py +++ b/docling/models/tesseract_ocr_model.py @@ -3,10 +3,9 @@ from __future__ import annotations import logging from collections.abc import Iterable from pathlib import Path -from typing import Optional, Type +from typing import Dict, Iterable, Optional, Type -from docling_core.types.doc import BoundingBox, CoordOrigin -from docling_core.types.doc.page import BoundingRectangle, TextCell +from docling_core.types.doc.page import TextCell from docling.datamodel.base_models import Page from docling.datamodel.document import ConversionResult @@ -17,7 +16,11 @@ from docling.datamodel.pipeline_options import ( ) from docling.datamodel.settings import settings from docling.models.base_ocr_model import BaseOcrModel -from docling.utils.ocr_utils import map_tesseract_script +from docling.utils.ocr_utils import ( + map_tesseract_script, + parse_tesseract_orientation, + tesseract_box_to_bounding_rectangle, +) from docling.utils.profiling import TimeRecorder _log = logging.getLogger(__name__) @@ -95,13 +98,13 @@ class TesseractOcrModel(BaseOcrModel): if lang == "auto": self.reader = tesserocr.PyTessBaseAPI(**tesserocr_kwargs) - self.osd_reader = tesserocr.PyTessBaseAPI( - **{"lang": "osd", "psm": tesserocr.PSM.OSD_ONLY} | tesserocr_kwargs - ) else: self.reader = tesserocr.PyTessBaseAPI( **{"lang": lang} | tesserocr_kwargs, ) + self.osd_reader = tesserocr.PyTessBaseAPI( + **{"lang": "osd", "psm": tesserocr.PSM.OSD_ONLY} | tesserocr_kwargs + ) self.reader_RIL = tesserocr.RIL def __del__(self): @@ -125,6 +128,7 @@ class TesseractOcrModel(BaseOcrModel): else: with TimeRecorder(conv_res, "ocr"): assert self.reader is not None + assert self.osd_reader is not None assert self._tesserocr_languages is not None ocr_rects = self.get_ocr_rects(page) @@ -139,16 +143,17 @@ class TesseractOcrModel(BaseOcrModel): ) local_reader = self.reader + self.osd_reader.SetImage(high_res_image) + osd = self.osd_reader.DetectOrientationScript() + # No text, probably + if osd is None: + continue + doc_orientation = parse_tesseract_orientation(osd["orient_deg"]) + if doc_orientation != 0: + high_res_image = high_res_image.rotate( + doc_orientation, expand=True + ) if "auto" in self.options.lang: - assert self.osd_reader is not None - - self.osd_reader.SetImage(high_res_image) - osd = self.osd_reader.DetectOrientationScript() - - # No text, probably - if osd is None: - continue - script = osd["script_name"] script = map_tesseract_script(script) lang = f"{self.script_prefix}{script}" @@ -188,11 +193,14 @@ class TesseractOcrModel(BaseOcrModel): # Extract text within the bounding box text = local_reader.GetUTF8Text().strip() confidence = local_reader.MeanTextConf() - left = box["x"] / self.scale - bottom = box["y"] / self.scale - right = (box["x"] + box["w"]) / self.scale - top = (box["y"] + box["h"]) / self.scale - + rotated_bbox = (box["x"], box["y"], box["w"], box["h"]) + rect = tesseract_box_to_bounding_rectangle( + rotated_bbox, + offset=ocr_rect, + scale=self.scale, + orientation=doc_orientation, + rotated_image_size=high_res_image.size, + ) cells.append( TextCell( index=ix, @@ -200,12 +208,7 @@ class TesseractOcrModel(BaseOcrModel): orig=text, from_ocr=True, confidence=confidence, - rect=BoundingRectangle.from_bounding_box( - BoundingBox.from_tuple( - coord=(left, top, right, bottom), - origin=CoordOrigin.TOPLEFT, - ), - ), + rect=rect, ) ) diff --git a/docling/utils/ocr_utils.py b/docling/utils/ocr_utils.py index 59503f1f..66e96c5f 100644 --- a/docling/utils/ocr_utils.py +++ b/docling/utils/ocr_utils.py @@ -1,3 +1,15 @@ +from typing import Optional, Tuple + +from docling_core.types.doc import BoundingBox, CoordOrigin +from docling_core.types.doc.page import BoundingRectangle + +_TESSERACT_ORIENTATIONS = {0, 90, 180, 270} + +Point = Tuple[float, float] +Box = Tuple[float, float, float, float] +Size = Tuple[int, int] + + def map_tesseract_script(script: str) -> str: r""" """ if script == "Katakana" or script == "Hiragana": @@ -7,3 +19,75 @@ def map_tesseract_script(script: str) -> str: elif script == "Korean": script = "Hangul" return script + + +def reverse_tesseract_preprocessing_rotation( + box: Box, orientation: int, rotated_im_size: Size +) -> tuple[Point, Point, Point, Point]: + l, t, w, h = box + rotated_w, rotated_h = rotated_im_size + if orientation == 0: + return (l, t), (l + w, t), (l + w, t + h), (l, t + h) + if orientation == 90: + x0 = rotated_h - t + y0 = l + return (x0, y0), (x0, y0 + w), (x0 - h, y0 + w), (x0 - h, y0) + if orientation == 180: + x0 = rotated_w - l + y0 = rotated_h - t + return (x0, y0), (x0 - w, y0), (x0 - w, y0 - h), (x0, y0 - h) + if orientation == 270: + x0 = t + y0 = rotated_w - l + return (x0, y0), (x0, y0 - w), (x0 + h, y0 - w), (x0 + h, y0) + msg = ( + f"invalid tesseract document orientation {orientation}, " + f"expected orientation: {sorted(_TESSERACT_ORIENTATIONS)}" + ) + raise ValueError(msg) + + +def parse_tesseract_orientation(orientation: str) -> int: + parsed = int(orientation) + if parsed not in _TESSERACT_ORIENTATIONS: + msg = ( + f"invalid tesseract document orientation {orientation}, " + f"expected orientation: {sorted(_TESSERACT_ORIENTATIONS)}" + ) + raise ValueError(msg) + return parsed + + +def tesseract_box_to_bounding_rectangle( + box: Box, + *, + offset: Optional[BoundingBox] = None, + scale: float, + orientation: int, + rotated_image_size: Size, +) -> BoundingRectangle: + # box is in the top, left, height, width format + top left orientation + r_0, r_1, r_2, r_3 = reverse_tesseract_preprocessing_rotation( + box, orientation, rotated_image_size + ) + rect = BoundingRectangle( + r_x0=r_0[0] / scale, + r_y0=r_0[1] / scale, + r_x1=r_1[0] / scale, + r_y1=r_1[1] / scale, + r_x2=r_2[0] / scale, + r_y2=r_2[1] / scale, + r_x3=r_3[0] / scale, + r_y3=r_3[1] / scale, + coord_origin=CoordOrigin.TOPLEFT, + ) + if offset is not None: + rect.r_x0 += offset.l + rect.r_x1 += offset.l + rect.r_x2 += offset.l + rect.r_x3 += offset.l + rect.r_y0 += offset.t + rect.r_y1 += offset.t + rect.r_y2 += offset.t + rect.r_y3 += offset.t + return rect diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.doctags.txt b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.doctags.txt new file mode 100644 index 00000000..0b7a3a14 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.doctags.txt @@ -0,0 +1,3 @@ + +package + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.json new file mode 100644 index 00000000..128a8527 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.json @@ -0,0 +1 @@ +{"_name": "", "type": "pdf-document", "description": {"title": null, "abstract": null, "authors": null, "affiliations": null, "subjects": null, "keywords": null, "publication_date": null, "languages": null, "license": null, "publishers": null, "url_refs": null, "references": null, "publication": null, "reference_count": null, "citation_count": null, "citation_date": null, "advanced": null, "analytics": null, "logs": [], "collection": null, "acquisition": null}, "file-info": {"filename": "ocr_test_rotated.pdf", "filename-prov": null, "document-hash": "4a282813d93824eaa9bc2a0b2a0d6d626ecc8f5f380bd1320e2dd3e8e53c2ba6", "#-pages": 1, "collection-name": null, "description": null, "page-hashes": [{"hash": "f8a4dc72d8b159f69d0bc968b97f3fb9e0ac59dcb3113492432755835935d9b3", "model": "default", "page": 1}]}, "main-text": [{"prov": [{"bbox": [131.21306574279092, 74.12495603322407, 152.19606490864376, 154.19400205373182], "page": 1, "span": [0, 7], "__ref_s3_data": null}], "text": "package", "type": "paragraph", "payload": null, "name": "Text", "font": null}], "figures": [], "tables": [], "bitmaps": null, "equations": [], "footnotes": [], "page-dimensions": [{"height": 595.201171875, "page": 1, "width": 841.9216918945312}], "page-footers": [], "page-headers": [], "_s3_data": null, "identifiers": null} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.md b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.md new file mode 100644 index 00000000..597acc76 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.md @@ -0,0 +1 @@ +package \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.pages.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.pages.json new file mode 100644 index 00000000..fdc46eda --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 841.9216918945312, "height": 595.201171875}, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 77.10171546422428, "t": 89.23887398109309, "r": 96.6831586150625, "b": 520.7638577050515, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 100.55299576256091, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}}, {"id": 2, "text": "package", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}}], "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_header", "bbox": {"l": 77.10171546422428, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 77.10171546422428, "t": 89.23887398109309, "r": 96.6831586150625, "b": 520.7638577050515, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 100.55299576256091, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}}], "children": []}, {"id": 1, "label": "text", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"id": 2, "text": "package", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 77.10171546422428, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 77.10171546422428, "t": 89.23887398109309, "r": 96.6831586150625, "b": 520.7638577050515, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 100.55299576256091, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"id": 2, "text": "package", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"id": 2, "text": "package", "bbox": {"l": 131.21306574279092, "t": 441.0071698212682, "r": 152.19606490864376, "b": 521.0762158417759, "coord_origin": "TOPLEFT"}}], "children": []}, "text": "package"}], "headers": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 77.10171546422428, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"id": 0, "text": "Docling bundles PDF document conversion to", "bbox": {"l": 77.10171546422428, "t": 89.23887398109309, "r": 96.6831586150625, "b": 520.7638577050515, "coord_origin": "TOPLEFT"}}, {"id": 1, "text": "JSON and Markdown in an easy self contained", "bbox": {"l": 100.55299576256091, "t": 89.12381765643227, "r": 124.91101654503161, "b": 523.3155494272656, "coord_origin": "TOPLEFT"}}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}]}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.doctags.txt b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.doctags.txt new file mode 100644 index 00000000..50f50834 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.doctags.txt @@ -0,0 +1,4 @@ + +package +Docling bundles PDF document conversion to JSON and Markdown in an easy self contained + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.json new file mode 100644 index 00000000..2babec15 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.json @@ -0,0 +1 @@ +{"_name": "", "type": "pdf-document", "description": {"title": null, "abstract": null, "authors": null, "affiliations": null, "subjects": null, "keywords": null, "publication_date": null, "languages": null, "license": null, "publishers": null, "url_refs": null, "references": null, "publication": null, "reference_count": null, "citation_count": null, "citation_date": null, "advanced": null, "analytics": null, "logs": [], "collection": null, "acquisition": null}, "file-info": {"filename": "ocr_test_rotated_180.pdf", "filename-prov": null, "document-hash": "a9cbfe0f2a71171face9ee31d2347ca4195649670ad75680520d67d4a863f982", "#-pages": 1, "collection-name": null, "description": null, "page-hashes": [{"hash": "baca27070f05dd84cf0903ded39bcf0fc1fa6ef0ac390e79cf8ba90c8c33ba49", "model": "default", "page": 1}]}, "main-text": [{"prov": [{"bbox": [444.6666666666667, 131.58835856119788, 521.6666666666666, 150.25502522786462], "page": 1, "span": [0, 7], "__ref_s3_data": null}], "text": "package", "type": "paragraph", "payload": null, "name": "Text", "font": null}, {"prov": [{"bbox": [92.0, 77.92169189453125, 523.0, 123.25502522786462], "page": 1, "span": [0, 86], "__ref_s3_data": null}], "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "type": "paragraph", "payload": null, "name": "Text", "font": null}], "figures": [], "tables": [], "bitmaps": null, "equations": [], "footnotes": [], "page-dimensions": [{"height": 841.9216918945312, "page": 1, "width": 595.201171875}], "page-footers": [], "page-headers": [], "_s3_data": null, "identifiers": null} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.md b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.md new file mode 100644 index 00000000..f5d50b5c --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.md @@ -0,0 +1,3 @@ +package + +Docling bundles PDF document conversion to JSON and Markdown in an easy self contained \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.pages.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.pages.json new file mode 100644 index 00000000..43e2ac00 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_180.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 595.201171875, "height": 841.9216918945312}, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 92.0, "t": 718.6666666666666, "r": 523.0, "b": 764.0, "coord_origin": "TOPLEFT"}, "confidence": 0.7318570613861084, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, {"id": 2, "label": "text", "bbox": {"l": 444.6666666666667, "t": 691.6666666666666, "r": 521.6666666666666, "b": 710.3333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.5982133150100708, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 92.0, "t": 718.6666666666666, "r": 523.0, "b": 764.0, "coord_origin": "TOPLEFT"}, "confidence": 0.7318570613861084, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 444.6666666666667, "t": 691.6666666666666, "r": 521.6666666666666, "b": 710.3333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.5982133150100708, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 92.0, "t": 718.6666666666666, "r": 523.0, "b": 764.0, "coord_origin": "TOPLEFT"}, "confidence": 0.7318570613861084, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 444.6666666666667, "t": 691.6666666666666, "r": 521.6666666666666, "b": 710.3333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.5982133150100708, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "children": []}, "text": "package"}], "headers": []}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.doctags.txt b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.doctags.txt new file mode 100644 index 00000000..8350737b --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.doctags.txt @@ -0,0 +1,3 @@ + +package + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.json new file mode 100644 index 00000000..6b843dca --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.json @@ -0,0 +1 @@ +{"_name": "", "type": "pdf-document", "description": {"title": null, "abstract": null, "authors": null, "affiliations": null, "subjects": null, "keywords": null, "publication_date": null, "languages": null, "license": null, "publishers": null, "url_refs": null, "references": null, "publication": null, "reference_count": null, "citation_count": null, "citation_date": null, "advanced": null, "analytics": null, "logs": [], "collection": null, "acquisition": null}, "file-info": {"filename": "ocr_test_rotated_270.pdf", "filename-prov": null, "document-hash": "52f54e7183bdb73aa3713c7b169baca93e276963a138418c26e7d6a1ea128f14", "#-pages": 1, "collection-name": null, "description": null, "page-hashes": [{"hash": "59bc9ddba89e7b008185dd16d384493beb034686e5670546786390c5d237a304", "model": "default", "page": 1}]}, "main-text": [{"prov": [{"bbox": [691.6666666666666, 444.53450520833337, 710.3333333333334, 521.5345052083334], "page": 1, "span": [0, 7], "__ref_s3_data": null}], "text": "package", "type": "paragraph", "payload": null, "name": "Text", "font": null}], "figures": [], "tables": [], "bitmaps": null, "equations": [], "footnotes": [], "page-dimensions": [{"height": 595.201171875, "page": 1, "width": 841.9216918945312}], "page-footers": [], "page-headers": [], "_s3_data": null, "identifiers": null} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.md b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.md new file mode 100644 index 00000000..597acc76 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.md @@ -0,0 +1 @@ +package \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.pages.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.pages.json new file mode 100644 index 00000000..af58c577 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_270.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 841.9216918945312, "height": 595.201171875}, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_header", "bbox": {"l": 718.6666666666666, "t": 72.33333333333333, "r": 764.0, "b": 503.3333333333333, "coord_origin": "TOPLEFT"}, "confidence": 0.6915205121040344, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, {"id": 8, "label": "text", "bbox": {"l": 691.6666666666666, "t": 73.66666666666667, "r": 710.3333333333334, "b": 150.66666666666666, "coord_origin": "TOPLEFT"}, "confidence": 89.0, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 718.6666666666666, "t": 72.33333333333333, "r": 764.0, "b": 503.3333333333333, "coord_origin": "TOPLEFT"}, "confidence": 0.6915205121040344, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "text", "bbox": {"l": 691.6666666666666, "t": 73.66666666666667, "r": 710.3333333333334, "b": 150.66666666666666, "coord_origin": "TOPLEFT"}, "confidence": 89.0, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "text", "bbox": {"l": 691.6666666666666, "t": 73.66666666666667, "r": 710.3333333333334, "b": 150.66666666666666, "coord_origin": "TOPLEFT"}, "confidence": 89.0, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "headers": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 718.6666666666666, "t": 72.33333333333333, "r": 764.0, "b": 503.3333333333333, "coord_origin": "TOPLEFT"}, "confidence": 0.6915205121040344, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}]}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.doctags.txt b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.doctags.txt new file mode 100644 index 00000000..45595ac2 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.doctags.txt @@ -0,0 +1,3 @@ + +package + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.json new file mode 100644 index 00000000..57fdd9cd --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.json @@ -0,0 +1 @@ +{"_name": "", "type": "pdf-document", "description": {"title": null, "abstract": null, "authors": null, "affiliations": null, "subjects": null, "keywords": null, "publication_date": null, "languages": null, "license": null, "publishers": null, "url_refs": null, "references": null, "publication": null, "reference_count": null, "citation_count": null, "citation_date": null, "advanced": null, "analytics": null, "logs": [], "collection": null, "acquisition": null}, "file-info": {"filename": "ocr_test_rotated_90.pdf", "filename-prov": null, "document-hash": "4a282813d93824eaa9bc2a0b2a0d6d626ecc8f5f380bd1320e2dd3e8e53c2ba6", "#-pages": 1, "collection-name": null, "description": null, "page-hashes": [{"hash": "f8a4dc72d8b159f69d0bc968b97f3fb9e0ac59dcb3113492432755835935d9b3", "model": "default", "page": 1}]}, "main-text": [{"prov": [{"bbox": [131.66666666666666, 73.53450520833337, 150.33333333333334, 150.53450520833331], "page": 1, "span": [0, 7], "__ref_s3_data": null}], "text": "package", "type": "paragraph", "payload": null, "name": "Text", "font": null}], "figures": [], "tables": [], "bitmaps": null, "equations": [], "footnotes": [], "page-dimensions": [{"height": 595.201171875, "page": 1, "width": 841.9216918945312}], "page-footers": [], "page-headers": [], "_s3_data": null, "identifiers": null} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.md b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.md new file mode 100644 index 00000000..597acc76 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.md @@ -0,0 +1 @@ +package \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.pages.json b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.pages.json new file mode 100644 index 00000000..02f7a2f8 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v1/ocr_test_rotated_90.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 841.9216918945312, "height": 595.201171875}, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_header", "bbox": {"l": 78.0, "t": 92.0, "r": 123.33333333333333, "b": 523.0, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, {"id": 1, "label": "text", "bbox": {"l": 131.66666666666666, "t": 444.6666666666667, "r": 150.33333333333334, "b": 521.6666666666666, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 78.0, "t": 92.0, "r": 123.33333333333333, "b": 523.0, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 131.66666666666666, "t": 444.6666666666667, "r": 150.33333333333334, "b": 521.6666666666666, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 131.66666666666666, "t": 444.6666666666667, "r": 150.33333333333334, "b": 521.6666666666666, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "headers": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 78.0, "t": 92.0, "r": 123.33333333333333, "b": 523.0, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}]}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.doctags.txt b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.doctags.txt new file mode 100644 index 00000000..f270ebec --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.doctags.txt @@ -0,0 +1,3 @@ +package +Docling bundles PDF document conversion to JSON and Markdown in an easy self contained + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json new file mode 100644 index 00000000..bfb728c2 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.json @@ -0,0 +1 @@ +{"schema_name": "DoclingDocument", "version": "1.3.0", "name": "ocr_test_rotated_180", "origin": {"mimetype": "application/pdf", "binary_hash": 2530576989861832966, "filename": "ocr_test_rotated_180.pdf", "uri": null}, "furniture": {"self_ref": "#/furniture", "parent": null, "children": [], "content_layer": "furniture", "name": "_root_", "label": "unspecified"}, "body": {"self_ref": "#/body", "parent": null, "children": [{"cref": "#/texts/0"}, {"cref": "#/texts/1"}], "content_layer": "body", "name": "_root_", "label": "unspecified"}, "groups": [], "texts": [{"self_ref": "#/texts/0", "parent": {"cref": "#/body"}, "children": [], "content_layer": "body", "label": "text", "prov": [{"page_no": 1, "bbox": {"l": 444.6666666666667, "t": 150.25502522786462, "r": 521.6666666666666, "b": 131.58835856119788, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 7]}], "orig": "package", "text": "package", "formatting": null, "hyperlink": null}, {"self_ref": "#/texts/1", "parent": {"cref": "#/body"}, "children": [], "content_layer": "body", "label": "text", "prov": [{"page_no": 1, "bbox": {"l": 92.0, "t": 123.25502522786462, "r": 523.0, "b": 77.92169189453125, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 86]}], "orig": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "formatting": null, "hyperlink": null}], "pictures": [], "tables": [], "key_value_items": [], "form_items": [], "pages": {"1": {"size": {"width": 595.201171875, "height": 841.9216918945312}, "image": null, "page_no": 1}}} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.md b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.md new file mode 100644 index 00000000..f5d50b5c --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.md @@ -0,0 +1,3 @@ +package + +Docling bundles PDF document conversion to JSON and Markdown in an easy self contained \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.pages.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.pages.json new file mode 100644 index 00000000..43e2ac00 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_180.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 595.201171875, "height": 841.9216918945312}, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 92.0, "t": 718.6666666666666, "r": 523.0, "b": 764.0, "coord_origin": "TOPLEFT"}, "confidence": 0.7318570613861084, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, {"id": 2, "label": "text", "bbox": {"l": 444.6666666666667, "t": 691.6666666666666, "r": 521.6666666666666, "b": 710.3333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.5982133150100708, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 92.0, "t": 718.6666666666666, "r": 523.0, "b": 764.0, "coord_origin": "TOPLEFT"}, "confidence": 0.7318570613861084, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 444.6666666666667, "t": 691.6666666666666, "r": 521.6666666666666, "b": 710.3333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.5982133150100708, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 92.0, "t": 718.6666666666666, "r": 523.0, "b": 764.0, "coord_origin": "TOPLEFT"}, "confidence": 0.7318570613861084, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.3333333333334, "r_y0": 764.0, "r_x1": 92.0, "r_y1": 764.0, "r_x2": 92.0, "r_y2": 745.3333333333334, "r_x3": 521.3333333333334, "r_y3": 745.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 523.0, "r_y0": 737.3333333333334, "r_x1": 92.0, "r_y1": 737.3333333333334, "r_x2": 92.0, "r_y2": 718.6666666666666, "r_x3": 523.0, "r_y3": 718.6666666666666, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 2, "page_no": 0, "cluster": {"id": 2, "label": "text", "bbox": {"l": 444.6666666666667, "t": 691.6666666666666, "r": 521.6666666666666, "b": 710.3333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.5982133150100708, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 521.6666666666666, "r_y0": 710.3333333333334, "r_x1": 444.6666666666667, "r_y1": 710.3333333333334, "r_x2": 444.6666666666667, "r_y2": 691.6666666666666, "r_x3": 521.6666666666666, "r_y3": 691.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 90.0, "from_ocr": true}], "children": []}, "text": "package"}], "headers": []}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.doctags.txt b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.doctags.txt new file mode 100644 index 00000000..2c343d7b --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.doctags.txt @@ -0,0 +1,3 @@ +Docling bundles PDF document conversion to JSON and Markdown in an easy self contained +package + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json new file mode 100644 index 00000000..580ed117 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.json @@ -0,0 +1 @@ +{"schema_name": "DoclingDocument", "version": "1.3.0", "name": "ocr_test_rotated_270", "origin": {"mimetype": "application/pdf", "binary_hash": 10890858393843077593, "filename": "ocr_test_rotated_270.pdf", "uri": null}, "furniture": {"self_ref": "#/furniture", "parent": null, "children": [], "content_layer": "furniture", "name": "_root_", "label": "unspecified"}, "body": {"self_ref": "#/body", "parent": null, "children": [{"cref": "#/texts/0"}, {"cref": "#/texts/1"}], "content_layer": "body", "name": "_root_", "label": "unspecified"}, "groups": [], "texts": [{"self_ref": "#/texts/0", "parent": {"cref": "#/body"}, "children": [], "content_layer": "furniture", "label": "page_header", "prov": [{"page_no": 1, "bbox": {"l": 718.6666666666666, "t": 522.8678385416666, "r": 764.0, "b": 91.86783854166669, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 86]}], "orig": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "formatting": null, "hyperlink": null}, {"self_ref": "#/texts/1", "parent": {"cref": "#/body"}, "children": [], "content_layer": "body", "label": "text", "prov": [{"page_no": 1, "bbox": {"l": 691.6666666666666, "t": 521.5345052083334, "r": 710.3333333333334, "b": 444.53450520833337, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 7]}], "orig": "package", "text": "package", "formatting": null, "hyperlink": null}], "pictures": [], "tables": [], "key_value_items": [], "form_items": [], "pages": {"1": {"size": {"width": 841.9216918945312, "height": 595.201171875}, "image": null, "page_no": 1}}} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.md b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.md new file mode 100644 index 00000000..597acc76 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.md @@ -0,0 +1 @@ +package \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.pages.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.pages.json new file mode 100644 index 00000000..af58c577 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_270.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 841.9216918945312, "height": 595.201171875}, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_header", "bbox": {"l": 718.6666666666666, "t": 72.33333333333333, "r": 764.0, "b": 503.3333333333333, "coord_origin": "TOPLEFT"}, "confidence": 0.6915205121040344, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, {"id": 8, "label": "text", "bbox": {"l": 691.6666666666666, "t": 73.66666666666667, "r": 710.3333333333334, "b": 150.66666666666666, "coord_origin": "TOPLEFT"}, "confidence": 89.0, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 718.6666666666666, "t": 72.33333333333333, "r": 764.0, "b": 503.3333333333333, "coord_origin": "TOPLEFT"}, "confidence": 0.6915205121040344, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "text", "bbox": {"l": 691.6666666666666, "t": 73.66666666666667, "r": 710.3333333333334, "b": 150.66666666666666, "coord_origin": "TOPLEFT"}, "confidence": 89.0, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 8, "page_no": 0, "cluster": {"id": 8, "label": "text", "bbox": {"l": 691.6666666666666, "t": 73.66666666666667, "r": 710.3333333333334, "b": 150.66666666666666, "coord_origin": "TOPLEFT"}, "confidence": 89.0, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 710.3333333333334, "r_y0": 73.66666666666667, "r_x1": 710.3333333333334, "r_y1": 150.66666666666666, "r_x2": 691.6666666666666, "r_y2": 150.66666666666666, "r_x3": 691.6666666666666, "r_y3": 73.66666666666667, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "headers": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 718.6666666666666, "t": 72.33333333333333, "r": 764.0, "b": 503.3333333333333, "coord_origin": "TOPLEFT"}, "confidence": 0.6915205121040344, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 764.0, "r_y0": 74.0, "r_x1": 764.0, "r_y1": 503.3333333333333, "r_x2": 745.3333333333334, "r_y2": 503.3333333333333, "r_x3": 745.3333333333334, "r_y3": 74.0, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 737.3333333333334, "r_y0": 72.33333333333333, "r_x1": 737.3333333333334, "r_y1": 503.3333333333333, "r_x2": 718.6666666666666, "r_y2": 503.3333333333333, "r_x3": 718.6666666666666, "r_y3": 72.33333333333333, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}]}}] \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.doctags.txt b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.doctags.txt new file mode 100644 index 00000000..a84cb1dd --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.doctags.txt @@ -0,0 +1,3 @@ +Docling bundles PDF document conversion to JSON and Markdown in an easy self contained +package + \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json new file mode 100644 index 00000000..2da155fd --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.json @@ -0,0 +1 @@ +{"schema_name": "DoclingDocument", "version": "1.3.0", "name": "ocr_test_rotated_90", "origin": {"mimetype": "application/pdf", "binary_hash": 6989291015361162334, "filename": "ocr_test_rotated_90.pdf", "uri": null}, "furniture": {"self_ref": "#/furniture", "parent": null, "children": [], "content_layer": "furniture", "name": "_root_", "label": "unspecified"}, "body": {"self_ref": "#/body", "parent": null, "children": [{"cref": "#/texts/0"}, {"cref": "#/texts/1"}], "content_layer": "body", "name": "_root_", "label": "unspecified"}, "groups": [], "texts": [{"self_ref": "#/texts/0", "parent": {"cref": "#/body"}, "children": [], "content_layer": "furniture", "label": "page_header", "prov": [{"page_no": 1, "bbox": {"l": 78.0, "t": 503.201171875, "r": 123.33333333333333, "b": 72.201171875, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 86]}], "orig": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained", "formatting": null, "hyperlink": null}, {"self_ref": "#/texts/1", "parent": {"cref": "#/body"}, "children": [], "content_layer": "body", "label": "text", "prov": [{"page_no": 1, "bbox": {"l": 131.66666666666666, "t": 150.53450520833331, "r": 150.33333333333334, "b": 73.53450520833337, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 7]}], "orig": "package", "text": "package", "formatting": null, "hyperlink": null}], "pictures": [], "tables": [], "key_value_items": [], "form_items": [], "pages": {"1": {"size": {"width": 841.9216918945312, "height": 595.201171875}, "image": null, "page_no": 1}}} \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.md b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.md new file mode 100644 index 00000000..597acc76 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.md @@ -0,0 +1 @@ +package \ No newline at end of file diff --git a/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.pages.json b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.pages.json new file mode 100644 index 00000000..02f7a2f8 --- /dev/null +++ b/tests/data_scanned/groundtruth/docling_v2/ocr_test_rotated_90.pages.json @@ -0,0 +1 @@ +[{"page_no": 0, "size": {"width": 841.9216918945312, "height": 595.201171875}, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "page_header", "bbox": {"l": 78.0, "t": 92.0, "r": 123.33333333333333, "b": 523.0, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, {"id": 1, "label": "text", "bbox": {"l": 131.66666666666666, "t": 444.6666666666667, "r": 150.33333333333334, "b": 521.6666666666666, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}]}, "tablestructure": {"table_map": {}}, "figures_classification": null, "equations_prediction": null, "vlm_response": null}, "assembled": {"elements": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 78.0, "t": 92.0, "r": 123.33333333333333, "b": 523.0, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}, {"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 131.66666666666666, "t": 444.6666666666667, "r": 150.33333333333334, "b": 521.6666666666666, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "body": [{"label": "text", "id": 1, "page_no": 0, "cluster": {"id": 1, "label": "text", "bbox": {"l": 131.66666666666666, "t": 444.6666666666667, "r": 150.33333333333334, "b": 521.6666666666666, "coord_origin": "TOPLEFT"}, "confidence": 0.5234212875366211, "cells": [{"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 131.66666666666666, "r_y0": 521.6666666666666, "r_x1": 131.66666666666666, "r_y1": 444.6666666666667, "r_x2": 150.33333333333334, "r_y2": 444.6666666666667, "r_x3": 150.33333333333334, "r_y3": 521.6666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 89.0, "from_ocr": true}], "children": []}, "text": "package"}], "headers": [{"label": "page_header", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "page_header", "bbox": {"l": 78.0, "t": 92.0, "r": 123.33333333333333, "b": 523.0, "coord_origin": "TOPLEFT"}, "confidence": 0.6016772389411926, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 78.0, "r_y0": 521.3333333333334, "r_x1": 78.0, "r_y1": 92.0, "r_x2": 96.66666666666667, "r_y2": 92.0, "r_x3": 96.66666666666667, "r_y3": 521.3333333333334, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 94.0, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 104.66666666666667, "r_y0": 523.0, "r_x1": 104.66666666666667, "r_y1": 92.0, "r_x2": 123.33333333333333, "r_y2": 92.0, "r_x3": 123.33333333333333, "r_y3": 523.0, "coord_origin": "TOPLEFT"}, "text": "JSON and Markdown in an easy self contained", "orig": "JSON and Markdown in an easy self contained", "text_direction": "left_to_right", "confidence": 92.0, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained"}]}}] \ No newline at end of file diff --git a/tests/data_scanned/ocr_test_rotated_180.pdf b/tests/data_scanned/ocr_test_rotated_180.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1c030b4944ea036e4fbd5c76c10cca5ba50b1a98 GIT binary patch literal 94703 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%0A;#py}#YM_Q3) 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 WQtIe`FCai4|589mBwG5rfc_hfxf@0R literal 0 HcmV?d00001 diff --git a/tests/data_scanned/ocr_test_rotated_270.pdf b/tests/data_scanned/ocr_test_rotated_270.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a6e90baf698a4116a72413ab4b72c3e716dac2fe GIT binary patch literal 94702 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%0A;#py}#YM_Q3) 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%0A;#py}#YM_Q3) zF`L9E2_C6#nxDQuQ%8#XAkfhVu9S2$Pln!?_Vtd0jC#mMEtSXrgFFBX-OI{%(iS+r zLn_C!Row#B&rVqlIKBsCT!Hm{v5!f|BbQ>JJ!VwEG$y~}9$Udzc7?Uw4b%6R1ILU( zNq4?4OLtAnuhZzT(!aJg^&6nL@X@py|HCi6FgWR^mA30Xljr=DK$g@r{f9@}PYy?m zc*BM^^C|JcSL_!rzBT@s#<}&A$#CQx`Y-KGr=S_~{+x%C?oq5b!@LYLy_T+{y?# z;XGK2i&GtW*d(1dFX(nJbTjFF1T<+-cGxXyXb)!l8OzRL2-Bp^U6peO#GY%MzJ4{G z^M}=MDcA=*_wP@|EYFh5`T-mS1page!3z-11oU4s$h-CA$gwC+pzl(8H`|e}roF5V+ zCFAco1UeQ&ONKRw8<=V>fvo!4%;%8JuRcFCBCG$Hg5B+1l!}}PXzk9Y*#j&<+%F5@ za#e(QBgVD&$O^u)pT0uiqB=3NVyTr%S^U%ggh9g-)=x?+lWktv-mr4M%%@V$k|+)2 zq|!=o(tr-=qW?UAWa0Jnfyj0zL(dGBUh0L)mo$O*pF*y!pd;XDqN^;OUZ^~e#?Z`Z z;KtSlyZSyQqILWk;}UZ5qm7ff7D2Z94;w;;PTwS5oJReUeNsU7i;jO}jb===Cx0|b ze(n;@(RpqdG<^O<+nWTTqo~_Umks~NH6fED|;vN)WyV( z;_<4Vxe5a}3eWQWWEiOuO5lIt^@LuZy;YS=ZCzcenH)s6Dhq>9@5cDf$4WzKzbjj`_I ztI~E_`NBi=>FU7VqzJ!=s_3N?8E?w}0?8mZ!D^+=NAp!+4tz5IDGt$a)~_EI5}B{cBj&e@1>H$(dMCCTO@F(d~&hH)2YNs!ceOYuICYf-5nv|cc zl)63UAcDSdE^1%qrx>%Z6S@bO#9f9;>$xm_AO;(x>HQeO)JEynRL{=E#UTo`mf6sg z4ohq2D(^X2P6KWM@7vI@C#WmQC~Kl_D%c`(%N%>Xf8grqDz;rQW~4Ph^cnw`hAVZV z`S5U*vox&8Zgt^Pq%G~tD`;h-MI#$aCSW6(zw`gaxQxl^8i8yF+Rq+$&lo2~i=mE8 z4s?IUO!LZIo)FB(@>X1BV+0XECZ6qdqF{CT3KcOC1OXq7w#hq+h1QT&N z@2<9HV0E9t8ZFV~65})^s3(j&=eK)-PCjJqhI`>j?dq~rY?r~XovEWlyvD+EyDds( zY;t?_0iz5fd0w@)VdSEKZf?@Noh)XR?PHvLVj0E+ZY|>^JY&OMVbX`<+WRK6KE^in zSmhbcTdos!zDP=Db-f#aoJxM z5eK03?kAa%Ic)j);!bGVWdVx2Oyycy0PX1~AtT{g#nN4osS*L zWm^RMPUEkSCyckBQnOXOY+P>l<0Nf_<_{`sFM@=o9tVijjRwA`L(A`0AJqaaAF43; z^3+tgKmpt>#C*qn_pn|fV&V7+x28*RpSyeqZavSgy>9MdN zWH(7w(Ch{t0Dv2LaTSf=!A{OY_bz`J3~Gs2MUhq=E?SoDEn`d(8IRITE~#-hYdkjY zq{PH;jxh9ru5yJm`I9KlRXWlX#Py2(OX)?Qcxac`ZH^c(J< z`70CKaY<(uuQAHq^*}@S)edrC>tjU>yk^E!nU$=bVQvGdT;A$t2TvmRD<$;CJgzww z%m^}~@^|gXUbZ~Y_v!E^q4%2n`TdqvViYuvsW^5yWV4o4@`ED!raDT?On4W$M5aY-TX4UyX= z0X1mIL_{{h%&ziOCdTZ)=%V{hRBf5(NrEPLz1o41xDo@o`&;L`HdY03) zmL~4@Gg7R+^B<6@|8b$u?%yaTDnHvH4|MVInCHOe87R};8fl?{mf)?&gYVS~4gi|Y zCJWJQaoP!JE-ivbSc{5&I@uJL>6^=`UMr!6@!~lCi#B+cj3q2D-c(Ifg&u-PS|s=k zfKCGSq;3D~wo@duaAbgD%w@uH>)}3nV=d8mX?d4((r&07o0*|Jne~ql(b9)H6(n$! z+Dc14T_LJr*==f)q8K!KS(sZdQaD;sMe)|5PH4-;sW^#9Qj_fxxT)Z+s>;(%h*`jm zd-Pr>O?n9Ph8AS}&2NW+&pJo~nU%hm%00U(`k2Fg7mpt9tpXiVUrT`=POC(g*Y>JT zRecPP6F3kDOc?J01LjAS#~K#Q(HOg4;`6ooa)ZlD;XH~2 z$M=1pr!1C+zF+5Z2)J5kWA3V8+hf!e^DTN}V3U{|TK}yqhBylD&A}^urg%WfFO9-b zicOZk^C=gA!zC4d9zIxkhNA2rZ?5d)W5vds1>KGm=a?c{Dq10zCHAm&|Hf^W>^aIJ zd$3KF!k0fCGb*WB44wUon2P>T}vYc;(E=I;~A!C`N!)&bcVww2p$5dRaX9JP##v zl#V6rVPeKD5gUPy@z9dPNZf}22jF5`jWjiCB4pvrX5g~{lE8t;RO-Mb48D%C&#^R_ zPLl2_-%bvsC$yrpy`k^RkAe;ELg-nI2)AAoLo98L=N&R{=>iEUZ=^S?7@%Ndco&m@ zES=UFZ5R3+G5{aY0H?RLvqDE=)tOVx;a5*P2rdKt0y+z(MR(8dFCY2mi84YYiEmMl zit{}xDSUP+Eo~N`^PXU0>AY+D+Ok&$)a3Ro9L1LrWqDo^`Ar*g3TI6YvnBE|gD8 zFoMEUcXX>;nqBfOOBY-mlQ&nebzxjuZ&HC`+Ruf93G8kYIkBK<#KPGVdwZ{3X9+@_ z6DV=puvXOnwe6Kp5tN0;rblGk76opWU8b z1I>xPe6&4)+`}n(f=i7KbF%wP3lS#(I;c`%I1$5bX6oRLbbKQK-pAW>_4qx46l!X~+;+x0f51B-Yd&2z+dV!49N%NMn80z%Pw;-TrZL#9MHAiY%Iou4$ znMypP`@(TJB_&b(0q7^H^~tCc^%t$ZGB9&{FzbPn{Lj=>(-!(`lX?5PGqE+aF|O8; zb?C2)-vokSpm{vDmm<@_iBWwPUmWi`nwS`l$nbnCaHUGtZRN_m z#QwahFzmcb@|@)|Oj-zRlD|%& z8;FU%QwboaM?cI5=gkZTK077}WZ|B87tcSE1RH$e^^1p`S3JDy2rups(g-R(Xp>Zi zwZIPRm*N(LqZ(bDa(Rnyd0%KwdfC1M;xjv^1A@FSK$AbT38O^)*(Fz1LxDZJVNDHa zZgjMmC#iWmy+*G zim8I~+ao9X?2(x;u@d*X;$$4M^t23Q&5vAc=C|dcWd=$Qmp#s#^nYqVFSF64=cyU+8v4Au-33@RP`z=IPotB6o{FO zaJ()Yq%X*NG&^p>naFxKFPIP)4K2iBUu400t27UMbOY%!8n9OTuzRldLV)$0Tv4!D z$D4od+a>0HC%0XrRx)_pBEMR|?i5x$uG*aNW;@Ys|!^ntP z>+@Vn?jwsO+pId42(E1tuR<^TTP5(eNymwC_*7R0PxS&%TRsi`kI5B?3YhP473rfl zOD|<;)Hy%k0ZloJsNOO>Id?5iCzIN+TRdD!f;v_QU#WXD8}jil${`h00L$}$u^uZ8 z3dF3ZDFRhlsxdm!ek_sis{=D8#(weq65zS0=$}9e*;1*_VIsc5E6jI0Nkgf)|CYw? zVvI;z@yeLX85`<(&ivl76>XNnSb*wLaRQBqrNa= zfx3L(@v#h{Agfrl6Ln3}=;;eR(nQx|9yg^v?xt`>{fsCQUx^zd>mohn)*V>oZUxLK zySynJzd@@5byy1QxJT`^(X~uOgG;08$OY5q3Ob5=&(1vMJfH9CAQInOF;*4XE~nY@ zbe@Z}zbk+{47t>YZ|(Yq2``NVmo#nnsgJ@AzZF$))jD(r0-qj56JEM+Cyn+n@;mlf zQsqXi(->V)aY{IJ9Afasts$;r7pKun$BU$GVD+$Xy4&I&^QDfe!l!x79cdneF|G|< z;=zvAD!#gWxVCx(oyU^BZ`fn6$poLe)0xbQnl}%>!Uv{m52&q$#*?L!fhJuo6|ddY z2%kpt&Tt6`|6Yli1V~Jp1(eSm$#`g7p4wyl8R#4YUN3oG7);7KxYmmNo-4*KqoOkm zn{uo%roSG|W6l9zEn32;u(<|YfACLRC!f)u`!$RdzXw%4FVNN+h9$+;OI}~_&1eBN zcZ8(rnR;^lfgyK!VWPphV8tZupVyyI(x++X;gGKuw|-A%D}DIr86Amt_W!=3N^=;t z9`k=z%|g|9TfhH5cPf7IbO@H>!{QqD?~S#8Dq%pmnAUp!OAJ3;UoQ&-R%LOG`}dkQ z%(;{YNU&}a^6$M+k$|2K!-|=s>s7BW`eu~A*G2o@1$0}5!xeG;*?)YzaSn~kTbE}~ zB0MpcPAS@3biWt45LS-TU~_V=75P0)&W#;-V$j~?f4vt+jUHt>9RHpxwxjC>-^4n& z{`(ee1-G`V^(46dr4tYbYSib||9a1aa`}dLaJ_f^{Z2ABO56UOR_z&ZLh04(q(2&} z=j~MM`R{wxH0Zj>M>EN5{`~Vk5f9G&KvGuvn_q^KT?ph`m;I+Dk0l+5uh%F&*bE>R zKXqz3=yo{%z0UPF|Nr0rZ|#5sZ)NaYfy41{G`>y7bHBkOC(nO_hmv^#bG;$|%tb(N zT>l#+3;&Iy=XAK=x&f1pDki?is_XR|L*2Xme{X&EGKF(3)6|X z-u18KiYoBpQ`fo!>fgWj&yZH1-kZ&WErkGQOktt~>Jw#mEYwkgtHsXR1LO=ZuAIG= zVsq^RiE~V?r)`aX{ol92?8t8I0Lbae$QR2CT((}nh+BYj?D`wEq!x<_$3xJO&?0?U zD55*>6s(mt<=GW6ff%o_wkEXpC}~>!U^a8mT{MDTNCsMS4Jnn*7g8_=?(>bDaP>Vy zdL#=AivMzRqF=;(9Sux0q~GGJ5<5_J_0~^#SA9)}*Z#rHAUW3e{Wk)RgG}{Cg{__P zYf}+6!bV!&tjsGlXrap#h|!_5_`@a`732nJRP3T@HQ$nz1I0i4=W6!C>wbczWoC}E zb5pS-OY7P>mk#~?p~*T-K{Yq8bp*7~%c3(DyP@Ba;@_y_@O$e-8A)a5`b)w>q21xO zcTS1Ut4_2fn(QDNjl|f^vu_`Vs;nm63tRbqSjN$qVs*4N;nv;V<%1XdWI;7_@oUxo zR+F#wY$rAm$@l$_WuYr&%^Wuf(%hug`)reIob;=8YIlO?Jg?FJlRHB2G<^q2ava)s zP$_1kpr+hUgOvBWoBwLNNB!BiPXz(h$~IrmA8e0}>L|gj*AmN{AxrI)cH&$T`b{2I zZF*BVPPG{`fz=JW!OCq~#~1u%7z)oX93{Uc$$%^{6Om+)VBc^dll$i;XG&aM^UbH) za!PHyYc3{3=LR0=<09+vmJ(Ym`mGe)`t-ECY||)h(@C6bCUv^G?gKU3`MJnMB7NE8 ztxW^fncqMi2y7iZk>(Wrn&1Mm+^p89I<{KKDLFaqpe$3iwMotJ^DQoyTiu88Jau)l zrt@TrU;mKcs+-GuSWRn_(wtNo;EnVhR{m|jeo6qFP&zw+qO(rmvT(Fc95qcdPYcS& z>@_Mcx&QJoV}rG2dCzPLxG;4@AM4StBf@FMTlvCN$@u# znP;J?`R5Z+o5PGs_sZ*^uBO)DjK#(uO`@cL0s85=MZ@#@8{Ej722 z%H@TGoPO%+>mok4j5qXI{ex>>N)LRaYMCsh4Z_A zDtw31Uu55<$~y}fb^^SgS0V%pxggo{u= zFYqMzd$gDY%ksC!WGo}A(XQxlKh;gLM|B)fCN2Hi;2cTXThqc#rORY8#3PL+q4FF2 z*LP&}`dO$=eD-wI$a&UfpU&K}XlVckedV;5dl7oq~2O(~R>B%|6W+D&!A z*3jBevJq;cJk{tSKhZ4yEF~gTok8_&O!N?v-o|pNLLMi!1bAiAmkCx2$k={HqwaBz z?qH4XW$x;6vHbZph~FxGZXHB-Piewta_Ys_rc(G=($jbQdUd(gjY4vjnh7r`6aFaa z`O*qX$W9*^*rf&T2*cncEw3 z$H&Ly5nO&QmMDn#ft6{4qgC_H3d23mR!y4}Xt2^B7<(lv1VG?B2K=$(mvs7)ul_FQ zPfF$zB9i_?(4qA1_`AUikM*%-`)lP+N#hgk9wvQ+5tA7+)PL4T_V_-g`{Oi2-C@e^ z)Tzw$mr>7mE&ig9R@K@V?NtSvs@1c;5iXfe;ISd){VoF?N7%z}4WJCwFFlsZr#W-_y)jq#o*%^rl*FyxJ8AX)K-|!R#_St`LAm5+|5S z1Uyn!j>{{e6n;VEKkWC2aLAI~YKY&gPER+(S*uh}?hQ`GtuelgPPN_H@9$l);wd97 zBb}eD>1m8N_h2NIvYm};m1{R^@f%TLm%&vGu#{Bol;Oo^- z0RLQX_Iv9`&K`YrKlk=iUF(q_Afo-BRN$IKu<7`i9s>SW!KP)ZOWAAkRkTpgL(3Sb zX9F@1vDkP=%ubAJ?n!?f>AHbzAhhS9ptjZOV%Pb-@4h21#A-iW8zNo;EFPS8(sp-^ zI3`<#-(Q@G!B}U+idUU{sN^r~is*Pkg>_|o52Bv* zp=-c9-+FYx3||}ZoB5+kaFL-Y6ghIp|9f1uDDeE-VXC2q!v#3wE!BKWoLS+Adhnr@ ze@!(^Q)y#h?+6Lsw@%E%z9r{biele`881xPHHQS!+KFuM zqO|*q7dCg5`Voz2-FqFM7mjF2zMQ(Pobo%T6_Ag&+;35c(_Mmf<&&47 zx9{r6*q)&H-`y1Y;!|lcwfn81;1e>@Oslr;V;=l&ZL@;X1U={sGS7-!-=2uO4vu%C zdlAm3tkUmlKdt1Sa&fEa%@rhuw0``fLfKxcCkXCk-gpx&HWEosGdH&n)6k}*y{%GV z39LPtAysUxb9|wY?&$O+Mv;yChIKt;9)?`j$$AdV;{{$nnG>M(OvIg6*t>K!VC3 zkGLo7fXC?VJqWk^w8&ExN+9EHz$9uRgr z#%_nQept+Fy{na{+p93nTO1Bizx~~qN-ooe4k=TM8veCh`=Fau$n8Asi_|AY<(bsg z_KBdAEfc?0HN}0dzG;OouS(+%Zwb@Ie^3~yb#b2gN{)R)_N4vHYr+77Q`$Vek$?9Z zYi@Z!ldV$(ct{1K#cL16*87(pOELHNRFWNj`Od53^y0QlwO(!odF&0xa8l=7o^7SVEcVyPC)YYF}quY3mG zO6MOF^brCJWsy361QvR8*E&0}24XF?_%wA5OB9gHMs&^aG}3+8S$tn_ zo)7MFfnaROR&mVhy2JPA-Dwt+8FYa5L^k_xZ$1SeiZk%9VPo9`i~l*FhQCbVsaCbd zca@$D!bq3+eqdBl5l^4=gz^ya7yZKjtG)A%YGUgaxbJ!qMT(-J!bM_1KuAa+l+c^> z2vPzB5g`N!kboh8bVUIL5kV=^o1u%8AVol`h$7NEh>8WINR|F3#P43;cfYmXdjH-x zv-~4D=gdBP|Ms3?a%P{cTQT~ONm8`=f*lh;WI z{wh9D8=X%&P;$TN`OWd!2k<;5c9==1Xx{CsW4Zce&0GrV3=RDOVcZ^uuTq>WNITU` z@^y2K@08;}4)l9{~%p zX+Q7cDnNz>SNFVN|AQP~_b*b!t}MDv%ZxdzssVPrqyAm0w@b<^ z<_NS;K9VO^vSu&e>C-t1W9Y>HAl}MC7aE{$b3I6(9a~vWSBR3gcU=)s=w1WGKFGoS zD~B%eb_{pGZh*hQggJcRPSx>Zb=M!2PiZKkI}SV}-!$Mfz= z%W&rv--}Ar{CthswD718mhlmx$A7M|C;@1OFwn8Fqh^veIh;m_U}UFNPj(F9>GRM( zs6jsGD*HUiS4`x1W zy(}xeM4E))w8v90D47shAce_Si6S#P9|ARh1fWHNWC!;RDL^dFaZ7t2;;L^lu7&CQrcEF^DL3jK_}}<$0T;W8~b!MdB3dmc^-k5V3+EYo)+E;W<~UPM(}w0Rzew$b|3-P z-`1{r)7_+Ju5n+@k=B00jdQY0_mqO@*)16W=3Dlza)(co*~TTc6?}0TI9UhmK3S6N z+)W96CA(QRTHzjM1!(_qDRiLSne}+*v>9i!&}>U zQ?(WSB%PlsogorH^}5*k{kiD;GsPh8tZiQ$aW*@$>QVpY9dobQWdqr%eJ91-s?XRN zBmE@4_$0JWcWQl5AKBKf*oR?lSiCsYLS-u{?Ed~7=~b;+`p7J#NtE+@0Z(Pk<}%|N zM`{9!G>106R_nM|@#@t#bbHqH*{8av+78n=^Z_Ay4U4X?v`9L!Hr-?eI8)6x!GzGR z_w85oD=;)nVAX*8u^nAfE6yTnJz}-mo*iR5IECI*hrKT<@>K8C?GR*yE+FPk1I6OB zoXM4^_@p1k zeRKLA`A~jb$XEWz4dW@n=}BNUB%FIx)X?V2*}KV+29^P|=SPPw{Y0w^Sj27+<{7Ht zD>^UD_pNWG6i`HwLN~`I_-ndWXzpg7lu0Fj+@6TSgJ07IdR)dn^vJxEOl=f_!K6@y()(E=D zyzc)~h8nPij(Yp|HtUXiNjzBfzE5VPacvH&%MLk=gw>Wh0!5}PWBh6vx4!r^AR(V4^l;nQse?V1-M5f=K3Hnx znb7lzagK+i4EMKpXg0BT1uC4Z$c?T=J4%NDcR{bh`seIf`g;Ssew3n5qRP0P_^))S z5B26%<^*L?zo2$}r(9x$^`HJdGRx}(=XctzA7{@^mk}~2y30)riGgc3o$?(0j5mPi z8^bgCflE;_J+E<>>%Zo4HS_h9U#kzi5^+~%J8o=tq3XZZkCW?}`s5e4h7X5pa?6xM zO~&>4jU2cecc$58mj3{Fi9C}RLt1q@ZClDyWEek5?9yTmHSQ54NTnqiQjV#a)x+ER zA@|DS_{Ln1?>;nRdZ1_eI}+Vkp+oeiZx5W@yWN&+#E^$KH1wZli!>TU^31zP+7u#t zhNzJw&JiHPDEy^khkx*sOzSmLwDKU)-?_ny^>qW2%7~&?mukL#_ot!FDC!)9_N2!! zk0IXO5x1jp2qr{AX0}q~)n>N^B);e6{Mk?V z0kIvK*TnCw((qBACd6EC2o2$^k)K=~Tg;bf?FU7Cnm_izjzr20JS|Sf&aKWw1)+H>hQ1G_cR& zUR^KEbXvs6?oA<@a6;9pm^h(!Va`Y`u?^|oUK**u4wHVG*zo)t=72A<2Ai1rX58M_C#*PZ#rZ9TBF*X0vi=ba{ZV~eyW+cPe1~d^3APYk3CWyt>RQc z*@Bqs^tEJ8zhn10GkL{$|CT@(i4pq`RFJj3GwxMUT_11a zM5dyQIC2mQqJ8?=il;gY%QptQ#650WN*E31G_gxC4MI!2ahdJF&YYgOhUY?_5AhW> zDl!@O2X9E)S#T!~8$#pWzcgexO6lB!Q(du#lPvp#iQuX9(E}>8<~^3~7fUU!>})XU zXQwhNn1tN2S&9D*SR@#q)5;oBwBOriec1!b>S!O2eJqp}3QM#xpRuKxNw?kcV~7nq zg7$}+c}1P8YXK5s{5yl%4qx~@NO4@=ioetZl=B|Btn#FnHOyn?P*6-fF0>RVNE+7j6FY-EHeRAU9#nKiP~_s`un~`>EZg z#u?tPb!NKME0pbgd2%pIcH-X5xW~?sj7<^2KzZQYh`W@k7lLaBE4vpeS-+L`MT?!+ zB{eq-r%$rupe)dPJ_L$X5(Bl+DWX60OY(ysM@5W`R9@t)wcI#2%yiq*TmAgEn0p$z z5@$GTbPekrhso*cL91zoLmODL3aiXhBEFBpUt3=;{aSwB$>nL^^&5AURu`3eQL}+z z!Ip^mGUj9-`_{n5g=uvFhET!r{jDuBZJoe!RGtG7HNt%!aD!?MXL$2=;8qDKu6?wiG7RmkyX2=Olp zh{sARtqHC1jX(zW;@!hvxFv-9H}+e!%=M-`Y?ubJtn$&P_y*?e(HD>J?iw>YqtO(v zIeK^~TGk}t6}jN?Z7BS+tNCR#Mw;RNwrjvMcqwXVuJNoo2SbNEON z{7E$y29&T-sH_dIG^de1S7qZbROi z1GgO~x95e%m}G=tDPx)^GQirPM{B^IYECa5%IHYsdW<8V9ceru@*Vqjb~h8|XJ+|! z`)D<@59;%kT}pz}7gS-<7F4QKRl;!bIVnt-^%XNU3?@Uh-(wh$bBnlLBw;=+;DL15 z*Y@NfmDoabrhRMXB=6HbA|Q~{g=%jW?pp9k9-Cc}&sv!B^pEJ9s$JNqiEUr-dSf-~ z1sf+c{g!e8;cn8Wcx=R}$#T7kb;QSgUW)5=UtmO~2Dg&pCrkmfBhFN=F_ECUK4$*o z(7_drtkUZD_kR=>rW{8r=|jt90rQlDTK3(2OyuA4SxNJ3w=B8xZLq>Kxy;Y`a96=w zxhj87zS=(EWtrlWnblY18QNr(ugwqTB46SNqKM{x)T7;EX^b7K;4}Q4_&%7pfDM)6 zdeaxUTBRPNl%Xi=tc$d}w9-#KT{6YTl=AKw#7?K}x#mfImH^rBx8fpwV9;Uuuc>RT z_YVCrqJZMLSvtA#;Z#JS!dfb*NpaX@cJ5V!y=zPCL&SjgwT&pbs~{nIh9ZJ!p*(O zH4^93`@a3ATbLJ~RI+3pJGStCJ&z|a)qizJe;eO;y-1r(XNHv&uLC#(# z`ohm%1g)Ma11h7Eh6!Lom-$?9*^ieQd`$=OgtM?$OKg1`Q~a_!Ly*e zC3fm?-&*f)A_1t>=dUN@e;n$6H);d@9gv&N8tGfGwb*^^bxP>BBJZ(o-Q?{hzKiW4 z5nSzn>sGX@jWV1%X*mux-14Kc#V`0}$`56wr2n7|28<%{&gDq-$6i^|K*`Ydo(razx#>uao5e|(F`ul-huA@F`76I-8P zyPk&+tV62A<9u=rt5uP8XZqZC^;PTv`9zyMmv0LilTrdN`vRv<%F!NHOz=uryCt)Y zy!)=otEcP5F}fDquG^`|5Eom>RA-dLsUh$Js#o5gpm6AMKW^=*8zv|~JFbvvf51c6 zJeTf^RcHJXI47JCDPj)%3L%|RcB^9K*qj+Z8?EUg&E?sV4BVpom4tpAKCSEGRl|A- zhti&CD}l-5z#Pi>TYwV;ZbYdI@Clw7bC?*=#thF;(e<&xn6$B|PfjZE5|{e?tX#); zLui6gv2VeNwNzr((~}uG196@!t>)AfKCj<8f*-kM-IXgG>-}D3W%)y$|7-Hc!#sSO zW2Xz~kF428z2<3cJB3zf39GSyw!( zH|h(`P9a}T%gk&r3G19O@$`&P6`7Hh^=ukZt<7rb>rIfPRLQS9cWkhH^oCIS@3|T{D-2-mO0nS2Qc8zfC&ftps-c9k>B%d6rtDAriR;h zRIb>4tlXzgrz1{md0+UTr%Gq~jUy{>3T%`E&G(b!@}FA_dmLYU8+&^{Fw?H=KbRJ1 zkZd2j#qpt#kWz&oojF!WzXmQ2j@gH9SzR+U+@)J~T5V}t(L>BDxi7W7EB|oo$+Nw;Qi^o`Ie#dJ-XK5fr&8PujvQ%X5EPb-vs zCcXI>aU?~_`O93GOWa)JhTUGBnmG4u=&5#IsgH^KH6nZ*mhBU2FRM(ACZN1F+A=i5 zE7z#s?^D~IUV2`Tw8tg0SoS{-3v2IhjNd{X8(4hrCWT#X9TU8B4D~+$M8lh^%ZtPn z`ArW(G5rDiTFeQR8Vvz#pIg_|;AGH)uCbS17nfq94%7203|2on9g{>+EJGe82l)Ts z|1iw?fSx&Zk7=HEXN~Y>ndWKOp2D~FA{(l58))BU4zYSg)mKf?k&)m0jZH3i3&Bp@ z;-ud##8qly&?`Z(ss1zhu38R3ifxxp0L{u$Eq%pbqu%2EiuZ{m9>tEovn!-0nn8F! zIt>`}R^}H6PH%M8F9cYG^3d%nRtD_izgakiX{RRmn_l(q;eC|D33Q~+ zzw8rt9GeT8Mk=*^)U*h(=QqkdOF!jovM)4))K;;(U}5Uz=h26U3QekwD`j`O5`nH5 z(*669v;gGzYpw>e9VY2Qr_N4aye~8l_6q$nHyEY^FCf``9`@op68p@Iu3e~r)vH{* zoaS$39!F|TY&)58l^S*?`a>s|=vRyJnN_Ua$Pw+eyf~#|E7~=@cBy@X0SUnTk1{KVxp^#>tvC7%j=j++xQEnuXInWhzWT{0w?Zz z8`TpavoKl|n`|zZs$Y0~q>?hd)v&q7CpkBq_dzCCbbH~pvNF35JDhJguqfCNASAOVm7NB|@N5&#K+1V92H z0gwPl03`5FCt%INPS3B}b#23nSLL5>ENCA{03-ks011EuKms5EkN`*kBmfcs34jDZ z0wzHUGK^xm^8v))K^`ChkN`*kBmfcs34jDZ0w4j907w8N01^NR{No95Ex%Ky=LPI) z*`^&d{>PgO8VC{q34jDZ0w4j907w8N01^NRfCNASAOVm-KUgpT3<8h*xy^iM7}jw}c`1P-BpfIuK9gp9QKpB+Ej z<>et_#$K*?h?s%3J>HEzPE40z>jtrahyz0mA(lH$YA)_13IxHTsQ9M<#4i#I$S$_- zI6N65gtI1)T_6Y;LJ9_l2suzFu5PkoVmqz&WNTLk0?rNQLbewcW{3rJr4U?5>eduI zL`Yp$94?MTz~M3o1QL#fi@?PN;c($!C#CB|H|H<4)vPJj&Mx*l;&x1c&=oWM<)o`* zyd4W1f{9Bqb#zA$AZ(8%i7{B@Nl>g^+%>!QtXEfGGO$OB>=pw80UQe;+3W zkpH)HB@ux7|JEigDe?C5Tgm^a>cQOv|1_1~Ffd&L18Be0H>`Y15 zhe8huacMY2OwENv0lM5ENXAG_vWvSbgdPKGMi4P|yaxe?H`G-9S0ppK#f(_QjLFs{ zH&?n`oEJn)8$uzw;~|QQz`y?`jEUAbeIp14Pj&;M6M{g(q#zfCRNV>Awh(a%O&Rz_ zVaNq{fQUE5KwV=;y{i;ah>EK#aNVI@Yyqk;gfNR3@bQ<>mV`?nBoLBF3AiK{4hKS8 zP#Cb_|9A=fE1LgfFpC41=uU*8BqV=zI^f4YJEW1nMBJ~@psfzEkXMwKR8>W)tDqz$ zWX_38%ZO`8tE#9VR5T=1Rb>F}WyBSCocC9>K*WBA5#T{G-UG4|9{}vX;)hP0<<|g0 KiNk*e(0>Dp&V)Mv literal 0 HcmV?d00001 diff --git a/tests/test_e2e_ocr_conversion.py b/tests/test_e2e_ocr_conversion.py index 63570d0c..af6e62ce 100644 --- a/tests/test_e2e_ocr_conversion.py +++ b/tests/test_e2e_ocr_conversion.py @@ -1,6 +1,6 @@ import sys from pathlib import Path -from typing import List +from typing import List, Tuple from docling.backend.docling_parse_backend import DoclingParseDocumentBackend from docling.datamodel.base_models import InputFormat @@ -56,33 +56,35 @@ def get_converter(ocr_options: OcrOptions): def test_e2e_conversions(): pdf_paths = get_pdf_paths() - engines: List[OcrOptions] = [ - EasyOcrOptions(), - TesseractOcrOptions(), - TesseractCliOcrOptions(), - EasyOcrOptions(force_full_page_ocr=True), - TesseractOcrOptions(force_full_page_ocr=True), - TesseractOcrOptions(force_full_page_ocr=True, lang=["auto"]), - TesseractCliOcrOptions(force_full_page_ocr=True), - TesseractCliOcrOptions(force_full_page_ocr=True, lang=["auto"]), + engines: List[Tuple[OcrOptions, bool]] = [ + (EasyOcrOptions(), False), + (TesseractOcrOptions(), True), + (TesseractCliOcrOptions(), True), + (EasyOcrOptions(force_full_page_ocr=True), False), + (TesseractOcrOptions(force_full_page_ocr=True), True), + (TesseractOcrOptions(force_full_page_ocr=True, lang=["auto"]), True), + (TesseractCliOcrOptions(force_full_page_ocr=True), True), + (TesseractCliOcrOptions(force_full_page_ocr=True, lang=["auto"]), True), ] # rapidocr is only available for Python >=3.6,<3.13 if sys.version_info < (3, 13): - engines.append(RapidOcrOptions()) - engines.append(RapidOcrOptions(force_full_page_ocr=True)) + engines.append((RapidOcrOptions(), False)) + engines.append((RapidOcrOptions(force_full_page_ocr=True), False)) # only works on mac if "darwin" == sys.platform: - engines.append(OcrMacOptions()) - engines.append(OcrMacOptions(force_full_page_ocr=True)) + engines.append((OcrMacOptions(), True)) + engines.append((OcrMacOptions(force_full_page_ocr=True), True)) - for ocr_options in engines: + for ocr_options, supports_rotation in engines: print( f"Converting with ocr_engine: {ocr_options.kind}, language: {ocr_options.lang}" ) converter = get_converter(ocr_options=ocr_options) for pdf_path in pdf_paths: + if not supports_rotation and "rotated" in pdf_path.name: + continue print(f"converting {pdf_path}") doc_result: ConversionResult = converter.convert(pdf_path)