https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.5/doc/doc_ch/quickstart.md#212
paddle安装
PaddlePaddle 2.2.2
Anaconda下python3.8
CUDA-10.1
cudnn-10.2-v7.6.5
GPU版本安装
python -m pip install paddlepaddle-gpu==2.2.2 -i https://mirror.baidu.com/pypi/simple
测试
import paddle
paddle.utils.run_check()
# 运行成功
paddleocr安装
pip install “paddleocr>=2.0.1” # 推荐使用2.0.1+版本
亲测可以运行的配置
import time
import os, sys
import matplotlib.pyplot as plt
from PIL import Image
from paddleocr import PaddleOCR, draw_ocr
# 系统路径加入PaddleOCR文件夹, 解决找不到模块问题
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) # 根据所在文件相对PaddleOCR文件夹层次添加
folder_dir = os.path.dirname(os.path.realpath(__file__)) # 当前文件所在文件夹目录
start = time.time() # 时间戳, 秒
print("-------------- 识别开始 ---------------")
paddleOCR_dir = os.path.join(os.getcwd(), "PaddleOCR")
os.chdir(paddleOCR_dir) # 切换路径,保证设置参数文件的相对路径正确
# print(os.getcwd())
# --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" # 分类模型所在文件夹
cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/"
# --det_model_dir="./inference/ch_ppocr_mobile_v2.0_det_infer/" # 检测模型所在文件夹
det_model_dir = "./inference/ch_ppocr_mobile_v2.0_det_infer/"
# --rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/" # 识别模型所在文件夹
rec_model_dir="./inference/ch_ppocr_mobile_v2.0_rec_infer/"
# --use_angle_cls=True --use_space_char=True --use_gpu=False
use_angle_cls = False # 是否加载分类模型
use_space_char = True # 是否识别空格
use_gpu = True # 是否使用GPU,若想利用gpu,设置为True
cls = False # 前向时是否启动分类
# 实例化PaddleOCR识别类
ocr = PaddleOCR(cls_model_dir=cls_model_dir, det_model_dir=det_model_dir, rec_model_dir=rec_model_dir,
use_angle_cls=use_angle_cls, use_gpu=use_gpu ) # need to run only once to download and load model into memory
# img_path = '/11.jpg' # 图片直接放在同级目录
local_path = os.path.join(folder_dir, 'tmp_in') # 若没有tmp_in文件夹,自己建个
img_path = local_path + '\card.png' # 图片名
result = ocr.ocr(img_path, cls=False) # 最终结果,识别方框4个点坐标,识别文本,置信度组成的列表
# print(result)
txts = [result[i][1][0] for i in range(len(result))] # 识别的文本列表
scores = [result[i][1][1] for i in range(len(result))] # 识别的参数
print(txts)
print(scores)
# 保存识别对比图
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores) # font_path不是必须, font_path='./doc/fonts/simfang.ttf'
im_show = Image.fromarray(im_show)
save_path = os.path.join(folder_dir, 'tmp_out',img_path.split("\")[-1]) # 保存, 若没有tmp_out文件夹,自己建个
print(save_path)
im_show.save(save_path)
end = time.time()
cost_time = round(end - start, 2)
print("-------------- 识别结束,耗时 "+ str(cost_time) +"秒 ---------------")
参考文章
- https://blog.csdn.net/weixin_43271235/article/details/120201521
- https://zhuanlan.zhihu.com/p/479547189
- https://blog.csdn.net/weixin_43220532/article/details/112472706
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)