PaddleOCR
PaddleOCR copied to clipboard
使用SVRT识别模型进行识别时,真实图片的文本长度超过了25,但是在配置文件max_text_length设置的是25,这个时候怎么办
请提供下述完整信息以便快速定位问题/Please provide the following information to quickly locate the problem
- 系统环境/System Environment:
- 版本号/Version:Paddle: PaddleOCR: 问题相关组件/Related components:
- 运行指令/Command Code:
- 完整报错/Complete Error Message:
可以修改文本长度的
请问修改了文本长度的话预训练模型还能用吗?还是说在测试的时候修改文本长度即可
你不是在推理的时候设置的么这个参数
那个在funtuning的时候配置文件也有这个参数,这个参数会有影响吗?
SVTR借鉴Vision Transformer结构,使用了绝对位置编码,无法应对变长的输入,只能识别25个字符以内的文本。因需要统计训练集和测试集样本的宽高比,比如,在中文数据集中发现存在很多宽高比10:1的样本,字符数超过了25,如果直接将这些样本resize到32 100,会造成文本图像的失真,因此我们将图像保留宽高比,高度设为32,如果宽度小于320,这padding,如果宽度大于320,则压缩为320,这样尽可能保留了文本图像的原始信息。
存在问题 由于SVTR使用了绝对位置编码,无法应对变长的输入,一个解决方案即为优化input_size:统计宽高比,例如:1、[3, 32, 100]适应宽高比多数为4:1且单个样本字符数不超过20的数据集;2、如果数据集中存在很多宽高比为10:1样本,则可以将[3, 32, 100]修改为[3, 32, 200]或者[3, 32, 320],也可以参考SVTR中文配置。
如果文本图像中字符个数不确定,但是有的超过了25个,建议采用可以变长输入的模型,比如PP-OCRv3,可以根据图像高宽比设置输入,也可以识别超长的文本。
如果大部分图像都超过了25个字符,建议训练时根据实际情况修改:max_text_length,并将input_size设置为宽高比更大的比例
SVTR借鉴Vision Transformer结构,使用了绝对位置编码,无法应对变长的输入,只能识别25个字符以内的文本。因需要统计训练集和测试集样本的宽高比,比如,在中文数据集中发现存在很多宽高比10:1的样本,字符数超过了25,如果直接将这些样本resize到32 100,会造成文本图像的失真,因此我们将图像保留宽高比,高度设为32,如果宽度小于320,这padding,如果宽度大于320,则压缩为320,这样尽可能保留了文本图像的原始信息。
存在问题 由于SVTR使用了绝对位置编码,无法应对变长的输入,一个解决方案即为优化input_size:统计宽高比,例如:1、[3, 32, 100]适应宽高比多数为4:1且单个样本字符数不超过20的数据集;2、如果数据集中存在很多宽高比为10:1样本,则可以将[3, 32, 100]修改为[3, 32, 200]或者[3, 32, 320],也可以参考SVTR中文配置。
如果文本图像中字符个数不确定,但是有的超过了25个,建议采用可以变长输入的模型,比如PP-OCRv3,可以根据图像高宽比设置输入,也可以识别超长的文本。
如果大部分图像都超过了25个字符,建议训练时根据实际情况修改:max_text_length,并将input_size设置为宽高比更大的比例
您好,我想请问一下竖向图片SVTR是怎么对它进行resize的呢?
您好,我想请问一下竖向图片SVTR是怎么对它进行resize的呢?
竖向文本进行旋转后再进行resize
您好,我想请问一下竖向图片SVTR是怎么对它进行resize的呢?
竖向文本进行旋转后再进行resize
我使用Benchmarking Chinese中提供的数据集(格式.lmdb)进行训练,发现可视化结果中竖向文本都被识别为一个字了,代码本身是不包含旋转的代码吗?需要先处理数据集?
我使用Benchmarking Chinese中提供的数据集(格式.lmdb)进行训练,发现可视化结果中竖向文本都被识别为一个字了,代码本身是不包含旋转的代码吗?需要先处理数据集?
SVTR没有对竖向文本做处理,需要自己添加。具体的可以在,图像读取后进行处理,例如,当图片的高大于1.5倍的宽,可以认为是竖向文本,使用np.rot90(img)即可完成旋转
您好,我想请问一下竖向图片SVTR是怎么对它进行resize的呢?
竖向文本进行旋转后再进行resize
还有想问您,训练时的分布式训练使用多张卡训练,是将数据集分成不同的四份分别进行训练,然后每一轮训练结束后进行信息交流吗?还是将同一数据集分别训练四次,每一轮训练结束后进行信息交流?又或者是怎样的呢?
分布式训练需要对轮数,学习率或者其他参数进行怎样的修改?
然后每一轮训练结束后进行信息交流吗?还是将同一数据集分别训练四次,每一轮训练结束后进行信息交流?又或者是怎样的呢?
分布式训练不需要特殊操作,按照https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/distributed_training.md 的说明启动代码即可。
分布式训练需要对轮数,学习率或者其他参数进行怎样的修改?
svtr的中文模型配置是默认4卡gpu训练,如果改变gpu个数或者batchsize,学习率需要和 总batchsize(gpu num * batchsize)同比例缩放。其他参数不变
分布式训练不需要特殊操作,按照https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/distributed_training.md 的说明启动代码即可。
为什么我使用四个卡一起训练机器就崩了?使用2个卡训练显示时间与单卡是一样的呢?/(ㄒoㄒ)/~~我不理解这个分布式训练
为什么我使用四个卡一起训练机器就崩了?使用2个卡训练显示时间与单卡是一样的呢?/(ㄒoㄒ)/~~我不理解这个分布式训练
可以单独提个关于多卡训练的issue,说明环境配置以及详细的报错信息
为什么我使用四个卡一起训练机器就崩了?使用2个卡训练显示时间与单卡是一样的呢?/(ㄒoㄒ)/~~我不理解这个分布式训练
可以单独提个关于多卡训练的issue,说明环境配置以及详细的报错信息
好,谢谢
您好,SVTR论文中对于中文数据集,设置的max_length为40,但是代码中设置的是25,请问哪个为准?
您好,SVTR论文中对于中文数据集,设置的max_length为40,但是代码中设置的是25,请问哪个为准?
请使用下载模型时配套的配置文件,configs/rec/rec_svtrnet_ch.yaml不是svtr论文的配置文件
SVTR借鉴Vision Transformer结构,使用了绝对位置编码,无法应对变长的输入,只能识别25个字符以内的文本。因需要统计训练集和测试集样本的宽高比,比如,在中文数据集中发现存在很多宽高比10:1的样本,字符数超过了25,如果直接将这些样本resize到32 100,会造成文本图像的失真,因此我们将图像保留宽高比,高度设为32,如果宽度小于320,这padding,如果宽度大于320,则压缩为320,这样尽可能保留了文本图像的原始信息。
存在问题 由于SVTR使用了绝对位置编码,无法应对变长的输入,一个解决方案即为优化input_size:统计宽高比,例如:1、[3, 32, 100]适应宽高比多数为4:1且单个样本字符数不超过20的数据集;2、如果数据集中存在很多宽高比为10:1样本,则可以将[3, 32, 100]修改为[3, 32, 200]或者[3, 32, 320],也可以参考SVTR中文配置。
如果文本图像中字符个数不确定,但是有的超过了25个,建议采用可以变长输入的模型,比如PP-OCRv3,可以根据图像高宽比设置输入,也可以识别超长的文本。
如果大部分图像都超过了25个字符,建议训练时根据实际情况修改:max_text_length,并将input_size设置为宽高比更大的比例
请问大佬PP-OCRv3对SVTR的什么改进才使得其支持不定长的输入呢?看了论文好像完全没有提到这块,是不是和模型yml文件里的SARHead部分有关系?有没有相关资料可以参考学习一下的,感谢大佬时间!
请问大佬PP-OCRv3对SVTR的什么改进才使得其支持不定长的输入呢?看了论文好像完全没有提到这块,是不是和模型yml文件里的SARHead部分有关系?有没有相关资料可以参考学习一下的,感谢大佬时间!
参考 #7555 和https://github.com/PaddlePaddle/PaddleOCR/issues/7104#issuecomment-1206002780
您好,SVTR论文中对于中文数据集,设置的max_length为40,但是代码中设置的是25,请问哪个为准?
请使用下载模型时配套的配置文件,configs/rec/rec_svtrnet_ch.yaml不是svtr论文的配置文件
想问一下 SVTR论文的配置文件是在哪个目录下面 我只找到了rec_svtrnet_ch.yaml
您好,SVTR论文中对于中文数据集,设置的max_length为40,但是代码中设置的是25,请问哪个为准?
请使用下载模型时配套的配置文件,configs/rec/rec_svtrnet_ch.yaml不是svtr论文的配置文件
想问一下 SVTR论文的配置文件是在哪个目录下面 我只找到了rec_svtrnet_ch.yaml
下载中文模型的压缩包,解压的文件夹里有中文的配置文件和模型文本
您好,SVTR论文中对于中文数据集,设置的max_length为40,但是代码中设置的是25,请问哪个为准?
请使用下载模型时配套的配置文件,configs/rec/rec_svtrnet_ch.yaml不是svtr论文的配置文件
想问一下 SVTR论文的配置文件是在哪个目录下面 我只找到了rec_svtrnet_ch.yaml
下载中文模型的压缩包,解压的文件夹里有中文的配置文件和模型文本
你好,可以给我指明中文模型的压缩包的网页链接吗?这对我非常重要!非常感谢!