mirror of
https://github.com/docling-project/docling.git
synced 2025-06-27 05:20:05 +00:00

* docs: Introduce example with custom models for RapidOCR Signed-off-by: Nikos Livathinos <nli@zurich.ibm.com> * chore: Exclude the example with custom RapidOCR models from the examples to run in github actions Signed-off-by: Nikos Livathinos <nli@zurich.ibm.com> --------- Signed-off-by: Nikos Livathinos <nli@zurich.ibm.com>
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
import os
|
|
|
|
from huggingface_hub import snapshot_download
|
|
|
|
from docling.datamodel.pipeline_options import PdfPipelineOptions, RapidOcrOptions
|
|
from docling.document_converter import (
|
|
ConversionResult,
|
|
DocumentConverter,
|
|
InputFormat,
|
|
PdfFormatOption,
|
|
)
|
|
|
|
|
|
def main():
|
|
# Source document to convert
|
|
source = "https://arxiv.org/pdf/2408.09869v4"
|
|
|
|
# Download RappidOCR models from HuggingFace
|
|
print("Downloading RapidOCR models")
|
|
download_path = snapshot_download(repo_id="SWHL/RapidOCR")
|
|
|
|
# Setup RapidOcrOptions for english detection
|
|
det_model_path = os.path.join(
|
|
download_path, "PP-OCRv4", "en_PP-OCRv3_det_infer.onnx"
|
|
)
|
|
rec_model_path = os.path.join(
|
|
download_path, "PP-OCRv4", "ch_PP-OCRv4_rec_server_infer.onnx"
|
|
)
|
|
cls_model_path = os.path.join(
|
|
download_path, "PP-OCRv3", "ch_ppocr_mobile_v2.0_cls_train.onnx"
|
|
)
|
|
ocr_options = RapidOcrOptions(
|
|
det_model_path=det_model_path,
|
|
rec_model_path=rec_model_path,
|
|
cls_model_path=cls_model_path,
|
|
)
|
|
|
|
pipeline_options = PdfPipelineOptions(
|
|
ocr_options=ocr_options,
|
|
)
|
|
|
|
# Convert the document
|
|
converter = DocumentConverter(
|
|
format_options={
|
|
InputFormat.PDF: PdfFormatOption(
|
|
pipeline_options=pipeline_options,
|
|
),
|
|
},
|
|
)
|
|
|
|
conversion_result: ConversionResult = converter.convert(source=source)
|
|
doc = conversion_result.document
|
|
md = doc.export_to_markdown()
|
|
print(md)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|