From e40a6d1e4f4c36a1a43e486aa8b423f36ce64b31 Mon Sep 17 00:00:00 2001 From: Elwin Date: Wed, 23 Apr 2025 22:04:02 +0800 Subject: [PATCH] test: update test case of converting `image/webp` file with more ocr engines Signed-off-by: Elwin --- tests/data/webp/20250422-155738.webp | Bin 35644 -> 0 bytes .../groundtruth/docling_v2/test.doctags.txt | 2 + .../webp/groundtruth/docling_v2/test.json | 1 + .../data/webp/groundtruth/docling_v2/test.md | 1 + .../groundtruth/docling_v2/test.pages.json | 1 + tests/data/webp/test.webp | Bin 0 -> 29684 bytes tests/test_backend_webp.py | 66 +++++++++++------- 7 files changed, 46 insertions(+), 25 deletions(-) delete mode 100644 tests/data/webp/20250422-155738.webp create mode 100644 tests/data/webp/groundtruth/docling_v2/test.doctags.txt create mode 100644 tests/data/webp/groundtruth/docling_v2/test.json create mode 100644 tests/data/webp/groundtruth/docling_v2/test.md create mode 100644 tests/data/webp/groundtruth/docling_v2/test.pages.json create mode 100644 tests/data/webp/test.webp diff --git a/tests/data/webp/20250422-155738.webp b/tests/data/webp/20250422-155738.webp deleted file mode 100644 index 29cded51b338a32e917018e25b60df588ca3f4f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35644 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 QGJpU801?0d000000C#+O(EtDd diff --git a/tests/data/webp/groundtruth/docling_v2/test.doctags.txt b/tests/data/webp/groundtruth/docling_v2/test.doctags.txt new file mode 100644 index 00000000..99ea5520 --- /dev/null +++ b/tests/data/webp/groundtruth/docling_v2/test.doctags.txt @@ -0,0 +1,2 @@ +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/webp/groundtruth/docling_v2/test.json b/tests/data/webp/groundtruth/docling_v2/test.json new file mode 100644 index 00000000..789cc58d --- /dev/null +++ b/tests/data/webp/groundtruth/docling_v2/test.json @@ -0,0 +1 @@ +{"schema_name": "DoclingDocument", "version": "1.3.0", "name": "ocr_test", "origin": {"mimetype": "application/pdf", "binary_hash": 14853448746796404529, "filename": "ocr_test.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"}], "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": 69.0, "t": 767.2550252278646, "r": 506.6666666666667, "b": 688.5883585611979, "coord_origin": "BOTTOMLEFT"}, "charspan": [0, 94]}], "orig": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package", "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package", "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/webp/groundtruth/docling_v2/test.md b/tests/data/webp/groundtruth/docling_v2/test.md new file mode 100644 index 00000000..42896546 --- /dev/null +++ b/tests/data/webp/groundtruth/docling_v2/test.md @@ -0,0 +1 @@ +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/webp/groundtruth/docling_v2/test.pages.json b/tests/data/webp/groundtruth/docling_v2/test.pages.json new file mode 100644 index 00000000..60fc6991 --- /dev/null +++ b/tests/data/webp/groundtruth/docling_v2/test.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": 71.33333333333333, "r_y0": 99.33333333333333, "r_x1": 506.6666666666667, "r_y1": 99.33333333333333, "r_x2": 506.6666666666667, "r_y2": 74.66666666666667, "r_x3": 71.33333333333333, "r_y3": 74.66666666666667, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 0.9555703127793324, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 69.0, "r_y0": 126.66666666666667, "r_x1": 506.6666666666667, "r_y1": 126.66666666666667, "r_x2": 506.6666666666667, "r_y2": 100.66666666666667, "r_x3": 69.0, "r_y3": 100.66666666666667, "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": 0.9741098171752292, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 70.66666666666667, "r_y0": 153.33333333333334, "r_x1": 154.0, "r_y1": 153.33333333333334, "r_x2": 154.0, "r_y2": 128.66666666666666, "r_x3": 70.66666666666667, "r_y3": 128.66666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 0.6702765056141881, "from_ocr": true}], "parsed_page": null, "predictions": {"layout": {"clusters": [{"id": 0, "label": "text", "bbox": {"l": 69.0, "t": 74.66666666666667, "r": 506.6666666666667, "b": 153.33333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 71.33333333333333, "r_y0": 99.33333333333333, "r_x1": 506.6666666666667, "r_y1": 99.33333333333333, "r_x2": 506.6666666666667, "r_y2": 74.66666666666667, "r_x3": 71.33333333333333, "r_y3": 74.66666666666667, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 0.9555703127793324, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 69.0, "r_y0": 126.66666666666667, "r_x1": 506.6666666666667, "r_y1": 126.66666666666667, "r_x2": 506.6666666666667, "r_y2": 100.66666666666667, "r_x3": 69.0, "r_y3": 100.66666666666667, "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": 0.9741098171752292, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 70.66666666666667, "r_y0": 153.33333333333334, "r_x1": 154.0, "r_y1": 153.33333333333334, "r_x2": 154.0, "r_y2": 128.66666666666666, "r_x3": 70.66666666666667, "r_y3": 128.66666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 0.6702765056141881, "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": 69.0, "t": 74.66666666666667, "r": 506.6666666666667, "b": 153.33333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 71.33333333333333, "r_y0": 99.33333333333333, "r_x1": 506.6666666666667, "r_y1": 99.33333333333333, "r_x2": 506.6666666666667, "r_y2": 74.66666666666667, "r_x3": 71.33333333333333, "r_y3": 74.66666666666667, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 0.9555703127793324, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 69.0, "r_y0": 126.66666666666667, "r_x1": 506.6666666666667, "r_y1": 126.66666666666667, "r_x2": 506.6666666666667, "r_y2": 100.66666666666667, "r_x3": 69.0, "r_y3": 100.66666666666667, "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": 0.9741098171752292, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 70.66666666666667, "r_y0": 153.33333333333334, "r_x1": 154.0, "r_y1": 153.33333333333334, "r_x2": 154.0, "r_y2": 128.66666666666666, "r_x3": 70.66666666666667, "r_y3": 128.66666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 0.6702765056141881, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "body": [{"label": "text", "id": 0, "page_no": 0, "cluster": {"id": 0, "label": "text", "bbox": {"l": 69.0, "t": 74.66666666666667, "r": 506.6666666666667, "b": 153.33333333333334, "coord_origin": "TOPLEFT"}, "confidence": 0.9715733528137207, "cells": [{"index": 0, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 71.33333333333333, "r_y0": 99.33333333333333, "r_x1": 506.6666666666667, "r_y1": 99.33333333333333, "r_x2": 506.6666666666667, "r_y2": 74.66666666666667, "r_x3": 71.33333333333333, "r_y3": 74.66666666666667, "coord_origin": "TOPLEFT"}, "text": "Docling bundles PDF document conversion to", "orig": "Docling bundles PDF document conversion to", "text_direction": "left_to_right", "confidence": 0.9555703127793324, "from_ocr": true}, {"index": 1, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 69.0, "r_y0": 126.66666666666667, "r_x1": 506.6666666666667, "r_y1": 126.66666666666667, "r_x2": 506.6666666666667, "r_y2": 100.66666666666667, "r_x3": 69.0, "r_y3": 100.66666666666667, "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": 0.9741098171752292, "from_ocr": true}, {"index": 2, "rgba": {"r": 0, "g": 0, "b": 0, "a": 255}, "rect": {"r_x0": 70.66666666666667, "r_y0": 153.33333333333334, "r_x1": 154.0, "r_y1": 153.33333333333334, "r_x2": 154.0, "r_y2": 128.66666666666666, "r_x3": 70.66666666666667, "r_y3": 128.66666666666666, "coord_origin": "TOPLEFT"}, "text": "package", "orig": "package", "text_direction": "left_to_right", "confidence": 0.6702765056141881, "from_ocr": true}], "children": []}, "text": "Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package"}], "headers": []}}] \ No newline at end of file diff --git a/tests/data/webp/test.webp b/tests/data/webp/test.webp new file mode 100644 index 0000000000000000000000000000000000000000..45bc1bcd8a20ad803dd2904fe4a677e490150704 GIT binary patch literal 29684 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 GC-6Uo0bwlw literal 0 HcmV?d00001 diff --git a/tests/test_backend_webp.py b/tests/test_backend_webp.py index 50bb2574..071b3c5c 100644 --- a/tests/test_backend_webp.py +++ b/tests/test_backend_webp.py @@ -1,12 +1,16 @@ +import sys from pathlib import Path +from typing import List + +from tests.verify_utils import verify_conversion_result_v2 from docling.datamodel.base_models import InputFormat from docling.datamodel.document import ConversionResult, DoclingDocument -from docling.datamodel.pipeline_options import RapidOcrOptions +from docling.datamodel.pipeline_options import RapidOcrOptions, OcrOptions, EasyOcrOptions, TesseractOcrOptions, \ + TesseractCliOcrOptions, OcrMacOptions from docling.document_converter import DocumentConverter, ImageFormatOption from .test_data_gen_flag import GEN_TEST_DATA -from .verify_utils import verify_document, verify_export GENERATE = GEN_TEST_DATA @@ -20,9 +24,10 @@ def get_webp_paths(): return webp_files -def get_converter(): +def get_converter(ocr_options: OcrOptions): image_format_option = ImageFormatOption() - image_format_option.pipeline_options.ocr_options = RapidOcrOptions() + image_format_option.pipeline_options.ocr_options = ocr_options + converter = DocumentConverter( format_options={InputFormat.IMAGE: image_format_option}, allowed_formats=[InputFormat.IMAGE], @@ -33,29 +38,40 @@ def get_converter(): def test_e2e_webp_conversions(): webp_paths = get_webp_paths() - converter = get_converter() - for webp_path in webp_paths: - print(f"converting {webp_path}") + 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"]), + ] - gt_path = ( - webp_path.parent.parent / "groundtruth" / "docling_v2" / webp_path.name + # 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)) + + # only works on mac + if "darwin" == sys.platform: + engines.append(OcrMacOptions()) + engines.append(OcrMacOptions(force_full_page_ocr=True)) + for ocr_options in engines: + print( + f"Converting with ocr_engine: {ocr_options.kind}, language: {ocr_options.lang}" ) + converter = get_converter(ocr_options=ocr_options) + for webp_path in webp_paths: + print(f"converting {webp_path}") - conv_result: ConversionResult = converter.convert(webp_path) + doc_result: ConversionResult = converter.convert(webp_path) - doc: DoclingDocument = conv_result.document - - pred_md: str = doc.export_to_markdown() - assert verify_export(pred_md, str(gt_path) + ".md"), "export to md" - - pred_itxt: str = doc._export_to_indented_text( - max_text_len=70, explicit_tables=False - ) - assert verify_export(pred_itxt, str(gt_path) + ".itxt"), ( - "export to indented-text" - ) - - assert verify_document(doc, str(gt_path) + ".json", GENERATE), ( - "document document" - ) + verify_conversion_result_v2( + input_path=webp_path, + doc_result=doc_result, + generate=GENERATE, + fuzzy=True, + )