链载Ai

标题: 文档OCR版式识别,兼顾速度与精度,YOLO当首选 [打印本页]

作者: 链载Ai    时间: 4 小时前
标题: 文档OCR版式识别,兼顾速度与精度,YOLO当首选


最近分享了很多关于文档OCR版式识别的文章。总体来看:

建议:

DocLayout-YOLO实战

importcv2
fromdoclayout_yoloimportYOLOv10

#Loadthepre-trainedmodel
mode=YOLOv10.from_pretrained("juliozhao/DocLayout-YOLO-DocStructBench")

#Performprediction
det_res=model.predict(
"path/to/image",#Imagetopredict
imgsz=1024,#Predictionimagesize
conf=0.2,#Confidencethreshold
device="cuda:0"#Devicetouse(e.g.,'cuda:0'or'cpu')
)

#Annotateandsavetheresult
annotated_frame=det_res[0].plot(pil=True,line_width=5,font_size=20)
cv2.imwrite("result.jpg",annotated_frame)

也可通过https://huggingface.co/spaces/opendatalab/DocLayout-YOLO 实测自己的文档数据。

笔者测试的样例:

DocLayout-YOLO

双方都用的是YOLO系列模型,微调的文档布局检测模型。

主要区别在于:

DocSynth-300K 数据集构建

从图上可知,DocSynth-300K数据集构建分为两个部分:

数据预处理(preprocessing)

  1. 原始数据的抓取(raw data)

  2. 页面版式元素的抽取与标记(Element pool)

为了确保包含各种文档元素,利用大约 2800 个不同文档页面的 74 个不同文档元素,作为初始数据。

  1. 版式元素的数据增强(augmentation)

对页面进行分段,通过每个细粒度类别提取和构建元素池。同时,为了保持同一类别元素内部的多样性,我们设计了一个增强管道,扩展了元素数量少于 100 个的稀有类别的数据库池

数据增强策略

  1. 随机翻转:考虑到不同文档中文本方向的多种可能性,以 0.5 的概率对原始数据进行水平和垂直方向的随机翻转,以增强原始数据。

  2. 随机亮度和对比度:通过以 0.5 的概率随机改变元素的亮度和对比度,模拟各种照明条件和亮度水平下的真实世界环境。

  3. 随机裁剪:为了引导模型更多地关注局部特征,以 0.7 的概率对元素进行随机裁剪,裁剪区域范围为 0.5 0.9。

  4. 边缘提取:使用 Sobel 滤波器进行边缘检测,并以 0.2 的概率提取元素内的轮廓信息,从而增强特征的丰富性。

  5. 弹性变换和高斯噪声:通过轻微的弹性变换和高斯噪声添加过程来扭曲和模糊原始数据,以模拟现实中抖动或分辨率引起的失真

版式的布局生成(layout Generation)

为了确保布局多样性和与现实世界文档的一致性,受二维装箱问题的启发,我们将当前布局构建的可用网格视为不同大小的“箱子”,并迭代地执行最佳匹配以生成更多样化和合理的文档布局,平衡布局多样性(随机性)和美观性(例如填充率和对齐)。

  1. 版式元素候选集的采样(candidate sampling)

对于每个空白页面,通过基于元素大小的从元素池中分层抽样获得一个子集,作为候选集。然后,从候选集中随机抽取一个元素,并将其放置在页面上的某个位置。

  1. 版式布局网络的构建(meshgrid construction)

基于布局构造网格,并过滤掉与插入元素重叠的无效网格。只有剩余的网格才能在后续步骤中参与与候选者的匹配。

  1. 最佳拟合版式元素的搜索 (best Pair search)

对于每个候选者,遍历所有满足大小要求的网格,并搜索具有最大填充率的 Mesh-candidate 对。随后,从候选集中移除最佳候选,并更新布局。

  1. 迭代布局填充 ( iterative layout filling)

重复步骤 2 3 直到没有有效的 Mesh-candidate 满足大小要求。最终,将对所有填充的元素分别应用随机中心缩放。

Mesh-candidate BestFit 布局生成算法

该算法迭代地搜索候选者和所有网格 (bin) 之间的最佳匹配。找到最佳匹配对后,候选元素将被插入文档,并继续迭代地搜索最佳匹配,直到元素数量达到阈值(经验性地设置为 15)。匹配阈值设置为。

全局到局部模型架构 (GL-CRM)

文档图像中的不同元素在尺度上可能存在很大差异,例如单行标题和整页表格。为了处理这种尺度变化的挑战,我们引入了一个称为 GL-CRM 的分层架构,它包含两个主要部分:

如何理解全局到局部的设计?

版式布局元素






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5