Skip to main content

Crate df_ocr_switcher

Crate df_ocr_switcher 

Source
Expand description

df-ocr-switcher — pipeline OCR documento in puro Rust.

§Architettura

Input (TIFF/PNG/JPEG)
  └── DocPipeline
        ├── DocOrientationClassifier (ppocr-rs PP-LCNet)  → rotazione
        ├── LayoutAnalyzer           (ppocr-rs PP-DocLayoutV3) → regioni
        └── OcrEngine (impl):
              ├── PpOcrEngine   → detect_with_layout (PP-OCRv6)
              └── TesseractEngine → Ocr5Engine + layout assignment
  └── Output
        ├── Markdown  (to_markdown)
        └── JSON      (serde_json)

§Quickstart

use df_ocr_switcher::{DocPipeline, OutputFormat, PpOcrEngineConfig, engine::ppocr::PpOcrEngine};
use std::path::PathBuf;

let engine = PpOcrEngine::new(PpOcrEngineConfig::default()).unwrap();
let mut pipeline = DocPipeline::new(
    Box::new(engine),
    "models/paddleocr/layout/PP-DocLayoutV3.onnx",
).unwrap();

let md = pipeline.process_file("scan.tiff", OutputFormat::Markdown).unwrap();
println!("{md}");

Re-exports§

pub use engine::OcrBlock;
pub use engine::OcrEngine;
pub use engine::OcrFormula;
pub use engine::OcrLayoutBox;
pub use engine::OcrPageResult;
pub use engine::OcrTable;
pub use engine::OcrWord;
pub use engine::ppocr::OcrModelPaths;
pub use engine::ppocr::PpOcrEngine;
pub use engine::ppocr::PpOcrEngineConfig;
pub use engine::ppocr::TableModelPaths;
pub use error::Error;
pub use error::Result;
pub use output::markdown::page_to_markdown;
pub use output::markdown::to_markdown;
pub use pipeline::DocPipeline;
pub use pipeline::OutputFormat;

Modules§

engine
Trait comune e tipi condivisi per tutti gli engine OCR.
error
input
output
pipeline
DocPipeline — orchestratore principale.