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