courao / ocr.pytorch

A pure pytorch implemented ocr project including text detection and recognition
MIT License
583 stars 133 forks source link

我换了ctpn预训练模型进行训练,loss值降下来了,但是拿训练出的模型检测不到结果,下面是我的图,要检测表盘数字区域,这可能会是什么原因呢 #19

Open dbAIStudio opened 4 years ago

dbAIStudio commented 4 years ago

1 (1)

courao commented 4 years ago

你好,想了解一下你这个图是测试的图像吗,训练的图像的图像是怎么样的,也是类似的吗? 因为CTPN是用于检测所有的文字的,所以我觉得其实这个场景可能不是很适用。 如果单纯想检测表盘数字然后做识别的话可能ssd/yolo/faster-rcnn+crnn这个方案可能会更好一点。

dbAIStudio commented 4 years ago

为了先方便出效果,训练和测试图一样,我将您的代码用voc格式加载训练的,训练过程中感觉并没有起到作用,是不是还需要改其他地方?

courao commented 4 years ago

不知道你的训练数据是多少, 一方面的原因可能是收敛的不是很好,所以有欠拟合的可能 另一方面的话可以调整在测试阶段的阈值以及图像大小参数 主要是指detect/ctpn_predict.py文件里的prob_thresh调低一点,对height的值也可以做一些大小调整

dbAIStudio commented 4 years ago

方便加个微信么2236962381,数据确实比较少,它loss值0.1左右,预测时prob_thresh height都有调整过,之前拿的您提供的ctpn模型作为预训练模型,因为我只标记着数字,而那个预训练可以检测到字母汉字,如果我的数据压根不影响模型,那么一开始的loss值总降不下去就解释的通了,第二次我没有加载预训练进行训练loss值可以降下去,只是检测没效果,给我感觉就是这些数据根本没有进入网络来影响模型,

ZHANG-hengzhi commented 4 years ago

请问大神们,我用CTPN网络训练了一些银行卡的图片,但是用我新训练的模型检测也是不出现框框,检测不到结果,请问是什么原因呀。

zty8599 commented 4 years ago

方便加个微信么2236962381,数据确实比较少,它loss值0.1左右,预测时prob_thresh height都有调整过,之前拿的您提供的ctpn模型作为预训练模型,因为我只标记着数字,而那个预训练可以检测到字母汉字,如果我的数据压根不影响模型,那么一开始的loss值总降不下去就解释的通了,第二次我没有加载预训练进行训练loss值可以降下去,只是检测没效果,给我感觉就是这些数据根本没有进入网络来影响模型,

您好,我的情况和您的情况类似,我是加载预训练模型loss可以降下去,但是检测结果和训练之前没有区别;不加载预训练模型loss不降,之后的检测结果什么都没有。请问您是怎么解决的?

ZHANG-hengzhi commented 4 years ago

哎呀,我是小小白,我也不会解决。

------------------ 原始邮件 ------------------ 发件人: "zty8599"<notifications@github.com>; 发送时间: 2020年5月5日(星期二) 下午3:44 收件人: "courao/ocr.pytorch"<ocr.pytorch@noreply.github.com>; 抄送: "张恒志"<594300065@qq.com>;"Comment"<comment@noreply.github.com>; 主题: Re: [courao/ocr.pytorch] 我换了ctpn预训练模型进行训练,loss值降下来了,但是拿训练出的模型检测不到结果,下面是我的图,要检测表盘数字区域,这可能会是什么原因呢 (#19)

方便加个微信么2236962381,数据确实比较少,它loss值0.1左右,预测时prob_thresh height都有调整过,之前拿的您提供的ctpn模型作为预训练模型,因为我只标记着数字,而那个预训练可以检测到字母汉字,如果我的数据压根不影响模型,那么一开始的loss值总降不下去就解释的通了,第二次我没有加载预训练进行训练loss值可以降下去,只是检测没效果,给我感觉就是这些数据根本没有进入网络来影响模型,

您好,我的情况和您的情况类似,我是加载预训练模型loss可以降下去,但是检测结果和训练之前没有区别;不加载预训练模型loss不降,之后的检测结果什么都没有。请问您是怎么解决的?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

huangxin168 commented 2 years ago

对于这种 最大字符 比 最小字符 大很多的情况,不要用原来的场景训练出来的模型做迁移学习,因为以前的场景跟现在相差太大了,比重新学习还要费劲,因为要纠正原来的记忆。 建议准备足够数据重新训练,换新的检测算法。