Skip to main content

Module layout

Module layout 

Source
Expand description

版面检测:PP-DocLayoutV3(HGNetV2-L 骨干 + RT-DETR 式混合编码器 + 可变形注意力解码器), 输入整页图,输出带类别的区域框(正文、标题、公式、公式编号、表格、图……),按预测的阅读顺序排。 结构照 transformers 的 modeling_pp_doclayout_v3.py、modeling_hgnet_v2.py,预处理与后处理照 image_processing_pp_doclayout_v3.py(均 Apache-2.0)。掩码转多边形不做。

流程:预处理(preprocess,拉伸到 800×800)→ 骨干(hgnet)→ 混合编码器(encoder, 含掩码特征)→ 选查询(query,掩码外接框作初始参考框)→ 解码器(decoder,可变形注意力在 deform)→ 后处理(postprocess)。

Modules§

config
模型配置(config.json)里推理要用的字段,缺省值取 transformers PPDocLayoutV3Config 的类属性。 只支持 PP-DocLayoutV3 发布权重用到的那种结构,遇到别的取值直接报错,不默默算错。
decoder
解码器(PPDocLayoutV3Decoder):6 层(自注意力 + 可变形交叉注意力 + 前馈),每层之后用框头迭代 修正参考框。类别头、框头与编码器的 enc_score_head、enc_bbox_head 共用权重(_tied_weights_keys, 权重文件里没有另存)。阅读顺序头(decoder_order_head + 全局指针)只算最后一层。逐层掩码输出不算。
encoder
混合编码器(PPDocLayoutV3HybridEncoder,RT-DETR 式):骨干后三段各投影到同一通道 → 最高层做 层内自注意力(AIFI)→ 自顶向下 FPN + 自底向上 PAN 融合;另外用融合结果和骨干第一段算掩码特征。 RepVGG 块的两路卷积在载入时并成一个 3×3,结果只差浮点舍入。
hgnet
HGNetV2 骨干。结构照 transformers 的 modeling_hgnet_v2.py(Apache-2.0):stem + 4 段 HG 块, 块里若干卷积的输出连同输入按通道拼起来,再过两个 1×1 卷积聚合。批归一化在载入时并进卷积。 配置(段数、块数、每块层数、核大小、是否轻量块)都从权重推出来,不写死 L 档的表。
preprocess
预处理:整页图拉伸到固定尺寸(不保长宽比),双三次插值(不抗锯齿),取整回 8 位,再缩放到 0–1、 减均值除标准差。语义照 transformers 的 PPDocLayoutV3ImageProcessor(Apache-2.0):torchvision 的 resize(antialias=False) 走 F.interpolate(mode="bicubic", align_corners=False)。

Structs§

Layout
载入好的版面模型。
Region
一个版面区域,坐标是原图像素。