电商网站设计公司可去亿企邦,wordpress页脚二维码,怀化市网站建设,wordpress单设备登录最近在项目中遇到了 OCR 的需求#xff0c;希望能够实现高效而准确的文字识别。由于预算限制#xff0c;我并未选择商业付费方案#xff0c;而是优先尝试了开源工具。一开始#xff0c;我测试了 GOT-OCR2.0#xff0c;但由于我的 Mac 配置较低#xff0c;不支持 GPU 运算…最近在项目中遇到了 OCR 的需求希望能够实现高效而准确的文字识别。由于预算限制我并未选择商业付费方案而是优先尝试了开源工具。一开始我测试了 GOT-OCR2.0但由于我的 Mac 配置较低不支持 GPU 运算最终未能成功配置。于是我转而尝试了百度飞桨AI的 PaddleOCR。经过实际测试不仅配置过程相对顺利其识别精度也显著优于 GOT-OCR2.0最终选择了 PaddleOCR 作为解决方案。以下是我的配置与使用记录。
PaddleOCR 在线测试地址
PaddleOCR 提供了在线测试平台方便快速验证模型效果 https://aistudio.baidu.com/community/app/91660/webUI?sourceappMineRecent
同一张图片在高效模型与高精度模型的推理结果之间可能存在差异 高效率版本
高精度版本
接下来我将分别介绍高效版本与高精度版本的安装与运行。 PaddleOCR 环境配置
PaddleOCR 建议使用 PaddleX 进行产线集成其支持快速实现 OCR 的核心模块
文本检测模块文本识别模块
1. 安装 PaddlePaddle
根据硬件环境选择 CPU 或 GPU 版本安装
# CPU 版本
python -m pip install paddlepaddle3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/# GPU 版本根据 CUDA 版本选择
python -m pip install paddlepaddle-gpu3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ # CUDA 11.8
python -m pip install paddlepaddle-gpu3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/ # CUDA 12.32. 安装 PaddleX
PaddleX 是基于飞桨的低代码开发工具支持从模型训练到推理的全流程。安装命令如下
pip install paddlex3.0.0b2基于 Docker 的运行环境搭建
以下是基于 Docker 构建的 PaddleOCR 环境适合本地调试与部署
1. Dockerfile 配置
FROM python:3.10-slimRUN apt-get update apt-get install -y \git \libgl1-mesa-glx \libglib2.0-0 \ccache \ rm -rf /var/lib/apt/lists/*RUN pip install --no-cache-dir --upgrade pip \ pip install paddlepaddle3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ \ pip install paddlex3.0.0b2# RUN pip install --no-cache-dir -r requirements.txtWORKDIR /appCOPY . /appCMD [tail, -f, /dev/null]2. 测试代码
创建 test.py验证 OCR 推理流程
from paddlex import create_pipeline
import cv2pipeline create_pipeline(pipelineOCR)img_name img1# 兼容 webp 格式的图片进行输入
#image cv2.imread(f../tb-img/{img_name}.webp)
#output pipeline.predict(image)output pipeline.predict(f../tb-img/{img_name}.jpg)
for res in output:res.print()res.save_to_img(f./output/{img_name}.jpg)res.save_to_json(f./output/{img_name}.json)高效率版本(PP-OCRv4_mobile)推理结果
首次运行普通版本时PaddleX 将自动下载默认的模型文件并保存至 /root/.paddlex/official_models 目录。 首次运行时 paddlex 会自动下载OCR产线的 文本检测模块(PP-OCRv4_mobile_det) 和 文本识别模块(PP-OCRv4_mobile_rec) 两个模型并自动保存到 /root/.paddlex/official_models 目录下。
高精度版本的推理结果如下 高精度版本(PP-OCRv4_server)模型配置
PaddleOCR 支持高精度版本模型需手动下载对应模型文件
PP-OCRv4_server_det文本检测模块PP-OCRv4_server_rec文本识别模块
将下载的模型文件解压到 /root/.paddlex/official_models/ 目录下 配置高精度版本
生成并修改 OCR.yaml 文件
#生成配置文件到当前目录
paddlex --get_pipeline_config OCR#若希望自定义保存位置可执行如下命令假设自定义保存位置为./my_path
#paddlex --get_pipeline_config OCR --save_path ./my_path编辑配置文件 OCR.yaml
Global:pipeline_name: OCRinput: https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.pngPipeline:# text_det_model: PP-OCRv4_mobile_det# text_rec_model: PP-OCRv4_mobile_rectext_det_model: PP-OCRv4_server_dettext_rec_model: PP-OCRv4_server_rectext_rec_batch_size: 1在 test.py 中指定配置文件路径
from paddlex import create_pipeline#指定配置文件
pipeline create_pipeline(pipeline../OCR.yaml,devicecpu)img_name img1
output pipeline.predict(f../tb-img/{img_name}.jpg)
for res in output:res.print()res.save_to_img(f./output/{img_name}.jpg)res.save_to_json(f./output/{img_name}.json)高精度推理结果
高精度版本的推理结果如下 通过以上步骤可以快速集成 PaddleOCR 并根据需求选择高效或高精度版本。后续我将分享更多关于 PaddleOCR 的 优化 和 自定义 模型训练 使用方法敬请期待