國(guó)網(wǎng)客服中心南方分中心 鄭宏坤
計(jì)算機(jī)圖像光學(xué)字符識(shí)別技術(shù)(Optical Character Recognition,簡(jiǎn)稱(chēng)OCR),是指對(duì)文本資料的圖像文件進(jìn)行分析識(shí)別處理,獲取文件及版面信息的過(guò)程,其中主要包括圖像輸入、圖像前期處理(二值化、圖像降噪、傾斜校正)、中期處理(版面分析、字符切割、字符識(shí)別、版面還原)、后期處理(識(shí)別校正),最終將圖像中的文字轉(zhuǎn)換輸出為可編輯的文本格式。本文主要利用Python語(yǔ)言及PaddleOCR圖像識(shí)別框架,針對(duì)員工行程卡截圖批量采集后進(jìn)行批量掃描識(shí)別,并運(yùn)用關(guān)鍵字段提取技術(shù),格式化輸出匯總關(guān)鍵字段,最后進(jìn)行比對(duì),篩查行程卡截圖日期、是否本人行程卡、軌跡是否涉及中高風(fēng)險(xiǎn)區(qū)域,來(lái)管控員工風(fēng)險(xiǎn)出行、瞞報(bào)漏報(bào)情況,免于人工逐一檢查核對(duì)、登記。
在疫情防控期間,全國(guó)多地區(qū)仍存在疫情增長(zhǎng)的情況,造成此情況的主要原因就是人員跨風(fēng)險(xiǎn)區(qū)域流動(dòng),因此管控人員前往中高風(fēng)險(xiǎn)區(qū)域就成了降低感染風(fēng)險(xiǎn)最為有效的手段,故做實(shí)、做好每一位員工的軌跡篩查就成了疫情防控工作中極為重要的一環(huán)。但是作為疫情防控管理者,常常要短時(shí)間內(nèi)篩查企業(yè)內(nèi)大量員工的出行信息,常規(guī)做法僅能通過(guò)人工收集、登記、對(duì)比、判斷行程信息,不僅費(fèi)時(shí)費(fèi)力,還非常容易出錯(cuò)。
本文通過(guò)梳理軌跡篩查研判流程,逐一分析流程中的痛點(diǎn)、難點(diǎn)問(wèn)題,結(jié)合目前的OCR圖像智能識(shí)別技術(shù),設(shè)計(jì)了一套集行程卡批量采集、關(guān)鍵字段批量提取、數(shù)據(jù)自動(dòng)比對(duì)研判的智能識(shí)別程序,使用自動(dòng)化、智能化策略替代人工工作,大大提高了疫情防控質(zhì)效,節(jié)省了大量時(shí)間。
目前主流的OCR開(kāi)源模型框架有EasyOCR、Chineseocr、Chineseocr_lite、Tesserocr、PaddleOCR,幾種框架其主要特征如下(如表1):
表1 主流OCR開(kāi)源模型框架對(duì)比Tbl.1 Comparison of mainstream OCR open source model frameworks
通過(guò)比對(duì)以上5種主流OCR開(kāi)源模型框架,可以看出PaddleOCR-v2在易用性及精度方面表現(xiàn)最佳,故本項(xiàng)目選擇PaddleOCR開(kāi)源模型框架作為“通信大數(shù)據(jù)行程卡”圖像識(shí)別主要框架。
(1)通過(guò)問(wèn)卷星系統(tǒng)設(shè)計(jì)創(chuàng)建“通信大數(shù)據(jù)行程卡截圖收集表”,批量采集行程卡圖像;(2)使用Selenium爬蟲(chóng)程序?qū)⑿谐虉D像附件自動(dòng)化下載至本地磁盤(pán);(3)啟動(dòng)識(shí)別主程序,調(diào)用PaddleOCR圖像識(shí)別引擎批量掃描識(shí)別行程卡圖像中的文本值;(4)通過(guò)關(guān)鍵詞提取、數(shù)據(jù)切片定位、正則表達(dá)式等方法[1],將識(shí)別結(jié)果中的日期、手機(jī)號(hào)碼、健康碼顏色、行程地點(diǎn)格式化輸出匯總,形成電子篩查臺(tái)賬;(5)調(diào)用Excel復(fù)合函數(shù)篩查“是否本人行程卡”“截圖日期”“有無(wú)風(fēng)險(xiǎn)出行情況”等關(guān)鍵字段,最終實(shí)現(xiàn)人工替代(如圖1所示)。
圖1 “ 通信大數(shù)據(jù)行程卡”識(shí)別處理流程圖Fi g.1 "Communication Big Data Travel Card" identification processing flowchart
(1)利用問(wèn)卷星系統(tǒng)設(shè)計(jì)創(chuàng)建行程卡在線填報(bào)表單,加入圖像上傳模塊,并生成分享鏈接,通過(guò)微信群等渠道分發(fā)全員,員工通過(guò)鏈接自主上傳行程卡截圖(如圖2所示),短時(shí)間內(nèi)即可收集全員行程卡。
圖2 “通信大數(shù)據(jù)行程卡”在線上傳表Fig.2 "Communication Big Data Travel Card"online upload form
(2)通過(guò)編寫(xiě)Selenium爬蟲(chóng)程序?qū)⑿谐炭▓D像附件自動(dòng)下載至本地磁盤(pán)(如圖3所示)。
圖3 “通信大數(shù)據(jù)行程卡”圖像附件Fig.3 "Communication Big Data Travel Card" image attachment
(3)使用Python語(yǔ)言調(diào)用PaddleOCR圖像識(shí)別引擎針對(duì)行程卡截圖進(jìn)行批量處理(本文以C:ocr_test路徑下的“張三”行程卡為例)。
在首次進(jìn)行識(shí)別時(shí),PaddleOCR會(huì)自動(dòng)聯(lián)網(wǎng)下載高精度輕量化識(shí)別模型,加載后進(jìn)行圖像識(shí)別(模型默認(rèn)路徑:C:Users“計(jì)算機(jī)用戶(hù)名”.paddleocr),最終返回圖像中全部的文本值(如圖4所示)。
圖4 單張“通信大數(shù)據(jù)行程卡”圖像識(shí)別結(jié)果Fig.4 Single "Communication Big Data Travel Card" image identification results
1)主要調(diào)用代碼:
from paddleocr import PaddleOCR#調(diào)用識(shí)別模塊
ocr = PaddleOCR(lang='ch',use_gpu=Fals) # 中英文識(shí)別語(yǔ)言設(shè)置等其他參數(shù)設(shè)置
img_path = r'C:ocr_test工號(hào):1234+姓名:張三.png' # 行程卡截圖保存路徑
result = ocr.ocr(img_path) # 提取圖像識(shí)別內(nèi)容
for line in result: # 分行打印輸出識(shí)別文本
print(line)
2)返回識(shí)別結(jié)果
(4)關(guān)鍵字段提取。圖片識(shí)別后的文本結(jié)果以多維列表形式返回,通過(guò)Python語(yǔ)言針對(duì)列表數(shù)據(jù)進(jìn)行拆分處理并提取字符,最后采用關(guān)鍵字定位或正則表達(dá)式方法[1]可將行程卡“顏色”“手機(jī)號(hào)碼”“截圖日期”“近14天行程”等關(guān)鍵字段抽取并寫(xiě)入Excel匯總表(如圖5中的A-G列)。
圖5 程序輸出的“出行風(fēng)險(xiǎn)篩查匯總表”Fig.5 "Travel Risk Screening Summary" output by the program
(5)信息比對(duì)研判,結(jié)果可視化輸出。編寫(xiě)Excel復(fù)合比對(duì)驗(yàn)證函數(shù)并通過(guò)Python語(yǔ)言調(diào)用,將從行程卡截圖中提取的關(guān)鍵字段數(shù)據(jù)與公司預(yù)留的員工資料數(shù)據(jù)、疫情風(fēng)險(xiǎn)區(qū)域等數(shù)據(jù)互相比對(duì)驗(yàn)證,最后將驗(yàn)證結(jié)果追加寫(xiě)入Excel匯總表中,可視化顯示“是否本人行程卡”“出行是否提前報(bào)備”“截圖日期”“是否到訪中高風(fēng)險(xiǎn)區(qū)域”等關(guān)鍵篩查信息,最終形成一張完整的員工“出行風(fēng)險(xiǎn)篩查匯總表”(如圖5中H-K列)。
通過(guò)行程卡在線上傳、圖像爬取、圖像識(shí)別、關(guān)鍵字提取、文本比對(duì)一套系統(tǒng)化流程,節(jié)省了防疫管理人員大量時(shí)間,尤其在疫情防控期間,對(duì)控制企業(yè)大量人員流動(dòng)、快速發(fā)現(xiàn)疫情傳播風(fēng)險(xiǎn)等方面,具有十分重要意義。
引用
[1]鄒亞劼.基于OCR的文檔圖片檢測(cè)與信息提取系統(tǒng)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015:1-67.
數(shù)字技術(shù)與應(yīng)用2022年12期