基于BP神经网络的数字识别
主要內容
1.課題研究背景
- 2 圖像預處理
- 3 模式識別
- 4識別效果
- 5總結
? 近年來,人工神經網絡技術取得了巨大的發展,它所具有的優勢:固有的并行結構和并行處理、知識的分布存儲、容錯性、自適應性、模式識別能力,為手寫體數字識別開辟了新的途徑。
? 數字識別作為模式識別的一個重要分支,在郵政、稅務、交通、金融等行業的實踐活動中有著及其廣泛的應用。
? 數字識別作為模式識別領域的一個重要問題,也有著重要的理論價值。一方面,阿拉伯數字是世界各國通用 的符號,因此,數字是一個重要樞紐。在符號識別領域, 數字識別為這一領域提供了一個算法研究的平臺。另一方 面,數字的識別方法很容易推廣到其它一些相關問題,特 別是對英文字母的識別,但到目前為止機器的識別本領還 無法與人的認知能力相比,這仍是一個有難度的開放問題。
1.1.數字識別的發展現狀
? 模式識別 (Pattern Recognition)是對表征事物或現象的各種形式的(數值的、文字的和邏輯關系的)信息進行處理和分析,以對事物或現象進行描述、辨認、分類和解釋的過程。它是信息科學和人工智能的重要組成部分。而數字識別作為模式識別的一個分支。在日常生活和科研中具有十分重要的作用。數字識別的算法一般是采用以知識、神經網絡、人工智能為基礎的模板匹配法、輪廓多邊形相關、傅立葉系數法等方法來進行識別的。以上方法識別效率高,但是實現較為復雜。
圖像預處理
- (1)彩色圖像的灰度化,圖像輸入后一般都是256色彩色圖像,灰度化后灰度圖像的RGB值是相等的,灰度值為255的像素為白色,灰度值為0的像素為黑色。
- (2)灰度圖像的二值化,彩色圖像灰度化后每像素只有一個值,即灰度值,二值化就是根據一定標準將圖像分成黑白二色。
- (3)梯度銳化,梯度銳化同時對噪聲也起一定的去除作用,采取Roberts算子對圖像銳化,可以讓模糊的邊緣變清楚,同時選用合適閾值可以減弱和消除細小的噪聲。
- (4)去離散噪聲,掃描整個圖像,當發現一個黑色像素就考察和它直接或間接相連的黑色像素有多少,如果大于一定值(具體數值視情況定),就可以認為它非離散點,否則就認為他是離散點,將其從圖像中去掉。
- (5)歸一化調整, 先得到原來字符的高度,并與系統要求的高度比較,得出高度變換系數,然后根據這個系數得到變換后應有的寬度,得出高度、寬度后,把新圖像里的點按照插值的方法映射到原圖像。
圖像輸入
灰度轉化
二值化
圖像銳化
歸一化
去除噪聲
圖1 圖像處理流程
模式識別
?3.1.特征提取
? 經過預處理,把原來大小不同、分布不規律的各字符變成大小一樣、排列整齊的字符。下面要從預處理完的字符中提取最能體現這一個字符的特征向量,將提取出的訓練樣本中的特征向量代入BP網絡中就可以對BP網絡進行訓練。提取出待識別的樣本中特征向量代入訓練好的BP網絡中就可以進行識別。在這里采取逐像素特征提取法,方法是對圖像進行逐行逐列掃描,當遇到黑色像素時,取其特征值為1,當遇到白色像素時,取其特征值為0。這樣掃描結束后就形成一個維數與圖像中像素點的個數相同的特征向量矩陣。
3.2. BP神經網絡
3.2.1. BP算法的多層感知器
圖2 三層BP網
采用BP算法的多層感知器是至今為止應用最廣泛的神
經網絡,在多層感知器的應用中,一般習慣將單隱層感知器稱為三層感知器,所謂三層包括了輸入層、隱層和輸出層。
知器
反向傳播(Backpropagation)算法:從后向前
(反向)逐層“傳播”輸出層的誤差,以間接算出隱層誤差。分兩個階段:
- 正向過程:從輸入層經隱層逐層正向計算各單元的輸出。
- 反向過程:由輸出層誤差逐層反向計算隱層各單元的誤差,并用此誤差修正當前層的權值。
正向過程
- 正向過程:
a ( k ) ?
f ( n
BP
算法
( k ) )
j j
n ( k ) ?
i
w ( k
) a ( k
? 1 ) ? ?
w ( k ) a
( k ? 1 )
j j i j i
梯度下降(gradient decent)
BP
算法
法
- 準則函數: sum squared error, SSE
1 S 2 1 T
j
J ? s s e ?
2 S ?
( t j
- a j )
? ( t ?
2 S
a ) ( t ? a )
- 權值修正: 梯度下降法
? w ? ??
? J
? ?? ? J
? n j
? ?? ? J
a ( k
? 1 )
j ? w ? n ? w ? n
j j j j
Case 1: 輸出層權值修正
BP
算法
? ? ? J
局部梯度
? ? J ? a j
? ? ( t
? a ) f ' ( n )
j
j ? n
j
? a j ? n j
j j j
擴展delta 學習規則
? w j ? ??? j
a ( k ? 1 )
? ?( t j
- a j ) f
' ( n
) a ( k ? 1 )
1 ' e ? n
a ? f
( n ) ?
1 ? e ? n
f ( n ) ?
(1 ?
e ? n ) 2
? a (1 ? a )
? w j
? ?( t j
- a j ) a
j (1 ?
a j ) a
( k ? 1 )
Case 2:隱層權值修正 算法
BP
后層的全部單元
? J
i
? j ?
? ? ? J
? n ( k ? 1 )
? a j
都受nj的影響
? n j i ? n i
? ? ? w f ' ( n )
? a j
? n j
nj w ni i
i j i j
i
aj ji
? w ? ???
a ( k
? 1 )
? ??( ?
? w f
' ( n
) )a
( k ? 1 )
j j i j i j
i
δj δi
w
ji
局部梯度的反向傳播
BP
算法
初始值選擇
W ( 0 )
a k ( t )
對輸出層計算δ
? j ?
( t j
- a j ) a
j (1 ?
a j )
反向計算:從后向前計算各隱層δ
? j ?
a j (1 ?
a j ) ?
i
w j i?i
計算并保存各權值修正量:
? w i j
? ??? j a i
修正權值:
w i j ( t
? 1 ) ?
w i j ( t )
- ? w i j
判斷是否收斂,如果收斂則結束,不收斂則轉至Step 2
3.2.2.BP算法過程
圖3 BP學習算法的流程圖
3.3BP神經網絡設計與訓練
? (1)BP神經網絡的設計方法
? 按照BP神經網絡設計方法選用兩層BP網絡。采用newff函數來建立BP網絡。其輸入節點數為16×16=256,隱層傳輸函數為Sigmoid函數。假設用一個輸出節點表示10個數字,則輸出層傳輸函數為pureline,隱層節點數為 ,取25。
? (2)神經網絡仿真程序設計
? 構造訓練樣本集,并構成訓練所需的輸入向量p和目標向量t. 通過畫圖工具獲得數字。本例構造了新宋體12號、8號字體各10 個,黑體12號、8號各10個,及宋體加粗18號字體。
? (3)神經網絡測試。
? 由于圖像處理的復雜性,對于不同噪聲的污染選擇不同的方法,選擇沒有噪聲的數字進行測試。選擇訓練樣本中的任意數據進行測試,結構非常正確。選擇生成的新宋體8號大小的數字進行測試。結果正確,選擇其他類型的字體進行測試,則結果不是完全正確。
仿真實驗識別效果
圖4 數字0的識別效果 圖5 數字4的識別效果
總結
? 本課題結合神經網絡技術,對數字識別問題進行了探討和研究,主要研究成果如下:(1)針對數字數據,首先進行了灰度化、二值化、平滑去噪、歸一化、細化等常規預處理,然后對處理完的數字圖像進行特征提取, 提取了能體現字符特點的特征向量。(2)針對數字識別問題,研究了BP神經網絡分類器的建立和識別過程。
? 仿真結果表明,對于字體和字號與訓練樣本集相同 的測試樣本,無論圖像中的數字在什么位置,都可以識 別出來,而對于字體和字號與訓練樣本集不同的測試樣 本,只有一部分能正確識別。并且對于帶有噪聲的數字, 運行程序的實驗結果是不理想的,所以本課題程序有待 于進一步的整理和調試。為提高識別率,可以增加訓練 樣本,或通過增加字體的特征向量等途徑來解決。
基于BP神經網絡的數字識別
主要內容
1.課題研究背景
- 2 圖像預處理
- 3 模式識別
- 4識別效果
- 5總結
? 近年來,人工神經網絡技術取得了巨大的發展,它所具有的優勢:固有的并行結構和并行處理、知識的分布存儲、容錯性、自適應性、模式識別能力,為手寫體數字識別開辟了新的途徑。
? 數字識別作為模式識別的一個重要分支,在郵政、稅務、交通、金融等行業的實踐活動中有著及其廣泛的應用。
? 數字識別作為模式識別領域的一個重要問題,也有著重要的理論價值。一方面,阿拉伯數字是世界各國通用 的符號,因此,數字是一個重要樞紐。在符號識別領域, 數字識別為這一領域提供了一個算法研究的平臺。另一方 面,數字的識別方法很容易推廣到其它一些相關問題,特 別是對英文字母的識別,但到目前為止機器的識別本領還 無法與人的認知能力相比,這仍是一個有難度的開放問題。
1.1.數字識別的發展現狀
? 模式識別 (Pattern Recognition)是對表征事物或現象的各種形式的(數值的、文字的和邏輯關系的)信息進行處理和分析,以對事物或現象進行描述、辨認、分類和解釋的過程。它是信息科學和人工智能的重要組成部分。而數字識別作為模式識別的一個分支。在日常生活和科研中具有十分重要的作用。數字識別的算法一般是采用以知識、神經網絡、人工智能為基礎的模板匹配法、輪廓多邊形相關、傅立葉系數法等方法來進行識別的。以上方法識別效率高,但是實現較為復雜。
圖像預處理
- (1)彩色圖像的灰度化,圖像輸入后一般都是256色彩色圖像,灰度化后灰度圖像的RGB值是相等的,灰度值為255的像素為白色,灰度值為0的像素為黑色。
- (2)灰度圖像的二值化,彩色圖像灰度化后每像素只有一個值,即灰度值,二值化就是根據一定標準將圖像分成黑白二色。
- (3)梯度銳化,梯度銳化同時對噪聲也起一定的去除作用,采取Roberts算子對圖像銳化,可以讓模糊的邊緣變清楚,同時選用合適閾值可以減弱和消除細小的噪聲。
- (4)去離散噪聲,掃描整個圖像,當發現一個黑色像素就考察和它直接或間接相連的黑色像素有多少,如果大于一定值(具體數值視情況定),就可以認為它非離散點,否則就認為他是離散點,將其從圖像中去掉。
- (5)歸一化調整, 先得到原來字符的高度,并與系統要求的高度比較,得出高度變換系數,然后根據這個系數得到變換后應有的寬度,得出高度、寬度后,把新圖像里的點按照插值的方法映射到原圖像。
圖像輸入
灰度轉化
二值化
圖像銳化
歸一化
去除噪聲
圖1 圖像處理流程
模式識別
?3.1.特征提取
? 經過預處理,把原來大小不同、分布不規律的各字符變成大小一樣、排列整齊的字符。下面要從預處理完的字符中提取最能體現這一個字符的特征向量,將提取出的訓練樣本中的特征向量代入BP網絡中就可以對BP網絡進行訓練。提取出待識別的樣本中特征向量代入訓練好的BP網絡中就可以進行識別。在這里采取逐像素特征提取法,方法是對圖像進行逐行逐列掃描,當遇到黑色像素時,取其特征值為1,當遇到白色像素時,取其特征值為0。這樣掃描結束后就形成一個維數與圖像中像素點的個數相同的特征向量矩陣。
3.2. BP神經網絡
3.2.1. BP算法的多層感知器
圖2 三層BP網
采用BP算法的多層感知器是至今為止應用最廣泛的神
經網絡,在多層感知器的應用中,一般習慣將單隱層感知器稱為三層感知器,所謂三層包括了輸入層、隱層和輸出層。
知器
反向傳播(Backpropagation)算法:從后向前
(反向)逐層“傳播”輸出層的誤差,以間接算出隱層誤差。分兩個階段:
- 正向過程:從輸入層經隱層逐層正向計算各單元的輸出。
- 反向過程:由輸出層誤差逐層反向計算隱層各單元的誤差,并用此誤差修正當前層的權值。
正向過程
- 正向過程:
a ( k ) ?
f ( n
BP
算法
( k ) )
j j
n ( k ) ?
i
w ( k
) a ( k
? 1 ) ? ?
w ( k ) a
( k ? 1 )
j j i j i
梯度下降(gradient decent)
BP
算法
法
- 準則函數: sum squared error, SSE
1 S 2 1 T
j
J ? s s e ?
2 S ?
( t j
- a j )
? ( t ?
2 S
a ) ( t ? a )
- 權值修正: 梯度下降法
? w ? ??
? J
? ?? ? J
? n j
? ?? ? J
a ( k
? 1 )
j ? w ? n ? w ? n
j j j j
Case 1: 輸出層權值修正
BP
算法
? ? ? J
局部梯度
? ? J ? a j
? ? ( t
? a ) f ' ( n )
j
j ? n
j
? a j ? n j
j j j
擴展delta 學習規則
? w j ? ??? j
a ( k ? 1 )
? ?( t j
- a j ) f
' ( n
) a ( k ? 1 )
1 ' e ? n
a ? f
( n ) ?
1 ? e ? n
f ( n ) ?
(1 ?
e ? n ) 2
? a (1 ? a )
? w j
? ?( t j
- a j ) a
j (1 ?
a j ) a
( k ? 1 )
Case 2:隱層權值修正 算法
BP
后層的全部單元
? J
i
? j ?
? ? ? J
? n ( k ? 1 )
? a j
都受nj的影響
? n j i ? n i
? ? ? w f ' ( n )
? a j
? n j
nj w ni i
i j i j
i
aj ji
? w ? ???
a ( k
? 1 )
? ??( ?
? w f
' ( n
) )a
( k ? 1 )
j j i j i j
i
δj δi
w
ji
局部梯度的反向傳播
BP
算法
初始值選擇
W ( 0 )
a k ( t )
對輸出層計算δ
? j ?
( t j
- a j ) a
j (1 ?
a j )
反向計算:從后向前計算各隱層δ
? j ?
a j (1 ?
a j ) ?
i
w j i?i
計算并保存各權值修正量:
? w i j
? ??? j a i
修正權值:
w i j ( t
? 1 ) ?
w i j ( t )
- ? w i j
判斷是否收斂,如果收斂則結束,不收斂則轉至Step 2
3.2.2.BP算法過程
圖3 BP學習算法的流程圖
3.3BP神經網絡設計與訓練
? (1)BP神經網絡的設計方法
? 按照BP神經網絡設計方法選用兩層BP網絡。采用newff函數來建立BP網絡。其輸入節點數為16×16=256,隱層傳輸函數為Sigmoid函數。假設用一個輸出節點表示10個數字,則輸出層傳輸函數為pureline,隱層節點數為 ,取25。
? (2)神經網絡仿真程序設計
? 構造訓練樣本集,并構成訓練所需的輸入向量p和目標向量t. 通過畫圖工具獲得數字。本例構造了新宋體12號、8號字體各10 個,黑體12號、8號各10個,及宋體加粗18號字體。
? (3)神經網絡測試。
? 由于圖像處理的復雜性,對于不同噪聲的污染選擇不同的方法,選擇沒有噪聲的數字進行測試。選擇訓練樣本中的任意數據進行測試,結構非常正確。選擇生成的新宋體8號大小的數字進行測試。結果正確,選擇其他類型的字體進行測試,則結果不是完全正確。
仿真實驗識別效果
圖4 數字0的識別效果 圖5 數字4的識別效果
總結
? 本課題結合神經網絡技術,對數字識別問題進行了探討和研究,主要研究成果如下:(1)針對數字數據,首先進行了灰度化、二值化、平滑去噪、歸一化、細化等常規預處理,然后對處理完的數字圖像進行特征提取, 提取了能體現字符特點的特征向量。(2)針對數字識別問題,研究了BP神經網絡分類器的建立和識別過程。
? 仿真結果表明,對于字體和字號與訓練樣本集相同 的測試樣本,無論圖像中的數字在什么位置,都可以識 別出來,而對于字體和字號與訓練樣本集不同的測試樣 本,只有一部分能正確識別。并且對于帶有噪聲的數字, 運行程序的實驗結果是不理想的,所以本課題程序有待 于進一步的整理和調試。為提高識別率,可以增加訓練 樣本,或通過增加字體的特征向量等途徑來解決。
總結
以上是生活随笔為你收集整理的基于BP神经网络的数字识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国象棋大战 瑞星杀毒软件序列号
- 下一篇: 适配器模式(Adapter模式)