赞
踩
本地使用过程中,识别结果:
查看图像是否shape
太小,导致文本检测丢失。
对于长度较长,高度较小的图像,可尝试对该图像高度做上下补充,来减小文字在原始图像中比例,利于文本检测。类似下图这种,左侧一条为原始图像,右侧为上下补边的图像。
padding代码参考:
from typing import Tuple import cv2 import numpy as np def padding_img(img: np.ndarray, padding_value: Tuple[int, int, int, int], padding_color: Tuple = (0, 0, 0)) -> np.ndarray: padded_img = cv2.copyMakeBorder(img, padding_value[0], padding_value[1], padding_value[2], padding_value[3], cv2.BORDER_CONSTANT, value=padding_color) return padded_img img = cv2.imread('xxx.jpg') # padding_value: (top, bottom, left, right) # 对该图像上下各补充10像素的白边 padded_img = padding_img(img, (10, 10, 0, 0), (255, 255, 255))
将该图像上传到在线demo中,查看能否复现问题?
Python: 3.8
onnxruntime: 1.14.1
rapidocr_onnxruntime: 1.2.5
如能复现,尝试调节在线demo中的三个参数,注意控制变量调节参数
box_thresh
参数,该参数用来控制文本检测部分检测所得框是文本的概率。个别字丢失,一般是单独的字丢失,很大可能是文本检测模型没有检测到该独立的文字。尝试调低box_thresh
值,查看是否可以检出丢失的文字。(没有找到合适的例子)box_thresh
,调节text_score
参数。该参数是控制识别文本结果正确的概率。尝试调低text_score
值,查看是否可以识别出丢失的文字。box_thresh
和text_score
两个参数,调节unclip_ratio
参数。该参数用来控制文本检测所得文本框的大小。尝试调大unclip_ratio
值,查看是否可以识别出丢失的文字。如果调节三个参数也不能解决问题,只能尝试server
版的文本检测和文本识别模型了。
server
版的文本检测模型,查看是否解决问题server
版的文本识别模型,查看是否解决问题尝试更换不同版本模型,来查看效果。具体可在在线demo中尝试
v2
、v3
和server
版尝试v2
、v3
和server
版尝试en_PP-OCRv3_rec_infer.onnx
和en_number_mobile_v2.0_rec_infer.onnx
)Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。