XiangWeiJiang / Document_Geometry_Dewarping

16 stars 0 forks source link

文本行标签生成 #1

Open 13213085 opened 1 year ago

13213085 commented 1 year ago

你好,我最近在尝试复现你的工作,请问你在生成扭曲文本行标签时是怎么处理的,我是使用F.grid_sample将文本行映射到扭曲空间,获得的文本行分割标签边缘很锐利不平滑,会对训练造成什么影响吗

XiangWeiJiang commented 1 year ago

mask用于分割文本行,只要能扭曲的图像能分割出单独的文本行问题都不大,后面还要做腐蚀和抽样的。

13213085 commented 1 year ago

非常感谢你的回答,能麻烦说一下你生成文本行标签的具体流程吗,我是用paddleocr对publaynet做文本行检测,将检测到文本行中心线用两个像素的线连起来,然后用doc3d的uv图,用F.grid_sample去扭曲文本行标签,同时去扭曲原图获得成对的数据,下面是我获得的成对标签,麻烦看一下这样效果如何 PMC4756529_00001_org

PMC4756529_00001

XiangWeiJiang commented 1 year ago

没啥问题,uv边缘的噪声点你训练之后基本上就没有了。记得调一下mask阈值。

13213085 commented 1 year ago

谢谢回复,我看你是使用L2损失训练的,这样用文本行mask的时候需要用阈值做二值化吗,还是直接用标签训练就可以

XiangWeiJiang commented 1 year ago

就用这个标签训练呀,最后预测的时候要试一下阈值。

13213085 commented 1 year ago

好的,非常感谢你的回复

13213085 commented 1 year ago

你好,我合成数据之后用UNet做训练,然后在测试集做测试,发现你给的模型文本行分割准确率比较高,召回相对低一些,像下面这种图,我的模型上面的大文本行有响应,你的这个模型没有,你这里是不是做了一些处理,舍去一些高的文本行呢 46 28

XiangWeiJiang commented 1 year ago

因为我用的标签没有大文本行。你可以先把标签里面的大文本和竖文本去掉再训练。

13213085 commented 1 year ago

你好,能说一下你的publaynet的标签是怎么生成的吗,也是使用ocr模型去检测文本行吗

XiangWeiJiang commented 1 year ago

嗯嗯,但是是找别人要的,用的是文本框检测的算法。这个只有data0的标签

13213085 commented 1 year ago

嗯嗯,那你通过文本框得到mask标签的方法能具体说一下

XiangWeiJiang commented 1 year ago

取左右两边中点,按宽度画直线。宽度自己得看一下,最后扭曲之后别和其他线连起来了。

13213085 commented 1 year ago

画线的时候你是用cv2.line画两个像素的线段,然后用F.grid_sample扭曲吗,我用一个像素的线扭曲之后的文本行中心线会有不连续的地方,灰度值很小 PMC4756529_00001

XiangWeiJiang commented 1 year ago

没关系的,最后也是学一个概率值再取阈值,但是还是要保证连通。我忘了这里取阈值没有了。

13213085 commented 1 year ago

好的,麻烦了,还有我最近在考虑这个方法的时候感觉如果拍照的文档边界不全或是有遮挡的情况下,似乎很难获得矫正后的图像,不知道你有没有考虑过这个问题

XiangWeiJiang commented 1 year ago

https://github.com/fh2019ustc/DocTr-Plus,https://github.com/fh2019ustc/DocScanner你看看呗,我这个方法做不了

13213085 commented 1 year ago

你好,我现在重头训练模型,发现我训练的模型输出噪声很大,想问一下你训文本行分割的时候是不是给图像加了一些背景图像 6

13213085 commented 1 year ago

你好,能麻烦你分享一下你训练文本行分割的数据集吗,或者是给我看两张示例图,我现在不用你的预训练模型重头开始训练,在测试集上面噪声太多,把阈值卡大一些,文本行又会容易断开

XiangWeiJiang commented 1 year ago

“想问一下你训文本行分割的时候是不是给图像加了一些背景图像”,肯定要加的呀,DTD纹理数据集或者自己调成纯色?数据我在前面给了你一个publaynet data0的数据标签?那个上面没有大文本的。

13213085 commented 1 year ago

麻烦了,方便的话可以传我1千张训练数据吗,我直接试一下看看效果

13213085 commented 1 year ago

你好,我给图像加了背景之后,用工程里面的损失输出结果还是有很多噪声,换成交叉熵损失之后噪声少了很多,但还是不如你给出的模型,文本行有中断的情况,还有一些毛刺,这个可能是什么问题

XiangWeiJiang commented 1 year ago

你把纸张的颜色也换下?随机一下

13213085 commented 1 year ago

我看你给出的数据文本检测标签包含一些噪声,有一些误检测的标签,你是设置了什么规则进行了文本行过滤吗

XiangWeiJiang commented 1 year ago

没有啊,数据量够大的话,你调一下阈值应该没啥问题吧?我这里面标签就只有小文本行。你要是大文本行学的准,加进去也行。

13213085 commented 1 year ago

好的,很感谢你的回答,那你是怎么调节文本行正样本高度的呢,是根据文本行高度按比例设置的,还是固定一个高度,感觉正样本高度选高了,容易粘连,选少了,文本行容易断

13213085 commented 1 year ago

好的,很感谢你的回答,那你是怎么调节文本行正样本高度的呢,是根据文本行高度按比例设置的,还是固定一个高度,感觉正样本高度选高了,容易粘连,选少了,文本行容易断

XiangWeiJiang commented 1 year ago

image确实选了一下标签,高度也固定了。

XiangWeiJiang commented 1 year ago

因为后面短的文本行也用不上,所以这里直接把短的踢了。然后通过宽度也可以把宽的文本行筛掉。

13213085 commented 1 year ago

嗯,麻烦了,我再做一版本标签看看效果

13213085 commented 1 year ago

你好,我重新生成了一下数据集,文本行位置会有一些像素值比较小的连接点,这个应该是由于在大图扭曲到小图时候下采样造成的,你那里有对uv做裁剪之类增加有效区域的操作吗 PMC1079933_00002 PMC1079933_00002 png_mask

13213085 commented 1 year ago

你好,还有个问题,doc3d是448448尺寸,最后网络输入是512512的,你是先在publayent原图尺寸画线缩放到448然后扭曲到512还是直接在448的图像尺寸画线扭曲到512,这里顺序不一样,获得标签正样本宽度就不一样,训练效果也不太一样