國網(wǎng)客服中心南方分中心 鄭宏坤
計算機圖像光學(xué)字符識別技術(shù)(Optical Character Recognition,簡稱OCR),是指對文本資料的圖像文件進(jìn)行分析識別處理,獲取文件及版面信息的過程,其中主要包括圖像輸入、圖像前期處理(二值化、圖像降噪、傾斜校正)、中期處理(版面分析、字符切割、字符識別、版面還原)、后期處理(識別校正),最終將圖像中的文字轉(zhuǎn)換輸出為可編輯的文本格式。本文主要利用Python語言及PaddleOCR圖像識別框架,針對員工行程卡截圖批量采集后進(jìn)行批量掃描識別,并運用關(guān)鍵字段提取技術(shù),格式化輸出匯總關(guān)鍵字段,最后進(jìn)行比對,篩查行程卡截圖日期、是否本人行程卡、軌跡是否涉及中高風(fēng)險區(qū)域,來管控員工風(fēng)險出行、瞞報漏報情況,免于人工逐一檢查核對、登記。
在疫情防控期間,全國多地區(qū)仍存在疫情增長的情況,造成此情況的主要原因就是人員跨風(fēng)險區(qū)域流動,因此管控人員前往中高風(fēng)險區(qū)域就成了降低感染風(fēng)險最為有效的手段,故做實、做好每一位員工的軌跡篩查就成了疫情防控工作中極為重要的一環(huán)。但是作為疫情防控管理者,常常要短時間內(nèi)篩查企業(yè)內(nèi)大量員工的出行信息,常規(guī)做法僅能通過人工收集、登記、對比、判斷行程信息,不僅費時費力,還非常容易出錯。
本文通過梳理軌跡篩查研判流程,逐一分析流程中的痛點、難點問題,結(jié)合目前的OCR圖像智能識別技術(shù),設(shè)計了一套集行程卡批量采集、關(guān)鍵字段批量提取、數(shù)據(jù)自動比對研判的智能識別程序,使用自動化、智能化策略替代人工工作,大大提高了疫情防控質(zhì)效,節(jié)省了大量時間。
目前主流的OCR開源模型框架有EasyOCR、Chineseocr、Chineseocr_lite、Tesserocr、PaddleOCR,幾種框架其主要特征如下(如表1):

表1 主流OCR開源模型框架對比Tbl.1 Comparison of mainstream OCR open source model frameworks
通過比對以上5種主流OCR開源模型框架,可以看出PaddleOCR-v2在易用性及精度方面表現(xiàn)最佳,故本項目選擇PaddleOCR開源模型框架作為“通信大數(shù)據(jù)行程卡”圖像識別主要框架。
(1)通過問卷星系統(tǒng)設(shè)計創(chuàng)建“通信大數(shù)據(jù)行程卡截圖收集表”,批量采集行程卡圖像;(2)使用Selenium爬蟲程序?qū)⑿谐虉D像附件自動化下載至本地磁盤;(3)啟動識別主程序,調(diào)用PaddleOCR圖像識別引擎批量掃描識別行程卡圖像中的文本值;(4)通過關(guān)鍵詞提取、數(shù)據(jù)切片定位、正則表達(dá)式等方法[1],將識別結(jié)果中的日期、手機號碼、健康碼顏色、行程地點格式化輸出匯總,形成電子篩查臺賬;(5)調(diào)用Excel復(fù)合函數(shù)篩查“是否本人行程卡”“截圖日期”“有無風(fēng)險出行情況”等關(guān)鍵字段,最終實現(xiàn)人工替代(如圖1所示)。

圖1 “ 通信大數(shù)據(jù)行程卡”識別處理流程圖Fi g.1 "Communication Big Data Travel Card" identification processing flowchart
(1)利用問卷星系統(tǒng)設(shè)計創(chuàng)建行程卡在線填報表單,加入圖像上傳模塊,并生成分享鏈接,通過微信群等渠道分發(fā)全員,員工通過鏈接自主上傳行程卡截圖(如圖2所示),短時間內(nèi)即可收集全員行程卡。

圖2 “通信大數(shù)據(jù)行程卡”在線上傳表Fig.2 "Communication Big Data Travel Card"online upload form
(2)通過編寫Selenium爬蟲程序?qū)⑿谐炭▓D像附件自動下載至本地磁盤(如圖3所示)。

圖3 “通信大數(shù)據(jù)行程卡”圖像附件Fig.3 "Communication Big Data Travel Card" image attachment
(3)使用Python語言調(diào)用PaddleOCR圖像識別引擎針對行程卡截圖進(jìn)行批量處理(本文以C:ocr_test路徑下的“張三”行程卡為例)。
在首次進(jìn)行識別時,PaddleOCR會自動聯(lián)網(wǎng)下載高精度輕量化識別模型,加載后進(jìn)行圖像識別(模型默認(rèn)路徑:C:Users“計算機用戶名”.paddleocr),最終返回圖像中全部的文本值(如圖4所示)。

圖4 單張“通信大數(shù)據(jù)行程卡”圖像識別結(jié)果Fig.4 Single "Communication Big Data Travel Card" image identification results
1)主要調(diào)用代碼:
from paddleocr import PaddleOCR#調(diào)用識別模塊
ocr = PaddleOCR(lang='ch',use_gpu=Fals) # 中英文識別語言設(shè)置等其他參數(shù)設(shè)置
img_path = r'C:ocr_test工號:1234+姓名:張三.png' # 行程卡截圖保存路徑
result = ocr.ocr(img_path) # 提取圖像識別內(nèi)容
for line in result: # 分行打印輸出識別文本
print(line)
2)返回識別結(jié)果
(4)關(guān)鍵字段提取。圖片識別后的文本結(jié)果以多維列表形式返回,通過Python語言針對列表數(shù)據(jù)進(jìn)行拆分處理并提取字符,最后采用關(guān)鍵字定位或正則表達(dá)式方法[1]可將行程卡“顏色”“手機號碼”“截圖日期”“近14天行程”等關(guān)鍵字段抽取并寫入Excel匯總表(如圖5中的A-G列)。

圖5 程序輸出的“出行風(fēng)險篩查匯總表”Fig.5 "Travel Risk Screening Summary" output by the program
(5)信息比對研判,結(jié)果可視化輸出。編寫Excel復(fù)合比對驗證函數(shù)并通過Python語言調(diào)用,將從行程卡截圖中提取的關(guān)鍵字段數(shù)據(jù)與公司預(yù)留的員工資料數(shù)據(jù)、疫情風(fēng)險區(qū)域等數(shù)據(jù)互相比對驗證,最后將驗證結(jié)果追加寫入Excel匯總表中,可視化顯示“是否本人行程卡”“出行是否提前報備”“截圖日期”“是否到訪中高風(fēng)險區(qū)域”等關(guān)鍵篩查信息,最終形成一張完整的員工“出行風(fēng)險篩查匯總表”(如圖5中H-K列)。
通過行程卡在線上傳、圖像爬取、圖像識別、關(guān)鍵字提取、文本比對一套系統(tǒng)化流程,節(jié)省了防疫管理人員大量時間,尤其在疫情防控期間,對控制企業(yè)大量人員流動、快速發(fā)現(xiàn)疫情傳播風(fēng)險等方面,具有十分重要意義。
引用
[1]鄒亞劼.基于OCR的文檔圖片檢測與信息提取系統(tǒng)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015:1-67.