cnstd使用效果测试

使用参考:https://github.com/breezedeus/CnSTD/tree/master
原理参考:https://cnocr.readthedocs.io/zh/latest/intro-cnstd-cnocr.pdf
模型:
cnstd使用效果测试_第1张图片

结论:
经过测试, 长文本检测效果不错,短文本可能角度不对
cnstd使用效果测试_第2张图片

from  cnstd import  CnStd
import cv2
from cnocr import CnOcr
#文字检测模型使用的是 DBNet
std = CnStd(
    model_name='db_resnet34',
    auto_rotate_whole_image=True,
    rotated_bbox=False,
    context ='cpu',
    model_fp=None,
    model_backend='onnx',  # ['pytorch', 'onnx']
    root = r'E:\db_resnet34-pan\db_resnet34', #模型文件所在的根目录。
    use_angle_clf=False,#对于检测出的文本框,是否使用角度分类模型进行调整
    angle_clf_configs=None
)
cn_ocr = CnOcr()

image_org = cv2.imread(r'xxxx.jpg')
box_info_list = std.detect(
img_list=image_org,
resized_shape = (image_org.shape[0]//8,image_org.shape[1]//8), # 这个取值对检测结果的影响较大,可以针对自己的应用多尝试几组值,再选出最优值。例如 (512, 768), (768, 768), (768, 1024)等。
preserve_aspect_ratio = True,#
min_box_size  = 8,
box_score_thresh = 0.3,
batch_size = 20,
)#

image_list = [x['cropped_img'] for x in box_info_list['detected_texts']]
for i,image in enumerate(image_list):
    ocr_res = cn_ocr.ocr_for_single_line(image)
    print('ocr result: %s' % str(ocr_res))
    cv2.imwrite(str(i)+'.jpg', image)

你可能感兴趣的:(cnocr,cnstd)