Skip to content
imaged

Document layout

PP-DocLayoutV3

Parse a document page into 25 region types: titles, paragraphs, tables, figures.

Apache-2.0
Explore model

About this model

PP-DocLayoutV3 is a DETR-style detector from PaddlePaddle. It tags every region of a document page with one of 25 classes including text, doc_title, paragraph_title, table, image, chart, formula, header, footer, and reference.

The build is a 132 MB ONNX from the Kreuzberg community mirror, since the official PaddlePaddle release ships pdiparams only. Use it as the first stage of a document pipeline that feeds OCR into the right regions.

What you can build

  • Find the title and table on a scanned page before OCR.
  • Skip headers and footers when indexing the body of a report.
  • Route table regions to a table recognizer and text to OCR.
  • Build a layout-aware archive of mixed-format PDFs.

Variants & downloads

Choose the build for your app

Model files are being prepared.

Explore the model’s examples, source links, and integration notes while download variants are added.

Example inference

Input
A synthetic 800x1000 document page with a title, paragraphs, a table, and a figure.
Output
The same page with regions colored by class: title, paragraphs, table, figure.

Performance

Results depend on the device, runtime, and test conditions. Each measurement keeps its own context.

M1 Max, macOS 15, ONNX Runtime 1.17

See original catalog hardware notes · CPU

669.5 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 678.59

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

M1 Max, macOS 15, ONNX Runtime 1.17

See original catalog hardware notes · CoreML

635.1 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 634.81

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

RTX 2060, Ubuntu 24.04, ONNX Runtime 1.24.3

See original catalog hardware notes · CUDA

106.1 ms

Warm inference

Catalog reference · variant unspecified

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

Integration examples

Vision SDK integration

cpp

#include "imaged/sdk.hpp"
#include "imaged/families/pp_structure/pp_structure_family.hpp"

imaged::SDK::AI ai;
auto& config = ai.getOptions();
config.set("pp_structure.model", "weights/pp_doclayoutv3.onnx");
config.set("pp_structure.confidenceThreshold", 0.5);

imaged::SDK::PpStructureFamily family;
family.load(config);

imaged::SDK::Image image;
image.load("page.png");

auto result = std::get<imaged::SDK::DetectionResult>(family.run({&image}));
for (const auto& region : result.detections) {
    std::cout << region.label << " " << region.score << "\n";
}