Open deep-practice opened 5 years ago
还有text.cfg,最后输出40,想知道1)检测思路是什么 2)基于什么样的标注训练的呢
@deep-practice you should read YOLO paper for the detail
Yolo这个我知道,但是作者是如何定义输入输出的,这个没看明白 @Johnson-yue
text输出:HW40,H=imgH/16,W=imgW/16 (imgH,imgW为输入图像的长、宽) 40= len(anchors)4 ,意思就是每个点设置了10个anchors,4 = (0.5,0.8,0.0, 0.9)表示(box 的cy,h box的二分类概率),也可以是 len(anchors)3,那么二分类概率变为logistic即可,然后构造数据训练。 ocr就是CNN网络,最后一层的filters就是需要识别的字符集,卷积核为(1,1),外加一个CTC损失函数去训练模型,预测不需要CTC。
想问一下,ocr模型效果好么,比crnn主干网络精简了很多,同时去掉了rnn @wenlihaoyu
之前测试的情况是去掉bilstm后速度变快,但精度有所下降。最主要的是去掉rnn层后好移植。不知道作者是不是出于这个原因才去掉rnn的。
去掉bilstm怎么可能会变慢,全CNN层会快很多,加入了dense层吧?目前基于全CNN训练,对于中文识别准确率大概在96.5%左右,速度也快,对于发票识别比crnn模型要好很多。
这和移植没有多大关系,darnnet 框架下也有rnn层,CNN层已经能够很好去表征,为什么还要用rnn呢?
去掉bilstm怎么可能会变慢,全CNN层会快很多,加入了dense层吧?目前基于全CNN训练,对于中文识别准确率大概在96.5%左右,速度也快,对于发票识别比crnn模型要好很多。
对的,最后一层使了全连接来做的分类,效果要差一些。我训练出来的模型达不到你的这个精度。想了解一下训练集是什么规模?合成数据和真实数据大概是什么样的比例。
这和移植没有多大关系,darnnet 框架下也有rnn层,CNN层已经能够很好去表征,为什么还要用rnn呢?
您好,请问一下,这里的ocr该如何训练呢?我可以这样理解吗? 标注数据还是对该图片(当行的文本图片),进行标注,在训练的时候对输入的图像直接CNN,去掉后面的rnn,得到一个NxClasses(需要识别的字典的个数)的数组,然后对这个N*Classes的数据进行CTC_loss;测试的时候,是对这个NxClassses的每一个i(i=0,2,...,N),进行分类,然后对其进行去重,去空格,得到最后的识别出的字符串。
这和移植没有多大关系,darnnet 框架下也有rnn层,CNN层已经能够很好去表征,为什么还要用rnn呢?
您好,请问一下,这里的ocr该如何训练呢?我可以这样理解吗? 标注数据还是对该图片(当行的文本图片),进行标注,在训练的时候对输入的图像直接CNN,去掉后面的rnn,得到一个NxClasses(需要识别的字典的个数)的数组,然后对这个N*Classes的数据进行CTC_loss;测试的时候,是对这个NxClassses的每一个i(i=0,2,...,N),进行分类,然后对其进行去重,去空格,得到最后的识别出的字符串。
如果是这样的话,那训练用的cfg文件就是在你这测试的cfg文件的后面,添加计算ctc_loss的部分。你那有关于这个ocr训练的cfg文件,能给我们参考一下吗?
作者你好,想问一下ocr.cfg该如何使用呢,训练数据是怎样标注的?