MhLiao / DB

A PyTorch implementation of "Real-time Scene Text Detection with Differentiable Binarization".
2.09k stars 479 forks source link

ctw1500复现论文结果需要设置thresh为0.05才能复现论文结果,是否训练ctw1500有其它参数需要设置? #145

Open shibefore opened 4 years ago

shibefore commented 4 years ago

你好, 我尝试复现totaltext和ctw1500(修改成totaltext的标注格式).主要调节参数为: 1.box_thresh:box区域的平均置信度,默认为0.6(eval.py设置) 2.thresh:分割图的阈值,默认为0.3 3.polygons_from_bitmap函数中epsilon = 0.01 cv2.arcLength(contour, True)的0.01这个值 其中totaltext和论文结果差不多(将参数3从0.01修改为0.002值会有所上升但是幅度不大) 但是复现ctw1500的时候,需要设置以下两个参数(如果不设这两个参数结果低10几个点): 参数2:thresh需要从0.3设置为0.05,从现象上来看设置0.05能使分割图阈值过滤后文字区域更大(totaltext数据集,由于只有单个单词,区域大了之后会影响box区域的平均值,所以设这个值结果反而会变差,但是ctw1500存在很多多个单词一起的情况,设置后分割图文字区域变大但是不影响box)---F1提升10个点左右 参数3:epsilon = 0.01 周长中的0.01设置为0.002,减少cv2.approxPolyDP之后点数量<2的场景,使更多有效结果得到保留 ---F1提升4个点左右

对于参数3的设置可以理解。 我的问题: 1.参数2在训练的时候非文字区域应该是低于threshold map中的0.3比较合理,但是实际发现非文字区域低于0.05.是否合理? 2.ctw1500训练是否需要修改其它参数?(ctw1500由于多个词标一个框,所以标注框普遍比totaltext要长,使用PSENet方法扩展的时候r=0.4是否需要修改?)

谢谢

shibefore commented 4 years ago

另外:使用作者提供的模型,仅仅修改参数3,将0.01修改为0.002,在totaltext上平均能提高0.5个点(其它未测试) totaltext-resnet18 88.9 77.6 82.9 totaltext-resnet50 88.0 81.5 84.6 修改后: totaltext-resnet18 89.3004 78.4810 83.5419 totaltext-resnet50 88.0387 82.1881 85.0129

MhLiao commented 4 years ago

@shibefore 感谢分享,尤其是关于epsilon的参数。你上述的参数似乎都是inference的参数,应该不影响训练。map threshold需要设置成0.05似乎有些诡异,相当于你训练出来的模型跟我的模型表现得不太一致,不过我也没试过自己的模型用0.05的阈值会怎么样,因为我在一个数据集上调好这些参数之后,迁移到其他数据集上的时候没有再改动了。

shibefore commented 4 years ago

嗯,我修改的都是inference的参数,确实不影响训练。 我会再尝试下先在totaltext上训练,然后拿这个模型做预训练模型来训练ctw1500.

谢谢

shibefore commented 4 years ago

@MhLiao ,我使用在totaltext上训练好的模型(F1:83.28),作为ctw1500-18-deform-db的预训练模型尝试复现。训练过程中使用box_thresh 0.7,thresh 0.3观察每1000minibatch,F1的变化,发现F1一直在70左右上下浮动,将训练结束后的final模型进行测试,结果为:

shibefore commented 4 years ago

@MhLiao : P R F1 box_thresh thresh epsilon*ratio 66.66 68.85 67.74 0.5 0.3 0.01 81.04 74.70 77.74 0.5 0.05 0.01 82.27 81.85 82.06 0.5 0.05 0.002

,还是需要将thresh设置成0.05,能否提供下你那边训练的ctw1500的模型?

谢谢了

llkn-2 commented 4 years ago

@shibefore @MhLiao 请问一下二位,这个问题解决了吗?我在CTW1500数据集上训练,在res18上面F-score只有67%;将thresh设置成0.05后,F-score提升到了74%;将epsilon 改成0.02,F-score反而只有58%......

shaohailin commented 4 years ago

你好!请问能否共享一下CTW1500数据集(修改成totaltext的标注格式)、训练好的模型 @liangkaihuan @MhLiao @shibefore @xuannianz

AugustusMJB commented 4 years ago

同求一下ctw1500的训练代码和模型 @MhLiao

trizh commented 3 years ago

我觉得还可调unclip函数的unclip_ratio,之前试了有效果但没记录下来

Justinlc20 commented 3 years ago

你好!请问能否共享一下CTW1500数据集(修改成totaltext的标注格式)、训练好的模型 @liangkaihuan @MhLiao @shibefore @xuannianz

Deng-Qian commented 3 years ago

请问有人有CTW1500的标注数据集或者训练好的模型吗,能否共享一下呢 @MhLiao

HHeracles commented 2 years ago

The link of BaiduNet disk is invalid, relevant model and data set can share to me? thank you