張明舉 李聲鋒



摘 要:在獲得人民幣紙幣圖像的基礎上,本文先對圖像預處理,然后提取特征參數,最后進行面值識別.在圖像預處理中,比較重要的一個環節就是圖像的傾斜校正處理,它的處理效果直接影響到提取的特征參數值的準確性.在面值識別中,用BP神經網絡進行面值識別,這種方法具有很強的魯棒性,能較好地實現人民幣面值的識別.
關鍵詞:傾斜校正;Radon變換;BP神經網絡;面值識別
中圖分類號:TP391.4 ?文獻標識碼:A ?文章編號:1673-260X(2020)08-0039-04
眾所周知,隨著現代社會的科學技術進步,為了更好地節約人力成本,人們已在很多無人收費系統中采用了人民幣紙幣面值識別技術.人民幣紙幣面值識別是手機營業廳的自動交費機、銀行的自動存取款機以及自動售貨售票機等設備中一個不可或缺的的功能模塊,應用前景廣闊.本文就我國人民幣紙幣自身的參數特征,設計了基于人民幣面值特征參數提取以及面值識別技術的人民幣面值識別方法,并給出了實驗結果.
1 預處理紙幣圖像
在人民幣紙幣圖像識別時,我們約定獲取的紙幣圖像必須是無失真的和無變形的.但在實際操作時,獲取的紙幣圖像有可能受到外界因素的干擾和影響,常見的影響有以下三個方面:一是采集到的紙幣圖像上有一些無關面值識別的圖像信息(如人為的手寫字圖像等),二是采集到的紙幣圖像一般含有噪聲,三是常見的采集到的圖像會是傾斜的.因此,為了達到正確識別人民幣紙幣圖像,我們首先需要先對采集到的人民幣紙幣圖像進行預處理,具體包括圖像讀入、去燥、邊緣檢測、傾斜校正等基本操作,圖1為紙幣圖像預處理流程圖.
2 傾斜校正紙幣圖像
通常,在人民幣紙幣圖像采集中,獲得的紙幣圖像或多或少都會出現某種程度的傾斜.這時要把紙幣圖像進行校正,否則會影響接下來的圖像識別工作.在紙幣圖像校正時,我們首先定位紙幣圖像,然后利用圖像的定位信息對傾斜圖像進行校正.在本文中,研究人民幣圖像主要是矩形圖像,拍攝紙幣時也都是正向拍攝,因此出現的紙幣圖像傾斜一般也是屬于水平傾斜,如圖2所示.本文采用Radon變換的方法來計算出傾斜紙幣圖像與x軸的傾斜角.
2.1 Radon變換
在數字圖像處理中,我們常常用到一些積分變換,如Radon變換、Hough變換等.在本文中,紙幣圖像的處理需要用到Radon變換.Radon變換的本質是一種積分變換,從數學的角度看,給定一個定義在二維平面上的二元函數f(x,y),Radon變換將此二元函數f(x,y)沿著平面上的任意一條直線做線積分,亦即將此二元函數f(x,y)沿著平面上確定方向做的投影.比如,二元函數f(x,y)在水平方向上的線積分就是f(x,y)在y軸上的投影,對應地,二元函數 在垂直方向上的二維線積分就是f(x,y)在x軸上的投影.圖3直觀地說明了一個簡單二維函數的水平和垂直投影.事實上,我們可以沿任意角度θ方向上計算函數的投影,即在任意角度上都存在函數的Radon變換.在任意角度上Radon變換的幾何原理,如圖4.
2.2 水平傾斜角度的計算以及校正
給定一幅紙幣圖像,我們分四步進行水平傾斜角度的計算并完成校正.具體步驟如下:
Step 1:為了能用Radon變換檢測圖像中的直線,首先利用邊緣檢測將原始紙幣圖像轉化為二值圖像,如圖6所示.
Step 2:計算二值圖像的Radon變換.在圖7中,圖中最亮的點是紙幣圖像中的邊緣直線部分經Radon變換后的曲線相交的點,這些交點和圖中直線部分是一一對應的關系.
Step 3:Radon變換矩陣中峰值的計算.在進行Radon變換后,原二值紙幣圖像中的直線段對應Radon空間中的點,而且線段上點越多(即線段越長),Radon空間中的點亮度越大,因此容易計算出Radon空間中圖像的峰值點.我們將傾斜角記為?茁,那么水平方向調整角度為?琢=90°-?茁.
Step 4:在水平方向對紙幣圖像進行旋轉無損校正.將紙幣圖像旋轉?琢度,我們約定當?琢<0時順時針旋轉,當?琢>0時逆時針旋轉.在圖7中,顏色越亮的表示系數越大,對本例的紙幣圖像來說,我們可以計算Radon變換系數最大值近似為角86°,于是將元圖像逆時針旋轉4°進行校正.
在本文中,具體應用結果如圖8和圖9所示,程序流程圖如圖10所示.
3 紙幣圖像特征參數提取
3.1 判定正反面向
紙幣面向大致分為四種:(1)正面正向;(2)正面倒向;(3)反面正向;(4)反面倒向.在紙幣面向的判定中,我們采用經典的灰度值法[3],該方法是一個識別速度快、準確率比較高的方法.在本文的紙幣面向判定中,我們做了稍微的改進,具體操作方法是將紙幣圖像分割成6塊方形區域,如圖11所示,然后我們選取這六塊圖像區域中的左右兩邊的四塊圖像區域,僅針對所選取的左右兩邊的四個區域進行灰度值比較,從而能夠快速得出紙幣的面向.
3.2 面值區域圖像提取
在紙幣圖像經過一系列預處理后,我們可以判斷出紙幣的上下和左右邊界,亦即基本上可以標定人民幣在整幅圖像中的準確位置,從而得到目標圖像(幣值區域),這為下一步提取圖像特征值做好了準備.針對不同擺放時的固定區域的紙幣圖像,為了能夠準確地提取該紙幣面值,我們采用的方法是在紙幣中設固定區域.以正面正放100元面值的紙幣為例,本文提取的固定區域如圖12所示:
3.3 提取特征參數
前面我們已經獲得了目標圖像,但直接對其進行分類還有些困難.因為紙幣圖像所包含的像素是很豐富的,這就意味著所含有的的數據量也是很大的,我們如果直接對其計算處理,這是很不現實的;而且,這些豐富的信息當中,只有一部分對我們的識別是有用的,其它的大量的信息是與識別無關的.因此我們必須對紙幣進行特征的分析與提取.
3.3.1 面值區域顏色特征參數
顏色特征提取算法包括:一般直方圖法,全局累加直方圖法和局部累加直方圖法.但是上訴直方圖法在顏色的表達中沒有考慮到人眼的視覺感受,比較單一,忽略了顏色參量的含義和顏色參量對圖像像素間的關系,為了彌補上述直方圖法的不足,對顏色特征進行提取,再對顏色參量進行一系列的分析、統計和處理,這在應用中表現出比較好的效果.RGB和HIS顏色空間在顏色參量的統計特征中起著重要的作用.在實際的圖像處理中,RGB顏色系統的r,g,b值計算公式如下[5]:
r=R(R+G+B) ? (1)
g=G(R+G+B) ?(2)
b=B(R+G+B) ?(3)
從公式(1)(2)(3)中可以得到RGB顏色系統的r,g,b只是比值,與光照強度的變化無關.
本文是通過上式對不同面值,不同面向時提取的面值區域求解RGB顏色系統的r,g,b值作為特征參數,研究時以100元紙幣為例來提取r,g,b值.如表1所示:
3.3.2 面值區域二值化后的灰度值(n)
在本文中,不但用了顏色特征,還增加了面值區域二值化后的灰度值,因為顏色參數比較容易受到外界的影響,比如,紙幣的新舊的影響.增加面值區域二值化后的灰度值(n)這個參數,可以有效的增加識別的能力.為了能在BP神經網絡中使用,用的是面值區域圖像二值化圖像中1的像素值與面值區域圖像像素值之比.仍然以100元為例,灰度值如表2所示.
4 面值識別
4.1 基于BP神經網絡的紙幣面值識別
眾所周知,BP神經網絡有很多優點.首先,BP神經網絡具有很強的非線性映射能力.對于不管是三層還是三層以上的BP神經網絡,如果我們有中間層神經元存在,那么就可以去逼近任意一個非線性函數.其次,BP神經網絡由于采用了并行的信息處理方式,所以有對外界的激勵和輸入的信息進行聯想記憶的能力.再次,BP神經網絡由于具有強大的非線性處理能力,因此對外界輸入樣本,它有很強的識別與分類能力.最后,BP神經網絡具有優化計算的能力.因為BP神經網絡的本質就是用來解決非線性優化問題的.所以本文選擇基于BP神經網絡對紙幣進行面值識別.
4.1.1 網絡訓練樣本集的設計
對網絡的性能起著至關重要的作用的是網絡訓練樣本集,它不僅要較高的質量,還需要一定規模的大小.
本文研究的是人民幣紙幣的幣值識別.實驗中,我們只對100元和50元兩種面值的紙幣的進行識別,顯然,本方法可以應用到其它紙幣圖像的面值識別.本文取100元、50元紙幣各10張,每張有4種擺放方向,所以有80個樣本,每個樣本有4個特征值,共有320個特征值.
本文建立一個三層的BP神經網絡,由于每個樣本特征值有4個,所以輸入層神經元數設計為4個,根據實驗中間層神經元數設計為15個,而本文只判斷100元和50元兩種紙幣,所以用一個二進制數便可以表達,用“0”表示50元,“1”表示100元.網絡傳輸函數選用常用的Sigmoid函數和purelin函數[6].在實驗中,最大訓練次數取為5000次,在訓練要求精度不大于10-6時,網絡被認為是收斂的.
4.1.2 訓練網絡與實驗測試
經過前面的步驟,網絡已經設計完成.下一步我們將對其進行訓練.從樣本集中隨機抽取樣本,正向運行一次,然后修正其權值,便完成了一次訓練.一個成熟的網絡往往需要上萬次訓練.
網絡的泛化能力是判斷一個網絡好壞的一個重要標準.對于泛化能力的測試,我們需要使用不同于訓練樣本的數據.因此,我們可以將樣本集分成兩部分.一部分用于訓練,另外的一部分用作測試樣本.判斷泛化能力好壞的標準是訓練樣本集的誤差與測試樣本集的誤差的大小.如果前者很小,后者很大,那么網絡的泛化能力較差[7].
在本文中,用80個訓練樣本來訓練網絡.這個樣本集首先要進行測試,判斷網絡對訓練樣本的識別如何,以此來判斷是否達到了訓練的預期效果;其次.我們利用訓練已經完成后得到的神經網絡對預先選取的測試樣本進行測試,以判斷網絡的泛化能力.訓練測試結果如圖13所示.
4.2 分析試驗結果
通過實驗,我們看到,上文所設計出的識別系統可以正確的識別出紙幣的面額,也不產生噪聲.更為重要的是,對于那些在流通過程中感染了一些噪聲或者有些許磨損的紙幣,本系統也能夠比較準確的識別出來.但是不得不承認,我們所設計出的識別系統有些時候不能達到完全識別,這是由于無法識別紙幣的類型,以及不能正確的識別出擺放位置所引起的.通過分析,出現這種不能識別的情況,其可能的原因有:(1)圖像受污染比較嚴重,也就是說圖像中含有的噪聲太大;(2)紙幣殘缺,導致其圖像分布比較復雜,從而使系統無法識別紙幣圖像.解決這一問題的有效辦法可以使用較大的訓練樣本集,即訓練樣本集包含各種類型的紙幣;(3)紙幣圖像的預處理不到位,如圖像傾斜沒有正確的校正.
5 結論
本文設計BP網絡結構層數為三層,各層節點數如下:輸入層4個神經元,中間層15個神經元,輸出層1個神經元.輸出模式有兩種,即50元和100元.為了提高識別準確度,特征值提取了RGB和灰度值,這兩類參數同時使用,避免了單獨使用時的局限性.訓練完成以后,本系統能夠正確的識別出2種紙幣的面額.
參考文獻:
〔1〕秦潔,張明舉.人民幣面值特征參數提取及面值識別方法的研究[J].長春師范大學學報,2019,38(02):50-53.
〔2〕鞏玉濱,楊紅娟,張運楚,等.一種數顯儀表數字字符識別方法研究[J].山東建筑大學學報,2011, 26(02):134-137+177.
〔3〕韓賀磊.人民幣紙幣面額的機器視覺識別方法研究[D].大連理工大學碩士學位論文,2007.
〔4〕燕鯤鵬.基于DWT變換的分塊數字圖像水印算法研究[D].西北大學碩士學位論文,2017.
〔5〕王棲榕,黃樟燦.基于顏色特征的畫家藝術風格提取方法[J].計算機應用,2019,35(12):1-8.
〔6〕Mark Hudson Beale, Martin T. Hagan, Howard B. Demuth. Neural Network Toolbox7 [EB/OL]. www.mathworks.com,2019-12-1.
〔7〕楊曉燕.紙幣卡把計數與面值識別的算法改進及程序實現[D].東北大學碩士學位論文,2012.