紙幣清分是銀行的一項重要業務。 目前,國內很多銀行使用的紙幣清分機都是由國外進口的,價格昂貴。國產紙幣清分機很少,而且功能都很有限,很難滿足高速實時性的要求,尤其是能夠用圖像處理的方法來識別紙幣的紙幣清分機還剛剛起步。 為此,設計了一種紙幣識別系統。該系統以DSP為核心處理器,結合圖像傳感器CCD和復雜可編程邏輯器件CPLD,并輔以高性能的模/數轉換器AD9200,進行紙幣圖像的采集、處理。該系統主要針對人民幣第四版和第五版的5元、10元、20元、50元、100元九種紙幣進行識別,利用數字圖像處理技術和改進的自組織映射神經網絡(SOFM)提取紙幣圖像的長度、寬度、方向塊特征,區分紙幣的面值、正反面與正反向。最終完成的系統能達到較高的識別速度和識別率。 1 硬件設計 識別系統的總體硬件結構如圖1所示。人民幣的圖像首先通過傳感器CCD掃描后得到光電轉換信號,并經過AMP的三倍放大;然后將放大的模擬信號經過模數轉換器AD9200轉換成為標準的數字信號,送入到CPLD緩存;最后通過EDMA通道輸入到DSP的RAM中,在DSP中進行圖像的處理和識別。整個系統的信號邏輯時序由CPLD來控制。 另外,還有一些輔助環節,如紙幣輸入輸出裝置、用戶檢測裝置、復位裝置等。 圖1 識別系統的總體硬件結構框圖 紙幣圖像的采集由CCD與A/D轉換器組成。本系統采用線陣型CCD,它的采樣速度較快、電路設計比較簡單、體積小、時序也易于實現。根據系統對采集速度的要求,設置橫向分辨率為4像素/毫米,共采集800個像素點;縱向的分辨率為1像素 /毫米。每張圖像的高度不超過76毫米,兩張紙幣之間還有一定的間隔,實際采集100列。這樣,每張圖像的像素為800×100。紙幣的進入與離開的判斷使用紅外線光電管檢測。 人民幣的圖像經過采集和A/D轉換后,暫存入CPLD芯片XC95144中,然后由DSP通過EDMA通道直接傳輸。整個采集和存儲過程的時序信號是由XC95144產生的。CPLD需要編程實現的內部結構如圖2所示。其中,ADCLK信號是發送給AD9200的時鐘信號,SP、CP信號傳送給CCD的移位寄存器作為啟動脈沖和采樣時鐘脈沖。 圖像的識別部分由數字信號處理器DSP及相應的外圍電路構成,其結構如圖3所示。數字信號處理器DSP選用TI公司生產的TMS320C6711GFN150芯片,主頻為150MHz。掃描采集到的紙幣圖像數據Data經EDMA存入靜態存儲器SRAM中,DSP對已存入SRAM的數據作一系列的識別算法運算,并將最終結果通過DSP的McBSP1口輸出。 圖2 CPLD的內部結構圖 圖3 DSP及相應的外圍電路的結構圖 2識別方法 2.1圖像的定位與面值的識別 定位圖像包括兩個方面:圖像邊界及中心點的確定和圖像傾斜度的校正。求取圖像邊界中心點的方法,采用自整個掃描的圖像邊界向內選取,確定紙幣圖像邊界上的少數點,再對這些點進行直線擬合,從而確定紙幣的四個邊界。四個邊界中心點的連線的交點即為圖像的中心點。紙幣圖像的邊界與掃描采集的圖像的邊界的夾角就是傾斜角。規定傾斜角超過17°地紙幣,作為不可識別類。 確定了紙幣圖像的邊界、中心點和傾斜角后,紙幣的長度和寬度就能準確地計算出來。對于長寬差異小的人民幣(比如4版5元與5版50元),則提取圖像的區域特征加以區分比較,判別面值。 2.2 圖像面向的識別 紙幣正反面與正反向的識別在以往的紙幣清分機系統中采用人工提取特征的識別方法,試驗周期長,不具有適應性與系統性。本文采用自組織特征映射神經網絡的方法,自動尋找紙幣圖像的特征分布,加以識別。 本系統的SOFM網絡輸入層為72個節點,輸出層為4個節點。輸入的是紙幣圖像的72維方向塊特征數據向量,計算輸出的是正面正向、正面倒向、反面正向、反面倒向四種面向標志。其中,獲得方向塊特征向量數據的方法是將紙幣圖像劃分為72個塊,對每個塊按步長為4個像素取值作灰度平均,將灰度均值作為方向塊的特征數據。本系統SOFM網絡具體算法如下: a. 對所有輸入節點到輸出節點的連接權值賦以初始化值,初始化學習系數α=0.5。 b. 對第m類幣種網絡輸入樣本數據Xm=[x1,x2,…,x72],m=1,2,…,9。 c. 計算輸入Xm與所有輸出節點連接權值Wj的距離: d. 選擇具有最小距離的節點j*作為獲勝節點:dj*=min{dj}。 e. 調整輸出節點j*與輸入節點的連接權值和學習系數α: 式中,n為第m類幣種樣本數據個數。 f. 若第m類幣種還有訓練樣本數據,轉到 b;否則,轉到g。 g. 若m≥9,訓練結束;否則,轉入第m+1類幣種訓練。 本系統是將需要識別的第四版與第五版人民幣共九種主幣分為九類處理的,所以對于每一類幣種網絡輸出只存在四種面向標志相互競爭。根據這一點,可以改進算法:先將四個輸出節點對應好四種面向標志,然后從同一個類紙幣樣本中選擇每個面向的特征數據作為該面向的對應輸出節點到輸入節點的連接權值的初始值。 3 實驗與總結 在實驗中,共使用1800張人民幣訓練識別網絡,每一類人民幣200張,算上每張人民幣的四個面向,可認為每一類紙幣的訓練樣本為800個。另外,每一類人民幣取400張做測試,共3600張,可認為測試樣本是14400個。其中,表1為實驗測試數據(未含不識別類處理)。不識別類主要是由傾斜角超過引起的,在實驗中將它重新測試,直至識別出。 表1 實驗測試數據
實驗結果表明,本系統對紙幣面值的識別率達100%,對面向的識別率達99.82%。紙幣識別的速率達650張/分,滿足了高速實時性。對0.18%的誤差率作了研究,發現主要是由紙幣的殘缺引起的,它使紙幣的長寬檢測不準,或者破壞了圖像的特征方向塊分布。今后的工作將著重研究紙幣殘缺的識別。 |