说明:
本文介绍如何使用百度飞浆的PaddleHub,使用训练好的模型进行一个识别图片中的文字(正常字体)。
1、安装部署:
conda create -n PaddleHub python=3.7
conda activate PaddleHub
# 安装模块
pip install paddlepaddle==2.0.0
pip install paddlehub==2.0.0
pip install pyclipper
pip install shapely
2、如果报错 OSError: [WinError 126] 找不到指定的模块。
:
from shapely.geos import lgeos OSError: [WinError 126] 找不到指定的模块。
去下面地址,下载自己对应的版本,安装即可解决。
3、识别代码:
python识别代码
import paddlehub as hub
# PaddleHub一键OCR中文识别(超轻量8.1M模型,火爆
# https://aistudio.baidu.com/aistudio/projectdetail/507159?channelType=0&channel=0
# 加载移动端预训练模型
ocr = hub.Module(name="chinese_ocr_db_crnn_mobile")
# 服务端可以加载大模型,效果更好
# ocr = hub.Module(name="chinese_ocr_db_crnn_server")
import cv2
# 读取测试文件夹test.txt中的照片路径
# test_img_path = ['20210522205411.png']
# test_img_path = [r'D:\_00_workspaces\Machine_Learning\00_generate_captcha\20210522205411.png']
test_img_path = [r'395bfdb4f857460f82c8b16d90356227.jpg']
np_images =[cv2.imread(image_path) for image_path in test_img_path]
results = ocr.recognize_text(
images=np_images, # 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
use_gpu=False, # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
# use_gpu=True, # 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
output_dir='ocr_result', # 图片的保存路径,默认设为 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'])
参考文档: