paddleocr识别使用

paddleocr识别使用
版本:2.6
paddleocr识别使用_第1张图片

文件必要:
tools
ppocr
weights 自定义放置训练后,并转换为推理的模型文件
test_imgs 自定义测试图片

下面是基本使用代码

import cv2
import numpy as np
import tools.infer.utility as utility
from tools.infer.predict_system import TextSystem, predict_rec


# OCR
class Baidu_PP_OCR:
    def __init__(self):

        args = utility.parse_args()

        # 推理模型 det检测模型
        args.det_model_dir = "./weights/det/ch_db_mv3_inference/"

        # 推理模型 rec识别模型
        args.rec_model_dir = "./weights/rec/ch_PP-OCRv2_rec_inference/Student"

        # 是否使用方向
        args.use_angle_cls = False
        # 是否使用GPU
        args.use_gpu = True

        # 二选一
        # 1.检测加识别
        self.text_sys = TextSystem(args)
        # 
        # # 2.单独识别
        # self.text_recognizer = predict_rec.TextRecognizer(args)

        # 热身
        if 1:
            print('Warm up ocr model')
            img = np.random.uniform(0, 255, [640, 640, 3]).astype(np.uint8)
            for i in range(10):
                res = self.text_sys(img)

    def test_detect_ocr(self):
        """
        测试检测+识别
        """
        image_dir = "./test_imgs/pp.png"
        img = cv2.imread(image_dir)

        dt_boxes = self.text_sys(img)
        # print(dt_boxes)

        # det检测位置 rec识别字符 csl旋转角度
        print(dt_boxes[2])

        # 识别结果
        print(dt_boxes[1][0][0])
        # 置信度
        print(dt_boxes[1][0][1])

        # print(dt_boxes[0])

        # dtype=float32 转 整数
        pa = dt_boxes[0][0].astype(int)

        # 画多边形
        # 顺时针,点位置
        cv2.polylines(img, [pa], True, (0, 255, 0), 5)
        # 保存
        cv2.imwrite('./output.jpg', img)

    def test_ocr_rec(self):
        """
        测试识别功能
        """
        image_dir = "./test_imgs/test_123.jpg"
        img = cv2.imread(image_dir)
        res = self.text_recognizer([img])
        # 如果识别有结果
        if len(res) > 0:
            # 识别结果, 置信度
            car_num, conf = res[0][0]
            print(car_num, conf)


ocr = Baidu_PP_OCR()
# 检测 + 识别
ocr.test_detect_ocr()
# # 单个 识别功能
# ocr.test_ocr_rec()

你可能感兴趣的:(计算机视觉项目,python,numpy,tensorflow)