国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)

這篇具有很好參考價(jià)值的文章主要介紹了PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

最近用到百度飛槳的 PaddleOCR,研究了一下PaddleOCR的服務(wù)化部署,簡單記錄一些部署過程和碰到的問題。

基礎(chǔ)環(huán)境
  • paddlepaddle 2.5.2
  • python 3.7
  • paddlehub 2.1.0
  • PaddleOCR 2.6
  • pip 20
#查看 python 版本
python --version 
#查看pip版本
pip --version
#查看paddlepaddle版本
pip show paddlepaddle

部署過程中也嘗試多次,不同版本遇到的問題不盡相同,這里選取其中一組進(jìn)行部署說明

使用 docker部署paddlepaddle2.5.2容器

  • PaddleOCR 依賴飛槳環(huán)境運(yùn)行,所以需要先安裝paddlepaddle環(huán)境,默認(rèn) docker 已經(jīng)安裝,執(zhí)行腳本獲取paddlepaddle2.5.2 鏡像并自動創(chuàng)建名稱為 ppocr的容器,網(wǎng)絡(luò)順暢的話很快就可以下載完成,下載完成后執(zhí)行attach命令就可以進(jìn)入容器繼續(xù)操作。

    官方paddlepaddle2.5.2容器內(nèi)python版本為3.7,pip版本為20,默認(rèn)即可。

    # 下載并創(chuàng)建容器
    docker run -p 9997:9997 --name ppocr -itd -v $PWD:/paddle registry.baidubce.com/paddlepaddle/paddle:2.5.2 /bin/bash
    
    # 進(jìn)入容器
    docker attach ppocr
    
    參數(shù)說明
    參數(shù) 說明
    -p 指定 docker 映射的端口
    -name 指定容器的名稱
  • docker 部分常用管理命令
    #查看容器情況
    docker ps -a
    
    #停止容器
    docker stop ppocr
    
    #啟動容器
    docker  start ppocr
    
    #查看所有鏡像
    docker  images
    

以下操作都在容器內(nèi)進(jìn)行

安裝paddlehub

  • 進(jìn)入容器后執(zhí)行腳本安裝paddlehub,版本為2.1.0
    pip3 install paddlehub==2.1.0 --upgrade -i https://mirror.baidu.com/pypi/simple
    
  • 安裝過程中會提示typing-extensions版本過低,要求版本要大于4.6.1,卸載當(dāng)前版本安裝指定版本,安裝完成后再次執(zhí)行上述命令安裝paddlehub,安裝時(shí)間較長等待安裝完成接口。
    PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
    #卸載當(dāng)前包
    pip uninstall typing-extensions
    
    #安裝4.6.1版本
    pip3 install typing-extensions==4.6.1
    

安裝PaddleOCR 2.6.0

PaddleOCR 使用 2.6.0版本

  • 首先從gitee獲取PaddleOCR代碼,PaddleOCR在gitee倉庫的最新版本為2.6.0,在 github倉庫的最新版本為2.7.1,2.7.1依賴 python 版本需要>=3.8,此處需要注意.
    cd /home
    git clone https://gitee.com/paddlepaddle/PaddleOCR.git
    
  • 代碼下載完成后進(jìn)入PaddleOCR文件夾內(nèi)執(zhí)行腳本安裝依賴包
    cd /home/PaddleOCR
    #安裝依賴包
    pip3 install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
    

hubserving服務(wù)配置

hubserving服務(wù)部署目錄下包括文本檢測、文本方向分類,文本識別、文本檢測+文本方向分類+文本識別3階段串聯(lián),版面分析、表格識別和PP-Structure七種服務(wù)包,可以按需安裝使用,使用前需要下載對應(yīng)模型并進(jìn)行配置,以下已文本檢測+文本方向分類+文本識別3階段串聯(lián)服務(wù)(ocr_system)和表格識別(structure_table)為例進(jìn)行說明。

  • 文本檢測+文本方向分類+文本識別3階段串聯(lián)服務(wù)(ocr_system)配置

    • 相關(guān)模型下載
      cd /home/PaddleOCR
      mkdir inference && cd inference
      
      # 下載并解壓 OCR 文本檢測配置
      wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar && tar -xf ch_PP-OCRv3_det_infer.tar
      
      # 下載并解壓 OCR 文本識別模型
      wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar &&  tar -xf ch_PP-OCRv3_rec_infer.tar
      
      # 下載并解壓 OCR 文本方向分類模型
      wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar && tar xf ch_ppocr_mobile_v2.0_cls_infer.tar
      
    • 服務(wù)配置
      文本檢測+文本方向分類+文本識別3階段串聯(lián)服務(wù)(ocr_system)配置文件是deploy/hubserving/ocr_system/params.py,包含模型路徑和相關(guān)參數(shù),這里使用默認(rèn)配置即可,如果更換模型需要對應(yīng)修改配置文件。
      PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
  • 表格識別服務(wù)(structure_table)配置

    • 下載中文表格識別模板
      cd /home/PaddleOCR/inference
      #下載基于SLANet的中文表格識別模型
      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
      
    • 服務(wù)配置
      structure_table默認(rèn)配置為英文表格識別模型和英文字典,需要調(diào)整為中文識別模板和對應(yīng)的中文字典文件,修改完成保存即可。
      #打開配置文件
      vim /home/PaddleOCR/deploy/hubserving/structure_table/param.py
      #調(diào)整模型文件路徑為./inference/ch_ppstructure_mobile_v2.0_SLANet_infer/
      #調(diào)整字典文件路徑為./ppocr/utils/dict/table_structure_dict_ch.txt
      

    PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)

hubserving服務(wù)安裝

  • 服務(wù)配置完成就可以安裝服務(wù)了,后續(xù)如果服務(wù)相關(guān)配置存在變動需要重新執(zhí)行以下命令安裝服務(wù)
    cd /home/PaddleOCR
    
    #安裝ocr_system服務(wù)
    hub install deploy/hubserving/ocr_system
    
    #安裝structure_table服務(wù)
    hub install deploy/hubserving/structure_table
    
    安裝完成
    PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
  • 錯(cuò)誤1:服務(wù)安裝時(shí)會提示protobuf版本過高,可以卸載當(dāng)前版本安裝指定版本3.20.2即可
    pip uninstall protobuf
    pip install protobuf==3.20.2
    
    PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
  • 錯(cuò)誤2:服務(wù)安裝時(shí)還會提示cannot import name 'RNNCell' from 'paddle.fluid.layers'
    PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
    這是因?yàn)閜addlepaddle2.5.0后沒有fluid了,需要修改paddlehub安裝包中的/usr/local/lib/python3.7/dist-packages/paddlehub/compat/task/text_generation_task.py文件,將文件中 paddle.fluid.layers import RNNCell ...換成from paddle.nn import RNNCellBase,對應(yīng)變量引入也需要修改,修改如下
    PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)

hubserving服務(wù)啟動

#以后臺形式啟動ocr_system structure_table 服務(wù)
nohup hub serving start -m ocr_system structure_table -p 9997 &

#查看啟動日志
tail -f nohup.out
**參數(shù)說明**
|  參數(shù) |  說明 |
| ------------ | ------------ |
|  -m | 指定啟動的服務(wù)名稱,多個(gè)用空格隔開 |
|  -p | 指定服務(wù)端口  |

啟動成功
PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
接口訪問路徑

  • ocr_system: http://127.0.0.1:9997/predict/ocr_system
  • structure_table: http://127.0.0.1:9997/predict/structure_table
    接口說明
    參數(shù) 說明
    請求類型 post
    Content-Type application/json
    參數(shù)格式 {"images":["圖片 base64串"]}

PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)
PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)

吐槽

最后忍不住吐槽一下,百度的文檔真的是一言難盡,要么是代碼已經(jīng)更新文檔還是幾年前的,要么是有文檔但寫的非常簡略,新手全靠自己踩坑,學(xué)習(xí)成本太高了!


相關(guān)參考文檔

官方PaddleHub Serving部署文檔
PP-Structure 系列模型列表
PP-OCR系列模型列表
解決RNNCell問題參考文檔文章來源地址http://www.zghlxwxcb.cn/news/detail-837697.html

到了這里,關(guān)于PaddleOCR 服務(wù)化部署(基于PaddleHub Serving)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • AI架構(gòu)師必知必會系列:模型部署與服務(wù)化、Mass架構(gòu)設(shè)計(jì)方案詳解和代碼實(shí)戰(zhàn)指南
  • 【業(yè)務(wù)功能篇73】web系統(tǒng)架構(gòu)演變-單體-集群-垂直化-服務(wù)化-微服務(wù)化

    【業(yè)務(wù)功能篇73】web系統(tǒng)架構(gòu)演變-單體-集群-垂直化-服務(wù)化-微服務(wù)化

    1.1 單體架構(gòu) 單體架構(gòu)應(yīng)該是我們最先接觸到的架構(gòu)實(shí)現(xiàn)了,在單體架構(gòu)中使用經(jīng)典的三層模型,即表現(xiàn)層,業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。 單體架構(gòu)只適合在應(yīng)用初期,且訪問量比較下的情況下使用,優(yōu)點(diǎn)是性價(jià)比很高,開發(fā)速度快,成本低,但缺點(diǎn)也很明顯,這時(shí)擴(kuò)展的首先

    2024年02月11日
    瀏覽(26)
  • 為什要微服務(wù)化?

    為什要微服務(wù)化?

    從 0 到 1 的堆砌式發(fā)展 一個(gè)服務(wù)承載所有,一個(gè)系統(tǒng)涵蓋一切,這可能是大多數(shù)公司初創(chuàng)時(shí)的技術(shù)風(fēng)貌。一切追求快速驗(yàn)證,快速響應(yīng),快速實(shí)現(xiàn)。 但是,伴隨著業(yè)務(wù)的膨脹發(fā)展,相應(yīng)的技術(shù)支撐要求也在不斷提升。從最開始的一個(gè)簡單的服務(wù),不斷地添枝加葉,各種各樣

    2024年02月08日
    瀏覽(18)
  • xxl-job服務(wù)化

    xxl-job作為服務(wù),之前使用都是每個(gè)服務(wù)配置信息,采用方法的形式,xxl-job作為服務(wù)的話,只需要進(jìn)行配置 配置信息 xxl-job創(chuàng)建任務(wù) xxl-job相關(guān)輸入 clientClass 實(shí)現(xiàn)類 clientMethod 調(diào)用的方法 加參數(shù),比如用戶為張三,年齡18 ,\\\"name\\\":\\\"張三\\\",\\\"age\\\":18 JobHandler:CommonXxlJobHandler 任務(wù)參數(shù):

    2024年02月06日
    瀏覽(24)
  • 為什么要將應(yīng)用微服務(wù)化

    為什么要將應(yīng)用微服務(wù)化

    其實(shí)在十多年前,“架構(gòu)師”并不是一個(gè)需求很大的職業(yè),一來那時(shí)還沒有“全民App”級別的應(yīng)用,除了三大門戶網(wǎng)站以外,其他的網(wǎng)上應(yīng)用業(yè)務(wù)壓力并不大;二來也沒有現(xiàn)如今這么豐富的技術(shù)選型,幾乎清一色的PHP(坊間一直流傳著PHP是世界上最好的語言這個(gè)說法,我08年左右

    2024年01月17日
    瀏覽(31)
  • 為什么要將應(yīng)用微服務(wù)化?

    為什么要將應(yīng)用微服務(wù)化?

    其實(shí)在十多年前,“架構(gòu)師”并不是一個(gè)需求很大的職業(yè),一來那時(shí)還沒有“全民App”級別的應(yīng)用,除了三大門戶網(wǎng)站以外,其他的網(wǎng)上應(yīng)用業(yè)務(wù)壓力并不大;二來也沒有現(xiàn)如今這么豐富的技術(shù)選型,幾乎清一色的PHP(坊間一直流傳著PHP是世界上最好的語言這個(gè)說法,我08年左右

    2024年01月18日
    瀏覽(19)
  • springboot + activiti實(shí)現(xiàn)activiti微服務(wù)化

    springboot + activiti實(shí)現(xiàn)activiti微服務(wù)化

    本文介紹如何將springboot+activiti進(jìn)行整合,并配合eureka,zuul和feign實(shí)現(xiàn)activiti的微服務(wù)化,將流程控制和業(yè)務(wù)邏輯分離. 并實(shí)現(xiàn)了幾個(gè)比較特殊的功能,比如時(shí)間段委托(某人請假或出差,出差時(shí)間內(nèi),所有待辦交給被委托人處理),比如節(jié)點(diǎn)的無限級加簽功能(流程本身有不確定性,臨時(shí)增加

    2024年02月09日
    瀏覽(29)
  • 【架構(gòu)設(shè)計(jì)】單體軟件向微服務(wù)化演變

    假設(shè)單體軟件的各模塊如下,其中服務(wù)包含許多功能模塊,如用戶管理模塊、商品模塊、訂單模塊、倉庫模塊; 服務(wù)化是指對單體服務(wù)進(jìn)行拆分,將一個(gè)服務(wù)軟件拆分為多個(gè)相互關(guān)聯(lián)的服務(wù),他們之間相互協(xié)作,能正常完成原單體服務(wù)的所有業(yè)務(wù)。 服務(wù)化后,有如下優(yōu)點(diǎn):

    2024年01月17日
    瀏覽(20)
  • 分布式、服務(wù)化的ERP系統(tǒng)架構(gòu)設(shè)計(jì)

    分布式、服務(wù)化的ERP系統(tǒng)架構(gòu)設(shè)計(jì)

    ERP 之痛 ? ? ? ?曾幾何時(shí),我混跡于電商、珠寶行業(yè)4年多,為這兩個(gè)行業(yè)開發(fā)過兩套大型業(yè)務(wù)系統(tǒng)(ERP)。作為一個(gè)ERP系統(tǒng),系統(tǒng)主要功能模塊無非是訂單管理、商品管理、生產(chǎn)采購、倉庫管理、物流管理、財(cái)務(wù)管理等等。作為一個(gè)管理系統(tǒng),大家的一般開發(fā)習(xí)慣就是使用

    2024年02月11日
    瀏覽(101)
  • 【flask】python使用flask發(fā)布http服務(wù)對算法服務(wù)化封裝

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 隨著應(yīng)用場景的變化,某些場景中需要調(diào)用python的算法對B/S或C/S結(jié)構(gòu)的項(xiàng)目進(jìn)行支撐,為了將算法服務(wù)化,可以使用flask框架對算法進(jìn)行服務(wù)發(fā)布,避免不同系統(tǒng)調(diào)用算法時(shí)進(jìn)行多次算法的部署以及代碼

    2024年04月16日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包