01 背景介紹
“表”是生活中的隨處可見的一種設(shè)備。常見的“表”包括了家用電表,水表等設(shè)備;除此之外,還有工頻場(chǎng)強(qiáng)計(jì)等“表”。受制于由于受到區(qū)域因素以及技術(shù)因素的制約,并非每種“表”都能夠進(jìn)行數(shù)據(jù)的自動(dòng)采集,從而只能通過人工手動(dòng)抄表。
這種數(shù)據(jù)采集工作一方面較為費(fèi)事和枯燥,另一方面,長時(shí)間工作帶來的會(huì)導(dǎo)致工作人員疲勞,從而產(chǎn)生抄錄錯(cuò)誤。通過人工智能技術(shù)構(gòu)造自動(dòng)化的抄表流程能夠極大的克服上述問題,提高工作效率。
相關(guān)工作
迄今為止,已經(jīng)有許多關(guān)于電表讀數(shù)的優(yōu)秀項(xiàng)目出現(xiàn),這些項(xiàng)目大都依賴于對(duì)特定場(chǎng)景的模型訓(xùn)練(包括微調(diào))。 例如:
【PaddlePaddle+OpenVINO】電表檢測(cè)識(shí)別模型的部署
但對(duì)于抄表工作的業(yè)務(wù)場(chǎng)景而言,具有以下特點(diǎn):
無法準(zhǔn)備大量的徹底貼合業(yè)務(wù)場(chǎng)景的數(shù)據(jù)集
待抄錄的“表”中的內(nèi)容是文字,而非進(jìn)度條或儀表盤
基于開放數(shù)據(jù)訓(xùn)練得到的OCR模型能夠識(shí)別到“表”中的內(nèi)容
因而,對(duì)于一些較為規(guī)整的“表”,我們完全可以基于開源OCR模型進(jìn)行零微調(diào)的抄表工作。
技術(shù)方案
本項(xiàng)目提供了有一種無需額外訓(xùn)練的抄表器,只需要人為指定一些和布局有關(guān)的配置信息,即可實(shí)現(xiàn)表中數(shù)據(jù)的記錄。 總體流程如下:
配置圖片中屏幕區(qū)域的坐標(biāo)值。(這些坐標(biāo)值也可以通過cv2的拐點(diǎn)檢測(cè)或深度學(xué)習(xí)進(jìn)行獲取)
對(duì)圖片進(jìn)行預(yù)處理(仿射變換)
配置待識(shí)別的元素對(duì)應(yīng)的坐標(biāo),并裁剪對(duì)應(yīng)的區(qū)域
如有需要,可以對(duì)裁剪下來的區(qū)域進(jìn)行預(yù)處理
基于OpenVINO進(jìn)行文字識(shí)別
結(jié)構(gòu)化輸出信息
如有需要,對(duì)輸出結(jié)果進(jìn)行進(jìn)一步精煉
目錄
背景介紹
圖片預(yù)處理
基于OpenVINO加載PaddleOCR識(shí)別模型進(jìn)行預(yù)測(cè)
結(jié)構(gòu)化輸出與后處理
02 圖片預(yù)處理
由于本項(xiàng)目是一個(gè)零微調(diào)的項(xiàng)目,因此,為了保證識(shí)別模型的有效性,需要人工對(duì)齊輸入信息。
修正傾斜的圖片,將圖片中的屏幕區(qū)域修正到指定的大小
根據(jù)從說明書等地方獲取到的設(shè)備信息,設(shè)定待識(shí)別的區(qū)域在屏幕上的布局
修正圖片
以下列圖片為例,本節(jié)展示如何將圖片從傾斜的狀態(tài),修正為正面觀眾的狀態(tài)。
? ?
03 基于OpenVINO加載PaddleOCR識(shí)別模型進(jìn)行預(yù)測(cè)
文字識(shí)別模型(PaddleOCR)
PaddleOCR 是PaddlePaddle的文字識(shí)別套件。迄今為止,PaddleOCR已經(jīng)提供了許多復(fù)用性強(qiáng)的預(yù)訓(xùn)練模型。在本項(xiàng)目中使用的預(yù)訓(xùn)練模型是Chinese and English ultra-lightweight PP-OCR model (9.4M)。更多的信息請(qǐng)參考PaddleOCR Github或PaddleOCR Gitee。
一個(gè)標(biāo)準(zhǔn)的OCR流程包括了文字檢測(cè)和文字識(shí)別,對(duì)于本項(xiàng)目來說,文字檢測(cè)工作已經(jīng)通過人工配置的方式解決了,因此,只需要進(jìn)行文字識(shí)別即可。
OpenVINO簡介
OpenVINO作為Intel原生的深度學(xué)習(xí)推理框架,可以最大化的提升人工智能神經(jīng)網(wǎng)絡(luò)在Intel平臺(tái)上的執(zhí)行性能,實(shí)現(xiàn)一次編寫,任意部署的開發(fā)體驗(yàn)。OpenVINO在2022.1版本后,就可以直接支持飛槳模型,大大提升了模型在Intel異構(gòu)硬件上的推理性能與部署便捷性,帶來更高的生產(chǎn)效率,更廣闊的兼容性以及推理性能的優(yōu)化。
獲取模型
基于OpenVINO加載PaddleOCR
使用OpenVINO加載Paddle模型無需經(jīng)過任何轉(zhuǎn)換,只需要:
創(chuàng)建環(huán)境
讀取模型
生成推理接口
文字識(shí)別
依舊對(duì)于上述示例圖片,希望結(jié)構(gòu)化輸出以下內(nèi)容:[{"Info_Probe":""}, {"Freq_Set":""}, {"Freq_Main":""}, {"Val_Total":""},{"Val_X":""}, {"Val_Y":""}, {"Val_Z":""}, {"Unit":""}, {"Field":""}]。輸出示例如下圖所示:
配置布局
首先,需要基于仿射變換的結(jié)果,配置各個(gè)元素在圖片上的布局。這個(gè)配置對(duì)于同一批表來說是固定的。
文字識(shí)別的預(yù)處理函數(shù)
?
文字識(shí)別的后處理函數(shù)
用于將文字識(shí)別的結(jié)果進(jìn)行解碼,轉(zhuǎn)化為漢字
?
基于OpenVINO進(jìn)行文字識(shí)別
下面以Freq_Set為例,進(jìn)行文字識(shí)別
100H2實(shí)時(shí)值
結(jié)構(gòu)化輸出與后處理
上面的邏輯已經(jīng)完成了使用OpenVINO加載PaddleOCR并進(jìn)行預(yù)測(cè),但實(shí)際上由于整個(gè)模型沒有進(jìn)行微調(diào),所以對(duì)于當(dāng)前的業(yè)務(wù)場(chǎng)景來說可能不夠完美,這個(gè)時(shí)候可以通過一些簡單的邏輯進(jìn)行處理,比如,對(duì)于示例圖片中,H2必然是不存在的,這個(gè)地方可以直接通過replace替換為HZ。
簡單來說,對(duì)于示例圖片的這種表,可以定義如下后處理函數(shù):
全流程一鍵運(yùn)行
為了方便運(yùn)行,這里也提供了一個(gè)封裝好的函數(shù)
? ?
審核編輯:劉清
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8742瀏覽量
147734 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4779瀏覽量
101036 -
人工智能
+關(guān)注
關(guān)注
1794文章
47641瀏覽量
239612 -
OCR
+關(guān)注
關(guān)注
0文章
146瀏覽量
16403 -
預(yù)處理器
+關(guān)注
關(guān)注
0文章
13瀏覽量
2243
原文標(biāo)題:基于OpenVINO與PaddleOCR的結(jié)構(gòu)化輸出抄表器
文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論