最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于PaddleOCR與OpenVINO的結(jié)構(gòu)化輸出Pipeline

2023-07-18 11:44 作者:飛槳PaddlePaddle  | 我要投稿


飛槳(PaddlePaddle)是百度自主研發(fā)的中國首個開源開放、功能豐富的產(chǎn)業(yè)級深度學(xué)習(xí)平臺,以百度多年的深度學(xué)習(xí)技術(shù)研究和業(yè)務(wù)應(yīng)用為基礎(chǔ)。飛槳深度學(xué)習(xí)平臺集核心框架、基礎(chǔ)模型庫、端到端開發(fā)套件、豐富的工具組件于一體,還包括了飛槳企業(yè)版零門檻 AI 開發(fā)平臺 EasyDL 和全功能 AI 開發(fā)平臺 BML,以及飛槳 AI Studio 學(xué)習(xí)與實訓(xùn)社區(qū)。飛槳于2016年正式開源,秉承開源開放的理念,建設(shè)了蓬勃發(fā)展的開源社區(qū),社區(qū)成員匯聚了框架開發(fā)者、算法研究者、硬件開發(fā)者和應(yīng)用開發(fā)者等多種角色,他們在自運轉(zhuǎn)的生態(tài)中積極參與開源共建,形成了一股強大的生態(tài)力量,持續(xù)推動深度學(xué)習(xí)技術(shù)的創(chuàng)新迭代和產(chǎn)業(yè)應(yīng)用。

2023飛槳黑客馬拉松 PaddlePaddle Hackathon 第四期由深度學(xué)習(xí)技術(shù)及應(yīng)用國家工程研究中心主辦,飛槳承辦,英特爾作為頂級贊助方,OpenVINO? 、Arm、Hugging Face、Jina、TVM、瑞芯微、算能、地平線等等開源項目和硬件合作伙伴共同出品,旨在鼓勵開發(fā)者了解與參與深度學(xué)習(xí)開源項目的共建。

本項目是活動發(fā)布的第205號賽題,需要開發(fā)者向 OpenVINO? Notebooks (https://github.com/openvinotoolkit/openvino_notebooks) 提交一個基于飛槳和 OpenVINO? 構(gòu)建的項目,相比于其他任務(wù),本任務(wù)更加偏向于模型的應(yīng)用。

項目介紹

“表” 是一種隨處可見的設(shè)備,除了生活中常見的電表、水表外,工業(yè)場景中還存在如壓力表、工頻場強儀等“表”。受區(qū)域因素和技術(shù)因素的制約,并非每種“表”都能夠自動采集數(shù)據(jù),還需要人工手動抄表,工作枯燥、效率低、且容易產(chǎn)生抄錄錯誤,通過人工智能技術(shù)構(gòu)造自動化的抄表流程能夠極大的克服上述問題,提高工作效率。目前大部分抄表相關(guān)的開源項目都需要在特定領(lǐng)域的數(shù)據(jù)集上進(jìn)行微調(diào),但實際上抄表工作的抄錄內(nèi)容多為文字,對于特定的表而言,其布局和展示內(nèi)容較為單一,因此可以基于一些配置值,在無需微調(diào)的情況下,也可以實現(xiàn)抄表工作。本項目基于 PaddleOCR 和 OpenVINO? 實現(xiàn)了一種無需微調(diào)的抄表器,只需要人為設(shè)置一些和布局相關(guān)的配置信息,即可實現(xiàn)表中數(shù)據(jù)的記錄。

PaddleOCR

PaddleOCR 是飛槳文字識別套件,提供了多種復(fù)用性強的預(yù)訓(xùn)練模型。本項目使用了預(yù)訓(xùn)練模型 Chinese and English ultra-lightweight PP-OCR model (9.4M),更多的信息請參考 PaddleOCR Github (https://github.com/PaddlePaddle/PaddleOCR)?或?PaddleOCR Gitee (https://gitee.com/PaddlePaddle/PaddleOCR)

一個標(biāo)準(zhǔn)的 OCR 流程包括了文字檢測和文字識別,在本項目中,文字檢測通過非深度學(xué)習(xí)的方式進(jìn)行處理,文字識別通過PaddleOCR的文字識別模型實現(xiàn)。

OpenVINO? 和OpenVINO? Notebooks?

OpenVINO? 是一個用于優(yōu)化和部署 AI 推理的開源工具包,可以顯著提升深度學(xué)習(xí)在計算機視覺、自動語音識別、自然語言處理和其他常見任務(wù)中的性能。能夠使主流框架訓(xùn)練的模型在運行時減少資源需求,并在從邊緣到云的一系列英特爾?平臺上高效部署。OpenVINO? 在倉庫 OpenVINO?Notebooks (https://github.com/openvinotoolkit/openvino_notebooks) 中提供了一些可以運行的 Jupyter* Notebooks,用于學(xué)習(xí)和嘗試使用 OpenVINO? 工具套件。這些 Notebooks 旨在向各位開發(fā)者提供 OpenVINO? 基礎(chǔ)知識的介紹,并教會大家如何利用我們的 API 來優(yōu)化深度學(xué)習(xí)推理。

技術(shù)方案概覽

本項目面向的應(yīng)用場景是抄錄特定的一類表的信息,因此可以通過人工配置表面的尺寸,以及各個元素在表中的布局實現(xiàn),從而跳過 OCR 模型對文字區(qū)域的檢測,并進(jìn)一步對識別結(jié)果進(jìn)行結(jié)構(gòu)化輸出。本項目的實現(xiàn)流程如下圖所示,主要分為7個步驟:

Step 1:配置圖片中屏幕區(qū)域的坐標(biāo)值(這些坐標(biāo)值也可以通過 CV2 的拐點檢測或深度學(xué)習(xí)進(jìn)行獲?。?/p>

Step 2:對圖片進(jìn)行預(yù)處理(仿射變換);

Step 3:配置待識別的元素對應(yīng)的坐標(biāo),并裁剪對應(yīng)的區(qū)域;

Step 4:如有需要,可以對裁剪下來的區(qū)域進(jìn)行預(yù)處理;

Step 5:基于 OpenVINO? 進(jìn)行文字識別;

Step 6:結(jié)構(gòu)化輸出信息;

Step 7:如有需要,對輸出結(jié)果進(jìn)行進(jìn)一步精煉。

在整個Pipeline中,無需額外針對業(yè)務(wù)場景對模型進(jìn)行訓(xùn)練或配置,從深度學(xué)習(xí)的層面上完全依賴于開源模型,僅需要人工地進(jìn)行一些預(yù)處理或后處理,可以極大的降低OCR模型的應(yīng)用門檻,同時也減輕了對數(shù)據(jù)準(zhǔn)備和標(biāo)注的依賴。

關(guān)鍵環(huán)節(jié)的代碼實現(xiàn)

圖片輸入處理
由于本項目是一個零微調(diào)的項目,因此,為了保證識別模型的有效性,需要人工對齊輸入信息。

  • 修正傾斜的圖片,將圖片中的屏幕區(qū)域修正到指定的大小

  • 根據(jù)從說明書等地方獲取到的設(shè)備信息,設(shè)定待識別的區(qū)域在屏幕上的布局。

通過下面代碼,可以將圖片從傾斜狀態(tài)修正。

基于 OpenVINO? 加載 PaddleOCR 識別模型進(jìn)行預(yù)測

加載模型

使用 OpenVINO? 加載飛槳模型無需經(jīng)過任何轉(zhuǎn)換,只需要完成創(chuàng)建環(huán)境、讀取模型和生成推理接口3個步驟。假設(shè)當(dāng)前模型保存在 ch_PP-OCRv3_rec_infer 目錄下,可以通過以下代碼一鍵加載模型:

文字識別

依舊對于上述示例圖片,希望結(jié)構(gòu)化輸出以下內(nèi)容:[{"Info_Probe":""}, {"Freq_Set":""}, {"Freq_Main":""}, {"Val_Total":""},{"Val_X":""}, {"Val_Y":""}, {"Val_Z":""}, {"Unit":""}, {"Field":""}]。輸出示例如下圖所示:

  • 基于仿射變換的結(jié)果配置各個元素在圖片上的布局,這個配置對于同一批表來說是固定的。

  • 配置文字識別預(yù)處理函數(shù)。

首先,將傳入的檢測框轉(zhuǎn)化為圖片,在本項目中,檢測框即為整個圖片,我們依然可以復(fù)用這個模塊。?

其次,完成裁剪后將圖片分裝成多個 batch,按批預(yù)測。

再次,完成識別后將識別結(jié)果轉(zhuǎn)化為漢字,這一步需要一個映射表,可以在? PaddleOCR 或者 OpenVINO? Notebook 中找到。

最后,就可以識別與輸出啦!

下面以?Freq_Set?為例,進(jìn)行文字識別

結(jié)構(gòu)化輸出與后處理

上述步驟已經(jīng)實現(xiàn)了使用 OpenVINO? 加載 PaddleOCR 模型并進(jìn)行預(yù)測,但實際上由于模型沒有進(jìn)行微調(diào),因此對于當(dāng)前的業(yè)務(wù)場景來說可能不夠完美,可以通過一些簡單的邏輯進(jìn)行處理。如示例圖片中右上角區(qū)域文字“100Hz 實時值”,在模型預(yù)測時,“Hz”可能被識別為“H2”,此時可以通過將“H2”替換為“Hz”,提高最后的輸出效果。
對于示例圖片的這種表,可以定義如下后處理函數(shù):?

定義了輔助函數(shù)后,即可通過配置值進(jìn)行后處理。輔助函數(shù)中共有三種配置的預(yù)處理類型,分別是映射、替換和增加小數(shù)點。以識別結(jié)果“深頭:LF-01”為例,“映射”(MP)操作意味著只要文字包含“LF”,即將整段文字替換為“探頭:LF-01”。以識別結(jié)果“100H2 實時值”為例,“替換”(RP)操作意味著將文字中的“H2”替換為“Hz”。以識別結(jié)果“613475”為例,如果已知最后兩位必然為小數(shù)位,并且小數(shù)點極小容易被漏檢,增加小數(shù)點(AD)操作可以快捷地在指定位上增加小數(shù)點。
下述代碼給出了使用配置值進(jìn)行后處理地示例。

全流程一鍵運行

將上述關(guān)鍵代碼組合起來,可以進(jìn)行本項目的全流程的運行~?

下面是調(diào)用示例:

項目總結(jié)

關(guān)于 “?基于 OpenVINO? 與 PaddleOCR 的結(jié)構(gòu)化輸出 Pipeline ” 賽題

本文介紹了一種基于開源OCR模型 (https://github.com/PaddlePaddle/PaddleOCR) 進(jìn)行讀表的 Pipeline,這個 Pipeline 能夠在不進(jìn)行模型微調(diào)的前提下完成抄表工作,并按照格式輸出內(nèi)容。整個 Pipeline 專注于 OCR 模型的調(diào)用,但仍可以拼接一些檢測模型或邊緣檢測方法,用于自動確定屏幕區(qū)域,以降低人力,提高效率。完整的源碼地址見:

  • https://github.com/openvinotoolkit/openvino_notebooks/pull/1030

  • https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/203-meter-reader

關(guān)于飛槳黑客馬拉松第四期

飛槳黑客馬拉松第四期活動發(fā)布后,開發(fā)者們反響熱烈,圍繞四大賽道展開了激烈角逐,超過2000+位社區(qū)開發(fā)者參與到飛槳黑客松中,完成800+余次任務(wù)認(rèn)領(lǐng)&PR提交,200+個任務(wù)被認(rèn)領(lǐng),歷經(jīng)三個月腦力激蕩的 Hack 時光,共有80+個團隊突出重圍,累計完成142項任務(wù)。

本期黑客松活動在任務(wù)完成數(shù)量、參與團隊規(guī)模、項目類型豐富度、合作伙伴數(shù)量等方面打破了以往飛槳黑客松的記錄,足可見開發(fā)者們建設(shè)飛槳生態(tài)的熱情。

期待這些開發(fā)者團隊持續(xù)在飛槳開源生態(tài)中迸發(fā)出光彩和力量,與飛槳一路同行,一起建設(shè)更優(yōu)雅的飛槳開源社區(qū)。


基于PaddleOCR與OpenVINO的結(jié)構(gòu)化輸出Pipeline的評論 (共 條)

分享到微博請遵守國家法律
昌黎县| 安宁市| 朔州市| 隆尧县| 石屏县| 六安市| 平罗县| 左权县| 沐川县| 临江市| 万载县| 阿克苏市| 西乌珠穆沁旗| 神木县| 新田县| 梓潼县| 宁化县| 大田县| 军事| 自贡市| 城步| 齐河县| 腾冲县| 余姚市| 鹤岗市| 赫章县| 汽车| 全南县| 大荔县| 灌阳县| 七台河市| 鸡西市| 禄劝| 贵德县| 棋牌| 浦东新区| 邯郸县| 安庆市| 高雄县| 拉萨市| 昌黎县|