PaddleHub OCR实现文字识别

PaddleHub OCR实现文字识别

环境

paddlehub==1.8.3
paddleocr==1.0.1
paddlepaddle==1.8.5
Shapely==1.7.1

pip安装

pip install paddlehub --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple 
pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple 
pip install pyclipper -i https://pypi.tuna.tsinghua.edu.cn/simple 

实现代码

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import argparse
import os
import paddlehub as hub
import cv2

argument_parser = argparse.ArgumentParser()
# dataset目录,存放输入图像
argument_parser.add_argument('-d', '--dataset', required=True, help='path of images')
# output目录,输出结果的目录
argument_parser.add_argument('-o', '--output', required=True, help='path of result')
args = vars(argument_parser.parse_args())
path_list = [args['dataset'] + '/' + path for path in os.listdir(args['dataset'])]
print(path_list)

# 加载移动端预训练模型
ocr = hub.Module(name="chinese_ocr_db_crnn_mobile")

np_images =[cv2.imread(image_path) for image_path in path_list]

results = ocr.recognize_text(
                    images=np_images,         # 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
                    use_gpu=False,            # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
                    output_dir=args['output'],  # 图片的保存路径,默认设为 ocr_result;
                    visualization=True,       # 是否将识别结果保存为图片文件;
                    box_thresh=0.5,           # 检测文本框置信度的阈值;
                    text_thresh=0.5)          # 识别中文文本置信度的阈值;

for result in results:
    data = result['data']
    save_path = result['save_path']
    for infomation in data:
        print('text: ', infomation['text'], '\nconfidence: ', infomation['confidence'], '\ntext_box_position: ', infomation['text_box_position'])

命令行参数

--dataset目录为./dataset,输入图片存放目录,--output目录为./result,输出图片存放目录

python .\OCR.py --dataset ./dataset --output ./result

测试结果

在这里插入图片描述
在这里插入图片描述

参考

PaddleHub一键OCR中文识别(超轻量8.1M模型,火爆)

最后

  • 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!

猜你喜欢

转载自blog.csdn.net/qq_44486439/article/details/109698115