百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

这篇具有很好参考价值的文章主要介绍了百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)推荐

在项目中,模型的推理性能直接影响项目成本,因此我们期望一个训练好的模型的模型可以拥有更快的推理速度。直接基于训练引擎进行预测,模型中包含与训练相关的算子,因此效率一般较低;而且需要定义模型,难以与训练代码解耦。Paddle Inference应运而生。它是飞桨的原生推理库,作用于服务器端和云端,提供高性能的推理能力。由于能力直接基于飞桨的训练算子,因此Paddle Inference 可以通用支持飞桨训练出的所有模型。

考虑到大家的使用场景差异很大,Paddle Inference针对不同平台不同的应用场景进行了深度的适配优化,做到高吞吐、低时延,保证了飞桨模型在服务器端即训即用,快速部署。

本章主要介绍基于Paddle Inference的PP-OCRv3预测推理过程,更多关于Paddle Inference的介绍可以参考:Paddle Inference 介绍。

在基于Paddle Inference进行模型推理时,一般有以下几个步骤。

Paddle Inference 模型推理流程
分别介绍文字检测、方向分类器和文字识别3个模型,基于Paddle Inference的推理过程。

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

Paddle Inference 的 Python 离线推理

离线推理,即在特定机器上部署的代码只能在这台机器上使用,无法通过其他机器进行访问

使用whl包预测推理

“WHL”是“WHeeL”的英文缩写,意思是“车轮” ,whl 格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件
为了更加方便快速体验OCR文本检测与识别模型,PaddleOCR提供了基于Paddle Inference预测引擎的whl包,方便您一键安装,体验PaddleOCR。

安装whl包

pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple  --verbose

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

使用whl包预测推理

paddleocr whl包会自动下载PP-OCRv2超轻量模型作为默认模型,也支持自定义模型路径、预测配置等参数,参数名称与基于Paddle Inference的python预测中参数相同。

单独执行检测

import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
from paddleocr import PaddleOCR, draw_ocr

ocr = PaddleOCR(use_gpu=False)  # need to run only once to download and load model into memory
img_path = './images/006.jpg'
result = ocr.ocr(img_path, rec=False)
for line in result:
    print(line)

# 显示结果
from PIL import Image

image = Image.open(img_path).convert('RGB')
im_show = draw_ocr(image, result, txts=None, scores=None, font_path='./fonts/simfang.ttf')
plt.figure(figsize=(15, 8))
plt.imshow(im_show)
plt.show()

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

单独执行识别

可以指定det=False,仅运行单独的识别模块。

import matplotlib.pyplot as plt
from paddleocr import PaddleOCR, draw_ocr

ocr = PaddleOCR(use_gpu=False)  # need to run only once to download and load model into memory
img_path = './images/006.jpg'
result = ocr.ocr(img_path, det=False)
for line in result:
    print(line)

单独执行方向分类器

可以指定det=False, rec=False, cls=True,仅运行方向分类器。

import cv2
import matplotlib.pyplot as plt
from paddleocr import PaddleOCR, draw_ocr

ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)  # need to run only once to download and load model into memory
img_path = './images/006.jpg'
result = ocr.ocr(img_path, det=False, rec=False, cls=True)
for line in result:
    print(line)

img = cv2.imread(img_path)
plt.imshow(img[...,::-1])
plt.show()

全流程体验(检测+方向分类器+识别)

源码地址:https://gitee.com/VipSoft/Paddle/ 里的 PaddleOCR 目录

import cv2
import os
import matplotlib.pyplot as plt
from paddleocr import PaddleOCR, draw_ocr

# PaddleOCR目前支持中英文、英文、法语、德语、韩语、日语,可以通过修改lang参数进行切换
# 参数依次为`ch`, `en`, `french`, `german`, `korean`, `japan`。
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False)  # need to run only once to download and load model into memory
save_results = []
img_path = 'images/003.jpg'
save_dir = 'ocr_result'
result = ocr.ocr(img_path, cls=True)[0]
# 将结果写入文件
with open(
        os.path.join(save_dir, "003_result.txt"),
        'w',
        encoding='utf-8') as f:
    for line in result:
        f.writelines(str(line)+'\n')
        print(line)

# 显示结果
from PIL import Image

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='./fonts/simfang.ttf')
cv2.imwrite(os.path.join(save_dir, "003_result.jpg"), im_show)
plt.figure(figsize=(15, 8))
plt.imshow(im_show)
plt.show()

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

使用源码推理

下载源码,并解压:https://gitee.com/paddlepaddle/PaddleOCR/tree/release/2.6
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

安装依赖包

https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/requirements.txt
将文件 requirements.txt 保存到运行目录下如 D:\OpenSource\PaddlePaddle\PaddleOCR-release-2.6

shapely
scikit-image
imgaug
pyclipper
lmdb
tqdm
numpy
visualdl
rapidfuzz
opencv-python==4.6.0.66
opencv-contrib-python==4.6.0.66
cython
lxml
premailer
openpyxl
attrdict
Polygon3
lanms-neo==1.0.2
PyMuPDF<1.21.0

安装运行所需要的包

D:\OpenSource\PaddlePaddle\PaddleOCR-release-2.6>pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple  --verbose
D:\OpenSource\PaddlePaddle\PaddleOCR-release-2.6>pip install paddlenlp -i https://pypi.tuna.tsinghua.edu.cn/simple  --verbose

文字检测

PaddleOCR中,在基于文字检测模型进行推理时,需要通过参数image_dir指定单张图像或者图像集合的路径、参数det_model_dir, 指定检测的 inference 模型路径。
百度OCR源码中提供了样例图片:https://gitee.com/paddlepaddle/PaddleOCR/tree/release/2.6/doc/imgs

准备数据和环境

import cv2
import matplotlib.pyplot as plt
import numpy as np
import os

# 选择2张图像可视化
img1 = cv2.imread("doc/imgs/00006737.jpg")
img2 = cv2.imread("doc/imgs/00056221.jpg")
plt.figure(figsize=(15, 6))
plt.subplot(1, 2, 1)  # 定义 1行2列
plt.imshow(img1[:, :, ::-1])  # 第1列 放 img1 ,::-1 => axis 3 倒序
plt.subplot(1, 2, 2)  # 定义 1行2列
plt.imshow(img2[:, :, ::-1])  # 第2列 放 img1
plt.show()

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

准备推理模型

下载模型:https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv3_det_infer.tar
解压放至:inference 目录
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

inference/ch_PP-OCRv3_det_infer
├── [2.2M]  inference.pdiparams       # 模型参数
├── [ 23K]  inference.pdiparams.info
└── [845K]  inference.pdmodel         # 模型结构

如果您希望导出自己训练得到的模型,使用Paddle Inference部署,那么可以使用下面的命令将预训练模型使用动转静的方法,转化为推理模型。

# 参考代码
# https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/tools/export_model.py
# 下载预训练模型(V2)
wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_distill_train.tar && tar -xf ch_PP-OCRv2_det_distill_train.tar && rm ch_PP-OCRv2_det_distill_train.tar

# 导出推理模型(V2)
python tools/export_model.py -c configs/det/ch_PP-OCRv2/ch_PP-OCRv2_det_cml.yml \
    -o Global.pretrained_model="ch_PP-OCRv2_det_distill_train/best_accuracy" \
    Global.save_inference_dir="./my_model"

文字检测模型推理

CMD 进到代码目录如图
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理
使用V3模型预测

# 预测 
python tools/infer/predict_det.py --image_dir="./doc/imgs/00018069.jpg" --det_model_dir="./inference/ch_PP-OCRv3_det_infer" --use_gpu=False

输出
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

  • 定义参数设置
    PaddleOCR-release-2.6\tools\infer\utility.py
    更多参数说明:doc\doc_ch\inference_args.md
  • 文字检测
    PaddleOCR-release-2.6\tools\infer\predict_det.py
    部分代码说明:https://aistudio.baidu.com/aistudio/projectdetail/6180758

方向分类器模型推理

//TODO 现在还不知道这玩意具体是用来干嘛的。
将角度不正确的文字处理成正常方向的
https://www.paddlepaddle.org.cn/modelsDetail?modelId=17
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理
下载模型:https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
解压放至:inference 目录

# 预测 
python tools/infer/predict_cls.py \
    --image_dir="./doc/imgs_words/ch/word_1.jpg" \
    --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer" \
    --use_gpu=False

方向分类器的具体实现代码: PaddleOCR-release-2.6\tools\infer\predict_cls.py
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

文字识别

https://www.paddlepaddle.org.cn/modelsDetail?modelId=17
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理
下载模型:https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar
解压放至:inference 目录

# 预测 
python tools/infer/predict_rec.py \
    --image_dir="./doc/imgs_words/ch/word_4.jpg" \
    --rec_model_dir="./inference/ch_PP-OCRv3_rec_infer" \
    --use_gpu=False

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理
文字识别的具体代码:PaddleOCR-release-2.6\tools\infer\predict_rec.py

系统串联预测推理

在执行PP-OCR的系统推理时,需要通过参数image_dir指定单张图像或者图像集合的路径、参数det_model_dir, cls_model_dirrec_model_dir 分别指定检测、方向分类和识别的 inference 模型路径。参数 use_angle_cls 用于控制是否启用方向分类模型。use_mp 表示是否使用多进程。total_process_num 表示在使用多进程时的进程数。
以图像文件 ./doc/imgs/00018069.jpg 为例,预测的原始图像如下。
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

# 预测 
python tools/infer/predict_system.py \
    --image_dir="./doc/imgs/00018069.jpg" \
    --det_model_dir="./inference/ch_PP-OCRv3_det_infer/" \
    --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" \
    --rec_model_dir="./inference/ch_PP-OCRv3_rec_infer/" \
    --use_angle_cls=True

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理
可视化识别结果默认保存到 ./inference_results 文件夹里面。
在图象中可视化出了检测框和识别结果,在上面的notebook中也打印出了具体的识别文件以及文件读取路径信息。

如果希望保存裁剪后的识别结果,可以将save_crop_res参数设置为True,最终结果保存在output目录下,其中部分裁剪后图像如下所示。保存的结果可以用于后续的识别模型标注与训练。

python tools/infer/predict_system.py \
    --image_dir="./doc/imgs/00018069.jpg" \
    --det_model_dir="./inference/ch_PP-OCRv3_det_infer/" \
    --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" \
    --rec_model_dir="./inference/ch_PP-OCRv3_rec_infer/" \
    --use_angle_cls=True \
    --save_crop_res=True

百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理

核心代码介绍

串联预测通过TextSystem类进行实现

# 参考代码:https://github.com/PaddlePaddle/PaddleOCR/blob/release%2F2.4/tools/infer/predict_system.py
from tools.infer.utility import draw_ocr_box_txt, get_rotate_crop_image
from ppocr.utils.utility import get_image_file_list

class TextSystem(object):
    # 初始化函数
    def __init__(self, args):
        self.args = args
  		# 如果不希望显示log,可以将show_log设置为False
        if not args.show_log:
            logger.setLevel(logging.INFO)
        # 定义文本检测模型预测引擎
        self.text_detector = TextDetector(args)
        # 定义文本识别模型预测引擎
        self.text_recognizer = TextRecognizer(args)
        # 是否使用方向分类器
        self.use_angle_cls = args.use_angle_cls
        # 得分阈值,根据该阈值判断检测与识别结果是否需要进行可视化或者返回
        self.drop_score = args.drop_score
        # 定义方向分类器预测引擎
        if self.use_angle_cls:
            self.text_classifier = TextClassifier(args)
	
  	# 保存文本检测结果图像
    def draw_crop_rec_res(self, output_dir, img_crop_list, rec_res):
        os.makedirs(output_dir, exist_ok=True)
        bbox_num = len(img_crop_list)
        for bno in range(bbox_num):
            cv2.imwrite(
                os.path.join(output_dir,
                             f"mg_crop_{bno+self.crop_image_res_index}.jpg"),
                img_crop_list[bno])
            logger.debug(f"{bno}, {rec_res[bno]}")
        self.crop_image_res_index += bbox_num
	
    # 核心预测函数
    def __call__(self, img, cls=True):
        ori_im = img.copy()
        # 获取检测文本检测结果
        dt_boxes, elapse = self.text_detector(img)
        logger.debug("dt_boxes num : {}, elapse : {}".format(
            len(dt_boxes), elapse))
        if dt_boxes is None:
            return None, None
        img_crop_list = []
        # 对检测框进行排序,顺序为:优先从上到下,其次从左到右
        dt_boxes = sorted_boxes(dt_boxes)
        # 对检测结果进行透视变换与校正 -- 把四边型,变成矩形框
        for bno in range(len(dt_boxes)):
            tmp_box = copy.deepcopy(dt_boxes[bno])
            img_crop = get_rotate_crop_image(ori_im, tmp_box)
            img_crop_list.append(img_crop)
        # 使用方向分类器对检测结果进行转正
        if self.use_angle_cls and cls:
            img_crop_list, angle_list, elapse = self.text_classifier(
                img_crop_list)
            logger.debug("cls num  : {}, elapse : {}".format(
                len(img_crop_list), elapse))
        # 获取文本识别结果
        rec_res, elapse = self.text_recognizer(img_crop_list)
        logger.debug("rec_res num  : {}, elapse : {}".format(
            len(rec_res), elapse))
        # 保存经过校正之后的文本检测图像
        if self.args.save_crop_res:
            self.draw_crop_rec_res(self.args.crop_res_save_dir, img_crop_list,
                                   rec_res)
        filter_boxes, filter_rec_res = [], []
        # 根据识别得分的阈值对结果进行过滤,如果得分小于阈值,就过滤掉
        for box, rec_reuslt in zip(dt_boxes, rec_res):
            text, score = rec_reuslt
            if score >= self.drop_score:
                filter_boxes.append(box)
                filter_rec_res.append(rec_reuslt)
        return filter_boxes, filter_rec_res

def sorted_boxes(dt_boxes):
    # 对检测框进行排序:优先从上到下,其次从左到右
    num_boxes = dt_boxes.shape[0]
    sorted_boxes = sorted(dt_boxes, key=lambda x: (x[0][1], x[0][0]))
    _boxes = list(sorted_boxes)

    for i in range(num_boxes - 1):
        if abs(_boxes[i + 1][0][1] - _boxes[i][0][1]) < 10 and \
                (_boxes[i + 1][0][0] < _boxes[i][0][0]):
            tmp = _boxes[i]
            _boxes[i] = _boxes[i + 1]
            _boxes[i + 1] = tmp
    return _boxes

args = parse_args()
args.cls_model_dir = "./inference/ch_ppocr_mobile_v2.0_cls_infer"
args.det_model_dir="./inference/ch_PP-OCRv2_det_infer/"
args.rec_model_dir="./inference/ch_PP-OCRv2_rec_infer/"
args.image_dir = "./doc/imgs/00018069.jpg"
args.use_angle_cls=True
args.use_gpu=True

image_file_list = get_image_file_list(args.image_dir)
image_file_list = image_file_list[args.process_id::args.total_process_num]
text_sys = TextSystem(args)
is_visualize = True
font_path = args.vis_font_path
drop_score = args.drop_score

total_time = 0
cpu_mem, gpu_mem, gpu_util = 0, 0, 0
_st = time.time()
count = 0
for idx, image_file in enumerate(image_file_list):
    img = cv2.imread(image_file)
    if img is None:
        logger.debug("error in loading image:{}".format(image_file))
        continue
    starttime = time.time()
    dt_boxes, rec_res = text_sys(img)
    elapse = time.time() - starttime
    total_time += elapse

    logger.debug(
        str(idx) + "  Predict time of %s: %.3fs" % (image_file, elapse))
    for text, score in rec_res:
        logger.debug("{}, {:.3f}".format(text, score))

    if is_visualize:
        image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
        boxes = dt_boxes
        txts = [rec_res[i][0] for i in range(len(rec_res))]
        scores = [rec_res[i][1] for i in range(len(rec_res))]

        draw_img = draw_ocr_box_txt(
            image,
            boxes,
            txts,
            scores,
            drop_score=drop_score,
            font_path=font_path)
        draw_img_save_dir = args.draw_img_save_dir
        os.makedirs(draw_img_save_dir, exist_ok=True)
        cv2.imwrite(
            os.path.join(draw_img_save_dir, os.path.basename(image_file)),
            draw_img[:, :, ::-1])
        logger.debug("The visualized image saved in {}".format(
            os.path.join(draw_img_save_dir, os.path.basename(image_file))))

logger.info("The predict total time is {}".format(time.time() - _st))

plt.figure(figsize=(8, 8))
plt.imshow(image)
plt.show()
plt.figure(figsize=(16, 8))
plt.imshow(draw_img)
plt.show()

参考引用

PP-OCRv3文字检测识别系统
PaddleOCR Github
PP-OCRv2预测部署实战 代码中 v2 改 v3文章来源地址https://www.toymoban.com/news/detail-450109.html

到了这里,关于百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用

    百度飞桨(PaddlePaddle)安装 OCR 文字检测(Differentiable Binarization --- DB) 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署) 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于

    2024年02月04日
    浏览(42)
  • PP-OCRv3 文本识别模型转ncnn模型

    1、下载PP-OCRv3        https://github.com/PaddlePaddle/PaddleOCR  2、将paddle模型转换成onnx模型 (创建虚拟环境):paddle base环境(使用onnx-sim进行简化) (1) 转onnx命令(paddle环境):  (2)利用onnx-sim对onnx模型进行简化和优化(base环境) 命令: 3、将onnx模型转为ncnn模型         a、

    2024年02月12日
    浏览(24)
  • 【论文简介】PP-OCRv1-v4中文字符识别论文概述

    相关论文 论文打包下载 - 提取码:0822 :https://pan.baidu.com/s/1WDXf-erVIPWxmoJRVX3_XA?pwd=0822 2009.PP-OCR: A Practical Ultra Lightweight OCR System 2109.PP-OCRv2: Bag of Tricks for Ultra Lightweight OCR System 2206.PP-OCRv3: More Attempts for the Improvement of Ultra Lightweight OCR System 2308. PP-OCRv4 :目前代码已发布(2023.08.07)

    2024年02月13日
    浏览(29)
  • PP-OCRv4-server-det模型训练

    PP-OCRv4-server-det项目地址https://aistudio.baidu.com/projectdetail/paddlex/6792800 1、数据校验 2、 模型训练 3、评估测试   4、模型部署  

    2024年02月06日
    浏览(32)
  • 百度飞桨(PaddlePaddle)-数字识别

    手写数字识别任务 用于对 0 ~ 9 的十类数字进行分类,即输入手写数字的图片,可识别出这个图片中的数字。 python -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple python -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple 官网代码少了 plt.show() # 要加上这句,才

    2024年02月03日
    浏览(31)
  • C# Onnx 百度飞桨开源PP-YOLOE-Plus目标检测

    目录 效果 模型信息 项目 代码  下载 C# Onnx 百度飞桨开源PP-YOLOE-Plus目标检测 Inputs ------------------------- name:image tensor:Float[1, 3, 640, 640] name:scale_factor tensor:Float[1, 2] --------------------------------------------------------------- Outputs ------------------------- name:multiclass_nms3_0.tmp_0 tensor:Fl

    2024年02月04日
    浏览(29)
  • 基于百度飞桨PaddleOCR的图片文字识别

    PaddleOCR项目源码:https://github.com/PaddlePaddle/PaddleOCR 飞桨开源文字识别模型套件PaddleOCR,目标是打造丰富、领先、实用的文本识别模型/工具库。最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别;支持倾斜、竖排等多种方向文字识别;支持GPU、CPU预测;用户既可

    2024年02月10日
    浏览(32)
  • 百度飞桨(PaddlePaddle)- 张量(Tensor)

    张量(Tensor)、标量(scalar)、向量(vector)、矩阵(matrix) 飞桨 使用张量(Tensor) 来表示神经网络中传递的数据 ,Tensor 可以理解为多维数组,类似于 Numpy 数组(ndarray) 的概念。与 Numpy 数组相比,Tensor 除了支持运行在 CPU 上,还支持运行在 GPU 及各种 AI 芯片上,以实现

    2024年02月03日
    浏览(36)
  • 使用pycharm终端安装百度飞桨paddlepaddle库的方法

    百度飞桨的公开文件非常少,主要靠AIStudio的说明文档,但是该文档没有给出在pycharm上使用的方法,虽然AIStudio提供了免费编程的云资源,甚至也有GPU免费资源,但是经常电脑上是连接不上的。我的建议是用pycharm编写程序,程序没问题时或者AIStudio能够进行程序运行时,再导

    2023年04月10日
    浏览(30)
  • 百度飞桨PP-YOLOE ONNX 在LabVIEW中的部署推理(含源码)

    目录 前言 一、什么是PP-YOLO 二、环境搭建 1、部署本项目时所用环境 2、LabVIEW工具包下载及安装 三、模型的获取与转化 1、安装paddle 2、安装依赖的库 3、安装pycocotools 4、导出onnx模型 (1)导出推理模型 (2) 安装paddle2onnx (3) 转换成onnx格式 四、在LabVIEW实现PP-YOLOE的部署推

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包