EasyOCR Fine-Tune on Korean handwritten dataset

jyztefdp  于 2个月前  发布在  其他
关注(0)|答案(6)|浏览(39)

亲爱的@JaidedTeam

我想微调EASY OCR的手写韩文识别,我假设预训练模型已经训练了韩文和英文词汇,我将提高EASY OCR在韩文手写识别上的准确性。如何实现?我知道如何训练自定义模型,但由于英语数据集的巨大尺寸,我不想从头开始用韩文和英文进行训练。我已经有1000万张韩文手写图片。

敬礼,
Khawar

rnmwe5a2

rnmwe5a21#

亲爱的@JaidedTeam

我想微调EASY OCR在手写韩文上的表现,我假设预训练模型已经在韩文和英文词汇上进行了训练,我将提高EASY OCR在韩文手写识别上的准确性。如何实现呢?我知道如何训练自定义模型,但由于英语数据集的巨大尺寸,我不想从头开始用韩文和英文进行训练。我已经有1000万张韩文手写图片。

顺祝商祺,Khawar

仅供参考,如果有用的话。我认为你不需要为检测器模型进行训练,因为它应该非常准确。你可以冻结提取层,甚至可能冻结识别模型的顺序层,然后仅在相对较小的学习率下在韩文数据集上进行微调。现代机器学习模型有很多方法来减少多元偏移,所以我认为这种方法是可行的(在我这边确实导致了一个相对较好的泰语模型)。

aamkag61

aamkag612#

亲爱的@MdotO,谢谢你的回答。是的,你是对的,我正在研究识别模型,并目前正在使用大约6M张图片对韩国识别模型进行微调。我在.yaml文件中修改了几个参数,如果你能推荐一些更好的参数给我,那就太好了。目前,在Best_accuracy on [214000/900000] is : 6.667和模型上已经无法进一步提高性能,达到了6.667。

dkqlctbz

dkqlctbz3#

6.67是准确率还是损失值?看起来像损失,因为6.67%的准确率本身非常低。
有很多事情可能不涉及yaml(我不确定这些细节),但即使对于参数本身,也有一些事情可以尝试!

  1. 我相信学习率太高了:应该是0.001左右(可以增加或减少十倍)
  2. 您可以通过将两个层都设置为true(或至少将特征提取层设置为true)来冻结freeze_FeatureFxtraction和freeze_SequenceModeling。
  3. 然而,为了使2生效,您需要使用JADED AI的韩语语言训练权重作为初始权重,通过在yaml文件中指定saved_model:'path_to_korean_lang_weights)来实现,否则冻结没有用处(实际上会产生负面影响)。
  4. 您可以查看经过JADED AI筛选的示例yaml以查看所有预期字段,特别是lang char字段,因为它们决定了您想要检测的语言字符。(不指定可能会导致自动确定,但我认为最好自己指定这些)
    祝好运
deyfvvtc

deyfvvtc4#

感谢您的建议。6.67是最佳精度,您可以查看下面的结果。

[131000/900000] Train loss: 0.00137, Valid loss: 8.52225, Elapsed_time: 175221.94042
Current_accuracy : 3.333, Current_norm_ED  : 0.5855
Best_accuracy    : 6.667, Best_norm_ED     : 0.6071
  1. 是的,我将lr从0.1更改为0.001
  2. 是的,我现在冻结了它,因为我正在使用korean_g2.pth模型进行特征提取,所以我选择了VGG
  3. 是的,我已经提供了saved_model: /media/cvpr/CM_24/EasyOCR/easyocr/model/korean_g2.pth
  4. 是的,我已经在.yml文件中修改了一些字段,现在开始再次微调
    再次感谢您的建议,现在让我们等待结果。
mw3dktmi

mw3dktmi5#

你好,结果怎么样?

qvtsj1bj

qvtsj1bj6#

@akiyomov 并不是那么糟糕。

相关问题