Skip to main content

Module cell_detection

Module cell_detection 

Source
Expand description

RT-DETR-L Cell Detection per tabelle (PaddleOCR PP-StructureV3 v2).

Modello: RT-DETR-L_wired_table_cell_det.onnx da kreuzberg-dev/paddle-to-onnx. Identica architettura a PP-DocLayoutV3 (entrambi RT-DETR family) ma:

  • 1 sola classe (cell, no semantic categories)
  • input fixed 640×640 (vs 800×800 di PP-DocLayoutV3)
  • output [N, 6] = [class_id, score, x1, y1, x2, y2] (no reading_order)

§Pipeline

  1. Letterbox resize a 640×640 preservando aspect ratio (pad bottom/right con zeri normalize-space).
  2. ImageNet normalize (mean=[.485,.456,.406] std=[.229,.224,.225] scale=1/255).
  3. Inference con 3 input: im_shape, image, scale_factor. Il modello internamente rescala le bbox alle coords originali.
  4. Filtra per conf_thresh + NMS IoU 0.5.

§Uso architetturale

Unico modulo attivo per il riconoscimento tabelle. La struttura (righe / colonne) è dedotta geometricamente da derive_grid + grid_to_gfm senza un modello di structure recognition separato: funziona bene su tabelle business/legali italiane dove SLANet_plus (PP-StructureV3 v1) produceva skeleton vuoti per distribuzione fuori-dominio.

Structs§

CellBbox
CellDetector

Constants§

CELL_DETECT_INPUT_SIZE
Lato dell’input del modello RT-DETR-L cell det (fixed dal grafo ONNX).

Functions§

derive_grid
Converte una lista di CellBbox (output del detector) in una griglia logica Vec<Vec<CellBbox>> (rows × cols), usando clustering centroid-Y per identificare le righe.
grid_to_gfm
Renderizza una griglia di celle come tabella GFM (Markdown). La prima riga viene trattata come header GFM (separator | --- |).