Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

识别部分的一些使用心得 #363

Open
shining-love opened this issue Jul 13, 2020 · 5 comments
Open

识别部分的一些使用心得 #363

shining-love opened this issue Jul 13, 2020 · 5 comments

Comments

@shining-love
Copy link

首先很感谢repo主无私的分享,该repo非常经典。在使用该repo过程中走过很多坑以下简要介绍:(1)模型推断阶段BN层未关闭,(2)模型推断时dropout未关闭(但测试了很多,发现未关闭也没有出现影响),(3)模型中图像宽度缩小8倍进入ctc loss计算这一点限制很大,使得你训练使用的图像宽度和图像中的文字序列长度有较好的比例,不然就会导致ctc loss无法计算出现ctc loss
为inf的情况,即模型结构使得图像宽度缩小8倍很坑,(4)模型采用的原始训练数据是很规整的同一32*280的图片,统一的10个字符长度,但如果我们拿自己的图像(或者开源的数据)是不定长图像宽度以及字符长度,所以为了保证我们同一个batch中图像的宽度是一致的,我们有2种策略选择:一是直接统一resize成同一高和宽(一定要确保宽度满足条件:宽//8>=字符长度+连续字符重复总个数);二是在每个batch中以最大宽度为基准进行pad。这两种策略我测试了在一些图像宽度变化较大,仿射变换严重的数据集上都不太好,首先策略1直接resize会造成图像中文字发生变形,其次策略2在每个batch中以最大宽度为基准进行pad会造成原始图像(特别是一些图与具有最大宽度的图之间宽度相差较大)出现较多非文字空白区域,使得模型难以识别这样的图。
综上:如果想要在宽度一致性较差,宽高比例不好以及图像倾斜度较大的数据集上进行训练建议放弃该repo,选择其他的repo(比如crnn的)

@piaobuliao
Copy link

piaobuliao commented Jul 14, 2020

想问下模型推断阶段BN层怎么关闭?

看这里好像说是调用predict自动关闭的,怪不得之前我不用关闭 预测也都没问题
https://zhuanlan.zhihu.com/p/56225304
Keras用learning_phase机制来告诉模型当前的所处的模式。假如用户没有手工指定的话,使用fit()时,网络默认将learning_phase设为1,表示训练模式。在预测时,比如调用predict()和evaluate()方法或者在fit()的验证步骤中,网络将learning_phase设为0,表示测试模式。用户可以静态地,在model或tensor添加到一个graph中之前,将learning_phase设为某个值(虽然官方不推荐手动设置),设置后,learning_phase就不可以修改了。

@praymich
Copy link

十分感谢分享心得

@rsqai
Copy link

rsqai commented Aug 10, 2020

这个使用中会不会有问题啊,比如图像旋转了180度,这个时候需要先检测旋转角度再矫正,最后再进行文字检测和识别。我看有另外一个项目,就在前面加了个角度识别90度180度270度,想自己搞一个但是没数据。。。

@fire717
Copy link

fire717 commented Aug 20, 2020

这个使用中会不会有问题啊,比如图像旋转了180度,这个时候需要先检测旋转角度再矫正,最后再进行文字检测和识别。我看有另外一个项目,就在前面加了个角度识别90度180度270度,想自己搞一个但是没数据。。。

数据不是很容易生成吗?

@Cocoalate
Copy link

你好,请问crnn对输入文本图像的处理不也是需要resize成相同长款么,为什么选择crnn会更好?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants