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