Skip to main content

Crate ppocr_rs

Crate ppocr_rs 

Source
Expand description

ppocr-rs — pipeline OCR PaddleOCR (PP-OCRv6) in puro Rust su ort 2.0.0-rc.9, downportato da meibel-ai/paddle-ocr-rs (Apache-2.0).

§Componenti

  • db_net — DBNet text detection (input immagine, output bbox).
  • crnn_net — CRNN/SVTR text recognition (input crop, output stringa).
  • angle_net — Classificatore orientamento per-line (0°/180°).
  • layout — PP-DocLayoutV3 layout analysis (NOSTRA aggiunta — non presente in paddle-ocr-rs upstream).
  • ocr_lite — Pipeline orchestrator det → cls → rec.
  • ocr_utils — Helper image preprocessing (mean/std normalize, perspective warp).
  • scale_param — Calcolo dimensioni resize-to-multiple-of-32.
  • ocr_result — DTO: TextBox, TextLine, OcrResult.
  • ocr_error — Error type unico via thiserror.
  • compat — Shim per le differenze API ort rc.9 vs rc.11.

§Differenze rispetto a paddle-ocr-rs upstream

  1. ort pinnato a =2.0.0-rc.9 — versione target permanente del workspace (rc.11+ si blocca su ARM64 Snapdragon X Elite).
  2. ndarray a 0.16 (re-export di rc.9) invece di 0.17 (rc.11).
  3. API try_extract_tensor convertita via compat (shim permanente).
  4. Modulo layout aggiunto per supportare PP-DocLayoutV3 — non presente in upstream.
  5. Edition 2021 invece di 2024 (per compat con il toolchain minimo del workspace).

Re-exports§

pub use ocr_error::OcrError;
pub use ocr_lite::LayoutAwareResult;
pub use ocr_lite::OcrLite;
pub use ocr_lite::OcrOptions;
pub use ocr_lite::TextBlockWithLayout;
pub use ocr_result::Angle;
pub use ocr_result::OcrResult;
pub use ocr_result::Point;
pub use ocr_result::TextBlock;
pub use ocr_result::TextBox;
pub use ocr_result::TextLine;
pub use ocr_result::WordBox;
pub use layout::LayoutAnalyzer;
pub use layout::LayoutBox;
pub use layout::LayoutClass;
pub use layout::SemanticClass;
pub use layout::LAYOUT_INPUT_SIZE;
pub use layout::xy_cut_order;
pub use cell_detection::CellDetector;
pub use cell_detection::CellBbox;
pub use cell_detection::derive_grid;
pub use cell_detection::grid_to_gfm;
pub use cell_detection::CELL_DETECT_INPUT_SIZE;
pub use model_hub::ModelHub;
pub use model_hub::ModelPaths;
pub use model_hub::PpOcrVersion;
pub use model_hub::PpStructureModel;
pub use model_hub::StructureModelPaths;
pub use table_classifier::TableTypeClassifier;
pub use table_classifier::TableType;
pub use table_classifier::DocOrientationClassifier;
pub use table_classifier::DocOrientation;
pub use table_structure::TableStructureRecognizer;
pub use table_structure::TableStructure;
pub use table_structure::TableCellBox;
pub use table_structure::SLANEXT_INPUT_SIZE;
pub use doc_unwarp::DocUnwarper;
pub use doc_unwarp::UnwarpResult;
pub use formula_rec::FormulaRecognizer;
pub use formula_rec::FormulaResult;
pub use formula_rec::FORMULA_INPUT_SIZE;

Modules§

angle_net
base_net
cell_detection
RT-DETR-L Cell Detection per tabelle (PaddleOCR PP-StructureV3 v2).
compat
Compat shim per la differenza API try_extract_tensor tra ort 2.0.0-rc.9 (qui pinnato) e 2.0.0-rc.11 (paddle-ocr-rs upstream).
crnn_net
db_net
doc_unwarp
Document unwarping via UVDoc ONNX (PP-StructureV3 / PaddleX).
formula_rec
Formula recognition via PP-FormulaNet_plus-L ONNX (PP-StructureV3 v2).
layout
Layout analysis via PP-DocLayoutV3 (PaddleX paddle3.0.0).
model_hub
Download e cache locale dei modelli ONNX PP-OCRv6 da HuggingFace.
ocr_error
ocr_lite
ocr_result
ocr_utils
scale_param
table_classifier
PP-LCNet classifiers: table type (wired/wireless) e document orientation.
table_structure
SLANeXt table structure recognition (PP-StructureV3 v2).