Expand description
Layout analysis via PP-DocLayoutV3 (PaddleX paddle3.0.0).
Porting Rust del layout analyzer PP-DocLayoutV3 (PaddleX / PaddleOCR). Il modello è uno YOLO-style detector che produce 25 classi di regioni documentali (text/title/table/figure/header/footer/…).
§Pipeline
- Preprocess: resize letterbox a 800×800 (preserva aspect ratio, pad bottom-right con zeri), poi ImageNet normalize (mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]). HWC→CHW + batch.
- Inference: 3 input ONNX:
im_shape[1,2]=[800.0, 800.0]image[1,3,800,800]= blob normalizzatoscale_factor[1,2]=[scale, scale](Paddle internamente post-processa rescaling delle bbox alle coord originali).
- Output:
[N, 7]con[class_id, score, xmin, ymin, xmax, ymax, read_order]. - Postprocess: confidence threshold + NMS (IoU 0.5) + sort per reading order (col 6).
Il modello PaddleX rimappa internamente le bbox alle dimensioni
originali tramite scale_factor, quindi le coordinate finali sono già
in pixel sull’immagine input.
Structs§
- Layout
Analyzer - Analyzer wrapper che mantiene la
ort::Sessionper PP-DocLayoutV3. - Layout
Box - Bounding box di una regione layout, coordinate in pixel sull’immagine di input ORIGINALE (post-rescaling fatto internamente da PaddleX).
Enums§
- Layout
Class - 25 classi di PP-DocLayoutV3 (config.json del rilascio PaddleX). Mappate 1:1 dalle output predictions del modello.
- Semantic
Class - Categoria semantica semplificata (8 classi). Usata per markdown export e per il rendering UI engine-agnostic.
Constants§
- LAYOUT_
INPUT_ SIZE - Dimensione fissa input PP-DocLayoutV3.
Functions§
- xy_
cut_ order - Ordina i layout-box in reading-order usando l’algoritmo XY-Cut ricorsivo.