羅維
【摘 要】利用計算機技術提高傳統紙質投票的計票效率,避免計算機圖像識別產生的拒識和誤識對整個計票過程的干擾,開發出一套高效可視可控的通用計票系統。文章利用高速掃描儀進行紙質選票的圖像數據采集,結合準確度較高的印刷體數字和手寫體符號OCR識別技術,配合能適應各種投票規則過程的通用性數據庫數據結構設計一種通用計票系統。該系統既能保存紙質投票的優點,又能高效地完成數據采集及結果輸出,對實際投票特別是會議投票具有一定的實用價值。
【關鍵詞】計票;投票;掃描;識別
【中圖分類號】TP391.41 【文獻標識碼】A 【文章編號】1674-0688(2018)09-0063-03
傳統的紙質投票選舉過程耗時費力,且不能保證計票過程公平、公正,普遍存在計票效率低下、統計人為誤差大等問題,最為突出的問題是對于流程復雜的過程難以高效完成。隨著計算機技術的普及,出現了利用計算機網絡進行投票的系統,但是系統透明度不高,容易引起爭議。傳統的紙質投票能很好地保留投票憑據,避免計票結果出來后無法查證選票的麻煩。如何利用計算機技術保留紙質投票的優點,高效完成復雜的投票工作,對于選舉活動具有一定的社會價值。2002年,王慶生等[1]發表了題為《利用OMR自動讀票的計算機選舉系統》的論文,文中指出采用光標閱讀機專業設備進行讀票。2011年,張站[2]發表了《基于符號識別技術的選舉計票系統研究》的學位論文,文章指出“系統離實際應用還有一段距離”。國內也出現了一些同類電子投票箱產品,例如2010年張婷[3]等提出的基于機器識別的智能票箱,但是適用范圍窄,設備專一。同時還有一些智能票箱采用的是紅、藍、綠、黃等底色的特殊紙張或填涂卡。2014年,昝麗紅[4]提出的系統依然存在一定誤差。本文研究的系統是基于常用的黑白激光打印機和高速掃描儀,配合數據庫開發一套穩定、實用性強的計票系統,計票過程公開、透明、公平、公正,實現計票結果無誤差,具有一定的實用性。
1 系統設計
本系統將傳統的投票計票過程與計算機技術相結合,提高投票統計效率,避免投票者對結果的猜疑,做到結果完全正確無誤差,計票過程可視,真正做到公平、公正、公開。設計原則為使用過程高效,結果無誤差,適用各類選舉投票活動。系統運行所需主要設備為普通A4黑白激光打印機、滾筒高速掃描儀和普通筆記本電腦,輔助設備可選投影儀。掃描儀接口和識別部分采用C++進行程序編寫,主程序采用Delphi進行編程,操作要求簡單快捷。投票系統需要滿足各種投票流程和規則,將各種規則設置記錄到數據庫中,在投票時對規則進行判斷。
2 主要功能模塊
2.1 選票設計打印模塊
選票設計首先要考慮選票版面設計。選票版面設計是計算機計票系統構建的第一步,其設計直接關系到OCR過程的復雜度。選票版面設計要考慮投票項目的可增長性、選票版面高效處理性和選票的信息量。結合這3點并考慮打印出的選票是黑白二值單色紙張,最終定為以行列為主的間隔表格,如圖1所示。
采取圖1選票版面的目的:①可以在選票上顯示足夠的信息,保證字體大小適中,方便選舉人填選,中間的區域為投票項目的信息顯示區,不需要進行識別。②高速進行切分定位(表格線在保證識別的情況下要足夠粗,避免出現無法識別水平線的問題)。③能夠統計出投票人數信息,避免漏掃(未收或者掃描儀多頁進紙當1頁掃描),拒絕多次采集(掃描過的頁無法進行二次采集輸入)。④方便監票人在掃描過程對數據進行核對,確保采集準確性(項目行1頁最多15項,方便核對采集的走勢)。
本系統設計了選票設計窗口,方便顯示中間區域的投票內容和排版,以及確定本輪次投票的表態欄個數。
2.2 選票高速掃描模塊
市面上的高速滾筒掃描儀基本是A4幅面,支持TWAIN協議和二值黑白掃描。由于后期需要OCR識別隨機碼數字和手寫體“√”“×”“○”識別,為保證準確性將掃描儀的分辨率設為300 dpi。激光黑白打印機打印出來的圖像是黑白圖像,并且掃描儀進行黑白二值掃描比相同分辨率的彩色掃描速度要快,所以采用黑白二值掃描圖像。高速掃描模塊采用C++進行開發,利用通用TWAIN協議即可方便連接掃描儀采集圖像。
本模塊需要考慮以下功能:①枚舉系統連接或者安裝的掃描儀,供操作人員選擇。②能設定掃描儀的相關掃描參數。③控制掃描儀能逐頁進紙掃描。為了方便對掃描過程進行監控,不能采用預掃描(掃描儀都有一個緩存掃描的模式,這個模式下掃描儀會連續將進紙器上的紙質全部掃描緩存,本系統不推薦這種模式。原因是本系統必須保證掃描統計結果無誤差,每掃描一頁,這一頁的采集數據必須完全正確,監票人在每掃描一頁需要核對該頁的數據)。④將原始圖像以bitmap格式傳給選票版面快速識別模塊。
2.3 選票版面快速識別模塊
從掃描儀采集到的圖像必須經過預處理,才能進行后續的圖像處理和分析。預處理的主要步驟是圖像糾偏。糾偏的目的是使圖像在一較小的歪斜角度內。由于打印機進紙機構、掃描儀放紙和滾筒進紙都會因機械運行產生偏角,使得本應該垂直的直線變歪了。這個歪角必須在一個合適的范圍內,太大可能會導致線條拒識。由于選票模板采用線條,因此本系統采用hough變換獲取角度。在獲取偏角后糾正圖片,利用線條獲取每行坐標,并通過線條的經驗值像素大小逐步縮小范圍,最終獲取每個識別字符的最小識別區域。
2.4 高速OCR識別模塊
本模塊負責數字印刷體和手寫“√”“×”“○”的識別。左下角的識別碼和頁碼,以及序號列都是印刷體數字。本系統采用KNN算法對選定字體的數字進行識別。5位隨機碼是特定不連續且具備一定算法,錯一位都可以判斷出識別錯誤的計算方法,可靠性比較好。頁碼識別需要配合左側序號列進行雙重判斷,錯誤率比較低。
對于填涂區“√”“×”“○”的手寫體識別,先進行一次簡單的縮放后,直接使用最簡單的垂直交點個數的分布進行分類識別,每個識別框的結果可能為空、勾、叉、圈、涂改、無法識別6種結果。手寫體的書寫可能出現不規范和涂改的情況。本系統規定每一個投票項目都必須表態,如果項目的表態個數(框內黑色像素點個數超過一個筆頭印的像素個數,即算該格進行了表態),多余一個表態的項目控制模塊會轉由人工判斷。
經過大量測試發現,本系統進行實際手寫體符號“√”“×”“○”的識別中,“√”的識別結果最好,“×”“○”的誤識率較高,主要原因是書寫不規范,圈的封閉性沒有寫規范(可能出現寫成“U”的情況,容易和“√”混淆,發生錯識),并且“×”的書寫由于兩筆的連寫容易寫成封閉的圈和小“×”共存的情況(這種情況容易和“○”混淆,發生錯識)。由于標準“√”基本上一筆完成,左邊低右邊高,書寫過程簡單,所以書寫相對比較規范。本系統實際使用時,為保證足夠的進度,建議使用“√”為填寫符號。但是“√”寫錯的情況經常出現在“√”上多打一筆成為差的情況,但是由于本系統的版面是最少兩列的情況,也就是同意和不同意分兩列同時出現,這樣即使填寫錯,書寫為“√”打點的情況,也需要在另外一個表態欄進行續寫。這樣同一個項目的表態就識別出兩個表態區都有表態,交由控制模塊彈出人工確定窗口,交由監票員進行確定。
2.5 投票控制模塊
本模塊負責控制每個輪次的進紙,識別及出現識別錯誤等情況進行數據糾正輸入,也負責根據打印排序等要求對每輪結果進行打印,并依據輪次規則,將本輪結果中符合下一輪次的項目導入下一輪次項目中。控制模塊的相關參數需要在投票前配置完畢,配置參數保存在數據庫中。
3 程序界面設計
考慮到同屏投影和實時監票的需求,本系統選票以單頁進行顯示,每掃描一頁顯示一頁的項目填選情況,同時以數字進行累計得票顯示,程序主界面如圖2所示。實際監票過程需要人工將剛過掃描儀的選票放置電腦顯示器前,供監票人進行頁信息和得票走勢核對。系統在I5 5200CPU筆記本搭配高速掃描的情況下,大約3秒完成一頁進紙和信息采集顯示,剛好滿足監票人員核對票面信息和采集信息。
界面部分必須考慮手工輸入部分,以免會議上出現掃描儀故障等情況影響投票過程。所以主界面上“√”選手動輸入時,輸入正確的已經打印出的驗證碼,則可以在界面表態區點擊進行標紅預選,在本頁全部填寫后,根據標紅格對本頁投票項目的數據進行票數加1。
為加快手動輸入多個表態區數據,如圖3所示,動態列出對應表態框的4個按鈕,方便點擊確認輸入。其他相應的界面都以方便查看和操作為設計方向,力求人性化操作。
4 結語
本文介紹了一種結合傳統紙質投票的電子投票計票系統,該系統利用高速掃描識別計票代替人工統計,體現了監票人的重要性。本系統靈活方便,已經投入各類會議進行計票統計,節省會議時間,得到了一些專家的好評。同時,系統也存在以下不足:①本系統僅適用于中小型投票計票,對于大型投票還是比較耗時。②投票過程采用通用掃描儀,監票人員查票得由操作人員對選票進行手工翻頁放到電腦屏幕前,才能實時看清表態的走勢。③識別過程中,版面分析是系統的關鍵,如果能結合條碼識別會提高版面識別效率。④本系統不支持數字手寫體識別,所以不支持排序輸入(手寫體數字)進行選票排序投票。
參 考 文 獻
[1]王慶生,張劍.利用OMR自動讀票的計算機選舉系統[J].計算機應用研究,2002,19(12):88-89.
[2]張站.基于符號識別技術的選舉計票系統研究[D].合肥:安徽大學,2011.
[3]張婷,舒敬榮.基于圖像識別技術的OMR在選舉計票系統中的應用[J].傳感器世界,2010,16(5):30-32.
[4]昝麗紅.選舉計票系統設計分析[D].合肥:安徽大學,2014.
[責任編輯:鐘聲賢]