前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算機仿真紙幣識別體系分析范文,希望能給你帶來靈感和參考,敬請閱讀。
一、引言
自2002年1月1日起正式發行的歐元,目前已成為歐元區3億居民唯一法定的流通貨幣。隨著我國金融業的日益發展和成熟,歐元在我國流通呈上升趨勢,但在業務中如何鑒別歐元假幣,是令銀行及各用戶感到頭痛的一個問題。所以,開發一款新型的具有優良檢偽性能和良好性介比的歐元鑒別儀,為用戶提供方便、準確、實用的檢測設備將會有很大的應用市場和前景。我們將要開發的鑒別儀的研制主要分為兩個部分:紙幣圖像的讀人識別和紙幣的真偽鑒別。本文主要針對圖像讀人識別這個模塊進行研究。在圖像處理和識別理論的指導下,本文詳細介紹了本課題圖像識別預處理所采用的方法,探討了如何用軟件進行仿真,實驗中我們用掃描儀掃描各個面值的歐元紙幣作為研究對象,按圖像處理和識別的步驟在C++Builder6.0環境下進行仿真。本文按照研究的過程和識別的流程,分別從版面分析、處理區域的確定、圖像的平滑化、圖像的二值化、字符分割等方面對圖像識別預處理作了詳細的描述。
二、仿真
1.版面分析
版面分析是實用識別軟件不可缺少的組成部分,是識別的預處理技術之一,它是利用圖像處理、人工智能等技術完成印刷品圖像文件中文字域的分檢工作。版面分析技術就是利用計算機自動地對印刷版面的圖像數據進行處理和分析,標識出版面上的文字、圖像、圖形及表格區域的位置、屬性和邏輯關系,以便識別器正確地操作到文字域進行識別。因此,版面分析是字符識別過程中一個非常關鍵的步驟,它為后面的字符識別提供了必要的原始材料信息,版面分析質量的好壞在很大程序上決定了字符識別率的高低。本課題中,相對于普通文檔的版面,錢幣的版面有很大的特殊性。首先,從信息分布上看,錢幣的面值信息往往在一定位置上分布,從而可將幣面分為一定的功能塊,由于各功能塊分布具有規律性,要進行處理的幣面數值—幣值,一般位于掃描圖像的左下角區域。對于歐元的版面分析,完全可以借鑒以前的各種成熟算法,在本文中就利用字塊之間的空白信息,對錢幣進行版面分析。當字符串分成若干矩形區域后,可再對其中的信息進行處理。
2.處理區域的確定
分析各類面值的歐元錢幣,幣面上的幣值信息在圖像上的相對位置是穩定的。而且,在掃描時輸人的圖像一般是,錢幣左側的一個窄矩形,利用這些特點,可以在輸入圖像的左下方設定一個固定大小的處理區域,即為實際處理區域,在這個區域里,可以把所有的圖片的幣值字碼框在里面。具體到本程序,取500歐元的幣值區域125x88為標準區域,當窄矩形的右邊和底端小于500歐元的邊界時,相應地減小實際處理區域的大小,這樣才可以保證處理區域在圖像內。這樣減小了后續處理的信息量,加快了處理的速度,便于后面更好地處理和識別。
3.圖像平滑
圖像中總是包含著各種各樣的噪聲,例如來自于紙幣本身的被污染,來自于CCD的光子噪聲,讀出噪聲等等,所以在從圖像提取各種特征之前,有必要先除去這樣的噪聲。通常噪聲產生的機理往往是未知的,而且有時即使知道了產生的機理,也不能對此有效地進行數學上的模型化。在這樣的場合,可采用根據噪聲所具有的一般性質進行噪聲消除的平滑化(smoothing)的方法。圖像平滑處理的方法主要有空間域法和頻域法兩大類。具體到實際處理過程,在空間域內可以用鄰域平均來減少噪聲;在頻率域,由于噪聲頻譜通常多在高頻段,所以多用各種低通濾波的方法來減少噪聲,下面分別介紹兩種方法。(l)中值濾波中值濾波是一種非線性的信號處理方法,在實際運算過程中不需要圖像的統計特征,運用較為方便。中值濾波一般采用一個含有奇數個點的滑動窗口,將窗口中各點灰度值的中值來替代指定點(一般為窗口中心點)的灰度值。對于偶數個元素,中值則是指排序后中間兩個元素灰度值的平均值。中值濾波在一定條件下可以克服圖像細節模糊,而且對濾除脈沖于擾和圖像掃描噪聲最為有效,得到較好的視覺效果。本文取輸人圖像點的3x3鄰域,采用冒泡法,將9個灰度值按從小到大的順序排列,取其排序后位于中間的像素值賦予中心像素,最后備份圖像,準備顯示。(2)低通濾波低通濾波是在頻域上對圖像進行平滑處理,其思路是保留圖像空間頻率的低頻部分,減少圖像的高頻部分,這樣一來可以降低圖像中的視覺噪聲,更易識別圖像中的低頻成份。低通濾波與中值濾波的思路不同。本文中低通濾波是通過卷積來實現。卷積可以簡單地看成是加權求和的過程。卷積時使用的權用一個很小的矩陣來表示,矩陣與使用的區域大小相同,該權矩陣叫做卷積核。區域中的每一個像素分別與卷積核中的每一個元素相乘,所得乘積之和就為區域中心像素的新值。卷積核中各元素叫做卷積系數,卷積核中卷積系數的大小、方向及排列次序決定了卷積的圖像處理效果。川針對本課題的具體情況,本文取的是3x3的正方形鄰域。即取像素的周圍9個像素的灰度平均值作為該像素的輸出灰度值。為了盡量抑制圖像中出現的模糊,本文在加權矩陣中心賦予較大的權重。在卷積的過程中,本文遇到了圖像的邊界問題。當在圖像上逐個移動卷積核時,當卷積核移到圖像的邊界時,在原圖像上就不能完整找到與卷積核中卷積系數相對應的9個圖像像素,本文的解決方法是忽略圖像邊界區域。經實驗證明,該方法是行之有效的。
4.二值化
二值化是預處理中非常重要的一步。本文在比較了多種圖像二值化方法后,選擇了使用性較廣泛的基于灰度的數學期望的方法。基于灰度的數學期望的方法:通常情況下,圖像的闌值被設置在灰度直方圖的既明顯又深的波谷的位置。事實上許多根據人眼主觀判斷可劃分為目標和背景區的圖像,其灰度直方圖并不具備上述特點,可能的情況是灰度直方圖的谷并不十分明顯或者存在多個波谷,在這種情況下要得到正確的圖像閡值是非常困難的,而實際上存在這樣的可能性:雖然屬于某一灰度級的象素數占總象素數的比例較小,但其對于二值化的效果卻有較大的影響,因此需要對圖像的灰度分布情況從整體上進行分析研究,從而確定閡值。分析一下數字圖像的特點:在數字圖像中每一個象素值均屬于一個有限集,該集合即為可能的灰度等級。象素的取值情況不同,也形成了不同的圖像。
5.字符串的定位
經過二值化后,現在的圖像已基本可以滿足我們的分割要求。分別對處理區域進行水平投影和垂直投影,可以求出字符串的位置。這種方法簡單、直觀、速度快。下面給出字符串定位的算法。本文定義了四個參數:t叩,bottom,left,reght。它們分別記錄了定出的定符串位置。水平方向的算法步驟如下:(1)對經過預處理的固定區域進行水平投影;(2)按照固定區域的總行數從上到下的次序開始循環;(3)如果該行的投影值大于一個閩值t,,而下一行的投影值也大于閡值t,,就將該行的行數寫人top作標記,跳出循環;(4)如果循環沒有結束,跳回(3);(5)同理,從下向上搜索到bottom。(6)找出水平投影最大值的位置,分別向上、下搜索,如果該行的投影值小于鬧值吸,則做標記,寫人相應的t叩或bottom。由于印刷值字符筆劃的水平方向的寬度比垂直方向的小,因此在垂直方向的投影只需要一個闌值即可。垂直方向的算法步驟如下:(l)經過預處理的固定區域進行垂直投影;(2)照固定區域的總列數從左到右的次序開始循環;(3)如果該行的投影值大于一個闌值tl,就將該行的行數寫人left作標記,跳出循環;(4)如果循環沒有結束,跳回(3);(5)同理,從右到左搜索到right。如果字符串的left、right與事先確定的處理區域的邊緣相等,就將字符串的這個邊緣向外擴展一個字符寬度,以防處理區域把個別字符事先去掉。
6.實驗結果
前面討論了版面處理和分割區域的字符串定位,下面給出了分步運行結果。其中圖2-l是掃描圖像經過二值化后的圖像;圖2一2是圖像實際處理區域;圖2一3是字符串區域。
7.字符分割
字符分割的任務是把多行或多字符圖像中的每個字符從整個圖像中切割出來成為單個字符。字符分割的算法很多,通常根據處理對象的不同有許多相應的方法。為了實現更好地分割,有關圖像的總體知識和先驗信息是很有用的,根據包含在圖像中的信息,可以制定相應的判決準則和控制策略,使其完成自動分割,如對多行文本的處理,郵政部門對郵政編碼和地址的識別,金融部門對支票簽名手寫字跡的分割識別等,都是針對具體的不同研究對象而采用不同的算法。傳統的字符分割算法可以歸納為以上三類:直接的分割法,基于識別基礎上的分割法,自適應分割線聚類法。由于本文處理的對象是相對類型較少、變化較小的錢幣數值,所以采用簡單的直接分割法。具體就是從定位出的字符串中直接找到每個字符的邊界,之后對單個字符進行識別。經過以上的一系列處理后,現在圖像基本滿足分割要求。由于錢幣有其自身的規格要求,各字符間具有一定間距,而這個間隔是我們最先可以想到的分割依據。當對整個字符串區域做豎直投影時,相鄰字符間的間隔投影應正好處于波谷的位置。在理想情況時,此波谷值應為零,并且每個字符之間都應該有相應的波谷。利用這個零值的波谷可以很容易得到字符間的間隔,從而將字符串切分為單個字符,進行下一步的識別。本文中所用的算法為:定義兩個數組mark〔〕,inteoal〔」,一個參數count。其中mark〔〕記錄了通過字符串區域豎直投影得到的上一個字符結束位置,inierval【」記錄了從上一個字符結束到下一個字符開始的間隔,而count則對mark〔〕和interval〔〕數組中寫人的數字進行計數??紤]到錢幣上的號碼最多不過4個,就將數組的大小定義為4,算法步驟如下:(l)定義大小為4的兩個零數組mark〔],interval仁];(2)對經過預處理的字符串進行豎直投影;(3)按照字符串圖像的總列數開始循環;(4)如果該列的投影值大于一個閡值t,而下一列投影值小于t,則將下一列的值寫人mark「],同時對coimt加1,表示寫人了新的間隔標記;如果該列的投影值小于t,而下一列的投影值也小于t,則對interval〔eount」加1,此時inteoal〔〕數組中記錄的字符間隔長度增加;(5)如果循環沒有結束,跳回(4)。
三、結束語
我們已經做完了字符識別前的預處理工作,并得到了單個字符。下面就可以進一步對這些單個字符進行分析,以得到最終的識別結果。