Rid7 / Table-OCR

Recognize tables from images and restore them into word.
GNU General Public License v3.0
269 stars 70 forks source link

psenet训练问题 #18

Open lixiaoming0017 opened 3 years ago

lixiaoming0017 commented 3 years ago

您好,关于pse训练这块我有几个问题想请教一下: 1.基于像素分割的pse算法,正常应该对于有印章遮挡这种效果不好,您这个模型权重的结果却比较好,是因为您的样本包含这样的情况是吗?如图: image 这是您的结果,有印章的部分依然准确检测。这是因为您的样本中包含这样的数据是吗? 2.试验中,mobilenet和resnet152对比起来是不是resnet152性能更好一些呢? 3.您能说说,您的pse是在怎样的数据集上训练的呢?是在icdar 的数据集合上吗?还是自己生成的数据,训练的时候是重头训练还是finetune的 4.您训练psenet的时候,您用的数据集包含哪些种类呢?是不是数据您的标注数据集中也包含发票这种数据是吗?如果没有,只在一些别的数据集上训练为啥鲁棒性这么好呢?有很多训练的trick 吗?同样我在开源数据集合上用resnet152训练的结果放在发票上结果就很一般,您能分享一下技巧吗?或者能发几张训练的样本看看吗?

Rid7 commented 3 years ago

您好,关于pse训练这块我有几个问题想请教一下: 1.基于像素分割的pse算法,正常应该对于有印章遮挡这种效果不好,您这个模型权重的结果却比较好,是因为您的样本包含这样的情况是吗?如图: image 这是您的结果,有印章的部分依然准确检测。这是因为您的样本中包含这样的数据是吗? 2.试验中,mobilenet和resnet152对比起来是不是resnet152性能更好一些呢? 3.您能说说,您的pse是在怎样的数据集上训练的呢?是在icdar 的数据集合上吗?还是自己生成的数据,训练的时候是重头训练还是finetune的 4.您训练psenet的时候,您用的数据集包含哪些种类呢?是不是数据您的标注数据集中也包含发票这种数据是吗?如果没有,只在一些别的数据集上训练为啥鲁棒性这么好呢?有很多训练的trick 吗?同样我在开源数据集合上用resnet152训练的结果放在发票上结果就很一般,您能分享一下技巧吗?或者能发几张训练的样本看看吗?

1.基于分割的算法和标注尺度关系很大,因为是像素级分类,所以说单字符标注效果会更好,这就是为什么craft领先的原因。行级别标注会差一些,但在维持标注尺度统一的条件下会减少很多后处理的麻烦。样本中有印章,但是是合同那种的圆形印章,没有加过发票的,实验发现泛化效果还可以,就不加了; 2.是的,优秀的backbone肯定会带来一定程度的提升,需要自己权衡精度和速度。当前较好的backbone有Hourglass, Res2Net,SE-ResNeXt另外可以关注下百度的HS-ResNet; 3.文档类的建议直接重头训练,因为会有标注尺度的干扰。在预训练模型的数据与标注数据数量级接近时,一般我会选择重新训练,除非网络非常难收敛; 4.合同类,营业执照类,证件类,数据较为敏感,恕不公开。标注尺度统一是,分割的通病似乎是小目标比较困难,建议在数据增强时加入crop小目标paste到训练样本上保证小目标的样本分布,准备多种不含文字的背景做mix_up我觉得也是不错的数据增强方案,本项目并未加入。