senlinuc / caffe_ocr

主流ocr算法研究实验性的项目,目前实现了CNN+BLSTM+CTC架构
1.26k stars 536 forks source link

在中文数据集上crnn也是最高,能到99.26,你测试的数据集是30多万哪个么 #68

Open liny23 opened 6 years ago

liny23 commented 6 years ago

在你提供的数据集上,crnn能到达99.25左右,dense也能达到99.00左右,而no-lstm只能到达98.50左右,我看训练结果都比你的好,所以想问问你的测试集是你共享的么,我看check数据集太少了,估计你也是用test评估的吧,我用tensorflow实现的,谢谢

nttstar commented 6 years ago

我用resnet可以训到99.73, 是否因为训练、测试集都为长度10,降低了测试的难度?

liny23 commented 6 years ago

@nttstar 可以加下我的qq:513183315么,我们交流一下

piaobuliao commented 6 years ago

@nttstar 99.73%这么高,是从(https://pan.baidu.com/s/1dFda6R3 )百度网盘下载的图片, 用train.txt里面有3279606张图训练,test.txt的364400张的测试出99.73%?

nttstar commented 6 years ago

@piaobuliao 是的 可参考我的项目 https://github.com/deepinsight/insightocr

piaobuliao commented 6 years ago

@nttstar 你是用mxnet自己实现的啊,我还以为是你用作者的项目,那就没有可对比性了,不过99.73%这么高感觉还是挺诡异的啊,感觉就像测试训练过的数据一样,基本都对了

Sanster commented 6 years ago

@nttstar 你的炼出来的精度很高啊 :+1: 。请教个问题,我看 SimpleNet 中有这样两行代码,这是出于什么考虑呢?

    max = mx.sym.Pooling(data=net, name='pool-0_m', pool_type='max', kernel=(2, 2), stride=(2, 2))
    avg = mx.sym.Pooling(data=net, name='pool-0_a', pool_type='avg', kernel=(2, 2), stride=(2, 2))
    net = max - avg  # 16 x 100
nttstar commented 6 years ago

@Sanster SimpleNet结构是参考的这里: https://github.com/diaomin/crnn-mxnet-chinese-text-recognition

Sanster commented 6 years ago

@nttstar 多谢。

我也试着用 SimpleNet 和原版的 crnn 结构在 caffe_ocr 的数据集上炼了下,练到 98% 左右就停了,然后又用 text_renderer 生成了 1w 的数据测了下,精度只有 40% 多。如果用 text_renderer 生成的数据(500w) 来练(验证集到97%),在 caffe_ocr 的测试集上也只有 67%,感觉网络范化性能不太行啊... :disappointed:

piaobuliao commented 6 years ago

@nttstar 你用 text_renderer 生成的数据可能字体大小,模糊或者旋转没caffe_ocr 的波动范围大吧

nttstar commented 6 years ago

@piaobuliao 我用的就是caffe_ocr数据

Sanster commented 6 years ago

@piaobuliao 你 @ 错人... 确实,两个数据集生成的规律不一样,字符频率也不一样。

xiaoqiao728295 commented 6 years ago

@zhoulinyuan 你好,我用TensorFlow实现的网络结构batchsize只能很小,效果很差,可以参考一下你的网络结构吗?

Sanster commented 6 years ago

@xiaoqiao728295 hi,你具体实现的是什么网络机构?可以参考下我这个项目 tf_crnn 目前有 resnet, squeezenet, mobienet 等结构

Heisenberg0391 commented 5 years ago

精度高是因为这个合成数据集中样本的模式固定难度较低,各个样本之间的差异很小,你如果在实景数据集上实验就会有明显差距

andrewwyl commented 4 years ago

@piaobuliao @nttstar 麻烦问一下Synthetic Chinese String Dataset这个数据集中的中文标注信息在哪啊?我看@piaobuliao发的链接下的train.txt文件下标注信息都是数字,数字信息代表什么意思啊?中文的标注信息在哪里查看呢?谢谢

piaobuliao commented 4 years ago

@andrewwyl 不同数字对应不同汉字类别,具体应该 https://github.com/JarveeLee/SynthText_Chinese_version 这里有介绍吧

andrewwyl commented 4 years ago

@piaobuliao 谢谢,我看一下这个介绍,非常感谢回复

andrewwyl commented 4 years ago

@piaobuliao 麻烦问一下这个类别映射表您有吗?可以发给我一份吗?谢谢