MinerU icon indicating copy to clipboard operation
MinerU copied to clipboard

布局识别参数自定义

Open wumaotegan opened this issue 1 year ago • 13 comments

我想问一下,我对布局识别结果不太满意,是否可以修改 layoutlmv3_base_inference.yaml 来调优一下。

wumaotegan avatar Aug 05 '24 08:08 wumaotegan

@ouyanglinke

myhloli avatar Aug 05 '24 08:08 myhloli

通过layoutlmv3_base_inference.yaml调优的空间比较小,比如你可以通过一些阈值比如ROI_HEADS里的NMS_THRESH_TEST和SCORE_THRESH_TEST等来调整框被筛除的条件,但这个并不一定能保证精度的提升。如果希望精度在你的数据上有显著提升,可以尝试自己标注一批训练数据做微调,训练代码用的是LayoutLmv3的object Detection部分。目前我们提供的LayoutLmv3的权重是基于microsoft/layoutlmv3-base-chinese的pretrain模型基础上微调的,微调的训练数据不会公开。

ouyanglinke avatar Aug 05 '24 08:08 ouyanglinke

通过layoutlmv3_base_inference.yaml调优的空间比较小,比如你可以通过一些阈值比如ROI_HEADS里的NMS_THRESH_TEST和SCORE_THRESH_TEST等来调整框被筛除的条件,但这个并不一定能保证精度的提升。如果希望精度在你的数据上有显著提升,可以尝试自己标注一批训练数据做微调,训练代码用的是LayoutLmv3的object Detection部分。目前我们提供的LayoutLmv3的权重是基于microsoft/layoutlmv3-base-chinese的pretrain模型基础上微调的,微调的训练数据不会公开。

好的我尝试一下,感谢您的回复!

wumaotegan avatar Aug 05 '24 08:08 wumaotegan

通过layoutlmv3_base_inference.yaml调优的空间比较小,比如你可以通过一些阈值比如ROI_HEADS里的NMS_THRESH_TEST和SCORE_THRESH_TEST等来调整框被筛除的条件,但这个并不一定能保证精度的提升。如果希望精度在你的数据上有显著提升,可以尝试自己标注一批训练数据做微调,训练代码用的是LayoutLmv3的object Detection部分。目前我们提供的LayoutLmv3的权重是基于microsoft/layoutlmv3-base-chinese的pretrain模型基础上微调的,微调的训练数据不会公开。

我调整了这些参数,还是会把整页pdf 只用一个框标起来。 image

wumaotegan avatar Aug 05 '24 09:08 wumaotegan

这个PDF的底色(文字和图片下红色和绿色的色块)是因为已经用别的Layout模型跑过的吗?建议用原始的PDF跑模型,底色可能会对结果有影响。

ouyanglinke avatar Aug 05 '24 09:08 ouyanglinke

这个PDF的底色(文字和图片下红色和绿色的色块)是因为已经用别的Layout模型跑过的吗?建议用原始的PDF跑模型,底色可能会对结果有影响。

我用的就是这个默认的layout模型,我把识别结果输出出来了

wumaotegan avatar Aug 05 '24 09:08 wumaotegan

这个PDF的底色(文字和图片下红色和绿色的色块)是因为已经用别的Layout模型跑过的吗?建议用原始的PDF跑模型,底色可能会对结果有影响。

补充一下,我发现只要有图片超过pdf中线,就一定会把整页pdf识别成一整块。

wumaotegan avatar Aug 05 '24 09:08 wumaotegan

通过layoutlmv3_base_inference.yaml调优的空间比较小,比如你可以通过一些阈值比如ROI_HEADS里的NMS_THRESH_TEST和SCORE_THRESH_TEST等来调整框被筛除的条件,但这个并不一定能保证精度的提升。如果希望精度在你的数据上有显著提升,可以尝试自己标注一批训练数据做微调,训练代码用的是LayoutLmv3的object Detection部分。目前我们提供的LayoutLmv3的权重是基于microsoft/layoutlmv3-base-chinese的pretrain模型基础上微调的,微调的训练数据不会公开。

我调整了这些参数,还是会把整页pdf 只用一个框标起来。 image

最外圈的大框是layout算法计算得出的结果,这页文档因为上下两栏宽度不一致,导致无法正常切分成两栏结构,模型识别的区块还是比较准的,不准的是后处理算法😂

myhloli avatar Aug 05 '24 09:08 myhloli

通过layoutlmv3_base_inference.yaml调优的空间比较小,比如你可以通过一些阈值比如ROI_HEADS里的NMS_THRESH_TEST和SCORE_THRESH_TEST等来调整框被筛除的条件,但这个并不一定能保证精度的提升。如果希望精度在你的数据上有显著提升,可以尝试自己标注一批训练数据做微调,训练代码用的是LayoutLmv3的object Detection部分。目前我们提供的LayoutLmv3的权重是基于microsoft/layoutlmv3-base-chinese的pretrain模型基础上微调的,微调的训练数据不会公开。

我调整了这些参数,还是会把整页pdf 只用一个框标起来。 image

最外圈的大框是layout算法计算得出的结果,这页文档因为上下两栏宽度不一致,导致无法正常切分成两栏结构,模型识别的区块还是比较准的,不准的是后处理算法😂

所以问题是这个函数吗 01802F41

image

wumaotegan avatar Aug 05 '24 09:08 wumaotegan

@wumaotegan https://github.com/opendatalab/MinerU/blob/8c5ecdf159198bdcf1cbb46c5713a3da075e67b1/magic_pdf/layout/layout_sort.py#L525 这个函数

myhloli avatar Aug 05 '24 09:08 myhloli

/magic_pdf/layout/layout_sort.py

split_layout

看起来好像只能识别最多两列pdf,三列好像不能识别,这个还有很多工作要做啊。能不能绘制box坐标的频率分布直方图,根据频率进行分栏。这样就不一定非要两栏宽度对齐,容许微小误差。

wumaotegan avatar Aug 05 '24 09:08 wumaotegan

/magic_pdf/layout/layout_sort.py

split_layout

看起来好像只能识别最多两列pdf,三列好像不能识别,这个还有很多工作要做啊。能不能绘制box坐标的频率分布直方图,根据频率进行分栏。这样就不一定非要两栏宽度对齐,容许微小误差。

通过增加规则强化算法,对部分badcase可能会有一定的解析效果提升,但是很难通过单一的规则适配所有异形排版的版式结构,我们的todo有一条是训练一个layout排序的视觉模型,在泛化能力上预期会比单一的算法规则好一些。

myhloli avatar Aug 05 '24 09:08 myhloli

通过增加规则强化算法,对部分badcase可能会有一定的解析效果提升,但是很难通过单一的规则适配所有异形排版的版式结构,我们的todo有一条是训练一个layout排序的视觉模型,在泛化能力上预期会比单一的算法规则好一些。

期待您们的工作!

wumaotegan avatar Aug 05 '24 09:08 wumaotegan

通过layoutlmv3_base_inference.yaml调优的空间比较小,比如你可以通过一些阈值比如ROI_HEADS里的NMS_THRESH_TEST和SCORE_THRESH_TEST等来调整框被筛除的条件,但这个并不一定能保证精度的提升。如果希望精度在你的数据上有显著提升,可以尝试自己标注一批训练数据做微调,训练代码用的是LayoutLmv3的object Detection部分。目前我们提供的LayoutLmv3的权重是基于microsoft/layoutlmv3-base-chinese的pretrain模型基础上微调的,微调的训练数据不会公开。

您好!方便透露一下你们用了多少数据微调的这个版面分析模型吗?我通过你们开源出来的模型,识别的效果总体还是很不错的,但是个别地方需要调整,想用自己的数据再微调训练一下,想了解一下大概需要多少数据量做微调训练,谢谢!

sxk000 avatar Aug 15 '24 08:08 sxk000

Layout模型用了大约20k微调数据

ouyanglinke avatar Aug 15 '24 08:08 ouyanglinke

Layout模型用了大约20k微调数据

好的,非常感谢!

sxk000 avatar Aug 15 '24 11:08 sxk000

Layout模型用了大约20k微调数据

我看pdf解析出来的图片上都没有对应的图标题,有没有办法把图片对应的图标题也和图片截取到一起呢?或者能不能通过训练模型,让模型学习到这种图片截取情况呢?

sxk000 avatar Aug 15 '24 11:08 sxk000

Layout模型用了大约20k微调数据

我看pdf解析出来的图片上都没有对应的图标题,有没有办法把图片对应的图标题也和图片截取到一起呢?或者能不能通过训练模型,让模型学习到这种图片截取情况呢?

图片目前保存的是image_body也就是图片的本体,如果需要在截图中体现图片的caption,需要修改截图逻辑代码,传image_block进去作为截图的坐标

myhloli avatar Aug 15 '24 12:08 myhloli

Layout模型用了大约20k微调数据

我看pdf解析出来的图片上都没有对应的图标题,有没有办法把图片对应的图标题也和图片截取到一起呢?或者能不能通过训练模型,让模型学习到这种图片截取情况呢?

图片目前保存的是image_body也就是图片的本体,如果需要在截图中体现图片的caption,需要修改截图逻辑代码,传image_block进去作为截图的坐标

您好!方便再说详细一点吗,具体是要改动哪里的函数代码呢?谢谢!

sxk000 avatar Aug 16 '24 01:08 sxk000