WenmuZhou / PytorchOCR

基于Pytorch的OCR工具库,支持常用的文字检测和识别算法

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CRNN识别测试精度问题

yangh-zzf-itcast opened this issue · comments

您好,我使用syn360W的数据库99:1,切分了训练集和验证集。然后训练了100个左右epoch,验证集准确率在87%左右。然后我使用推断脚本,测试验证集的图片时都效果不错。
image
image
但是网页中随意截取了一段差不多的文字。就会出现比较大的差异。截取的文字跟训练集样式感觉差不多,但是效果不好,请问这个可能是模型的泛化能力不好,还是什么其他后处理导致的呢?
image
image

输入到网络的图像只需要等高变换即可。不要直接resize到目标大小

infer的时候输入图像是调用的这个函数,把高度resize到config里面设置的32了。应该就是您说得等高变换吧?
def resize_with_specific_height(self, _img):
"""
将图像resize到指定高度
:param _img: 待resize的图像
:return: resize完成的图像
"""
resize_ratio = self.config.input_h / _img.shape[0]
return cv2.resize(_img, (0, 0), fx=resize_ratio, fy=resize_ratio, interpolation=cv2.INTER_LINEAR)

意思是只要把高度变换到对应训练的高度,然后宽度不用变是么?

将函数改成这样,还是结果不准确。。。。
def resize_with_specific_height(self, _img):
"""
将图像resize到指定高度
:param _img: 待resize的图像
:return: resize完成的图像
"""
#resize_ratio = self.config.input_h / _img.shape[0]
#return cv2.resize(_img, (0, 0), fx=resize_ratio, fy=resize_ratio, interpolation=cv2.INTER_LINEAR)
return cv2.resize(_img, (_img.shape[1], self.config.input_h), interpolation=cv2.INTER_LINEAR)
image
image

100个epoch才87%吗?使用预训练模型了吗?

100个epoch才87%吗?使用预训练模型了吗?
没有使用哎。直接训练的。backbone用的mobilenetv3。预训练模型是用哪个数据集训的?

100个epoch才87%吗?使用预训练模型了吗?

识别的预训练模型是通过resume加载么?

100个epoch才87%吗?使用预训练模型了吗?
没有使用哎。直接训练的。backbone用的mobilenetv3。预训练模型是用哪个数据集训的?

可以用imagenet的预训练模型,配置文件中 backbone pretrained 设置为True

commented

同问,请问只看到config文件里有加载pretrained 设置为True,但是没有加载权重的路径,请问在哪个地方,还是说设置pretrained 设置为True代码会自动进行加载?