聶霜霜 楊軼男 衛(wèi)晶 馬建鐘
摘 ?要:通過對已有手寫字符識別相關(guān)技術(shù)和應(yīng)用實(shí)例進(jìn)行研究,發(fā)現(xiàn)Tesseract文本識別方法具有經(jīng)濟(jì)、可訓(xùn)練、識別準(zhǔn)確等優(yōu)點(diǎn),設(shè)計(jì)了基于Tesseract文本識別的特殊手寫字符檢票系統(tǒng)。此系統(tǒng)結(jié)合數(shù)字圖像處理技術(shù),以谷歌開源OCR引擎Tesseract的字符識別技術(shù)為核心,并通過訓(xùn)練字庫實(shí)現(xiàn)對多種選民手寫選票的準(zhǔn)確識別。測試結(jié)果表明,該系統(tǒng)具有實(shí)時(shí)性、交互性、高可靠性等特點(diǎn),為紙質(zhì)選票的傳統(tǒng)人工唱票計(jì)票方式提供了智能解決方案。
關(guān)鍵詞:手寫字符識別;選票識別系統(tǒng);圖像處理;Tesseract-OCR
中圖分類號:TP391.1 ? ? ? 文獻(xiàn)標(biāo)識碼:A文章編號:2096-4706(2022)05-0001-05
Research on Ticket Checking System Based on Tesseract-OCR Text Recognition
NIE Shuangshuang, YANG Yinan, WEI Jing, MA Jianzhong
(School of Information Technology and Engineering Tianjin University of Technology and Education, Tianjin ?300222, China)
Abstract: According to the research of related technologies and application examples of existing handwritten character recognition, it is found that Tesseract text recognition method has the advantages of economy, trainable and accurate recognition and so on, and a special handwritten character ticket checking system based on Tesseract text recognition is designed. This system combines digital image processing technology, with the character recognition technology of Google open source OCR engine Tesseract as the core, and realizes the accurate recognition of multiple voters’ handwritten ballots through the training word library. The testing results show that the system has the characteristics of real-time, interaction and high reliability and so on, which provides an intelligent solution for the traditional manual vote counting method of paper ballots.
Keywords: handwritten character recognition; ballot recognition system; image processing; Tesseract-OCR
0 ?引 ?言
在信息技術(shù)高速發(fā)展的今天,傳統(tǒng)計(jì)票方式已經(jīng)不能滿足社會的普遍需求。面對大型選舉中產(chǎn)生的數(shù)量龐大的手寫選票,傳統(tǒng)計(jì)票方式已無法準(zhǔn)確并且快速地得出選舉結(jié)果。為解決人工唱票統(tǒng)計(jì)方式中存在的諸多問題,多種基于圖像識別技術(shù)的選票統(tǒng)計(jì)方法陸續(xù)被提出。此類方法基于計(jì)算機(jī)自動識別方式統(tǒng)計(jì)選票內(nèi)容,大大提高了選票統(tǒng)計(jì)的速度,在一定程度上彌補(bǔ)了傳統(tǒng)計(jì)票方式存在的缺陷,同時(shí)避免了人工唱票時(shí)因人為因素導(dǎo)致的不公平問題。然而,基于圖像識別技術(shù)的選票統(tǒng)計(jì)方法在已有技術(shù)基礎(chǔ)上很難快速適應(yīng)人們的常規(guī)選舉習(xí)慣,傳統(tǒng)選票通常采用手寫字符“√,×,○”進(jìn)行選舉,但現(xiàn)有的計(jì)算機(jī)識別字庫中基本無法對手寫字符“√,×,○”進(jìn)行比較準(zhǔn)確的識別,所以仍需要進(jìn)行深入研究以獲得適合現(xiàn)實(shí)選舉場景的自動識別系統(tǒng)[1]。
Tesseract是目前最完備的開源OCR引擎,不僅具備極高的精確度,同時(shí)也具有很高的靈活性,可以讀取多種格式的圖像,并可以將它們轉(zhuǎn)化成多種語言的文本,而且支持使用者不斷訓(xùn)練字庫來識別出任何需要的字體[2]。目前該技術(shù)已被應(yīng)用于文檔掃描、票據(jù)識別、古漢語識別等多種場景,并且得到了很好的反響[3]。
根據(jù)前期調(diào)查結(jié)果,針對某些需要手寫式投票的場合,初步確立了手寫特殊字符“√,×,○”檢票識別系統(tǒng)的設(shè)計(jì)方案:首先使用高拍儀快速獲取選票圖片,并結(jié)合圖像處理技術(shù)和Tesseract的字符識別技術(shù)對手寫特殊字符“√,×,○”進(jìn)行快速準(zhǔn)確識別,最后將識別結(jié)果進(jìn)行統(tǒng)計(jì)并以表格形式進(jìn)行可視化,有效地提高對手寫特殊字符“√,×,○”識別的效率,解決傳統(tǒng)選票識別方法存在的效率低,容易出錯等問題。
1 ?整體框架
1.1 ?技術(shù)路線
本系統(tǒng)運(yùn)用高拍儀進(jìn)行選票圖像獲取,同時(shí)以Tesseract的字符識別技術(shù)為核心,結(jié)合圖像處理、字符區(qū)域檢測、字庫訓(xùn)練等技術(shù),實(shí)現(xiàn)對特殊手寫字符“√,×,○”進(jìn)行準(zhǔn)確識別和快速統(tǒng)計(jì)功能。
實(shí)施階段主要分為系統(tǒng)功能實(shí)現(xiàn)和系統(tǒng)優(yōu)化兩大部分,其中系統(tǒng)功能實(shí)現(xiàn)階段分為:圖像獲取、圖像預(yù)處理、字庫訓(xùn)練、字符識別、顯示統(tǒng)計(jì)結(jié)果。圖像預(yù)處理實(shí)現(xiàn)字符位置的確定,字符識別實(shí)現(xiàn)對特定字符進(jìn)行識別,字庫訓(xùn)練實(shí)現(xiàn)生成系統(tǒng)特有的字庫,顯示統(tǒng)計(jì)結(jié)果實(shí)現(xiàn)對識別結(jié)果進(jìn)行統(tǒng)計(jì)并顯示在界面上。系統(tǒng)優(yōu)化階段包括優(yōu)化算法,加大字庫樣本訓(xùn)練。研究技術(shù)路線如圖1所示。
圖1 ?技術(shù)路線圖
1.2 ?系統(tǒng)功能實(shí)現(xiàn)
實(shí)現(xiàn)系統(tǒng)功能階段的實(shí)施方案主要分為四個部分:(1)選票圖像獲取。(2)圖片預(yù)處理,即通過運(yùn)用數(shù)字圖像處理技術(shù)確定要識別的字符區(qū)域。(3)選票字符識別,用jTessBoxEditor對手寫字符“√,×,○”進(jìn)行樣本訓(xùn)練,得到本系統(tǒng)專用字庫,運(yùn)用Tesseract對字符進(jìn)行識別。(4)識別結(jié)果處理,統(tǒng)計(jì)識別結(jié)果并顯示。系統(tǒng)功能實(shí)現(xiàn)流程如圖2所示。
圖2 ?系統(tǒng)功能實(shí)現(xiàn)流程
1.3 ?系統(tǒng)優(yōu)化
在實(shí)現(xiàn)系統(tǒng)功能后,對系統(tǒng)的識別準(zhǔn)確率和識別速率等進(jìn)行多方面測試,根據(jù)測試結(jié)果對系統(tǒng)進(jìn)行優(yōu)化。具體優(yōu)化內(nèi)容包括:識別速度優(yōu)化、識別準(zhǔn)確率優(yōu)化。其中識別速度主要與系統(tǒng)采用的圖像處理算法、圖片獲取方式等因素有關(guān),可以通變改進(jìn)圖像處理算法、改進(jìn)選票圖像獲取方式進(jìn)行系統(tǒng)識別速度優(yōu)化。識別準(zhǔn)確率與圖像處理效果、字庫質(zhì)量等有關(guān),可以通過加大字庫訓(xùn)練樣本數(shù)量、增加樣本隨機(jī)性來優(yōu)化識別準(zhǔn)確率。優(yōu)化流程圖如圖3所示。
圖3 ?系統(tǒng)優(yōu)化流程
2 ?系統(tǒng)軟件設(shè)計(jì)
2.1 ?系統(tǒng)實(shí)現(xiàn)流程
本系統(tǒng)基于OCR引擎Tesseract的字符識別技術(shù),對手寫符號“√,×,○”進(jìn)行自動識別及選票數(shù)目統(tǒng)計(jì)工作,實(shí)現(xiàn)基于視覺檢測方法的手寫選票特殊字符自動識別統(tǒng)計(jì)。系統(tǒng)實(shí)現(xiàn)具體流程如圖4所示。
圖4 ?系統(tǒng)功能實(shí)現(xiàn)流程
首先,用高拍儀獲取選票圖片,對獲取的圖片進(jìn)行圖像形態(tài)學(xué)操作、傾斜矯正、獲取字符區(qū)域等操作。確定要識別字符的區(qū)域,利用jTessBoxEditor對特定字符“√,×,○”進(jìn)行針對性的訓(xùn)練來獲得系統(tǒng)的專門字庫。接著基于字庫,采用Tesseract進(jìn)行手寫字符“√,×,○”識別,通過定義每張選票圖片的左頂角為原點(diǎn)、并以水平向右為X軸正向、豎直向下為Y軸正向,建立一套標(biāo)準(zhǔn)坐標(biāo)系。計(jì)算圖片中原點(diǎn)與各文字區(qū)域框的距離遠(yuǎn)近,用sorted函數(shù)實(shí)現(xiàn)按升序排列。調(diào)用Tesseract對按此順序排列的一系列文本框進(jìn)行識別,將識別數(shù)據(jù)按sorted升序排列寫入字典中,通過循環(huán)檢票輸出識別結(jié)果,并寫入result.txt文本文檔,最終將識別結(jié)果顯示在界面上。
2.2 ?實(shí)現(xiàn)步驟及原理
2.2.1 字符區(qū)域檢測——處理選票圖像對選民意向字符區(qū)域進(jìn)行提取
使用數(shù)字圖像處理技術(shù),對用高拍儀獲取的選票圖像進(jìn)行灰度化、二值化等處理,利用高斯濾波對選票圖像進(jìn)行平滑、過濾、降噪處理,檢測出特殊手寫字符“√,×,○”所在區(qū)域的輪廓,提取輪廓,利用透視變換對選票圖像進(jìn)行分割處理進(jìn)而去除不符合文字特點(diǎn)的邊框[4]。處理流程如圖5所示。
(1)對要處理的選票圖像進(jìn)行灰度化處理。對獲取的選票圖像的灰度化處理作為圖像處理的預(yù)處理步驟,為圖像分割、圖像識別和圖像分析等操作做準(zhǔn)備,灰度化處理將彩色圖像轉(zhuǎn)化為灰度圖像,根據(jù)每一張圖像是由像素點(diǎn)矩陣構(gòu)成對圖像的處理,所以就可以看作是對像素點(diǎn)矩陣進(jìn)行處理,而一個像素點(diǎn)的顏色由藍(lán)、綠、紅三個變量表示,通過對這三個變量的賦值來改變這個像素點(diǎn)的顏色,因此將BGR格式轉(zhuǎn)換成灰度圖片來實(shí)現(xiàn)選票圖像灰度化處理效果[5]。
(2)將灰度化的選票圖像進(jìn)行二值化處理。接著對掃描得到的圖像進(jìn)行二值化處理,而二值化處理對顏色、灰度等信息作處理,還可以用來去掉不必要的信息,來提高圖片的質(zhì)量進(jìn)而提高識別速度,并為手寫符號特征提取打下基礎(chǔ)。在這里通過將圖像的像素點(diǎn)矩陣中的每個像素點(diǎn)的灰度值變?yōu)闉?或者255讓整個圖像凸顯出黑白效果,有利于對圖像的進(jìn)一步處理,使處理變得簡單[6]。
圖5 ?字符區(qū)域檢測流程
(3)對圖像進(jìn)行高斯濾波處理。高斯濾波用于圖像處理的降噪過程,用來去除高斯噪聲,高斯濾波將整幅選票圖像的每一個像素點(diǎn)本身的值和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到每個像素點(diǎn)的新值,用一個卷積、掩模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值來替代模板中心像素點(diǎn)的值[7]。
(4)對圖像進(jìn)行腐蝕膨脹處理。膨脹對選票圖像求局部最大值的處理是對圖像中的高亮部分進(jìn)行擴(kuò)張,讓白色區(qū)域變多。腐蝕是選票圖像中的高亮部分被蠶食,讓黑色區(qū)域變多。在這里通過一次膨脹讓輪廓突出,通過一次腐蝕去掉細(xì)節(jié)再通過一次膨脹使特殊手寫字符區(qū)域的輪廓突出,并去除掉一些邊框線條,而后通過查找輪廓的方法就可以計(jì)算出字符區(qū)域的位置[8]。
2.2.2 ?字符識別——Tesseract-OCR對選民意向字符進(jìn)行識別
通過訓(xùn)練特殊手寫字符“√,×,○”的專用字庫提高識別準(zhǔn)確率,jTessBoxEditor對選票中的特殊手寫字符“√,×,○”進(jìn)行訓(xùn)練,形成專門的字庫,可以大大提高對圖片文字的識別準(zhǔn)確率[9]。同時(shí),結(jié)合谷歌開源OCR引擎Tesseract實(shí)現(xiàn)對特殊手寫字符“√,×,○”的準(zhǔn)確識別,首先計(jì)算圖片中原點(diǎn)與各文字區(qū)域框的距離遠(yuǎn)近,用sorted函數(shù)實(shí)現(xiàn)按升序排列。再調(diào)用Tesseract對按此順序排列的一系列文本框進(jìn)行識別,將識別數(shù)據(jù)按sorted升序排列寫入字典中,最終通過循環(huán)檢票輸出識別結(jié)果并寫入result.txt文本文檔[10]。特殊手寫字符“√,×,○”字庫訓(xùn)練具體流程如圖6所示。
圖6 ?字庫訓(xùn)練具體流程
2.2.3 ?將識別結(jié)果放入指定文檔并進(jìn)行分類展示在界面中
紙質(zhì)選票圖像的幾何結(jié)構(gòu)區(qū)優(yōu)先識別問題可歸類于選票表格幾何結(jié)構(gòu)優(yōu)先識別問題,因此,可通過分析特定選票圖像中的表格設(shè)計(jì)結(jié)構(gòu)來解決選票圖像幾何結(jié)構(gòu)區(qū)優(yōu)先識別的難題[11]。
文字區(qū)域檢測(圖片預(yù)處理:灰度化、二值化等系列處理)后,通過定義所拍攝每張選票圖片的左頂角為原點(diǎn),并以選票水平向右為X軸正向,豎直向下為Y軸正向,建立一套標(biāo)準(zhǔn)坐標(biāo)系。計(jì)算圖片中原點(diǎn)與各文字區(qū)域框的距離遠(yuǎn)近,用sorted函數(shù)實(shí)現(xiàn)按升序排列。具體實(shí)現(xiàn)方法思想為,計(jì)算圖片原點(diǎn)與各文本框的距離。如將左下角坐標(biāo)(x1,y1)作為統(tǒng)一參考點(diǎn),具體算法為,首先在所有框里選出y值越大的優(yōu)先排序(y降序),再在這些框里按x值越小的優(yōu)先排序(x升序),從而經(jīng)由雙重排序算法求出各框與圖中原點(diǎn)距離的遠(yuǎn)近。文本識別Tesseract識別按此順序排列的一系列文本框后,將識別數(shù)據(jù)按sorted升序排列寫入字典中。最終可以通過循環(huán)檢票輸出最終識別結(jié)果寫入result.txt文本文檔,并進(jìn)行分類展示在界面中。確定識別順序具體操作如圖7所示。
系統(tǒng)優(yōu)化——系統(tǒng)功能基本已經(jīng)實(shí)現(xiàn),經(jīng)過測試,選票識別速率和識別準(zhǔn)確性還未能達(dá)到目的。我們通過優(yōu)化圖像處理算法,采用合適的濾波器最大程度還原圖像質(zhì)量,保護(hù)圖像的細(xì)節(jié)信息。同時(shí),我們加大了樣本圖片的訓(xùn)練,我們結(jié)合系統(tǒng)需要,打印出1 000份相同的空選票作為數(shù)據(jù)集的載體,隨機(jī)尋找不同年齡段的群眾,進(jìn)行選票的隨機(jī)填寫,獲得了1 000張數(shù)據(jù)集,并對樣本圖片進(jìn)行訓(xùn)練,獲得了識別手寫字符“√,×,○”的專用字庫,最終系統(tǒng)對手寫字符“√,×,○”的識別速度和識別精度得到了大大的提高,在之前系統(tǒng)基礎(chǔ)上完善了選舉模型的信息流程部分[12]。通過對比測試結(jié)果可以看出本系統(tǒng)已基本可以滿足需求。系統(tǒng)優(yōu)化前后識別結(jié)果對比如圖8所示。
圖7 ?確定識別順序具體操作
圖8 ?系統(tǒng)優(yōu)化前后識別結(jié)果對比
3 ?硬件設(shè)計(jì)
本系統(tǒng)使用高拍儀快速獲取尺寸一致的樣本圖片。高拍儀具有操作簡單、拍攝速度快、省電、拍攝清晰、可設(shè)定獲取圖片格式等優(yōu)點(diǎn),可以很好地滿足檢票系統(tǒng)獲取樣本圖片高質(zhì)量、低成本、快速、圖片格式固定等需求。通過使用高拍儀獲取選票圖片的設(shè)計(jì)大大縮短了選票樣本圖片獲取時(shí)間,提高了獲取選票樣本圖片的質(zhì)量,使系統(tǒng)對手寫字符“√,×,○”的識別效率得到了很大的提高。高拍儀獲取樣本圖片過程如圖9所示。
圖9 獲取樣本圖片
4 ?檢票識別結(jié)果顯示與系統(tǒng)調(diào)試
顯示界面運(yùn)用GUI設(shè)計(jì)工具,通過Python語言交互式編程環(huán)境來設(shè)計(jì)和實(shí)現(xiàn),在整體項(xiàng)目實(shí)施中充分考慮了代碼的可移植性、可維護(hù)性及可復(fù)用性[13]。
運(yùn)行系統(tǒng),以6位候選人數(shù)據(jù)采集為例,其數(shù)據(jù)采集終端界面如圖10所示。
上傳批量選票后,點(diǎn)擊“開始識別選票”按鈕,統(tǒng)計(jì)結(jié)果通過“選票識別結(jié)果統(tǒng)計(jì)”窗口在用戶界面呈現(xiàn),選票統(tǒng)計(jì)結(jié)果顯示界面如圖11所示。測試結(jié)果表明,該系統(tǒng)最終實(shí)現(xiàn)了對手寫紙質(zhì)選票快速精準(zhǔn)的自動識別及計(jì)票統(tǒng)計(jì)工作。
圖10 ?數(shù)據(jù)采集終端界面
圖11 ?選票統(tǒng)計(jì)結(jié)果顯示界面
在測試過程中,系統(tǒng)對樣本圖片的預(yù)處理過程存在拒識、字符定位不準(zhǔn)等問題,通過改進(jìn)圖像獲取方式,優(yōu)化圖像處理算法,采用合適的濾波器來最大程度還原圖像質(zhì)量,保護(hù)圖像的細(xì)節(jié)信息,提高圖像預(yù)處理效率。在字符識別過程中,字符識別準(zhǔn)確率低,通過提高樣本隨機(jī)性,加大樣本訓(xùn)練數(shù)量來積累字庫,從而提高字符識別準(zhǔn)確率。另外,在識別結(jié)果的顯示界面上,存在信息展示不夠清晰等問題,通過重新設(shè)計(jì)界面模塊,提高結(jié)果顯示清晰度。經(jīng)過系統(tǒng)優(yōu)化,使系統(tǒng)可以更好地應(yīng)用于實(shí)際生活中的各種檢票場景。
5 ?結(jié) ?論
以“紙質(zhì)選票—智能計(jì)票”為主線,對大量不同情況下的選票完成監(jiān)督學(xué)習(xí)訓(xùn)練,為紙質(zhì)選票的傳統(tǒng)人工唱票計(jì)票方式提供智能化解決方案。系統(tǒng)基于谷歌開源OCR引擎Tesseract的字符識別技術(shù),針對某些需要手寫式投票的場合,設(shè)計(jì)并實(shí)現(xiàn)基于視覺檢測方法的選票自動識別統(tǒng)計(jì)系統(tǒng),對手寫符號“√,×,○”進(jìn)行自動識別及選票數(shù)目統(tǒng)計(jì)工作。系統(tǒng)結(jié)構(gòu)簡單,使用方便,可視性強(qiáng),在實(shí)際應(yīng)用中可以減輕選票統(tǒng)計(jì)時(shí)的工作量,同時(shí)增加選舉的可靠性,可以在多數(shù)需要手寫投票的活動上進(jìn)行推廣。
參考文獻(xiàn):
[1] 彭程,韓嘯,等.深度卷積神經(jīng)網(wǎng)絡(luò)下選票系統(tǒng)智能化識別研究與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用,2019,39(S2):85-90.
[2] 曾悅,馬明棟.基于Tesseract_OCR文字識別的研究 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2021,31(11):76-80.
[3] 王君,柳清瑞,藤淑娟,等.基于表格的手寫體字符識別技術(shù)研究 [J].小型微型計(jì)算機(jī)系統(tǒng),2002(7):890-893.
[4] 李俊山,李旭輝,朱子江.數(shù)字圖像處理:第3版 [M].北京:清華大學(xué)出版社,2017.
[5] 章毓晉.圖像處理和分析 [M].北京:清華大學(xué)出版社,1999.
[6] 李紅俊,韓冀皖.數(shù)字圖像處理技術(shù)及其應(yīng)用 [J].計(jì)算機(jī)自動測量與控制,2002(9):620-622.
[7] 周作梅,宋蘭霞.頻域?yàn)V波器在數(shù)字圖像處理中的應(yīng)用研究 [J].信息與電腦(理論版),2021,33(15):198-200.
[8] 鄒宏偉.基于OpenCV的數(shù)字圖像處理技術(shù)研究與實(shí)現(xiàn) [J].無線互聯(lián)科技,2019,16(22):118-119.
[9] 潘浩,李蘭.基于Tesseract引擎樣本訓(xùn)練的驗(yàn)證碼識別 [J].信息與電腦(理論版),2020,32(1):138-139+142.
[10] 張中良.基于機(jī)器視覺的圖像目標(biāo)識別方法綜述 [J].科技與創(chuàng)新,2016(14):32-33.
[11] 張站.基于符號識別技術(shù)的選舉計(jì)票系統(tǒng)研究 [D].合肥:安徽大學(xué),2012.
[12] 謝金寶,劉暉波.電子選舉系統(tǒng)的基本框架與信息流程 [J].計(jì)算機(jī)工程,2000(S1):97-102.
[13] 康計(jì)良.Python語言的可視化編程環(huán)境的設(shè)計(jì)與實(shí)現(xiàn) [D].西安:西安電子科技大學(xué),2013.
作者簡介:聶霜霜(2000—),女,漢族,湖北襄陽人,本科在讀,研究方向:字符識別技術(shù)、圖像處理技術(shù);楊軼男(2002—),女,漢族,山西運(yùn)城人,本科在讀,研究方向:字符識別技術(shù)、圖像處理技術(shù);衛(wèi)晶(2000—),女,漢族,山西臨汾人,本科在讀,研究方向:字符識別技術(shù)、圖像處理技術(shù);馬建鐘(2002—),男,漢族,福建龍巖人,本科在讀,研究方向:字符識別技術(shù)、圖像處理技術(shù)。