百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS 7) 环球看热讯
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - CentOS)百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
【资料图】
Paddle Serving 是飞桨服务化部署框架,能够帮助开发者轻松实现从移动端、服务器端调用深度学习模型的远程预测服务。 Paddle Serving围绕常见的工业级深度学习模型部署场景进行设计,具备完整的在线服务能力,支持的功能包括多模型管理、模型热加载、基于Baidu-RPC的高并发低延迟响应能力、在线模型A/B实验等,并提供简单易用的Client API。Paddle Serving可以与飞桨训练框架联合使用,从而训练与远程部署之间可以无缝过度,让用户轻松实现预测服务部署,大大提升了用户深度学习模型的落地效率。
Paddle Serving服务化部署框架(PIP安装方式、Docker安装)最新wheel包合集
Paddle Serving服务化部署实战服务化部署指的是,将模型以服务的形式进行部署,其他的设备可以通过发送请求的形式去访问服务,从而获取模型服务的推理结果。服务化部署示意图如下所示。在模型部署成功后,不同用户都可以通过客户端,以发送网络请求的方式获得推理服务。基于Paddle Serving部署PP-OCRv2系统流程图
准备预测数据和部署环境数据与模型推理所用数据一致。运行Paddle Serving,需要安装Paddle Serving三个安装包:paddle-serving-server、paddle-serving-client 和 paddle-serving-app,命令如下。https://pypi.tuna.tsinghua.edu.cn/simple/
环境准备本文版本号:PaddlePaddle 2.2.2PaddleOCR 2.6
注意: Python 版本PaddlePaddle 2.4.0 - => Python 3.7.4PaddlePaddle 2.4.1 + => Python 3.9.0尽量保持一致,防止麻烦
首先下载PaddleOCR代码,安装相关依赖,具体命令如下准备PaddleOCR的运行环境:https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/installation.md
Linux 升级安装 Python 3
安装 PaddlePaddle 2.0# 注意版本,原来电脑是 3.8 的。非常麻烦[root@localhost PaddleOCR]# python -VPython 3.7.4[root@localhost PaddleOCR]# pip install -U pip# 如果您的机器是CPU,请运行以下命令安装[root@localhost PaddleOCR]# pip install paddlepaddle==2.2.2 -i https://mirror.baidu.com/pypi/simple# 如果您的机器安装的是CUDA9或CUDA10,请运行以下命令安装# python3 -m pip install paddlepaddle-gpu==2.2.2 -i https://mirror.baidu.com/pypi/simple# VQA任务中需要用到该库 -- 不安装也没报错#[root@localhost PaddleOCR]# pip install paddlenlp==2.0.1 -i https://mirror.baidu.com/pypi/simple
安装 PaddleOCR[root@localhost ~]# cd /opt# 下载代码[root@localhost opt]# git clone https://gitee.com/paddlepaddle/PaddleOCR.git[root@localhost opt]# cd /opt/PaddleOCR# 安装运行所需要的whl包[root@localhost PaddleOCR]# pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
准备PaddleServing的运行环境,步骤如下:
[root@localhost PaddleOCR]# pwd/opt/PaddleOCR# 安装serving,用于启动服务 https://pypi.tuna.tsinghua.edu.cn/simple/paddle-serving-server/[root@localhost PaddleOCR]# wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_server-0.8.3-py3-none-any.whl[root@localhost PaddleOCR]# pip install paddle_serving_server-0.8.3-py3-none-any.whl# GPU 安装下面地址# wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_server_gpu-0.8.3.post102-py3-none-any.whl# pip3 install paddle_serving_server_gpu-0.8.3.post102-py3-none-any.whl# 如果是cuda10.1环境,可以使用下面的命令安装paddle-serving-server# wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_server_gpu-0.8.3.post101-py3-none-any.whl# pip3 install paddle_serving_server_gpu-0.8.3.post101-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple# 安装client,用于向服务发送请求, https://pypi.tuna.tsinghua.edu.cn/simple/paddle-serving-client/# cp37 => python 3.7, 版本要对应,否则报 ERROR: paddle_serving_client-0.8.3-cp37-none-any.whl is not a supported wheel on this platform.[root@localhost PaddleOCR]# wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_client-0.8.3-cp37-none-any.whl[root@localhost PaddleOCR]# pip install paddle_serving_client-0.8.3-cp37-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple# 安装serving-app https://pypi.tuna.tsinghua.edu.cn/simple/paddle-serving-app/[root@localhost PaddleOCR]# wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_app-0.8.3-py3-none-any.whl# 需要单独安装一下,否则 pip install paddle_serving_app-0.8.3-py3-none-any.whl 安装时会报 安装 opencv 超时[root@localhost PaddleOCR]# pip install opencv-python==3.4.17.61 -i https://pypi.tuna.tsinghua.edu.cn/simple --verbose[root@localhost PaddleOCR]# pip install paddle_serving_app-0.8.3-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
模型转换使用PaddleServing做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。首先,下载PP-OCR的inference模型
[root@localhost PaddleOCR]# cd /opt/PaddleOCR/deploy/pdserving/# 下载并解压 OCR 文本检测模型[root@localhost pdserving]# wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar -O ch_PP-OCRv3_det_infer.tar && tar -xf ch_PP-OCRv3_det_infer.tar# 下载并解压 OCR 文本识别模型[root@localhost pdserving]# wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar -O ch_PP-OCRv3_rec_infer.tar && tar -xf ch_PP-OCRv3_rec_infer.tar# 降级,否则转换模型会报错,-> ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the "ssl" module is compiled with OpenSSL 1.0.2k-fips 26 Jan 2017[root@localhost pdserving]# pip install urllib3==1.25.6 -i https://pypi.tuna.tsinghua.edu.cn/simple --verbose[root@localhost pdserving]# pip show urllib3Name: urllib3Version: 1.25.6
接下来,用安装的paddle_serving_client把下载的inference模型转换成易于server部署的模型格式。
# 转换检测模型[root@localhost pdserving]# python -m paddle_serving_client.convert --dirname ./ch_PP-OCRv3_det_infer/ \ --model_filename inference.pdmodel \ --params_filename inference.pdiparams \ --serving_server ./ppocr_det_v3_serving/ \ --serving_client ./ppocr_det_v3_client/# 转换识别模型[root@localhost pdserving]# python -m paddle_serving_client.convert --dirname ./ch_PP-OCRv3_rec_infer/ \ --model_filename inference.pdmodel \ --params_filename inference.pdiparams \ --serving_server ./ppocr_rec_v3_serving/ \ --serving_client ./ppocr_rec_v3_client/# 安装 tree 工具[root@localhost pdserving]# yum -y install tree# 查看文件夹[root@localhost pdserving]# tree -h *_client *_servingppocr_det_v3_client├── [ 214] serving_client_conf.prototxt└── [ 56] serving_client_conf.stream.prototxtppocr_rec_v3_client├── [ 229] serving_client_conf.prototxt└── [ 59] serving_client_conf.stream.prototxtppocr_det_v3_serving├── [2.3M] inference.pdiparams├── [1.3M] inference.pdmodel├── [ 214] serving_server_conf.prototxt└── [ 56] serving_server_conf.stream.prototxtppocr_rec_v3_serving├── [ 10M] inference.pdiparams├── [1.2M] inference.pdmodel├── [ 229] serving_server_conf.prototxt└── [ 59] serving_server_conf.stream.prototxt0 directories, 12 files[root@localhost pdserving]#
检测模型转换完成后,会在当前文件夹多出ppocr_det_v3_serving 和ppocr_det_v3_client的文件夹,具备如下格式:
|- ppocr_det_v3_serving/ |- __model__ |- __params__ |- serving_server_conf.prototxt |- serving_server_conf.stream.prototxt|- ppocr_det_v3_client |- serving_client_conf.prototxt |- serving_client_conf.stream.prototxt
Paddle Serving pipeline部署确认工作目录下文件结构:注意: 将PaddleOCR/deploy/pdserving/config.yml文件中的两个model_config字段,对应模型转换的文件夹。pdserver目录包含启动pipeline服务和发送预测请求的代码,包括:
__init__.pyconfig.yml # 启动服务的配置文件ocr_reader.py # OCR模型预处理和后处理的代码实现pipeline_http_client.py # 发送pipeline预测请求的脚本web_service.py # 启动pipeline服务端的脚本
启动服务可运行如下命令:[root@localhost pdserving]# cd /opt/PaddleOCR/deploy/pdserving/# 如果报错,执行 ImportError: libGL.so.1: cannot open shared object file: No such file or directory[root@localhost pdserving]# yum -y install libGL# 启动服务,运行日志保存在log.txt[root@localhost pdserving]# nohup python web_service.py --config=config.yml &>log.txt &[root@localhost pdserving]# tail -f ./log.txt
成功启动服务后,log.txt中会打印类似如下日志
测试Python发送服务请求:[root@localhost PaddleOCR]# cd /opt/PaddleOCR/deploy/pdserving/[root@localhost pdserving]# python pipeline_http_client.py**********../../doc/imgs/00006737.jpg**********erro_no:0, err_msg:("登机牌", 0.98663443), [[156.0, 27.0], [353.0, 24.0], [354.0, 67.0], [157.0, 70.0]]("BOARDING PASS", 0.92134), [[422.0, 23.0], [819.0, 15.0], [820.0, 55.0], [423.0, 63.0]]("序号SERIALNO.", 0.90068984), [[490.0, 103.0], [663.0, 101.0], [663.0, 120.0], [490.0, 122.0]]("CLASS", 0.9126972), [[398.0, 106.0], [455.0, 104.0], [456.0, 122.0], [399.0, 124.0]]("舱位", 0.997319), [[343.0, 107.0], [385.0, 107.0], [385.0, 125.0], [343.0, 125.0]]("日期 DATE", 0.8522339), [[213.0, 108.0], [317.0, 107.0], [317.0, 127.0], [213.0, 128.0]]("座位号SEAT NO", 0.9227149), [[677.0, 99.0], [833.0, 96.0], [833.0, 116.0], [677.0, 119.0]]("航班 FLIGHT", 0.9386937), [[64.0, 112.0], [191.0, 108.0], [191.0, 128.0], [64.0, 132.0]]("W", 0.818372), [[406.0, 132.0], [430.0, 132.0], [430.0, 157.0], [406.0, 157.0]]("035", 0.881623), [[511.0, 130.0], [567.0, 130.0], [567.0, 155.0], [511.0, 155.0]]("O3DEC", 0.96435463), [[233.0, 138.0], [325.0, 136.0], [325.0, 157.0], [233.0, 159.0]]("MU2379", 0.99732345), [[83.0, 140.0], [212.0, 137.0], [212.0, 160.0], [83.0, 162.0]]("登机口", 0.82893676), [[489.0, 174.0], [553.0, 173.0], [553.0, 193.0], [490.0, 195.0]]("GATE", 0.99797326), [[566.0, 174.0], [612.0, 172.0], [613.0, 190.0], [567.0, 192.0]]("始发地", 0.9969302), [[343.0, 175.0], [409.0, 174.0], [410.0, 194.0], [344.0, 196.0]]("FROM", 0.9880336), [[404.0, 175.0], [468.0, 175.0], [468.0, 193.0], [404.0, 193.0]]("登机时间BDT", 0.96257985), [[678.0, 170.0], [810.0, 168.0], [810.0, 188.0], [678.0, 190.0]]("目的地TO", 0.93609524), [[67.0, 181.0], [168.0, 178.0], [168.0, 198.0], [68.0, 202.0]]("福州", 0.99901855), [[97.0, 207.0], [167.0, 206.0], [168.0, 227.0], [98.0, 229.0]]("TAIYUAN", 0.950216), [[338.0, 219.0], [473.0, 216.0], [473.0, 235.0], [338.0, 239.0]]("G11", 0.6856508), [[505.0, 214.0], [553.0, 214.0], [553.0, 235.0], [505.0, 235.0]]("FUZHOU", 0.9885346), [[91.0, 231.0], [201.0, 227.0], [202.0, 248.0], [91.0, 251.0]]("身份识别ID NO", 0.89463985), [[345.0, 240.0], [482.0, 236.0], [482.0, 256.0], [345.0, 259.0]]("姓名NAME", 0.974122), [[67.0, 251.0], [172.0, 249.0], [172.0, 268.0], [67.0, 270.0]]("ZHANGQIWET", 0.89279824), [[77.0, 278.0], [262.0, 274.0], [262.0, 294.0], [77.0, 297.0]]("票号 TKTNO", 0.92473453), [[462.0, 297.0], [578.0, 295.0], [578.0, 315.0], [462.0, 317.0]]("张祺伟", 0.9672684), [[103.0, 313.0], [208.0, 311.0], [208.0, 334.0], [103.0, 336.0]]("票价FARE", 0.9370956), [[70.0, 344.0], [164.0, 341.0], [165.0, 362.0], [70.0, 364.0]]("ETKT7813699238489/1", 0.9605237), [[346.0, 349.0], [660.0, 347.0], [660.0, 366.0], [346.0, 368.0]]
Postman 发送请求{"key": ["image"], "value": ["image base64"]}
参数调整调整 config.yml 中的并发个数获得最大的QPS, 一般检测和识别的并发数为2:1
det: #并发数,is_thread_op=True时,为线程并发;否则为进程并发 concurrency: 8 ...rec: #并发数,is_thread_op=True时,为线程并发;否则为进程并发 concurrency: 4 ...
预测性能数据会被自动写入 PipelineServingLogs/pipeline.tracer
文件中。
参考:https://gitee.com/paddlepaddle/PaddleOCR/tree/release/2.6/deploy/pdserving
标签:
您可能也感兴趣:
今日热点
为您推荐
秘伴裤:全国招商伙伴进行中【导师对接】
企业如何做软文营销? 软文营销的形式有哪些?
艾诗摩尔射频健发梳:到底谁在收割"智商税"
排行
精彩推送
- 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基...
- 今年前四个月物流需求持续扩大 多领域增速加快 全球今日讯
- 培育孩子体育精神 卡游与“环塔”小赛车迷共庆“六一” 每日热议
- 一深万难!我国首口万米科学探索井开钻 挺进地下一万米|全球资讯
- 北京朝阳建设宜居、宜业、宜商、宜学、宜游之城-环球看热讯
- 北上广深,门店全关!知名火锅店“凉了”
- 华强电子网:代理品牌数量涉嫌虚假陈述 突击剥离授权分销业...
- 上海政校企合力促进产教融合 致力培养贴近产业需求的高质量人才
- 【全球速看料】国网甘肃电力:电价新政“送上门”
- 大五座SUV新秀,剑指理想L7的新摩卡DHT-PHEV将于6月1日正式上市
- 甘肃居民供用电合同“网上国网”签署更便捷
- 喜报!兰州元山330千伏变电站工程获2023年度中国电力优质工程...
- 焦点!肃南税务:“爱心妈妈”暖童心 结对帮扶显真情
- 每日看点!武威市直文体广电旅游系统全体干部职工学习全省文化...
- 奥特维:5月30日融资买入727.37万元,融资融券余额4.81亿元
- 上海期货交易所5月30日不锈钢仓单下跌_世界微速讯
- 业界人士齐聚海口 谈如何创新发展旅游休闲街区_世界微动态
- 每日速递:(高质量发展调研行)安徽合肥逐梦“空天”打造空...
- 中国农业农村部紧急部署小麦抢收 应对北方部分地区“烂场雨...
- 由于需求减弱,韩国芯片库存创2016年以来最大增幅 全球热消息
- 兰州高新区召开重大事故隐患专项排查整治行动部署会
- 敦煌:传承莫高精神 感受文化魅力
- 兰州市人大代表团调研兰州高新区省市列重大项目
- 甘肃省税务局开展“面对面、手拉手”结对帮扶爱心活动-今日视点
- 兰州城关文旅创意市集活力开集_每日观察
- 国家统计局:5月制造业PMI为48.8% 比上月下降0.4个百分点 全球头条
- 天天快看:新能源汽车行业2023年下半年投资策略:电动化成长...
- 广西金融助力设施农业发展 项目签约金额近200亿元
- 国家统计局:5月份制造业采购经理指数为48.8%
- 头条焦点:商代考古有重要进展 洹北商城“郭城”不是城墙是城壕
- 热点聚焦:怎么看存款利率调整?
- 今日精选:国家统计局:5月份制造业采购经理指数小幅回落
- 银行3年期、5年期存款利率普遍降至3%以下—— 怎么看存款利...
- 上海豪宅热盘云锦东方仍在排查资质:认购人需至规定地点现场核...
- 中国空间站全面建成后首次载人飞行任务开启 神舟启新程 天...
- 湖南茶陵建设产地冷藏保鲜设施—— 田间“大冰箱”存住果蔬...
- 百姓看联播 | 用户全国第8,河北步入物联网大省 世界热闻
- 万家基金杨建华:十五年老将风格单一遭“滑铁卢”高换手率或...
- 股市早8点丨金针探底·四条大长腿·上方两个缺口近期就补 环球讯息
- 最新:5月30日晚间沪深上市公司重大事项公告最新快递
- 一米多长鳄鱼从20多层摔到楼下!深圳这个高档小区为什么有人...
- 上市公司连续八年造假!有投资者损失270万元!这一头部券商也...
- 5月大宗交易火热!四大行业交投活跃,36股获机构抢筹 环球微速讯
- 洛阳6条街区被授予首批青年友好街区
- 夹缝里的中式快餐 :白领吐槽太贵 餐企赚得不多|全球播资讯
- 越秀地产获银行2亿港元循环贷款融资
- 测心率手表哪个牌子好_全球今日讯
- 当前信息:对债务上限协议担忧 美国原油期货价格跌破每桶70美元
- 高途连续七个季度收入同比下滑,总市值不足7亿美元|今日精选
- 县域经济观察:田间“大冰箱”存住果蔬茶鲜味 天天报道
- 当前快讯:保险为“专精特新”护航
- 美女腹泻拉肚子(腹泻拉肚子吃什么食物好)_环球播报
- 超高清视频,看着真过瘾
- 消费万花筒:为儿童玩具加上“安全阀”
- 释放小吃消费更大潜力
- 得到同学节演讲 | 于学航:如何领导团队成功? 环球观察
- cad怎么新建空白图纸_cad怎么新建图纸
- 土工织物地基处理中土工织物起到的作用有_土工织物|天天速递
- 广东惠州交警被质疑酒后执法 官方回应:执法人员为交通局工...
- 市州观察丨展会搭台助力乐山茶产业加速发展 “峨眉山茶”快...
- 全球最新:瓶窑千年古城上榜省第三批大花园耀眼明珠名单
- 淄博经开区建设工程质量安全生产标准化建设观摩会暨业主开放...
- 灵化恐惧和绝望的个人测评-环球新资讯
- 耄耋之年指的是什么意思_耄耋之年 视讯
- 后日2只新股上市,值得关注!(6月1日)
- 焦点报道:电子网:代理品牌数量涉嫌虚假陈述 突击剥离授权分...
- 全球最资讯丨创志科技前员工变身居间服务商贡献超四千万元收...
- 环球热消息:演义里周瑜手下的哼哈二将,后期个个独当一面,...
- 家具行业稳步复苏 有电商4月份超300个家具品牌销售额暴增超10倍
- 北约有哪些国家_有哪些国家可以一妻多夫制呢
- 环球聚焦:大众汽车集团(中国)全资控股科技公司项目签约落...
- 今年前4个月中国社会物流总额107.6万亿元 物流需求恢复性回...
- 2023年APEC工商领导人中国论坛将于6月17日举办-滚动
- 世界今亮点!北京力争到2025年人工智能核心产业规模达3000亿元
- 当前聚焦:星巴克全球首席执行官纳思瀚:我们在中国的发展是...
- 国际科技组织纷纷“落户”北京,如何推进科技开放合作?
- 全球热讯:滚子包络减速器亮相2023中关村论坛 助力工业机器人...
- 征集丨甘肃省“百千万”创业引领工程养老服务业“创业达人”...
- 河南周口:骑共享电单车若每月违停2次将限骑一个月
- 民航市场运营稳健,客运量环比持稳,同比大增-每日速读
- 江西会昌米粉30载“出海”路:从“一炮而红”到谋新突破
- 江西会昌米粉30载“出海”路:从“一炮而红”到谋新突破_环球热点
- 交通与能源“牵手”会擦出怎样的火花
- 美国会两党就债务上限达成原则性协议 金融市场或传坏消息 ...
- 14国代表河北共话生物医药和大健康产业发展机遇 35个项目集...
- ESPN:尤文在签约普利西奇方面处于领先,切尔西准备2000万镑出售
- 微动态丨探讨“落户”EMEA机遇与挑战 专家助力本土生物科技...
- 海南文昌国际航天城建设进展加快 重大产业项目纷纷落地
- 小米将在印度生产无线音响产品
- 消费券计划推动 香港2022年移动支付比例升至60.2%
- 主力复盘:AI延续强势 16亿封板浪潮信息
- 世界观点:上海制定20条政策促进民营经济和民间投资发展
- 【天天快播报】山东立法保障中小企业合法权益 促企业健康发展
- 全球播报:文心大模型上车:百度想要发起座舱交互革命
- 看科技如何改变生活 中关村论坛展览“炫技”|今日热闻
- 粤化妆品工业总产值全国第一 正由“大体量”向“高质量”转型
- L4级智能网联清扫车在长沙公园景区等10个区域启动运营
- 中空low-e玻璃是什么意思(low e玻璃是什么意思)
- 美国队长3内战百度云在线观看 美国队长3内战百度云
- 要闻速递:中国人民银行宿迁市中心支行联合江苏银行宿迁分行...
今日要闻
- 电子连接器概念领涨股是那只?12月6日意华股份股价是多少?
- 实体经济概念共有几只个股?12月5日远大控股市盈率为25.02
- 出租汽车板块领涨股是哪只?12月5日菱电电控股价是多少?
- 医药批发概念领涨股是那只?12月5日益丰药房股票行情怎么样?
- 铁塔概念股股票行情怎么样?12月1日汇金通市值36.83亿元
- 分子筛概念股股票行情怎么样?12月1日兄弟科技股价是多少?
- 养老保险概念股领涨股是那只?12月1日仙琚制药股价是多少?
- 气动汽车板块那只股票领涨?11月30日中通客车股价多少?
- 医废处理概念版块领涨股是那只?11月30日华康医疗市盈率为49.09
- 宁德时代概念板块领涨股是那只?11月30日杰普特股票行情怎么样?