主頁 >  其他 > 百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 Paddle Inference 模型推理

百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 Paddle Inference 模型推理

2023-05-18 08:11:05 其他

Paddle Inference 模型推理流程
分別介紹文字檢測、方向分類器和文字識別3個模型,基于Paddle Inference的推理程序,

image

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

image

使用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()

image

單獨執行識別

可以指定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()

全流程體驗(檢測+方向分類器+識別)

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()

image

使用原始碼推理

下載原始碼,并解壓:https://gitee.com/paddlepaddle/PaddleOCR/tree/release/2.6
image

安裝依賴包

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()

image

準備推理模型

下載模型:https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv3_det_infer.tar
解壓放至:inference 目錄
image
如果您希望匯出自己訓練得到的模型,使用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 進到代碼目錄如圖
image
使用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

輸出
image

  • 定義引數設定
    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
image
下載模型: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
image

文字識別

https://www.paddlepaddle.org.cn/modelsDetail?modelId=17
image
下載模型: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

image
文字識別的具體代碼: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 為例,預測的原始影像如下,
image

# 預測 
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

image
可視化識別結果默認保存到 ./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

image

參考參考

PP-OCRv3文字檢測識別系統
PaddleOCR Github
PP-OCRv2預測部署實戰 代碼中 v2 改 v3

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552714.html

標籤:其他

上一篇:4大特性看Huawei Cloud EulerOS為開發者帶來平滑遷移體驗

下一篇:返回列表

標籤雲
其他(159218) Python(38148) JavaScript(25431) Java(18055) C(15228) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7191) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4572) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1938) python-3.x(1918) C++(1917) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 Paddle In

    Paddle Inference 模型推理流程 分別介紹文字檢測、方向分類器和文字識別3個模型,基于Paddle Inference的推理程序。 Paddle Inference 的 Python 離線推理 離線推理,即在特定機器上部署的代碼只能在這臺機器上使用,無法通過其他機器進行訪問 使用whl ......

    uj5u.com 2023-05-18 08:11:05 more
  • 4大特性看Huawei Cloud EulerOS為開發者帶來平滑遷移體驗

    摘要:本期《解密Huawei Cloud EulerOS算力釋放技術》主題直播中,華為云DTSE技術布道師陸維迪通過剖析傳統OS上云面臨的性能,安全,彈性等問題,與開發者們分享Huawei Cloud EulerOS(簡稱“HCE OS”)在提升客戶云上使用體驗的核心優勢和關鍵技術。 本文分享自華為 ......

    uj5u.com 2023-05-18 08:10:36 more
  • 軟體測驗精品書籍檔案下載

    測驗基礎 Google軟體測驗之道 強烈推薦 下載 Google軟體測驗之道-2016 How Google Tests Software-2012_.pdf: https://url97.ctfile.com/f/18113597-857996829-9531f6? 獲取訪問密碼 公眾號:pyth ......

    uj5u.com 2023-05-18 08:10:16 more
  • 【Go】彩云小譯翻譯介面js逆向解密回傳值

    一、前言 對彩云小譯網頁版進行抓包分析,將js演算法代碼轉換成go代碼,使用go發送http請求撰寫一個翻譯小工具。 主要實作: 翻譯(解密翻譯結果) 單詞字典查詢 生成JWT(保持有效期) 二、抓包 打開網頁按F12調出開發人員工具,再切換到網路選項卡,在輸入框里輸入內容開始抓包,會抓到兩個介面,t ......

    uj5u.com 2023-05-18 08:09:46 more
  • 資料分析缺失值處理(Missing Values)——洗掉法、填充法、插值法

    缺失值指資料集中某些變數的值有缺少的情況,缺失值也被稱為NA(not available)值。在pandas里使用浮點值NaN(Not a Number)表示浮點數和非浮點數中的缺失值,用NaT表示時間序列中的缺失值,此外python內置的None值也會被當作是缺失值。需要注意的是,有些缺失值也會以 ......

    uj5u.com 2023-05-18 08:09:28 more
  • 最佳軟體測驗基礎入門教程4靜態測驗

    靜態測驗 對作業產品(檔案和代碼)進行靜態測驗和分析,對提高產品質量有很大的幫助。本章介紹了靜態測驗的一般情況,以及所涉及的具體程序,包括其活動和必須填補的角色。我們描述了四種經過驗證的技術和它們的具體優勢,以及在應用它們時確保成功的因素。最后,我們比較了靜態和動態測驗技術。 被低估的技術 靜態測驗 ......

    uj5u.com 2023-05-18 08:08:43 more
  • GPT大語言模型Alpaca-lora本地化部署實踐【大語言模型實踐一】

    本文進行本地化部署實踐的Alpaca-lora模型就是Alpaca模型的低階適配版本。本文將對Alpaca-lora模型本地化部署、微調和推理程序進行實踐并描述相關步驟。 ......

    uj5u.com 2023-05-18 08:08:37 more
  • 綠色智慧檔案館庫房十二防一體化平臺建設所需要的十項產品

    檔案八防十防常用的十款設備 序號 名稱 1 溫濕度傳感器 2 空氣質量云測儀 3 恒濕凈化一體機 4 健康防護一體機 5 綜合智能觸摸一體化區域控制器 6 空調紅外學習控制模塊 7 漏水檢測控制器及感應線 8 數字煙霧傳感器 9 紅外防盜傳感器 10 系統軟體平臺 附件 檔案十防要求 1.溫濕度傳感 ......

    uj5u.com 2023-05-18 08:08:16 more
  • 智能家居生態迎來超強輔助

    在家居領域,中商行業研究所預測,2023年中國智能家居市場可達7157.1億元。未來5年,中國智能家居產業將繼續快速發展。2027年,市場規模預計將超過1.1萬億億元人民幣。那么未來智能家居發展的突破口又在何方? 智能終端設備運行小程式的概念 在智能終端設備中運行小程式,是指在不需要下載和安裝應用程 ......

    uj5u.com 2023-05-18 08:07:53 more
  • 基于云原生的物聯大資料智能服務

    摘要:物聯大資料已成為當前物聯網系統建設的核心,基于物聯大資料的涌現智能和應用以及借此對物理世界的反饋和控制是未來物聯網系統的建設目標。 本文分享自華為云社區《基于云原生的物聯大資料智能服務》,作者:趙卓峰 、丁維龍 、于淇 / 北方工業大學資料工程研究院、大規模流資料集成與分析北京市重點實驗室。 ......

    uj5u.com 2023-05-18 08:07:42 more