版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> (20 屆)</b></p><p> 基于人工神經網絡的手寫識別系統(tǒng)</p><p> Handwriting Recognition System Based on Artificial Neural Network</p>
2、;<p><b> 摘 要</b></p><p> 信息技術的快速發(fā)展,計算機迅速走進人們的生活,手寫識別技術和應用領域越來越廣泛,比如在移動設備上、文印工作中都離不開它的身影,極大的方便了人們的日程生活、工作、學習,因此手寫識別具有很強的應用價值和實用價值。</p><p> 本文中利用神經網絡算法識別數字圖像和手寫漢字。識別的前提是獲得穩(wěn)定
3、的神經網路,需要通過大量的訓練樣本進行訓練。針對數字圖像首先對圖像進行處理,通過灰度化、二值化、中值濾波、梯度銳化、歸一化等算法獲得特征矩陣,然后用經過訓練的神經網路算法識別需要識別的特偵矩陣,進而獲得識別的結果。針對漢字識別,首先處理圖像獲得特征矩陣,通過經過訓練的神經網絡的識別獲得筆畫,然后用筆畫去識別漢字,最后獲得識別的漢字以及聯(lián)想漢字和詞組。</p><p> 經過測試和驗證,基于人工神經網絡的手寫識別
4、系統(tǒng)能夠有效識別數字手寫圖像與手寫漢字,在本文選用的一些測試文字與數字圖像的識別上獲得了不錯的結果。</p><p> 關鍵詞:手寫識別;圖像處理;神經網絡</p><p><b> ABSTRACT</b></p><p> The rapid development of information technology makes th
5、e computer immediately appear in people's lives. The application of handwriting recognition technology becomes widespread, and there are more and more application areas. For example, we can see it on a mobile devicea
6、nd in the printing work. It makes people's daily life, work and learning more convenient. Therefore, the handwriting recognition has very strong applied value and practical value.</p><p> In this articl
7、e, the writer uses neural network to identify digital image and handwriting Chinese ideogram. The premise of recognition is to obtain a stable neural network and a great deal of sample training is needed. For digital ima
8、ge, we need to process the images, and get characteristic matrix through a series of algorithms, including graying, linearization, Median filter, gradient sharpening and normalization.For Chinese ideogram recognition,we
9、should gain a characteristic matrix by process</p><p> After testing and verification, handwriting recognition which is based on artificial neural network system can effectively identify the handwriting ima
10、ge and Chinese ideogram. We obtain satisfying results in the identification test on words and digital image.</p><p> Key words: Handwriting recognition;image processing;neural network</p><p>&l
11、t;b> 目 錄</b></p><p><b> 第1章 緒論1</b></p><p> 1.1 課題研究的背景1</p><p> 1.2 課題研究的目的及意義1</p><p> 1.3 國內外研究現(xiàn)狀2</p><p> 1.4 課題研究內容2&
12、lt;/p><p> 1.5 論文的組織結構3</p><p> 第2章 神經網絡算法的原理4</p><p> 2.1 神經網絡的原理4</p><p> 2.1.1 生物神經元網絡4</p><p> 2.1.2 人工神經元網絡4</p><p> 2.2 神經元學習算法
13、6</p><p> 2.2.1 前饋神經網絡6</p><p> 2.2.2 感知機6</p><p> 2.2.3 反向傳播算法8</p><p> 2.2.4 神經網絡在模式識別上面的優(yōu)勢11</p><p> 2.3 本章小結11</p><p> 第3章 系統(tǒng)設計
14、與實現(xiàn)12</p><p> 3.1 神經網絡算法的實現(xiàn)12</p><p> 3.1.1 神經網絡的結構12</p><p> 3.1.2 算法的結構12</p><p> 3.2 神經網絡識別手寫數字14</p><p> 3.2.1 手寫數字的常規(guī)預處理方法14</p><
15、;p> 3.2.2 圖像的灰度化15</p><p> 3.2.3 圖像的二值化15</p><p> 3.2.4 中值濾波16</p><p> 3.2.5 去掉離散點16</p><p> 3.2.6 圖像銳化17</p><p> 3.2.7 數字的切分18</p>&
16、lt;p> 3.2.8 數字的歸一化19</p><p> 3.2.9 特征提取19</p><p> 3.2.10 數字識別過程19</p><p> 3.2.11 神經元規(guī)模的確定21</p><p> 3.3 神經網絡識別漢字21</p><p> 3.3.1 筆畫的預處理22<
17、;/p><p> 3.3.2 圖像的處理23</p><p> 3.3.3 神經網絡規(guī)模的確定24</p><p> 3.3.4 字庫的管理方式24</p><p> 3.3.5 漢字的查詢27</p><p> 3.3.6 聯(lián)想詞組的查詢28</p><p> 3.4 UI界
18、面的實現(xiàn)29</p><p> 3.4.1 主窗口的自繪實現(xiàn)29</p><p> 3.4.2 自繪控件的實現(xiàn)30</p><p> 3.5 本章小結32</p><p> 第4章 系統(tǒng)測試及效果分析33</p><p> 4.1 系統(tǒng)測試33</p><p> 4.1.
19、1 神經網絡算法的測試33</p><p> 4.1.2 手寫數字識別的測試33</p><p> 4.1.3 手寫漢字識別的測試36</p><p> 4.2 本章小結37</p><p><b> 結論38</b></p><p><b> 參考文獻39<
20、/b></p><p><b> 致謝41</b></p><p><b> 第1章 緒論</b></p><p> 1.1 課題研究的背景</p><p> 手寫識別的研究具有很大的使用價值,在過去的幾十年,由于數字化、信息化的大力發(fā)展,手寫識別成為模式識別的一個熱點。隨著手機、平
21、板等電子產品的快速發(fā)展,手寫識別技術在這些產品上已經廣泛應用,既能夠提升這些產品的用戶體驗、也能提高不少的效率。與此同時,現(xiàn)實生活中存在大量的手寫、打印文件等,有的需要整理成電子文檔,如果用人力去將該文件錄入到電子設備當中,不僅效率低而且錯誤率高,這種方法已經不適應當今社會,由于現(xiàn)在電子計算機的廣泛應用于各行各業(yè),但是由于各種各樣的原因,智能識別系統(tǒng)不能廣泛應用于社會,極大影響了人們的生活、工作效率。</p><p&
22、gt; 人工智能有一段時間曾經陷入低迷,大眾都認為人工智能只是個玩具而沒有實際應用價值。進入21世紀以來,數學的大力發(fā)展大大推動了人工智能的進步,也大大推動了計算機科學的發(fā)展。機器學習是人工智能的一個重要分支,也是現(xiàn)在的一個熱點。一個真正的智能,應該具有學習能力,能夠根據自身的環(huán)境來學習,并改善自身的性能,能夠自動獲取學習所需要的知識。以前的智能系統(tǒng)不具有學習能力,只是根據某些算法去計算,隨著時代的發(fā)展,這種局限表現(xiàn)的更加突出。在這種
23、現(xiàn)象下,機器學習在很大程度上解決了這種局限?,F(xiàn)在機器學習已經應用到各個領域,比如專家系統(tǒng)、語音識別、搜索、計算機視覺等。神經網絡是機器學習學科中的一個重要部分,用來分類或者回歸。神經網絡的發(fā)展,為手寫識別提供了一個新的途徑。</p><p> 1.2 課題研究的目的及意義</p><p> 單個神經元的結構簡單,但是當大量的神經元組成了神經網絡,就有了本質的改變,它能夠模擬現(xiàn)實生活中的
24、行為,而且每個神經元都能處理和存儲信息,使得神經網絡具有了并行計算和分布式存儲的特點。研究神經網絡的結構有助于更好的從手寫字中踢出去關鍵因素,從而提高識別的準確度和豐富度。</p><p> 研究手寫識別具有很大的應用價值,將其應用于現(xiàn)代便攜電子設備,豐富了人們的生活,提高工作效率。將其應用于手寫文檔的識別,不僅能將人們從繁重重復的勞動中解脫出來,而且能夠提高手寫文檔電子化的效率。手寫識別有很重要的理論價<
25、;/p><p> 值,人們書寫的文字種類不同,每個人的書寫習慣不同,使得識別的樣本具有豐富的多樣性,識別算法需要從不同的方面進行研究。</p><p> 1.3 國內外研究現(xiàn)狀</p><p> 在20世紀20年代,西方學者就研究過字符的識別,最早的是德國人G.Tausher的閱讀機,采用的比較簡單的匹配原理,能夠粗略的識別簡單的字符比如數字。到了20世紀60年
26、代初,OCR(廣字符閱讀機)已經能夠識別書寫比較公正的手寫體字符了,比如日本的Toshiha公司開發(fā)的郵政編碼自動分揀機。到了近代,人工智能的發(fā)展,神經網絡走入了人們的視線,它具有眾多優(yōu)點,能夠有效利用樣本的特點進行學習,然后根據學習的結果識別手寫字符[1]。</p><p> 由于漢字的基數大、寫法復雜、字體繁多,識別起來難點很大,所以漢字的識別被認為是字符識別領域的最終目標,很多人投入了大量的精力,也取得了
27、很大的成就[2]。漢字的識別最開始始于1966年,IBM公司的Casey和Nagy首次發(fā)表了漢字識別的文章。國內的漢字識別技術始于20世紀70年代,當時是聯(lián)機手寫識別技術,經過長時間的摸索之后,劉迎健等人于1988年提出了利用筆段作為基元來進行聯(lián)機的手寫漢字識別,識別的漢字能夠達到6763-12000字,已經具有了一定的實用價值?,F(xiàn)在的手寫識別技術較上個世紀,已經有了長足的進步,識別范圍能夠支持GB2312-80規(guī)定的6763個簡體字,
28、對于書寫規(guī)范的漢字,識別率能夠達到95%以上[3,4]。</p><p> 1.4 課題研究內容</p><p> 本課題研究的是一個基于神經網絡的手寫識別系統(tǒng)。系統(tǒng)由C++語言開發(fā)完成,負責神經網絡前饋網絡、反饋神經網絡、界面的設計、圖形的處理、圖形的識別、字庫管理程序的設計,手寫識別系統(tǒng)包括神經網絡算法的設計。</p><p> 系統(tǒng)研究的是基于神經網絡的
29、手寫識別,包括數字與漢字的識別。數字與漢字的識別方法不一樣,數字比較簡單,數量只有10個,漢字較為復雜,數量大,所以針對這兩種模型采用了不同的思路。本文首先從理論上介紹了神經網絡算法,然后介紹了數字的識別方法、漢字的手寫識別方法。</p><p> 數字的識別能夠識別兩種模式的數字,第1種是直接通過手寫工具寫在手寫板上的數字,通過神經網絡的分類,得出書寫的結果;第2種是加載含有噪聲的數字,首先通過計算機圖形學的
30、知識降噪,然后通過神經網絡分類得出結果。漢字的識別是將漢字拆分成元字根,本系統(tǒng)根據筆尖的走向,判斷出書寫的筆劃,然后通過筆劃來判斷漢字。</p><p> 1.5 論文的組織結構</p><p> 本文共分為4章,按如下方式組織:</p><p> 第1章是全文的緒論部分,介紹了系統(tǒng)開發(fā)的背景,系統(tǒng)的研究的目的和意義,國內外的研究現(xiàn)狀,課題的研究內容,系統(tǒng)的預
31、期效果和關鍵指標以及本文的組織結構。</p><p> 第2章是神經網絡算法的介紹,這部分詳細介紹了神經網絡算法,然后介紹了神經網絡中的BP神經網絡算法。</p><p> 第3章是手寫識別的基本過程,這部分介紹了神經網絡的實現(xiàn)、對圖形的處理、特征向量的提取、以及漢字和數字的手寫識別過程,以及用戶界面的實現(xiàn)過程。</p><p> 第4章是介紹了系統(tǒng)的測試部分
32、,這部分主要介紹了手寫識別系統(tǒng)的三個部分的測試。</p><p> 最后是結論部分,對全文進行了全面的總結。</p><p> 第2章 神經網絡算法的原理</p><p> 人工神經網絡(Artificial Neural Network,ANN)由大量的神經元組成,結構與腦神經 組織相似,是對生物神經元的模擬,能夠完成與生物神經元網絡類似的功能。</p
33、><p> 2.1 神經網絡的原理</p><p> 2.1.1 生物神經元網絡</p><p> 人腦的神經系統(tǒng)的基本組成單位是神經細胞,人腦組織的神經系統(tǒng)大約由1011個神經元細胞組成,而每個神經細胞大于與104個神經細胞相連接,通過大量的神經細胞的活動,完成人神經系統(tǒng)的活動。在神經系統(tǒng)中,有的能力是先天就有的,比如呼吸,有的能力是后天訓練完成的,比如說話。&
34、lt;/p><p> 神經元細胞之間的連接通過突觸來完成,其中突觸分為軸突和樹突。神經元細胞之間信息的傳遞通過生物電來完成,當神經元細胞產生一個興奮的信號時,神經細胞的膜電位就會產生變化,通過脈沖的方式傳遞給其他神經元細胞。通過樹突->胞體->軸突->神經連接->其他細胞,這樣就興奮信號傳遞了出去。</p><p> 2.1.2 人工神經元網絡</p>
35、<p> 人工神經元網絡模擬生物神經網絡的結構見圖2.1。</p><p> 圖2.1 人工神經元的基本模型</p><p> 圖2.1中,X表示神經元的輸入,相當于其他神經元的輸出值,w表示權重(weight),f是一個非線性函數,神經元的動作如下:</p><p> 當f為閾值函數的時候,其輸出為:</p><p>
36、 為了使式子簡約,先設閾值</p><p><b> 則</b></p><p><b> 或</b></p><p> 可以選取sgn函數作為閾值函數</p><p> 如果要求學習算法的輸出函數可微,可以選用sigmoid函數,即:</p><p> sigmo
37、id函數的函數圖像見圖2.2。</p><p> 圖2.2 sigmoid函數</p><p> Sigmoid函數是無限次可微、連續(xù)、有界、關與原點對稱的函數,抑制兩頭,對中間的細微變化敏感,使得神經網絡對特征的識別度更好。</p><p> 2.2 神經元學習算法</p><p> 2.2.1 前饋神經網絡</p>
38、<p> 前饋神經網絡是一個接受前一級輸入,并且輸出到下一級的結構,沒有反饋結構,每一個神經元可以有多個輸入,但是只有一個輸出,每一個神經元的輸出可以作為任意多個其他節(jié)點的輸入。前饋神經網絡可以分成不同的層,第n層的輸入只與第n-1層的輸出有關。通常將所有的神經元層分成三層,即:輸入層、輸出層、隱含層,輸入層即神經元網絡的第一層,負責從外部接受輸入數據,最后一層為輸出層,輸出整個神經元網絡的結果,輸入層與輸出層之間的全部是隱
39、含層,隱含層的層數目可以大于等于1層。前饋神經網絡結構示意圖見圖2.3。</p><p> 圖 2.3 前饋神經網絡的結構示意圖</p><p><b> 2.2.2 感知機</b></p><p> 感知機是一種雙層的神經元網絡模型,沒有輸出層,有輸入層,是一層計算單元。感知機學習的目的是將訓練數據進行超平面的線性劃分,感知機模型首先導
40、入了誤分類的損失函數,然后利用梯度下降法對損失函數小化。</p><p><b> 感知機的模型如下:</b></p><p> 其中x為輸入向量,sgn是上面介紹過的符號函數,是權值向量, 為偏置向量,要求出感知機的模型,只需要求出和即可。</p><p> 假設訓練數據集是超平面線性可分的,感知機的目的就是求的一個合適的和,將訓練集中
41、的正例和負例完全區(qū)分開來。</p><p> 選擇誤分類點到分類超平面S的總距離位損失函數,即:</p><p> 其中,為輸入空間任意一點,為的L2范數。</p><p> 對于誤分類點來說,當,=-1,當時,=1。故:</p><p> 所以誤分類點到分類超平面S的距離是:</p><p> 假設所有誤分
42、類點的集合為M,那么所有誤分類點到分類超平面S的距離是:</p><p> 那么最終的損失函數為:</p><p> 現(xiàn)在的問題就是選取最小的損失函數模型的和</p><p> 感知機求解算法:采用隨機梯度下降,首先任意選取一個超平面,,然后用梯度下降法不斷極小化(1)式子。極小化的過程中隨機一個誤差分類點進行梯度下降。</p><p>
43、; 分別對(1)式中的 和求偏導,即:</p><p> 隨機選取一個誤分類點,對和,則有:</p><p><b> 其中,為步長。</b></p><p> 然后不停地進行梯度下降算法,直到訓練集總沒有誤分類點為止。</p><p> 這種算法的思路是:當一個點被誤分類的時候,就重新進行梯度下降,調整和,使
44、得分類平面往誤分類的一側移動,減少該點與分類超平面的距離,直到該點被正確的分類,然后再次選取點重復上述方法,直到所有的點都被正確分類,那么就找到了正確的和。</p><p> 2.2.3 反向傳播算法</p><p> 感知機作為最簡單的前向人工神經網絡算法,雖然結構簡單,但是能解決復雜的問題,但是感知機的本質缺陷是不能處理線性不可分問題。</p><p>
45、前饋神經網絡中隱含層無法與外界相連,無法計算誤差,為了解決這一問題,提出了反向傳播網絡(BP,Back-Propogation)算法[6],算法主要思想為:首先通過前饋神經網絡得出神經網絡的值,然后計算該值與訓練集中值的誤差,然后簡介算出隱含層的誤差,然后調整參數,再次計算誤差,直到誤差小到可以接受的范圍。</p><p> 在反向傳播算法中,通常采用梯度下降法來修正權值,從感知機的求解過程中,可知輸出函數要求
46、可微, 故通常采用sigmoid函數作為輸出函數。</p><p> 當研究某一層時,j表示該層的第j個神經元,i表示前一層的第i個神經元,k表示后一層的第k個神經元,表示該層第j個神經元的輸出,表示前一層第i個神經元與本層第j個神經元之間的權值。</p><p> 計算某一層的輸出值:</p><p> 對于輸出層來說,實際輸出值與理想輸出值之間存在誤差,誤
47、差為:</p><p> 其中為理想的輸出值,是實際輸出值。</p><p> 誤差E對權值求偏導數,得:</p><p><b> 其中為局部梯度:</b></p><p> 采用梯度下降法對誤差進行調整,得到每次的調整量為:</p><p> 如果節(jié)點j是輸出層,那么神經元輸出值即為
48、,那么:</p><p> 如果節(jié)點j是隱含層,那么神經元的輸出值需要用sigmoid函數處理,即:</p><p> 由于隱含層的每一個節(jié)點對后面的節(jié)點都由影響,可以得出:</p><p> 在反向傳播過程中,為了加快算法的收斂速度,會在權值修正量中加上前一次的權值修正量,即慣性項:</p><p> 綜上所述,反向傳播算法步驟如下
49、:</p><p> ?。?)隨機初始權系數初始值。</p><p> ?。?)首先執(zhí)行神經網絡的前向傳播過程,計算各層單元:</p><p> ?。?)然后計算輸出層的局部梯度:</p><p> (4)然后計算各個隱含層額局部梯度,方向從后向前。</p><p> ?。?)得出神經元之間的權值修正量:</p
50、><p><b> (6)修改權值:</b></p><p> ?。?)重復2-6過程,直到算法收斂。</p><p> 采用反向傳播算法能有效解決隱含層的權值修正問題,通過不斷的計算輸出層的誤差,然后通過梯度下降法調整輸出層的前一層神經元的權值,然后再循環(huán)調整所有的隱含層的權值,直到整個算法收斂。</p><p>
51、但是采用反向傳播算法有可能會陷入到局部最小點,而不是收斂到全局最小點,因為算法采用的是梯度下降算法來求解非線性函數的極值,梯度下降法不具有全局觀念。</p><p> 反向傳播算法中有兩個重要的參數,和,即步長和慣性系數。步長直接影響到算法的收斂性,如果該值較大,沿著梯度下降的幅度大,但是對極小值出的處理不好,如果該值較小,沿著梯度下降的幅度小,但是收斂速度慢,影響算法的效率。慣性項系數影響收斂速度,可以在0.
52、9-1之間選擇。</p><p> 在實際應用反向傳播算法的過程中,還需要好注意一些問題:</p><p> (1)樣本的處理,由于傳入神經元的數據可能會是各種各樣的值,由于采用sigmoid函數,所以數據需要進行歸一化處理,可以歸一化到(0,1)或者(-1,1)之間。針對樣本的輸出,從sigmoid函數可以得知,如果要輸出0,1,那么值需要是無重大或者無窮小,故需要進行處理,可以認為
53、輸入大于0.5即為1,小于0.5即為0。</p><p> ?。?)網絡結構的選擇。反饋神經網絡的隱含層層數和神經元數目的確定,對算法有著至關重要的作用,它們決定了神經網絡的規(guī)模,如果規(guī)模大,計算量就會大,而且可能會導致神經網絡擬合的函數過度追求擬合擬合效果,反而失去了原本的特性,即過擬合,如果規(guī)模小,計算量小,但是可能會導致神經網絡擬合的函數不能很好的擬合所有的數據,即欠擬合。</p><p
54、> (3)初始權值、閾值的選擇。初始值對學習結果也是有影響的,選擇一個適當的初始值能盡快收斂,而且保證擬合的效果好。</p><p> (4)批量學習和增量學習。批量學習適用于離線學習,即一次性輸入所有的學習樣本,然后去學習。批量學習的優(yōu)點是學習效果比較穩(wěn)定,擬合出的函數性能比較好,但是缺點是一次需要所有的學習樣本;增量學習適用于在線學習,即動態(tài)獲取學習樣本,然后輸入神經網絡進行學習,然后再次獲取學習樣
55、本,再次學習。這種學習方法對噪聲比較敏感,不適合劇烈變化的輸入模式,但是可以在原有網絡的基礎上直接學習。</p><p> 2.2.4 神經網絡在模式識別上面的優(yōu)勢</p><p> 1、神經網絡能夠分布式的存儲信息</p><p> 神經網絡是利用多個神經元之間的連接以及各個神經元之間的權值來表示信息,每個神經元都能夠單獨的存儲信息,所以它能夠分布式存儲信息
56、,而且如果網絡部分受到損害,也能夠恢復原來信息。</p><p> 2、神經網絡能夠并行處理信息</p><p> 神經網絡中的每個神經元都可以接受信息,然后獨立運算和處理,然后將運算的結果輸出來,這些步驟都是可以并行的。</p><p> 3、神經網絡能夠自動學習</p><p> 神經網絡模擬了生物神經系統(tǒng)的結構,能夠根據外界的環(huán)
57、境來調節(jié)內部的信息,從而去適應外界的環(huán)境,通過對參數分類,使得網絡收斂來符合當前的環(huán)境。</p><p><b> 2.3 本章小結</b></p><p> 本章詳細介紹了神經網絡算法,以及其基本組成部分:感知機、前饋神經網絡、反向神經網絡。利用嚴格的公式論證了該算法,并且說明了算法的一些特點以及注意事項,在最后講述了神經網絡在模式識別中的優(yōu)勢。</p&g
58、t;<p> 第3章 系統(tǒng)設計與實現(xiàn)</p><p> 本章首先介紹了神經算法的實現(xiàn),接著詳細介紹了手寫數字的實現(xiàn)、手寫漢字的實現(xiàn),最后介紹了UI界面的實現(xiàn)。</p><p> 3.1 神經網絡算法的實現(xiàn)</p><p> 3.1.1 神經網絡的結構</p><p> 一個完整的神經網絡結構包括:輸入層、輸出層、隱含層
59、、隱含層權重、輸出層權重、輸出層誤差、隱含層誤差等結構。具體的數據結構如下:</p><p> double * pInputLayer; // 輸出層數據</p><p> double* pHiddenLayer; // 隱含層數據</p><p> double* pOutputLayer; // 輸出層數據</p>&l
60、t;p> double** pWeightHidden; // 隱含層權重</p><p> double** pWeightOutput; // 輸出層權重</p><p> double* pErrOutput; // 輸出層誤差</p><p> double* pErrHidden; // 隱含層誤差</p&g
61、t;<p> double** pLastChangeHidden; // 上次隱含層改變值</p><p> double** pLastChangeOutput; // 上次輸出層改變值</p><p> bool bRegression; // 是否回歸</p><p> double dRate1;
62、 // 學習率</p><p> double dRate2; // 慣性項系數</p><p> int iInputCount; // 輸入層神經元個數</p><p> int iHiddenCount; // 隱含層神經元個數</p><p> int iOuputCount; //
63、輸出層神經元個數</p><p> 3.1.2 算法的結構</p><p> 用代碼實現(xiàn)神經網絡算法,主要步驟分為五個部分,初始化神經網絡、加載神經網絡參數、前向神經網絡、反向神經網絡、學習過程。</p><p><b> 1、初始化神經網絡</b></p><p> 首先通過Initializer函數傳入神經網
64、絡需要的各個參數,然后通過這些參數,給神經網絡分配內存。</p><p> 2、加載神經網絡參數</p><p> 由于學習樣本的龐大,每次學習的耗時很長,所以預先將已經學習好的參數保存在文件當中,當初始化好神經網絡之后,就開始加載神經網絡里面的參數。</p><p><b> 3、前向神經網絡</b></p><p&
65、gt;<b> 算法的步驟如下:</b></p><p> (1)將訓練的input數據輸入到神經網絡的輸入層。</p><p> ?。?)將輸入層的偏移置為1.0。</p><p> ?。?)計算隱含層的每一個神經元的值,然后通過sigmoid函數將計算得的值賦值給當前神經元。</p><p> (4)將隱含層的
66、偏移置為1.0。</p><p> ?。?)計算輸出層的每一個神經元的值,根據是否回歸來選擇使用采用sigmoid函數來處理計算所得值。</p><p><b> 4、反向神經網絡</b></p><p><b> 算法的步驟如下:</b></p><p> ?。?)計算輸出層的誤差。</
67、p><p> ?。?)根據1中計算得誤差,計算輸出層的局部梯度。</p><p> ?。?)根據局部梯度與上次輸出層的改變值、學習率等參數改變輸出層權重。</p><p> (4)計算隱含層的誤差。</p><p> ?。?)根據4中計算得誤差,計算隱含層的局部梯度。</p><p> ?。?)根據隱含層的局部梯度與上次
68、隱含層的改變值、學習率等參數改變隱含層權重。</p><p><b> 5、學習過程</b></p><p><b> 算法的步驟如下:</b></p><p> ?。?)檢查參數有效性。</p><p> ?。?)將輸入的input數據順序打亂。</p><p> (
69、3)對input數據的每一組訓練數據,作如下訓練:</p><p> ?。?)前向網絡計算隱含層與輸出層神經元的值。</p><p> ?。?)反饋網絡調整隱含層與輸出層神經元的值以及權值。</p><p> 3.2 神經網絡識別手寫數字</p><p> 在識別手寫數字的過程中,會碰到很多種情況,使用不同的方法,會得到不同的結果,具體過
70、程見圖3.1。</p><p> 圖3.1 識別數字的步驟</p><p> 3.2.1 手寫數字的常規(guī)預處理方法</p><p> 在利用神經網絡識別手寫數字的過程中,對神經網絡的輸入數據有兩種表現(xiàn)方式,第1種是將數字圖像經過數值化后直接傳入神經網絡進行學習,第2種是將數字圖像經過數值化后,再經過預處理,再傳入神經網絡進行學習。第1種方法未經過處理,在某些特
71、定的環(huán)境會獲得更好的效果,但是會使得分類器的復雜程度大大增加。因此,對原本的樣本的預處理,已經成為手寫數字識別的一個重要途徑。</p><p> 預處理的第一步是將數字圖像轉換成m*n的一個像素矩陣,然后經過灰度化、二值化,然后經過一些降噪算法,如中值濾波算法,去掉圖像的噪聲,然后再經過梯度銳化算法銳化邊緣,最后經過細化、平滑、規(guī)格化等處理,得到比較好的輸入數據。</p><p> 最
72、后這是從樣本中提取出特征,來構成輸入數據,對于數字常見的方法有提取數字寬度、長度、粗細等特征。</p><p> 3.2.2 圖像的灰度化</p><p> 圖像的灰度化指去掉圖像的色彩信息,只保留圖像的亮度信息。一副圖像的一個像素點由RGB三種顏色組成,灰度圖像不再關心RGB色彩,只關心亮度。</p><p> 在識別過程當中,人們只關心圖像的形狀,不關心色
73、彩,相反,色彩由于顏色過于豐富,反而會影響識別,所以獲得像素矩陣后要將圖像灰度化。</p><p> 圖像的灰度化一般有4中方法,即分量法、最大值法、平均值法、加權平均法。本文中采用平均值法,即使得圖像的RGB三個分量的值相等。通過公式:</p><p> 這樣使得RGB三個分量的值等于三個分量的平均值,就可以得到灰度圖像。</p><p> 灰度圖像是很多圖
74、形處理的第一步,經過圖像的灰度化之后,就可以進行其他的處理,所以,圖像的灰度化是很重要的一個步驟。</p><p> 3.2.3 圖像的二值化</p><p> 圖像的二值化是指把圖像中的所有像素根據一定的方法,劃分成黑白兩種顏色。</p><p> 經過二值化后的圖像,全部的像素都是0或者255,圖像會顯示出很明顯的黑白效果。這樣就不再和更多的像素有關。這樣
75、一個像素點可以壓縮成0和1兩個數,利于處理和節(jié)省空間。</p><p> 二值化法的基本公式是:</p><p> 公式中f(i,j)為圖像灰度化后的像素值,g(i,j)為圖像二值化后的值,T為閾值。從式子中可以看出,T的值直接關系到二值化的效果,根據T值得不同選取方法,可以把二值化算法分為三種,即:整體閾值法、局部閾值法、動態(tài)閾值法。</p><p> 整體
76、閾值法,即整張圖像的閾值都是一個值。但是這個閾值需要根據具體的圖像來確定,曝光度高的圖像,閾值需要小一點,曝光度低的圖像,閾值需要大一點。整體閾值法的閾值一旦確定就不能更改,不能根據特定的區(qū)域來更改閾值,但是整體閾值法的算法簡單,運算速度快,適用于干擾小的圖像。這個閾值的確定方法也比較簡單,通常就計算整張圖片的亮度值,然后選取中間值作為二值化的閾值。</p><p> 局部閾值法,即根據不同的區(qū)域來確定不同的閾
77、值。當一張圖像的曝光度不均勻時,采用整體閾值法會得到不理想的二值化圖像,如果采用局部閾值法,可以根據不同區(qū)域的曝光度來確定閾值,得到一張效果良好的二值化圖像。但是采用局部閾值法,計算量大一些,速度也會慢一些。</p><p> 動態(tài)閾值法,即根據每個像素點的像素值和位置來確定不同的閾值。這種方法不僅考慮了單個像素點的特點,還考慮了該像素點周圍的像素點的特點,能夠很好的突出圖像的邊緣。但是在手寫數字的識別過程中,
78、數字圖像與背景的區(qū)別較大,不需要采用這種方法來二值化,而且會降低圖像處理的速度。</p><p> 3.2.4 中值濾波</p><p> 圖像的噪聲指影響人們接受圖像信息的因素。噪聲在理論上是不能被預測的,只能通過概率的方法來統(tǒng)計隨機誤差。</p><p> 如果圖像中存在噪聲,會大大影響字符的切分、特征向量的提取等。因此圖像的降噪將直接影響到數字識別的效果
79、。</p><p> 中值濾波是一種非線性的圖像平滑方法,能夠根據圖像的不同去平滑圖像,而且不會影響圖像的邊緣,具體方法可定義為:</p><p> 式子中,g (x, y)和f (x-i, y-i)分別為輸出和輸入像素值,W為模版窗口,可以選擇線性、方形、十字形、圓形、菱形等。</p><p> 取出模版窗口W中的所有像素值,然后排序,選擇這些像素值的中間值
80、作為g(x,y)的像素值。</p><p> 3.2.5 去掉離散點</p><p> 在圖像中可能會存在很多孤立的點或者點區(qū)域,這些點的面積往往比較小,通過中值濾波等濾波算法可能不會被去掉,如果不去掉就會影響圖像的進一步處理。</p><p> 數字圖形往往都是一個很大的聯(lián)合的整體,即相連的非空白像素點數目很大,而往往與孤立的離散點相連的非空白點數目小,因此
81、可以根據這個去掉孤立的點區(qū)域。</p><p><b> 算法的步驟如下:</b></p><p> ?。?)掃描整個圖像,找到非空白點。</p><p> (2)將該空白點進隊列。</p><p> ?。?)從隊列中取出第一個點,然后分別求出與之相連的上下左右四個點,判斷該點是否在圖像區(qū)域內并且沒有被搜索過。<
82、;/p><p> ?。?)如果滿足3中的要求,就將該點放入隊列,并且標記該點已經被檢索。</p><p> ?。?)循環(huán)2-4過程,直到隊列為空或者被標記的點的個數超過了一個閾值。</p><p> (6)判斷被標記的點的個數是否超過了閾值,如果沒有超過,就將這些被標記的點置為空白點。</p><p> ?。?)循環(huán)1-6過程,直到掃描完了所有
83、的點。</p><p> 之所以采用這種算法,原因是圖像的不同,有的圖像的離散點區(qū)域比較大,采用其他的算法不能快速的將這些離散的點清理掉,這時候采用這種算法,只需要判斷閾值,就能快速將連續(xù)點小于這個閾值的離散點去掉。但是這個算法也存在缺點,如果是噪聲點貼近數字圖像,算法則不能判斷該點為噪聲點,也就不能去掉了,所以需要與其他算法配合使用才能更好的去掉噪聲。</p><p> 3.2.6
84、圖像銳化</p><p> 圖像銳化的主要目是使邊緣從圖像背景中更容易區(qū)分開來,使物體能夠更加鮮明的從圖像中區(qū)分開來,有助于后序的分割、特征提取等操作。</p><p> 圖像的模糊實際上是受到平均或者通過積分運算造成的,對圖像進行微分運算,可以使圖像清晰化。</p><p> 本文中主要采用梯度銳化算法來銳化圖像的邊緣,首先計算各點的梯度值,定義在f (x,
85、y)在點(x,y)處的梯度是一個矢量,定義為:</p><p> 其中,梯度的幅度G[f (x,y)]可以由以下公式算出:</p><p> 在f (x, y)在其最大變化率方向上增加的距離,叫做梯度的數值,因此,上式可以寫作:</p><p> 當采用這種算法的時候,圖像的最后一行、最后一列無法計算梯度,所以可以采用前一行或者前一列的梯度值來代替。</
86、p><p><b> 算法的步驟如下:</b></p><p> ?。?)將圖像的最后一行像素點置為0xFF。</p><p> ?。?)對除去最后一行的圖像中的每一個像素點循環(huán)。</p><p> ?。?)取出當前像素點值(a)、當前像素點的左邊一個像素點(b)、當前像素點的下邊一個像素點(c)。</p>
87、<p> ?。?)計算梯度值abs(a-b) + abs(a-c)。</p><p> ?。?)判斷梯度值是否大于一個閾值,如果大于該閾值,就將當前像素點的值設置為梯度值。</p><p> 物體與物體、背景與背景之間的梯度變化一般都很小,只有在物體的邊緣梯度變化才會比較大,也就是物體和背景交叉的部分。當某點的梯度值大于一個閾值的時候,就認為該點在物體和背景的交叉邊緣,處理方法
88、是:加上一個特定的值C,使得邊緣變亮;如果梯度值小于這個閾值,就認為在同一個環(huán)境下,就不去改變該點的像素值。當圖像處理完時,物體和背景的邊緣就被增量了,同時也不影響圖像的其他點。</p><p> 3.2.7 數字的切分</p><p> 經過上述圖像處理的算法之后,數字圖像就比較好的被處理了出來。人們識別數字只關心數字部分,其他部分是不關心的,所以需要將數字部分從數字圖像中區(qū)分開來。
89、</p><p> 經過切分后的數字,去掉了部分背景,使得切分后的圖像剛好包含了整個數字,大大減少了對以后的圖像分析、處理所需要的數據量。</p><p> 算法的主要步驟如下:</p><p> (1)掃描整個圖像。</p><p> (2)當循環(huán)到一個沒有被掃描過的黑色點時,就將該點放入一個隊列。</p><p
90、> ?。?)從隊列中取出一個點,然后計算該點的上下左右四個方向的點,判斷這些點是否在圖像內以及是否沒有被掃描過。</p><p> ?。?)如果滿足3中的條件,就將點放入隊列中,同時用該點的坐標值更新區(qū)域的位置值(left、right、top、bottom)。</p><p> ?。?)循環(huán)2-4,直到隊列為空。</p><p> ?。?)將獲得的區(qū)域的位置值
91、放入到一個向量中,同時循環(huán)1-6,直到掃描完整個圖像。</p><p> 最終切分的數字圖像的區(qū)域就在(6)中的區(qū)域位置向量中了。</p><p> 3.2.8 數字的歸一化</p><p> 經過數字的切分之后,數字圖像就從背景中分離了出來,但是數字之間彼此的大小都不一樣,但是識別要求所有的數據都是一樣的尺寸,所以需要對數字進行歸一化處理。</p>
92、;<p> 歸一化算法一般有兩種,即線性歸一化和非線性歸一化。線性歸一化算法比較簡單,即對像素坐標進行線性的變換,然后把原來的字符映射到規(guī)定的區(qū)域內。首先按照圖像現(xiàn)在的大小和要變換的大小求出變換系數,然后用插值的方法把原來的像素點映射到歸一化的區(qū)域內。需要注意的是,數字圖像有的長有的寬,需要根據不同的長和寬計算變換系數。非線性歸一化算法會考慮到原有圖像的形狀等特點,利用這些特點進行非線性的變換,這樣歸一化后的圖像會最大化
93、的保留以前圖像的特點。</p><p> 本文中采用的為線性歸一化算法,算法思路如下:</p><p> ?。?)獲取切分后的數字區(qū)域位置(left,right,top,bottom)。</p><p> ?。?)根據1中所得位置計算區(qū)域的width與height,如果width大于height,那么則按照width擴展,反之,根據height擴展。</p&
94、gt;<p> ?。?)計算原圖像與變換后的圖像的變換系數。</p><p> (4)對數字區(qū)域中的每一個像素循環(huán),如果該像素不為空白點,那么根據變換系數以及拓展選項計算在變換后的坐標,然后將該點的值置為非空白點。</p><p> 3.2.9 特征提取</p><p> 特征提取是整個字符識別系統(tǒng)的關鍵,識別算法是根據選取特征的種類來進行選擇的
95、。系統(tǒng)識別率高低的關在是:提取的特征是否穩(wěn)定,是否代表一類字符的特點。</p><p> 針對數字的特征提取,可以采用比較簡單的方法,掃描得到的整個圖像,當碰到黑色點時,就提取出1,當碰到白色點時,就提提取出0。當掃描完整個圖像后,就得到了一個與圖像大小一樣的特征向量矩陣。這種方法很簡單,運算速度快,但是適應性不強。針對BP神經網絡的特點,可以使神經網絡很快收斂,如果加大訓練樣本的數目,可以增強適應性。<
96、/p><p> 3.2.10 數字識別過程</p><p> 首先從圖像中獲取特征向量,得到訓練樣本,然后將特征向量輸入到神經網絡中進行訓練,經過一定數量的訓練之后,就可以用該神經網絡去識別數字了。數字識別的過程見表3.1。</p><p> 表3.1 數字識別過程表</p><p> 3.2.11 神經元規(guī)模的確定</p>
97、<p> 1、輸入層與輸出層神經元個數的確定</p><p> 輸入層和輸出層的神經元個數應該和具體的應用環(huán)境有關。輸入層的神經元數目和特征矩陣有關,在本文中,采用的特征矩陣為20*20,所以輸入的神經元數目為400個。輸出層神經元的數目和輸出規(guī)模有關,由于在數字識別中,只有0-9這10個數字,所以輸出層神經元數目為10。同時規(guī)定,當第幾個神經元輸出1時,匹配的就是幾,例如第4個神經元輸出1,其他
98、輸出0,那么匹配的數字就是4。</p><p> 2、隱含層神經元個數的確定</p><p> 隱含層神經元的個數關系到神經網絡的性能,取在合適的數量能大大提升性能,如果數目過大,會出現(xiàn)過擬合情況,如果數目過小,會出現(xiàn)欠擬合情況。目前還沒有一種比較科學的方法來確定隱含層神經元個數的方法,大多是通過經驗以及嘗試得出數目。事實上,通過各種公式計算出來的隱含層神經元個數不一樣,性能也相差很多
99、倍。</p><p> 3、隱含層層數的確定。</p><p> 增加隱含層層數,可以提高神經網絡的精度,也可以降低整個網絡的誤差,同時也會增加網絡的復雜程度,影響網絡的性能,而且有可能會出現(xiàn)過擬合的情況。</p><p> 已經有定理證明:若輸入層和輸出層采用線性轉換函數,隱層采用Sigmoid轉換函數,則含一個隱層的MLP網絡能夠以任意精度逼近任何有理函數
100、[6]。根據這個理論,可以只設計包含一個隱含層的神經元網絡,通過適當控制該隱含層神經元,就可以達到多層隱含層的神經網絡的效果。</p><p> 3.3 神經網絡識別漢字</p><p> 相比數字,漢字的識別就復雜了不少,目前漢字的識別被認為是最困難的模式識別問題之一。漢字是一種特殊模式的幾何,包括的種類多、結構復雜、而且書寫的形勢多種多樣,加上其他干擾因素,都使得漢字的識別很困難。
101、漢字的具體識別過程見圖3.2。</p><p> 圖3.2 識別漢字的步驟</p><p> 3.3.1 筆畫的預處理</p><p> 漢字的識別可以拆分成筆畫,漢字的筆畫有多種,本文將漢字的筆畫基本分為以下16種,具體筆畫見表3.2。</p><p> 由于筆畫是直接書寫在面板上的,面板上除了白色背景就是筆畫了,所以預處理也會相對
102、比較簡單。</p><p> 本文中把漢字的筆劃分成3類,第1類是除去點的15種筆劃,這15種筆畫的處理方式就是直接用神經網絡來識別。第2類是點筆劃,由于點的形狀不確定,大小比較小,如果采用神經網絡來識別,有很大的幾率會識別成其他筆畫或者識別不出來,所以可以用一個閾值來確定是否為點筆劃,當獲得的筆畫大小小于一個值時,就判斷為點筆劃。第3類是類似于第1類的筆畫,比如豎鉤與豎、撇折與豎折,比較類似,可以把這幾種筆畫
103、與第1類的進行融合,然后都采用神經網絡來識別筆畫,這樣既能保護輸出層的神經元數目少、也能減少工作的復雜度,這對于漢字的識別是有較大的益處的。</p><p> 表3.2 漢字筆畫表</p><p> 3.3.2 圖像的處理</p><p><b> 1、圖像的二值化</b></p><p> 針對漢字識別的二值化
104、,就簡單很多,就是把背景點的其他點標記為黑點,背景點標記為白點。該本文中,筆畫采用的顏色為綠色(RGB(0,0xFF,0)),所以將非綠色點標記為白色,綠色點標記為黑色,就完成了二值化過程。</p><p><b> 2、圖像的歸一化</b></p><p> 在書寫漢字的過程當中,每次書寫一次的時候,就需要提取書寫的信息,故每一次歸一化的圖像都是一次書寫的圖像。
105、歸一化的方法也比較簡單,即對像素坐標進行線性的變換,然后把原來的字符映射到規(guī)定的區(qū)域內。首先按照圖像現(xiàn)在的大小和要變換的大小求出變換系數,然后用插值的方法把原來的像素點映射到歸一化的區(qū)域內。</p><p><b> 3、特征向量的提取</b></p><p> 經過圖像的歸一化后,得到一個m*n的像素矩陣,由于漢字的識別只關心形狀,不關心顏色,所以首先掃描整個圖
106、像,如果碰到一個黑色像素點,把一個黑色像素點轉換成1,碰到一個白色像素點,就轉換成0,當整張圖像轉換完成后,就得到了一個特征矩陣。</p><p> 3.3.3 神經網絡規(guī)模的確定</p><p> 1、輸入層與輸出層神經元數目的確定</p><p> 在本文中,輸入的特征矩陣有20*20,所以輸入層神經元數目為400,輸出層的輸出為16個筆畫,故輸出層神經元
107、數目為16,當輸出一個特定的筆畫的時候,對應的神經元輸出為1,例如當第4個神經元輸出為1時,輸出的筆畫為捺。</p><p> 2、隱含層神經元數目的確定</p><p> 該本文中,輸入層神經元數目為400,輸出層神經元數目為16,訓練數據在500左右,經過多次測試,確定隱含層神經元數目在100個,既能快速收斂,也能保證神經網絡的穩(wěn)定性。</p><p>
108、3、學習率以及慣性項系數的確定</p><p> 為了保證神經網絡算法的快速收斂,同時也保證網絡的穩(wěn)定,以及結合具體的情況,學習率取值0.25,慣性項系數取值0.1。經過大量測試,性能穩(wěn)定,效果比較好。</p><p> 3.3.4 字庫的管理方式</p><p> 1、漢字在外存中的存儲</p><p> 漢字基數過多、筆畫特征也很
109、復雜,但是復雜的漢字與簡單的漢字的識別原理是一樣的,故選取了一些基本的漢字作為測試數據,測試數據大約50個漢字。漢字在外存中的存儲,存儲的數據包括漢字以及組成該漢字的筆畫,存儲格式為文本格式。</p><p> 2、漢字在內存中的存儲</p><p> 漢字在書寫過程中,需要實時查詢,所以對性能要求會比較高,如果直接從外存中讀取,并放在一個鏈表容器中,會導致效率比較低,字庫越大,體現(xiàn)的
110、越明顯。</p><p> 了解到字庫的格式,即一個漢字是由多個筆畫組成的,所以在內存中維護了一顆trie樹,trie樹的結構見圖3.3。</p><p> 圖3.3 trie樹的結構</p><p> Trie樹的查詢見下面的代碼部分:</p><p> CWordList* CTrieTree::QueryWord(int* pS
111、troke, int iLength)</p><p><b> {</b></p><p> TrieNode* p = pRoot;//獲得trie樹的nil根節(jié)點</p><p> for (int i = 0; i < iLength; i++)//對獲得筆畫的進行循環(huán)</p><p><
112、b> {</b></p><p> int iCurrentStroke = pStroke[i];//獲取當前筆畫</p><p> if (p->pChild[iCurrentStroke] == nullptr)//判斷合法性</p><p><b> {</b></p><p&
113、gt; return nullptr;</p><p><b> }</b></p><p> if (i == iLength - 1)//最后的筆畫</p><p><b> {</b></p><p> if (p->pChild[iCurrentStroke]->p
114、Word == nullptr)//檢查漢字的合法性</p><p><b> {</b></p><p> return nullptr;</p><p><b> }</b></p><p> if (p->pChild[iCurrentStroke]->pWord->
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機科學與技術畢業(yè)設計-基于人工神經網絡的手寫識別系統(tǒng)
- 基于BP神經網絡的手寫數字識別系統(tǒng)的設計與實現(xiàn).pdf
- 基于神經網絡的聯(lián)機手寫識別系統(tǒng)研究與實現(xiàn).pdf
- 基于神經網絡的人臉識別系統(tǒng)設計【畢業(yè)論文】
- 計算機科學與技術畢業(yè)論文-賓館管理系統(tǒng)的設計與實現(xiàn)
- 基于人工神經網絡的刀具狀態(tài)識別系統(tǒng)畢業(yè)論文定稿.docx
- 計算機科學與技術畢業(yè)論文-資料管理系統(tǒng)設計與實現(xiàn)
- 基于人工神經網絡的刀具狀態(tài)識別系統(tǒng)設計——學士論文
- 計算機科學與技術畢業(yè)論文-基于web的家政服務系統(tǒng)的設計與實現(xiàn)
- 計算機科學與技術畢業(yè)論文--酒店網絡
- 計算機科學與技術畢業(yè)論文群體人臉檢測系統(tǒng)的設計與實現(xiàn)
- 基于bp神經網絡與方向小波的手寫數字識別系統(tǒng)
- 計算機科學與技術畢業(yè)論文校園導航系統(tǒng)的設計與實現(xiàn)
- 基于神經網絡的聲紋識別系統(tǒng)設計與實現(xiàn).pdf
- 基于卷積神經網絡的圖片數字識別系統(tǒng)設計與實現(xiàn)
- 計算機科學與技術畢業(yè)論文-病床呼叫管理系統(tǒng)的設計與實現(xiàn)
- 基于神經網絡的手寫字符識別系統(tǒng).pdf
- 計算機科學與技術畢業(yè)論文基于web的物流管理系統(tǒng)的設計與實現(xiàn)
- 計算機科學與技術畢業(yè)論文基于webgis的物流信息系統(tǒng)的設計與實現(xiàn)
- 計算機科學與技術專業(yè)網站設計與實現(xiàn)畢業(yè)論文
評論
0/150
提交評論