Rid7 / Table-OCR

Recognize tables from images and restore them into word.
GNU General Public License v3.0
273 stars 69 forks source link

crnn 训练样本生成 #16

Open lixiaoming0017 opened 4 years ago

lixiaoming0017 commented 4 years ago

您好,看了您的代码收益匪浅,里面有3个问题请您解惑: 1.关于crnn训练数据的生成,我使用的是TextRecognitionDataGenerator,旋转,噪声,模糊,膨胀都可以,您说的随机添加字符间距是直接加入空格吗?还是有别的方法?能否给予代码参考一下。不胜感激 2.识别用的数据集是不定长的吗? 3.您在识别以后后面接的那个语言模型是怎么训练的,就是veterbi那个。

Rid7 commented 4 years ago

您好,看了您的代码收益匪浅,里面有3个问题请您解惑: 1.关于crnn训练数据的生成,我使用的是TextRecognitionDataGenerator,旋转,噪声,模糊,膨胀都可以,您说的随机添加字符间距是直接加入空格吗?还是有别的方法?能否给予代码参考一下。不胜感激 2.识别用的数据集是不定长的吗? 3.您在识别以后后面接的那个语言模型是怎么训练的,就是veterbi那个。

1.代码参考https://github.com/Sanster/text_renderer 2.是 3.viterbi计算的并不是语言模型,pkl存放的是两个字连接的概率,具体请查阅viterbi算法原理

lixiaoming0017 commented 4 years ago

您好,看了您的代码收益匪浅,里面有3个问题请您解惑: 1.关于crnn训练数据的生成,我使用的是TextRecognitionDataGenerator,旋转,噪声,模糊,膨胀都可以,您说的随机添加字符间距是直接加入空格吗?还是有别的方法?能否给予代码参考一下。不胜感激 2.识别用的数据集是不定长的吗? 3.您在识别以后后面接的那个语言模型是怎么训练的,就是veterbi那个。

1.代码参考https://github.com/Sanster/text_renderer 2.是 3.viterbi计算的并不是语言模型,pkl存放的是两个字连接的概率,具体请查阅viterbi算法原理

您好,针对上面的问题2和3,补充一下: 1,您如果是使用了不定长训练的,那么意味着,输入的 batch图片需要padding到固定长度,那 padding以后的部分需要计算损失吗?padding的时候用的黑色还是白色呢?

  1. viterbi是计算两个字连接的概率,您是指两个字可以组成词的概率吗?算法本身看hmm的时候能懂,但不知道如何用在这里,能否指教一下。感谢感谢 3.您能大致说说在使用text render生成样本的参数设置吗?比如背景的长宽,因为我在使用您的模型的时候发现,鲁棒性非常高,即使图片的长宽比较特殊依然能够识别准确,比如下图: chufashijian11 chufashijian10 这两张图的长宽是一样的,文本的位置不一样,下面的一张正确,上面的一张错误。这个是因为您生成赝本的时候,数据是尽量靠图片中间生成的吗?背景图片的长宽是不是可以随意指定呢?