使用hub部署PaddleOCR
使用hub部署PaddleOCR
概述
目前有一些处理证件照片、资质照片的业务需求,已经尝试过
llava-llama3 与llama3.2-vision,表现都不佳,要么不能正确 ocr 出文字,要么在胡言乱语。当前时间(2024-11-19)注意文章时效!
对比了一众开源 OCR 的在线体验服务后,发现 PaddleOCR 的能力尤为突出。即便图片存在水印、字体模糊,仍能保持极高的准确度。准备在项目部署一套 ocr 识别,搭配 ai 再处理处理图片内容。
对比参考的大神,同样使用了 docker 运行在 cpu 环境,这里更新了版本,如下:
-
paddlepaddle 3.0.0b2测试版 -
paddlehub 2.4.0 -
PaddleOCR gitee 项目地址 (main@7bbda2bcd27811b961d0bd0cf665c548c7d63cf2)
基本流程
流程命令
参考文档的流程已经足够准确,这里概述一下
下载、运行
paddlepaddle 镜像,并进入容器终端, 版本参考: https://hub.docker.com/r/paddlepaddle/paddle/tags如果有支持的 gpu,选择类似
3.0.0b2-gpu-cuda12.3-cudnn9.0-trt8.6 tag 的进行docker pull paddlepaddle/paddle:3.0.0b2
docker run -p 9997:9997 --name ppocr -it paddlepaddle/paddle:3.0.0b2 bash
安装
paddlehub:pip3 install paddlehub==2.4.0 --upgrade
下载
PaddleOCR 并安装依赖:cd /home
git clone https://gitee.com/paddlepaddle/PaddleOCR.git
cd PaddleOCR
pip3 install -r requirements.txt
下载模型:
mkdir inference
cd inference
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
wget https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/ch_ppstructure_mobile_v2.0_SLANet_infer.tar
tar xf ch_ppstructure_mobile_v2.0_SLANet_infer.tar
for i in $(ls *.tar);do tar xvf $i;done && rm -f *.tar
处理
protobuf 报错,这有两个方式(当前版本 4.25.1)- 通用降低版本解决
pip uninstall protobuf && pip install protobuf==3.20.2
- 通用设定解决
echo "export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python" >> ~/.bashrc && source ~/.bashrc
安装
ocr_system :hub install deploy/hubserving/ocr_system
配置调整
到目前为止,贴合默认配置。下面是可能会变动的配置
-
文本检测+文本方向分类+文本识别(ocr_system) 模型路径配置文件:deploy/hubserving/ocr_system/params.py -
文本检测+文本方向分类+文本识别(ocr_system) 模型运行配置文件:deploy/hubserving/ocr_system/config.json 用于修改默认端口、配置是否允许使用 gpu、配置进程数量 -
表格识别服务(structure_table)模型路径配置文件:/deploy/hubserving/structure_table/param.py 这里默认是英文表格,识别中文需要改成下载的模型路径、字典文件路径
最后就是启动服务:
容器内启动服务:
hub serving start -m ocr_system structure_table -p 9997
打包镜像启动,因为必须在
/home/PaddleOCR 下才能使用启动命令,所以可以创建一个启动脚本或者设置workdir- 使用启动脚本方式
touch /home/PaddleOCR/userStart.sh
echo -e "cd /home/PaddleOCR \nhub serving start -m ocr_system structure_table -p 9997" > /home/PaddleOCR/userStart.sh
docker commit -m="描述信息" -a="作者" ppocr ppocr:test
docker run ppocr-test ppocr:test /home/PaddleOCR/userStart.sh
- 运行时指定
workdir
docker commit -m="描述信息" -a="作者" ppocr ppocr:test
docker run ppocr-test -w/home/PaddleOCR ppocr:test hub serving start -m ocr_system structure_table -p 9997
- 使用Dockerfile
docker commit -m="描述信息" -a="作者" ppocr ppocr:test
touch Dockerfile
echo -e "FROM ppocr:test\nWORKDIR /home/PaddleOCR\nCMD hub serving start -m ocr_system structure_table -p 9997" > Dockerfile
参考:
使用hub部署PaddleOCR的更多相关文章
- 手把手0基础Centos下安装与部署paddleOcr 教程
!!!以下内容为作者原创,首发于个人博客园&掘金平台.未经原作者同意与许可,任何人.任何组织不得以任何形式转载.原创不易,如果对您的问题提供了些许帮助,希望得到您的点赞支持. 0.paddle ...
- PaddleOcr-noavx离线部署文档
PaddleOcr-noavx离线部署文档 环境与版本说明: 系统 架构 Anaconda3 PaddlePaddle PaccleOCR 银河麒麟Server V10 X86 Anaconda3-2 ...
- 【爬虫】将 Scrapy 部署到 k8s
一. 概述 因为学习了 docker 和 k8s ,不管什么项目都想使用容器化部署,一个最主要的原因是,使用容器化部署是真的方便.上一篇文章 [爬虫]从零开始使用 Scrapy 介绍了如何使用 scr ...
- Selenium WebDriver + Grid2 + RSpec之旅(二)----Grid2的配置
Selenium WebDriver + Grid2 + RSpec之旅(二) ----Grid2的配置 为什么要使用Selenium-Grid 分布式运行大规模的TestCase 能够通过一个中央节 ...
- surging 微服务引擎 1.0 正式发布
surging 是一个分布式微服务引擎,提供高性能RPC远程服务调用,服务引擎支持http.TCP.WS.Mqtt协议,采用Zookeeper.Consul作为surging服务的注册中心,集成了哈希 ...
- 浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_195 "世界上有那么多城市,城市里有那么多的酒馆,可她,却偏偏走进了我的-",这是电影<卡萨布拉卡> ...
- PaddleOCR系列(二)--hubserving & pdserving & hub install
一.各种部署方式特点及注意事项 简称 hubserving=PaddleHub Serving pdserving=PaddleHub Serving hub install =指通过paddlehu ...
- PaddleOCR(PaddleHub Serving)离线部署包制作
PaddleOCR(PaddleHub Serving)离线部署包制作 环境与版本: 系统 CPU架构 Anaconda3 PaddlePaddle PaccleOCR 银河麒麟Server V10 ...
- HVR数据复制软件部署之(一)--HUB端部署
HVR数据复制软件部署之(一)--HUB端部署 本文环境: OS: RHEL5.9 x86-64bit DB: Oracle 12.1.0.2 x86-64bit HVR:highgohvr-4.7. ...
- 利用Docker Hub上的Nginx部署Web应用
Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地 docker pull nginx 在/opt下新建文件夹API,将需 ...
随机推荐
- foobar2000 v2.1.3 汉化版(更新日期:2024.04.02)
foobar2000 v2.1.3 汉化版 -----------------------[软件截图]---------------------- -----------------------[软件 ...
- replace 和 replaceAll
replace 匹配中的第一次:replaceAll 替换所有匹配的内容: let str = 'aj123dshf12aaaaaaaaaaa3uausdjd123suas123fus12' let ...
- Vue 中的key 值的作用是什么?
使用 v-for 渲染列表的时候会使用 key 给标签一个唯一标识符 ,为了能够高效的跟新虚拟 dom : 如果没有使用 key 或者key值相同,就不能准确复用虚拟 dom :
- springboot2.X动态修改log4j2日志级别
利用springboot提供的 spring-boot-starter-actuator 包可以实现动态修改log4j2日志级别的功能 添加依赖 添加依赖包 <dependency> &l ...
- Monaco Editor 实现一个日志查看器
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:文长 前言 在 Web IDE 中,控制台中展示日志是至关 ...
- el-tree 懒加载复选框默认展开和默认选中
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 云原生周刊:在 Kubernetes 集群中使用通配符证书 | 2024.2.19
开源项目推荐 kube-fledged kube-fledged 是一个 Kubernetes Operator,用于直接在 Kubernetes 集群的工作节点上创建和管理容器映像的缓存.它允许用户 ...
- KubeSphere 社区双周报 | 4.8 深圳站 Meetup 火热报名中 | 2023.3.17-3.30
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- 记一次pip/pip3安装uwsgi报错
背景 本来是想着在centos 7.9的主机上面部署一个flask应用,采用的方式是linux+nginx+uwsgi来进行发布,其他的都没有问题,但是在使用pip安装uwsgi时报错了,安装不成功, ...
- 一文了解 Conda(包教包会,不会留言)
Conda 使用指南 Conda 是一个开源包管理和环境管理系统,能够以跨平台的方式进行软件包的安装.管理和依赖管理,特别适用于 Python 和 R 语言的环境管理.本文整理了常见 Conda 命令 ...