0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三步驟快速實(shí)現(xiàn)PaddleOCR實(shí)時(shí)推理

英特爾物聯(lián)網(wǎng) ? 來(lái)源:英特爾物聯(lián)網(wǎng) ? 作者:武卓 ? 2022-06-09 17:18 ? 次閱讀

作者

英特爾AI軟件布道師

武卓博士

曾主持國(guó)家級(jí)及省部級(jí)科研項(xiàng)目十余項(xiàng),已授權(quán)國(guó)際國(guó)內(nèi)專利十余項(xiàng)。

前言:該技術(shù)能讓PaddleOCR的開(kāi)發(fā)者在筆記本電腦上即可獲得超越40FPS的速度,極大降低了PaddleOCR的部署成本。

簡(jiǎn)介

在上篇文章中我們介紹過(guò),光學(xué)字符識(shí)別(OCR)技術(shù)可以將文件、圖片或自然場(chǎng)景中的文字信息進(jìn)行識(shí)別并提取,與一系列的自然語(yǔ)言處理技術(shù)聯(lián)合使用,能夠完成諸如文檔票據(jù)的文字信息自動(dòng)化處理、實(shí)時(shí)圖片文字翻譯等任務(wù)。通過(guò)機(jī)器的自動(dòng)化處理,可以幫助財(cái)務(wù)人員在處理票據(jù)時(shí)省卻大量手工輸入的工作量,也能夠方便我們?cè)诔鰢?guó)旅游時(shí)隨時(shí)對(duì)異域中的外國(guó)文字信息進(jìn)行實(shí)時(shí)翻譯、減少語(yǔ)言不通帶來(lái)的不便。

既然OCR技術(shù)如此實(shí)用,有沒(méi)有什么方法能讓我們利用自己手邊的設(shè)備,隨時(shí)使用到這項(xiàng)技術(shù)呢?答案當(dāng)然是肯定的。接下來(lái),我們將以百度開(kāi)源的PaddleOCR1-2 技術(shù)為例,具體介紹如何利用英特爾開(kāi)源的OpenVINO 工具套件,僅使用我們手邊都有的CPU就能輕松實(shí)現(xiàn)對(duì)PaddleOCR的實(shí)時(shí)推理。

本篇是用OpenVINO 工具套件實(shí)現(xiàn)基于OCR及NLP輕松實(shí)現(xiàn)信息自動(dòng)化提取的系列博客中的第二篇。我們將簡(jiǎn)要介紹PaddleOCR的原理,以及利用OpenVINO 工具套件實(shí)現(xiàn)PaddleOCR推理加速的工作流程。同樣只需利用一頁(yè)Jupyter notebook,依照簡(jiǎn)單的三個(gè)步驟,即可利用CPU實(shí)現(xiàn)基于PaddleOCR的實(shí)時(shí)文字信息提取。

PaddleOCR原理簡(jiǎn)介

PaddleOCR是基于深度學(xué)習(xí)框架PaddlePaddle的一項(xiàng)OCR技術(shù),具有超輕、模型小、便于移動(dòng)端及服務(wù)器端部署等特點(diǎn)。整個(gè)PaddleOCR技術(shù)的工作流程如下圖所示,主要包括文本檢測(cè)、方向分類、以及文本識(shí)別三部分。

28d278c6-db51-11ec-ba43-dac502259ad0.png

文本檢測(cè)任務(wù)是找出圖像或視頻中的文字位置。不同于目標(biāo)檢測(cè)任務(wù),目標(biāo)檢測(cè)不僅要解決定位問(wèn)題,還要解決目標(biāo)分類問(wèn)題。但是,文本檢測(cè)也面臨一些難點(diǎn),比如:自然場(chǎng)景中的文本具有多樣性,文字大小、方向、長(zhǎng)度、形狀、語(yǔ)言都會(huì)有不同。有的時(shí)候,文字重疊或者密度較高,這些都會(huì)影響最終文本檢測(cè)的效果。目前常用的文本檢測(cè)方法有基于回歸以及基于分割的方法。而在PaddleOCR中,我們選取的是基于分割的DBNet3方法。

DBNet的工作原理如下圖所示。針對(duì)基于分割的方法需要使用閾值進(jìn)行二值化處理而導(dǎo)致后處理耗時(shí)的問(wèn)題,DBNet提出了一種可學(xué)習(xí)閾值的方法,并巧妙地設(shè)計(jì)了一個(gè)近似于階躍函數(shù)的二值化函數(shù),使得分割網(wǎng)絡(luò)在訓(xùn)練的時(shí)候能端對(duì)端的學(xué)習(xí)文本分割的閾值。自動(dòng)調(diào)節(jié)閾值不僅帶來(lái)精度的提升,同時(shí)簡(jiǎn)化了后處理,提高了文本檢測(cè)的性能。

2914895a-db51-11ec-ba43-dac502259ad0.png

方向分類指的是針對(duì)圖片中某些經(jīng)文本檢測(cè)得到的bounding box中的文字方向?yàn)榉撬脚帕械那闆r,對(duì)bounding box的方向進(jìn)行檢測(cè)。如果發(fā)現(xiàn)bounding box中的文字方向?yàn)榉撬脚帕?,則對(duì)該bounding box的方向進(jìn)行糾正,使其旋轉(zhuǎn)為文字水平排列的方向,方便下一步的文本識(shí)別。

文本識(shí)別的任務(wù)是將文本檢測(cè)得到的bounding box中的具體的文字內(nèi)容識(shí)別出來(lái)。文本識(shí)別的算法有針對(duì)規(guī)則文本以及不規(guī)則文本識(shí)別的算法。對(duì)于規(guī)則文本,主流的算法CTC(Conectionist Temporal Classification)和基于Sequence2Sequence 的方法。

在本文demo中,我們采用的是基于CTC的方法。由于文本識(shí)別任務(wù)的特殊性,輸入數(shù)據(jù)中存在大量的上下文信息,卷積神經(jīng)網(wǎng)絡(luò)的卷積核特性使其更關(guān)注于局部信息,缺乏長(zhǎng)依賴的建模能力,因此僅使用CNN很難挖掘到文本之間的上下文聯(lián)系。

為了解決這一問(wèn)題,首先通過(guò)使用CRNN (Convolutional Recurrent Neural Network)4 ,利用卷積網(wǎng)絡(luò)提取圖像特征,并同時(shí)引入了雙向 LSTM(Long Short-Term Memory) 用來(lái)增強(qiáng)上下文建模。最終將輸出的特征序列輸入到CTC模塊, 通過(guò)ctc歸納字符間的連接特性,直接解碼序列結(jié)果。該結(jié)構(gòu)被驗(yàn)證有效,并廣泛應(yīng)用在文本識(shí)別任務(wù)中, 如下圖所示。

2952c0b2-db51-11ec-ba43-dac502259ad0.png

5分鐘 3步驟

快速實(shí)現(xiàn)PaddleOCR實(shí)時(shí)推理

最新版本的OpenVINO 2022.1中,已經(jīng)實(shí)現(xiàn)了對(duì)基于PaddlePaddle深度學(xué)習(xí)框架的深度學(xué)習(xí)模型的支持。而PaddleOCR作為一項(xiàng)深受廣大開(kāi)發(fā)者喜愛(ài)的開(kāi)源技術(shù),其中開(kāi)源的預(yù)訓(xùn)練模型已經(jīng)可以在OpenVINO 2022.1版本中直接進(jìn)行模型讀取以及加速推理。

接下來(lái),我們將通過(guò)代碼示例,介紹如何按照簡(jiǎn)單的三個(gè)步驟,實(shí)現(xiàn)OpenVINO 工具套件對(duì)PaddleOCR的加速推理。整個(gè)工作流程如下圖所示:

299100de-db51-11ec-ba43-dac502259ad0.png

其中OpenVINO 工具套件會(huì)對(duì)PaddleOCR中的文本檢測(cè)以及文本識(shí)別模型進(jìn)行讀取以及推理加速。本次demo中我們展示的是利用自己的網(wǎng)絡(luò)攝像頭,將實(shí)時(shí)獲取的視頻流中的文字信息利用PaddleOCR進(jìn)行提取。當(dāng)然,開(kāi)發(fā)者也可以上傳圖片,利用OpenVINO 工具套件對(duì)PaddleOCR的推理實(shí)現(xiàn)對(duì)圖片中的文字信息進(jìn)行提取。

步驟一:下載需要使用的PaddleOCR預(yù)訓(xùn)練模型,并完成模型的讀取與加載

在導(dǎo)入需要使用到的相應(yīng)Python包后,首先需要對(duì)將要使用的PaddleOCR開(kāi)源預(yù)訓(xùn)練模型進(jìn)行下載。本次demo中使用到的是輕量化的"Chinese and English ultra-lightweight PP-OCR model (9.4M)"模型。由于PaddleOCR中包含了文本檢測(cè)及文本識(shí)別兩個(gè)深度學(xué)習(xí)模型,因此,我們首先定義一個(gè)模型下載函數(shù),如下圖所示。

2a182064-db51-11ec-ba43-dac502259ad0.png

接下來(lái),完成文本檢測(cè)模型的下載,

2a52e316-db51-11ec-ba43-dac502259ad0.png

以及推理引擎的初始化、文本檢測(cè)模型的讀取以及在 CPU上面的加載。

2a91e19c-db51-11ec-ba43-dac502259ad0.png

再然后,完成文本識(shí)別模型的下載,

2adfa008-db51-11ec-ba43-dac502259ad0.png

以及文本識(shí)別模型的讀取以及在CPU上面的加載。其中,有一步需要特別說(shuō)明的是,動(dòng)態(tài)輸入的處理

由于文本識(shí)別模型的輸入是文本檢測(cè)得到的一系列bounding box圖像,而圖像中的字體由于大小和文字長(zhǎng)短程度不一,就造成了文本識(shí)別模型的輸入是動(dòng)態(tài)輸入的。與以往版本需要對(duì)圖像尺寸進(jìn)行重調(diào)整(resize)而將模型輸入尺寸固定、從而可能引起性能損失的處理方法不同的是,OpenVINO 2022. 1版本已經(jīng)可以很好的支持模型的動(dòng)態(tài)輸入。

在CPU上進(jìn)行文本識(shí)別模型加載之前,只需要對(duì)于輸入的若干維度中具有動(dòng)態(tài)輸入的維度賦值-1或申明動(dòng)態(tài)輸入尺寸的上限值,比如Dimension(1,512),即可完成對(duì)模型動(dòng)態(tài)輸入的處理。接下來(lái),即可按常規(guī)步驟完成在CPU上加載文本識(shí)別模型。

2b000ff0-db51-11ec-ba43-dac502259ad0.png

步驟二:為文本檢測(cè)及文本識(shí)別定義必要的前處理及后處理函數(shù)。

為文本檢測(cè)模型定義必要的前處理函數(shù),如下圖所示

2b3b59fc-db51-11ec-ba43-dac502259ad0.png

為文本識(shí)別模型定義必要的前處理函數(shù),如下圖所示

2b7b294c-db51-11ec-ba43-dac502259ad0.png

2bbd3b98-db51-11ec-ba43-dac502259ad0.png

2bdc2742-db51-11ec-ba43-dac502259ad0.png

為文本檢測(cè)模型定義后處理函數(shù),將文本檢測(cè)模型的推理結(jié)果轉(zhuǎn)為bounding box形式,作為文本識(shí)別模型的輸入,如下圖所示。

2c14223c-db51-11ec-ba43-dac502259ad0.png

步驟三:利用OpenVINO 工具套件推理引擎(Runtime)針對(duì)攝像頭采集視頻進(jìn)行實(shí)時(shí)推理

2c9cb12e-db51-11ec-ba43-dac502259ad0.png

定義運(yùn)行PaddleOCR模型推理的主函數(shù),主要包括以下四個(gè)部分:

01運(yùn)行網(wǎng)絡(luò)攝像頭,將捕捉到的視頻流作為paddleOCR的輸入

2cc9adbe-db51-11ec-ba43-dac502259ad0.png

02準(zhǔn)備進(jìn)行文本檢測(cè)和文本識(shí)別的視頻幀

2d28f3aa-db51-11ec-ba43-dac502259ad0.png

03針對(duì)文本檢測(cè)進(jìn)行推理

2d81d36c-db51-11ec-ba43-dac502259ad0.png

根據(jù)文本檢測(cè)得到的bounding box,進(jìn)行文本識(shí)別推理

2e02ab54-db51-11ec-ba43-dac502259ad0.png

04將文本提取的結(jié)果可視化

2e2581d8-db51-11ec-ba43-dac502259ad0.png

結(jié)果討論

下面我們來(lái)看看運(yùn)行結(jié)果吧:

我們可以看到,對(duì)于網(wǎng)絡(luò)攝像頭采集的視頻流中的文字提取效果還是很不錯(cuò)的。僅僅利用CPU進(jìn)行推理,也可以得到30FPS以上的性能,可以說(shuō)能夠達(dá)到實(shí)時(shí)的推理效果!當(dāng)然,除了視頻流作為輸入,開(kāi)發(fā)者還可以上傳圖片,進(jìn)行文本信息提取。以下是針對(duì)上傳圖片中印刷體文字和手寫(xiě)體文字信息提取的一些測(cè)試效果。

你還在等什么,快來(lái)根據(jù)我們提供的源代碼,在自己的個(gè)人電腦上嘗試一下吧!

小結(jié)

OCR具有將圖片、掃描文檔或自然場(chǎng)景中的文字信息識(shí)別轉(zhuǎn)化為數(shù)字化、機(jī)器編碼方式存儲(chǔ)的優(yōu)勢(shì)。將OCR進(jìn)行文字識(shí)別的結(jié)果與自然語(yǔ)言處理中的NLP技術(shù)相結(jié)合,能夠?qū)崿F(xiàn)自動(dòng)化的信息提取,為我們免去手動(dòng)輸入信息填寫(xiě)的麻煩,并有助于信息的結(jié)構(gòu)化存儲(chǔ)與查找。在本次系列博客的第二篇中,我們簡(jiǎn)要介紹了PaddleOCR的工作原理,并提供了一個(gè)基于OpenVINO 工具套件實(shí)現(xiàn)PaddleOCR的Jupyter notebook demo??梢苑奖阕x者在閱讀的同時(shí),下載源碼并在自己的電腦端利用CPU來(lái)輕松實(shí)現(xiàn)PaddleOCR的加速推理。

原文標(biāo)題:用OpenVINO? 輕松實(shí)現(xiàn)PaddleOCR實(shí)時(shí)推理 | 開(kāi)發(fā)者實(shí)戰(zhàn)

文章出處:【微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    60

    文章

    9755

    瀏覽量

    170670
  • OCR
    OCR
    +關(guān)注

    關(guān)注

    0

    文章

    141

    瀏覽量

    16264
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5422

    瀏覽量

    120597

原文標(biāo)題:用OpenVINO? 輕松實(shí)現(xiàn)PaddleOCR實(shí)時(shí)推理 | 開(kāi)發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    快速確定升壓轉(zhuǎn)換器最大輸出電流的個(gè)步驟

    電子發(fā)燒友網(wǎng)站提供《快速確定升壓轉(zhuǎn)換器最大輸出電流的個(gè)步驟.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 10:42 ?0次下載
    <b class='flag-5'>快速</b>確定升壓轉(zhuǎn)換器最大輸出電流的<b class='flag-5'>三</b>個(gè)<b class='flag-5'>步驟</b>

    linux安裝.net core3.1步驟

    linux安裝.net core3.1步驟 各項(xiàng)用到的命令
    發(fā)表于 09-03 11:41 ?0次下載

    上位機(jī)與下位機(jī)實(shí)時(shí)通信的實(shí)現(xiàn)

    在工業(yè)自動(dòng)化、遠(yuǎn)程控制、數(shù)據(jù)采集與處理等領(lǐng)域,上位機(jī)與下位機(jī)之間的實(shí)時(shí)通信是實(shí)現(xiàn)高效、準(zhǔn)確的數(shù)據(jù)交換和系統(tǒng)控制的基礎(chǔ)。本文旨在介紹實(shí)現(xiàn)上位機(jī)與下位機(jī)實(shí)時(shí)通信的關(guān)鍵技術(shù)、協(xié)議及
    的頭像 發(fā)表于 06-28 17:01 ?778次閱讀

    簡(jiǎn)單三步!高效預(yù)測(cè)半導(dǎo)體器件使用壽命

    電力電子元器件已經(jīng)成為現(xiàn)代電子系統(tǒng)中重要的組成部件,同時(shí),元器件的熱性能將大大影響整體設(shè)備的可靠性。庭田科技提供的POWERTESTER測(cè)試平臺(tái),在不破壞待測(cè)器件的前提下,僅需三步,即可高效安全
    的頭像 發(fā)表于 05-30 10:31 ?321次閱讀

    從零開(kāi)始中小企業(yè)安全建設(shè)三步

    在數(shù)字化浪潮不斷推進(jìn)的今天,中小企業(yè)面臨的網(wǎng)絡(luò)安全挑戰(zhàn)日益嚴(yán)峻。為了守護(hù)企業(yè)的數(shù)據(jù)資產(chǎn)和業(yè)務(wù)連續(xù)性,一個(gè)全面且高效的網(wǎng)絡(luò)安全建設(shè)規(guī)劃不可或缺。本文將引導(dǎo)您通過(guò)個(gè)主要步驟,建立起一個(gè)堅(jiān)實(shí)的網(wǎng)絡(luò)安全
    的頭像 發(fā)表于 05-14 17:01 ?195次閱讀
    從零開(kāi)始中小企業(yè)安全建設(shè)<b class='flag-5'>三步</b>曲

    M8_6pin母頭使用步驟有哪些

    德索工程師說(shuō)道M8_6pin母頭作為電氣連接器件,在電路連接中扮演著重要的角色。為了確保其正確、高效地使用,以下將詳細(xì)介紹M8_6pin母頭的使用步驟,并對(duì)每一步驟進(jìn)行詳細(xì)的解釋和說(shuō)明。
    的頭像 發(fā)表于 05-06 17:50 ?235次閱讀
    M8_6pin母頭使用<b class='flag-5'>步驟</b>有哪些

    簡(jiǎn)單三步使用OpenVINO?搞定ChatGLM3的本地部署

    英特爾 OpenVINO? 工具套件是一款開(kāi)源 AI 推理優(yōu)化部署的工具套件,可幫助開(kāi)發(fā)人員和企業(yè)加速生成式人工智能 (AIGC)、大語(yǔ)言模型、計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理等 AI 工作負(fù)載,簡(jiǎn)化深度學(xué)習(xí)推理的開(kāi)發(fā)和部署,便于實(shí)現(xiàn)
    的頭像 發(fā)表于 04-03 18:18 ?1835次閱讀
    簡(jiǎn)單<b class='flag-5'>三步</b>使用OpenVINO?搞定ChatGLM3的本地部署

    gis應(yīng)用模型建模的步驟有哪些

    、精度和范圍,分析用戶的操作流程和功能需求,并確定模型的輸入和輸出。在這一步驟中,可以使用需求調(diào)查問(wèn)卷、用戶會(huì)議和需求分析報(bào)告等工具進(jìn)行詳細(xì)的需求分析。 2.數(shù)據(jù)獲取和準(zhǔn)備:在建立GIS應(yīng)用模型之前,需要收集和獲取相關(guān)的地理數(shù)據(jù)
    的頭像 發(fā)表于 02-25 14:58 ?2078次閱讀

    電源完整性設(shè)計(jì)的重要三步!

    在現(xiàn)代電子設(shè)計(jì)中,電源完整性是PCB設(shè)計(jì)不可或缺的一部分。為了確保電子設(shè)備有穩(wěn)定性能,從電源的源頭到接收端,我們都必須全面考慮和設(shè)計(jì)。如電源模塊、內(nèi)層平面以及供電芯片等,通過(guò)精心設(shè)計(jì)和優(yōu)化,才能實(shí)現(xiàn)
    發(fā)表于 02-21 21:37

    谷歌發(fā)布ASPIRE訓(xùn)練框架,提升AI選擇性預(yù)測(cè)能力

    該框架分為三步驟:“特定任務(wù)調(diào)整”、“答案采樣”以及“自我評(píng)估學(xué)習(xí)”。首先,“特定任務(wù)調(diào)整”階段針對(duì)基本訓(xùn)練的大型語(yǔ)言模型進(jìn)一深化訓(xùn)練,重點(diǎn)提高預(yù)測(cè)能力。其次,“答案采樣”階段模型會(huì)根據(jù)調(diào)整的參數(shù),生成多個(gè)答案
    的頭像 發(fā)表于 01-23 11:19 ?437次閱讀

    plc控制系統(tǒng)的設(shè)計(jì)步驟有哪些

    和性能等。這些需求將成為設(shè)計(jì)的基礎(chǔ),為后續(xù)的步驟提供指導(dǎo)。 第二:系統(tǒng)規(guī)劃 系統(tǒng)規(guī)劃是指根據(jù)需求和預(yù)算制定整體的控制系統(tǒng)規(guī)劃。在這一步驟中,需要考慮以下方面: 系統(tǒng)結(jié)構(gòu):確定系統(tǒng)的硬件架構(gòu)和軟件結(jié)構(gòu),包括PLC的型號(hào)和數(shù)量,以
    的頭像 發(fā)表于 01-16 16:21 ?2499次閱讀

    HarmonyOS:使用MindSpore Lite引擎進(jìn)行模型推理

    的通用開(kāi)發(fā)流程中涉及的一些接口,具體請(qǐng)見(jiàn)下列表格。 Context 相關(guān)接口 Model 相關(guān)接口 Tensor 相關(guān)接口 開(kāi)發(fā)步驟 使用 MindSpore Lite 進(jìn)行模型推理的開(kāi)發(fā)流程
    發(fā)表于 12-14 11:41

    Momenta的無(wú)圖智能駕駛方案

    其智能駕駛三步驟以及其核心創(chuàng)新算法主要如下: 感知環(huán)境,主要依賴攝像頭,攝像頭基本上都是360周視覆蓋。Momenta主要依賴其DDLD-Data Driven Landmark Detection 車(chē)道線識(shí)別算法來(lái)感知運(yùn)動(dòng)的邊界。
    發(fā)表于 10-19 09:48 ?397次閱讀
    Momenta的無(wú)圖智能駕駛方案

    壓力變送器調(diào)零步驟 壓力變送器和壓力傳感器一樣嗎?

    壓力變送器調(diào)零步驟 壓力變送器和壓力傳感器一樣嗎? 一、壓力變送器和壓力傳感器的區(qū)別 壓力變送器和壓力傳感器在測(cè)量壓力方面都有著重要的作用,但是兩者之間并不完全相同。簡(jiǎn)單來(lái)說(shuō),壓力傳感器是一種傳感
    的頭像 發(fā)表于 10-18 16:59 ?1361次閱讀