ygfrancois / crnn.pytorch.tensorrt.chinese

A Chinese characters recognition repository with tensorrt format supported based on CRNN_Chinese_Characters_Rec and TensorRTx.
16 stars 6 forks source link

关于样本集 #6

Open blackeyecircles opened 2 years ago

blackeyecircles commented 2 years ago

使用了360CC的300万样本和它自带的5990的字符, w_pad方式, 开启了image_aug, 训练了5个epoch, 约12h, 显示正确率已经到97%, loss 0.02左右, 测试360cc中的样本检测效果比较好, 但是自己的30x160的文本图, 检测结果几乎不正确 使用您提供的权重, 结果也比较好, 我推测是我使用的360cc样本的训练方式问题, 请问您是基于什么样本训练的, 或者有什么建议, 谢谢!

ygfrancois commented 2 years ago

你是说你用自己的文本图测试效果不好,但是用我给的预训练模型效果还不错吗? 如果是这样的话,inference阶段的预处理应该没有不对齐的问题,大概率是训练集的问题。 360cc那个数据集应该是白底黑字的类型,我的训练集是我自己造的,背景是有颜色比较复杂的,所以模型的鲁棒性可能会比较好一点,如果你的测试集,背景分布和训练集差别很大的话,可能就不行了。 最好还是控制训练集和测试集的分布相近,如果没有那么多数据训练,可能要想办法造数据或者捞数据了

ygfrancois commented 2 years ago

使用了360CC的300万样本和它自带的5990的字符, w_pad方式, 开启了image_aug, 训练了5个epoch, 约12h, 显示正确率已经到97%, loss 0.02左右, 测试360cc中的样本检测效果比较好, 但是自己的30x160的文本图, 检测结果几乎不正确 使用您提供的权重, 结果也比较好, 我推测是我使用的360cc样本的训练方式问题, 请问您是基于什么样本训练的, 或者有什么建议, 谢谢!

我的训练集图片可以参考 images/test_cn里面的测试样例

ygfrancois commented 2 years ago

使用了360CC的300万样本和它自带的5990的字符, w_pad方式, 开启了image_aug, 训练了5个epoch, 约12h, 显示正确率已经到97%, loss 0.02左右, 测试360cc中的样本检测效果比较好, 但是自己的30x160的文本图, 检测结果几乎不正确 使用您提供的权重, 结果也比较好, 我推测是我使用的360cc样本的训练方式问题, 请问您是基于什么样本训练的, 或者有什么建议, 谢谢!

你也可以尝试inference的时候,先把图片转成单通道灰度图,和360cc的训练集匹配,再试试效果

blackeyecircles commented 2 years ago

谢谢回复, 推理的时候看 inference.py 是有图片转单通道的, 看到你的test_cn的样例是有复杂背景的, 请问您是使用什么工具合成的呢?

我后续使用了 paddleocr里提供的 StyleText 工具, 生成了5万张图片, 图片是小于32x280的, 还是使用w_pad 方式, worker设置为0, 但是测试发现训练1轮后loss下降只大概8.9

ygfrancois commented 2 years ago

谢谢回复, 推理的时候看 inference.py 是有图片转单通道的, 看到你的test_cn的样例是有复杂背景的, 请问您是使用什么工具合成的呢?

我后续使用了 paddleocr里提供的 StyleText 工具, 生成了5万张图片, 图片是小于32x280的, 还是使用w_pad 方式, worker设置为0, 但是测试发现训练1轮后loss下降只大概8.9

我是自己写的工具,把字造在了inference场景涉及的背景上,然后抠出来的。 loss不下降,是不收敛还是收敛的慢,不收敛可能是训练出了问题,下降的慢可能是学习率的问题

blackeyecircles commented 2 years ago

对比了360万的那个样本训练, loss稳定下降, 大概30分钟就下降到1以下了, 试过学习率调大了5倍, 但一轮训练下来, loss下降几乎没变 我看了生成的图片质量不高, 怀疑是这个原因, 我再尝试下, 谢谢!