漢語拼音大寫字母規(guī)定格式練習系統(tǒng)設計.doc
《漢語拼音大寫字母規(guī)定格式練習系統(tǒng)設計.doc》由會員分享,可在線閱讀,更多相關《漢語拼音大寫字母規(guī)定格式練習系統(tǒng)設計.doc(47頁珍藏版)》請在裝配圖網(wǎng)上搜索。
永 州 職 業(yè) 技 術(shù) 學 院 畢業(yè)設計 漢語拼音大寫字母規(guī)定格式練習系統(tǒng)設計 學生姓名:彭 嵩 年級專業(yè):2005級 軟件技術(shù) 指導老師:胡紅宇 副教授 系 部:計算機系 湖南永州 提交日期:2009年11月20日 湖南永州職業(yè)技術(shù)學院畢業(yè) 論文(設計) 誠 信 聲 明 本人鄭重聲明:所呈交的大專畢業(yè)論文(設計),是本人在指導老師的指導下,獨立進行研究工作所取得的成果,成果不存在知識產(chǎn)權(quán)爭議,本設計不含任何其他個人或集體已經(jīng)發(fā)表過的作品成果。本人完全意識到本聲明的法律結(jié)果由本人承擔。 畢業(yè)設計作者簽名: 200 年 月 日 一、畢業(yè)設計(論文)的主要內(nèi)容及依據(jù)(任務及背景、工具環(huán)境、成果形式、著重培養(yǎng)的能力) 二、應收集的資料及主要參考文獻 三、畢業(yè)設計(論文)進度計劃 起 迄 日 期 工 作 進 度 備 注 開 題 報 告 (該表格由學生獨立完成) 建議填寫以下內(nèi)容:1.簡述課題的作用、意義,在國內(nèi)外的研究現(xiàn)狀和發(fā)展趨勢,尚待研究的問題。2.重點介紹完成任務的可能思路和方案;3.需要的主要儀器和設備等。 指導教師評語:(建議填寫內(nèi)容:對學生提出的方案給出評語,明確是否同意開題,提出學生完成上述任務的建議、注意事項等) 指導教師簽名: 年 月 日 目 錄 摘 要 3 1 前言 4 1.1 本課題的意義以及目標 4 1.1.1 課題意義 4 1.1.2 課題目標 4 1.2 課題內(nèi)容在國內(nèi)外研究現(xiàn)狀以及水平 4 1.3 系統(tǒng)總體結(jié)構(gòu)設計 5 1.4 基本工作原理及方法 6 1.5 整個畢業(yè)設計說明書的結(jié)構(gòu)介紹 6 2 相關的知識和工具 7 2.1 計算機圖形學 7 2.2 模式識別 7 2.3 BP神經(jīng)網(wǎng)絡 7 2.4 Visual C++ 8 2.5 開發(fā)平臺及語言 8 3 窗口和書寫筆畫超范圍識別設計 9 3.1 窗口設計 9 3.1.1 背景設計 10 3.1.2 功能鍵設計 10 3.1.3 格式鍵設計 10 3.1.4 書寫區(qū)域四線格設計 10 3.2 書寫筆畫超范圍識別設計 11 3.2.1 功能分析 11 3.2.2 筆畫超范圍設計分析 12 4 手寫漢語拼音大寫字母的識別設計 12 4.1 手寫拼音大寫字母結(jié)構(gòu)分析 12 4.2 系統(tǒng)功能分析 15 4.3 手寫大寫拼音字母識別方案設計 15 4.3.1 BP神經(jīng)網(wǎng)絡模型分析 15 4.3.2 數(shù)據(jù)預處理 17 4.3.3 神經(jīng)網(wǎng)絡的建立 19 5 實驗效果演示 22 5.1 系統(tǒng)界面 22 5.2 實例操作 22 6 結(jié)論 25 參考文獻 26 致謝…………………………………………………………………………… 25 附錄 28 漢語拼音大寫字母規(guī)定格式練習系統(tǒng)設計 學 生:彭嵩 指導老師:胡紅宇 (湖南永州職業(yè)技術(shù)學院計算機系 永州 425000) 摘 要:幼兒教學是人生學習最重要的起點,而幼兒的漢語拼音教學又是孩子們在幼兒時期能夠有個良好學習基礎的關鍵之一。本文從方便幼兒學習漢語拼音字母的角度對漢語拼音大寫字母規(guī)定格式練習進行了深入的理論探討和程序?qū)嵺`。在手寫大寫拼音字母識別設計上利用了BP網(wǎng)絡理論,先分別對各字母進行特征選擇與提取,然后讓神經(jīng)網(wǎng)絡對26個大寫字母進行模式識別。實驗結(jié)果顯示,系統(tǒng)能夠正確識別規(guī)定格式下的26個大寫漢語拼音字母,該系統(tǒng)能夠方便幼兒對漢語拼音字母的學習。 關鍵詞:漢語拼音大寫字母,規(guī)定格式,練習系統(tǒng),BP神經(jīng)網(wǎng)絡。 第1章 前言 1.1 本課題的意義以及目標 1.1.1 課題意義 漢語拼音是幫助識字和學習普通話的工具。在小學階段要求熟練掌握聲母、韻母、拼音、聲調(diào)、整體認讀音節(jié)和一些拼寫規(guī)則,能按順序背誦、默寫字母表,會用音序查字典;能運用拼音識字,正音和學習普通話。因此對幼兒漢語拼音的教學也就成了一件非常重要的事情。而漢語拼音規(guī)定格式練習系統(tǒng)是一種新型數(shù)字教學文具,讓孩子們能夠規(guī)范而且正確的學習漢語拼音,提高學習漢語拼音字母的效率。 在新世紀里,新的課程目標,新的教學環(huán)境,新的教育模式無疑都是促使我們創(chuàng)造出新的教學方法和教學文具的動力。特別是新的課程標準的出臺使中國站在了世界教育改革的前列。也使我們教育工作者變革著自己的教育教學思想,向傳統(tǒng)教學中陳腐的教學觀挑戰(zhàn),以期培養(yǎng)出具有創(chuàng)新精神,合作意識和開放視野,具有包括閱讀理解與表達交流在內(nèi)的多方面素質(zhì)的人才。 在中國,每年都有將近2億的學前班、小學生開設了習字課,而學習漢語拼音的孩子大多數(shù)都是用拼音本———采用四線格規(guī)定格式的漢語拼音練習本。每年僅小學生練習習字一項就須造32K的紙30多億張,為造這30多億張32K的紙需要砍伐的樹木數(shù)量及造紙產(chǎn)生的污染不言而喻。利用手寫板技術(shù)取代習字紙張不僅可以大量減少習字用紙,而且有益于小學生從小就接觸到高科技技術(shù),使他們能夠從小就享受到高科技帶來的成果。 隨著社會的不斷進步,教育問題會得到更多關注,幼兒教育需要更加優(yōu)秀的方法融于其中。通過規(guī)定格式下的手寫漢語拼音字母練習系統(tǒng)設計可以讓幼兒從小養(yǎng)成良好的學習習慣,使?jié)h語拼音的學習變得充滿趣味性,從而提高了學習漢語拼音的效率。因此,手寫漢語拼音字母規(guī)定格式練習系統(tǒng)設計的研究有著重大的現(xiàn)實意義,一旦研究成功并投入商用,將產(chǎn)生巨大的經(jīng)濟和社會效益。 1.1.2 課題目標 研制出漢語拼音字母、拉丁字母的電腦輔助系統(tǒng)設計,重點研究手寫大寫拼音字母在規(guī)定格式中練習書寫模式的識別。建立類文字庫在規(guī)定格式書寫條件下的識別方法。 1.2 課題內(nèi)容在國內(nèi)外研究現(xiàn)狀以及水平 漢語拼音方案采用拉丁字母,跟英文的書寫比較相似。現(xiàn)在國外英文的手寫輸入比較成熟,國內(nèi)的漢字識別技術(shù)也有了長足的進步,從簡單的單體識別發(fā)展到多種字體混排的識別,從中文印刷材料的識別發(fā)展到中英文混排材料的雙語識別,各個系統(tǒng)可以支持簡、繁漢字識別,漢字的識別率達到了98%以上。近來,基于神經(jīng)網(wǎng)絡的模式識別研究發(fā)展迅速,利用神經(jīng)網(wǎng)絡進行特征選擇與提取技術(shù)應用也越來越受到重視,人工神經(jīng)網(wǎng)絡已應用于很多領域,并在許多科研項目上取得了可喜的成果。 1.3 系統(tǒng)總體結(jié)構(gòu)設計 系統(tǒng)的總體結(jié)構(gòu)分為以下四個模塊元素: (1) 寫字板窗口設計:包括窗口背景風格設計,功能格式按鈕設計以及書寫區(qū)域四線格設計。 (2) 寫字規(guī)范化設計:自動對當前一筆畫超四線格范圍判斷處理(該系統(tǒng)的設計是以文字形式提示,展望能夠用語音進行提示)。 (3)書寫字母正確性判斷:對當前寫好的字母,當點擊識別按鈕時,系統(tǒng)便會對當前字母進行正確性判斷。其中對手寫大寫拼音字母識別設計是本課題設計的重點,也是整個系統(tǒng)設計的重點和難點。 (4) 書寫質(zhì)量分析:對書寫正確的字母進行質(zhì)量分析并根據(jù)質(zhì)量進行評分 各模塊關系如圖1-1所示。 窗 口 設 計 規(guī) 范 化 設 計 質(zhì) 量 分 析 正 確 性 判 斷 圖1-1模塊關系圖 系統(tǒng)對字母的判斷處理過程如圖1-2所示。 字 母 輸 入 超 范 圍 判 斷 正 確 性 判 斷 書 寫 成 績 質(zhì) 量 分 析 圖1-2系統(tǒng)判斷過程 1.4 基本工作原理及方法 本設計從模式識別的角度對輸入的漢語拼音字母進行識別判斷。它主要包括了拼音字母的輸入,書寫筆畫的超范圍識別,固定格式下的漢語拼音的識別。拼音字母的輸入是直接用鼠標進行書寫。筆畫的超范圍識別采用建立坐標系,對四線格邊界坐標進行定位,并自動的隨機的記錄部分書寫筆畫的點進行判斷處理。其中手寫大寫漢語拼音字母的識別是本課題研究的重點,也是整個系統(tǒng)的重點和難點。本文先對BP神經(jīng)網(wǎng)絡理論進行了探討和分析,利用BP神經(jīng)網(wǎng)絡對各字母進行特征選擇與提取,并對網(wǎng)絡不斷的進行樣本訓練,直到網(wǎng)絡對大寫字母能夠較好的進行識別。 1.5 整個畢業(yè)設計說明書的結(jié)構(gòu)介紹 整個畢業(yè)設計說明說由七章以及程序附錄清單組成。 第一章是概述,介紹了本課題的意義、目標以及國內(nèi)外發(fā)展現(xiàn)狀; 第二章介紹系統(tǒng)設計中所用到的相關基礎知識和工具:介紹了計算機圖形學,模式識別技術(shù),BP神經(jīng)網(wǎng)絡等; 第三章介紹寫字板窗口設計和字母超范圍識別設計; 第四章是本課題設計的重點,介紹了基于BP神經(jīng)網(wǎng)絡的大寫字母識別設計; 第五章是對設計效果的分析; 第六章是結(jié)束語:簡單分析了本系統(tǒng)的特色與成功、問題與展望,并對本次畢業(yè)設計做了總結(jié)以及致辭; 附錄是系統(tǒng)的部分核心源代碼。 第2章 相關的知識和工具 2.1 計算機圖形學 計算機圖形學是一種使用數(shù)學算法將二維或三維圖形轉(zhuǎn)化為計算機顯示器的柵格形式的科學。 簡單地說,計算機圖形學的主要研究內(nèi)容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法。圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術(shù)上來看,圖形主要分為兩類,一類是基于線條信息表示的,如工程圖、等高線地圖、曲面的線框圖等,另一類是明暗圖,也就是通常所說的真實感圖形。 計算機圖形學一個主要的目的就是要利用計算機產(chǎn)生令人賞心悅目的真實感圖形。它的研究內(nèi)容非常廣泛,如圖形硬件、圖形標準、圖形交互技術(shù)、光柵圖形生成算法、曲線曲面造型、實體造型、真實感圖形計算與顯示算法、非真實感繪制,以及科學計算可視化、計算機動畫、自然景物仿真、虛擬現(xiàn)實等。 2.2 模式識別 模式識別又常稱作模式分類,從處理問題的性質(zhì)和解決問題的方法等角度,模式識別分為有監(jiān)督的分類和無監(jiān)督的分類兩種。 模式識別是人類的一項基本智能,在日常生活中,人們經(jīng)常在進行“模式識別”。隨著20世紀40年代計算機的出現(xiàn)以及50年代人工智能的興起,人們當然也希望能用計算機來代替或擴展人類的部分腦力勞動。模式識別在20世紀60年代初迅速發(fā)展并成為一門新學科。 模式識別研究主要集中在兩方面,一是研究生物體(包括人)是如何感知對象的,屬于認識科學的范疇,二是在給定的任務下,如何用計算機實現(xiàn)模式識別的理論和方法。前者是生理學家、心理學家、生物學家和神經(jīng)生理學家的研究內(nèi)容,后者通過數(shù)學家、信息學專家和計算機科學工作者近幾十年來的努力,已經(jīng)取得了系統(tǒng)的研究成果 2.3 BP神經(jīng)網(wǎng)絡 BP (Back Propagation)神經(jīng)網(wǎng)絡是一種神經(jīng)網(wǎng)絡學習算法,全稱基于誤差反向傳播算法的人工神經(jīng)網(wǎng)絡。一般為三層網(wǎng)絡模型,即:輸入層、中間層(也稱隱層)和輸出層。它的特點是:各層神經(jīng)元僅與相鄰層神經(jīng)元之間相互全連接,同層內(nèi)神經(jīng)元之間無連接,各層神經(jīng)元之間無反饋連接,夠成具有層次結(jié)構(gòu)的前饋型神經(jīng)網(wǎng)絡系統(tǒng)。單計算層前饋神經(jīng)網(wǎng)絡只能求解線性可分問題,能夠求解非線性問題的網(wǎng)絡必須是具有隱層的多層神經(jīng)網(wǎng)絡。 在人工神經(jīng)網(wǎng)絡發(fā)展歷史中,很長一段時間里沒有找到隱層的連接權(quán)值調(diào)整問題的有效算法。直到誤差反向傳播算法(BP算法)的提出,成功地解決了求解非線性連續(xù)函數(shù)的多層前饋神經(jīng)網(wǎng)絡權(quán)重調(diào)整問題。 BP (Back Propagation)神經(jīng)網(wǎng)絡,即誤差反傳誤差反向傳播算法的學習過程,由信息的正向傳播和誤差的反向傳播兩個過程組成。輸入層各神經(jīng)元負責接收來自外界的輸入信息,并傳遞給中間層各神經(jīng)元;中間層是內(nèi)部信息處理層,負責信息變換,根據(jù)信息變化能力的需求,中間層可以設計為單隱層或者多隱層結(jié)構(gòu);最后一個隱層傳遞到輸出層各神經(jīng)元的信息,經(jīng)進一步處理后,完成一次學習的正向傳播處理過程,由輸出層向外界輸出信息處理結(jié)果。當實際輸出與期望輸出不符時,進入誤差的反向傳播階段。誤差通過輸出層,按誤差梯度下降的方式修正各層權(quán)值,向隱層、輸入層逐層反傳。周而復始的信息正向傳播和誤差反向傳播過程,是各層權(quán)值不斷調(diào)整的過程,也是神經(jīng)網(wǎng)絡學習訓練的過程,此過程一直進行到網(wǎng)絡輸出的誤差減少到可以接受的程度,或者預先設定的學習次數(shù)為止。 2.4 Visual C++ Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。 雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。 Visual C++6.0不僅是一個C++編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。 2.5 開發(fā)平臺及語言 操作系統(tǒng):Windows XP Professional 開發(fā)工具:Microsoft Visual C++6.0 MFC 開發(fā)語言:C++,C++語言是一種優(yōu)秀的面向?qū)ο蟪绦蛟O計語言,它在C語言的基礎上發(fā)展而來,是它的一個超集,與C語言兼容。所以一方面,它繼承了傳統(tǒng)程序設計C語言的優(yōu)點,克服了其不足;另一方面又在面向?qū)ο筇卣骷胺敲嫦驅(qū)ο筇卣髦鴥蓚€方面增加了新的功能,使得它既適合于結(jié)構(gòu)化程序設計,又能滿足面向?qū)ο蟪绦蛟O計的要求。符合廣大成形術(shù)人員逐步更新其程序設計觀念和方法的要求,因而很快流行起來,成為當今最為流行的程序設計語言。 Microsoft基本類庫(MFC)的核心是一個大部分以C++封裝的WindowsAPI。庫中的了封裝了代表窗口,對話框等。這些類為它們封裝的Windows中的結(jié)構(gòu)提供了一個良好的C++成員函數(shù)接口。除此以外,Microsoft基本類庫還提供一個建立在WindowsAPI的C++封裝上的附加應用功能層次結(jié)構(gòu)。這個層次結(jié)構(gòu)師一個Windows應用框架,它提供了windows編程所用的通用界面,包括工具欄,狀態(tài)欄打印,打印預覽,數(shù)據(jù)庫支持和ActivX支持。 運行環(huán)境最小配置要求: CPU:166兆赫(MHZ)Pentium級處理器以上 內(nèi)存:64兆(M)以上 顯卡:Direct 3D(16M以上) 硬盤:500兆(M)以上 軟件:Windows 95/98/2000/XP/2003 操作系統(tǒng) 第3章 窗口和書寫筆畫超范圍識別設計 3.1 窗口設計 根據(jù)系統(tǒng)的功能需求,窗口背景設計分為四個方面:背景設計,功能鍵設計,格式鍵設計,書寫區(qū)域四線格設計。 3.1.1 背景設計 廣大在校的學前班,小學生都采用四線格練習本進行練習,針對這一現(xiàn)狀而提出了漢語拼音字母規(guī)定格式練習系統(tǒng)課題,該系統(tǒng)將來的用戶群可能都是些幼兒、小學生,對于此,有必要將窗口的背景盡量設計的卡通一點、可愛一點,以增加對兒童的吸引力,提高他們的使用興趣。 比如可以在窗口背景隱隱約約設計一些比較流行的卡通人物圖案,或者一些比較鮮艷的花紋,而或可根據(jù)喜好隨時變換背景圖案。 3.1.2 功能鍵設計 功能鍵就是用戶用其來操作命令系統(tǒng)“干事”的按鈕,根據(jù)事先的功能需求,可以知道需要預設以下五個功能鍵: (1) 識別鍵:對書寫好的字母進行識別,給出正誤判斷; (2) 重寫鍵:對已寫下的所以有字母筆畫進行“清理工作”,使系統(tǒng)恢復到初始狀態(tài); (3) 消除前一筆:對當前寫下的一筆進行“清理”; (4) 消除前一字:對當前寫下的字母進行“清理”; (5) 消除當前行:對剛書寫的一整行進行“清理”。 3.1.3 格式鍵設計 雖然漢語拼音字母是采用四線格進行書寫練習的,但為了方便系統(tǒng)以后的改進升級,可以預設幾個比較常用格式的格式鍵,擴大系統(tǒng)的使用功能,使系統(tǒng)不單單提供漢語拼音字母練習,還可以對漢字進行練習,以滿足不同需要的用戶。比方說可以預設以下三個格式鍵: (1) 四線格:漢語拼音字母練習; (2) 田字格:漢字練習; (3) 方子格:漢字或漢語拼音字母練習 3.1.4 書寫區(qū)域四線格設計 根據(jù)書寫量的需要,將整個書寫區(qū)域設計了四條四線格。 系統(tǒng)最終的窗口如圖3-1所示,在四線格上進行字母書寫后的效果如圖3-2所示。 圖3-1寫字板窗口 圖3-2 書寫字母效果圖 3.2 書寫筆畫超范圍識別設計 3.2.1 功能分析 漢語拼音字母大小寫共有52個,在本章節(jié)中將介紹對52個拼音字母的超范圍識別設計。要求系統(tǒng)能夠自動對當前的一筆畫進行超范圍判斷,一旦當前筆畫超出范圍,要求系統(tǒng)能夠給出相應的超范圍提示,并會將無法繼續(xù)書寫,只有通過重寫鍵或任一消除鍵將當前超范圍的筆畫消除后,才能繼續(xù)書寫。 根據(jù)功能分析可得系統(tǒng)對字母筆畫超范圍的判斷過程,如圖3-3所示。 開始 字母筆 畫輸入 輸出超 范圍提示 判斷是否 超范圍 消除當前筆畫 N Y 是否繼續(xù) 書寫 結(jié)束 N Y 圖3-3系統(tǒng)超范圍識別過程 3.2.2 筆畫超范圍設計分析 系統(tǒng)寫字區(qū)共設計了四條四線格,可對四條四線格的上下邊線在空間坐標系中進行定位,讓系統(tǒng)自動的隨機的對筆畫落點進行提取,并判斷是否有點落在了事先已被定位的邊界外,一旦有落點超出邊界,便以彈出對話框的形式進行提示。 第4章 手寫漢語拼音大寫字母的識別設計 4.1 手寫拼音大寫字母結(jié)構(gòu)分析 專門針對小學生漢語拼音字母練習而設計的系統(tǒng),手寫漢語拼音大寫字母的設計是本課題設計的重點,也是整個系統(tǒng)設計的重點和難點。設計的關鍵點是在規(guī)定格式的基礎上進行大寫字母識別,因為是規(guī)定格式這就要求系統(tǒng)在對字母書寫正確性判斷的同時,還要對字母筆畫的位置進行判斷,比如大寫字母只能寫在四線格的上兩格,這給系統(tǒng)設計增添了難度。根據(jù)其針對性,有必要對小學生字母書寫狀況做一個調(diào)查報告。通過對一定數(shù)量的小學生的漢語拼音字母練習本的字母書寫情況進行調(diào)研后發(fā)現(xiàn),大家在大寫字母的書寫過程中,對相同的一字母,其書寫結(jié)構(gòu)千奇百態(tài),有很多書寫形狀用肉眼直觀可判斷是正確的,但書寫的十分不規(guī)范,系統(tǒng)辨別十分困難。將調(diào)查結(jié)果分析后,可將字體的不規(guī)范分為以下幾類: (1) 字母位置錯。這種錯誤是指書寫大寫漢語拼音字母時,字母占錯了四線格的位置或超出了四線格,如圖4-1所示。 (2) 字母形體不規(guī)范。這其中又可分為以下幾類: a. 大小寫混寫,如“y”寫成“Y”或“Y”寫成“y”,“k”寫成“K”或“K”寫成“k”,如圖4-2所示。 b. 字母書寫偏斜,這種錯誤是指書寫的字母東倒西歪,如圖4-3所示。 c. 筆畫不清晰,這種錯誤是指書寫的字母筆畫有重疊或筆畫歪歪扭扭太潦草,如圖4-4所示。 d. 字母書寫不緊湊,這種錯誤是指書寫時太過隨意,筆畫不緊湊,該銜接的地方有空隙,如圖4-5所示。 e. 字母筆畫位置錯誤,這種錯誤是指字母書寫時,雖然字符整體書寫正確,但字母有筆畫在四線格的位置不正確,如圖4-6所示。 以上都是本課題設計時應該注意的地方,也是本科題的設計難點。 圖4-1字母位置錯誤 圖4-2大小寫混寫 圖4-3字母書寫偏斜 圖4-4字母筆畫不清晰 圖4-5字母書寫不緊湊 圖4-6字母筆畫位置錯誤 4.2 系統(tǒng)功能分析 漢語拼音字母大小寫共有52個,在本章節(jié)中將介紹對26個大寫字母的識別設計。系統(tǒng)能夠識別隨機書寫在四線格上的任一個字母,要求系統(tǒng)能夠?qū)ψ帜腹P畫的正確性和位置的正確性(大寫字母應都寫在四線格的上中兩格)同時給出判斷,當兩者都規(guī)范正確時,系統(tǒng)會給出書寫正確的提示,當其中有一項不符合要求時,系統(tǒng)會給出無法識別的提示。 系統(tǒng)對字母的識別過程如圖4-7所示。 結(jié)束 開始 字母寫入 無法識別 書寫正確 字母筆畫是否正確 字母位置是否正確 N N Y Y 圖4-7系統(tǒng)識別過程 4.3 手寫大寫拼音字母識別方案設計 4.3.1 BP神經(jīng)網(wǎng)絡模型分析 本課題采用人工智能中的BP神經(jīng)網(wǎng)絡來對26個大寫字母分別進行特征選擇與提取。BP神經(jīng)網(wǎng)絡采用三層網(wǎng)絡結(jié)構(gòu):輸入層、隱含層、輸出層,其網(wǎng)絡結(jié)構(gòu)模型如圖4-8所示。 輸出層神經(jīng)元 隱含層 輸入層神經(jīng)元 …………. ………….… ………… X1 X2 X3 Xm 輸 入 模 式 輸 出 模 式 Y1 Y2 Y3 Yn 輸出層 隱含層神經(jīng)元 輸入層 圖4-8 三層BP神經(jīng)網(wǎng)絡 設輸入節(jié)點為Xi,隱層節(jié)點為Yj,輸出節(jié)點為Zk,對應節(jié)點的閾值為O。輸入節(jié)點與隱層節(jié)點的網(wǎng)絡權(quán)值為Wji,隱層節(jié)點與輸出節(jié)點間的網(wǎng)絡權(quán)值為Vkj。當輸出節(jié)點的期望值為Tk時,則輸出節(jié)點的誤差計算公式如下: 隱層節(jié)點的輸出 Yj = f(∑Wji Xi - Oj) ; 輸出節(jié)點的輸出 Zk= f(∑Wkj Yj - Ok) ; 則輸出節(jié)點的誤差為 E=1/2∑(Tk-Zk)2 基于BP人工神經(jīng)網(wǎng)絡的字母特征選擇與提取的整個算法流程圖如圖4-9所示。 開始 結(jié)束 計算正確診斷率 數(shù)據(jù)預處理,形成訓練樣本集 輸出與最小正確診斷率對應的特征參數(shù) 訓練神經(jīng)網(wǎng)絡,獲得連接權(quán)值 根據(jù)輸入輸出設計前向神經(jīng)網(wǎng)絡 恢復刪除前的特征參數(shù) 形成新的訓練樣本集 上次特征刪除不合理 根據(jù)檢測樣本判斷網(wǎng)絡合理性 合理 不合理 圖4-9 特征選擇流程圖 4.3.2 數(shù)據(jù)預處理 當給訓練過的網(wǎng)絡一個表示某一字母的輸人時,要求網(wǎng)絡能夠正確地在輸出端指出該字母,也就是要求網(wǎng)絡記住所有26個字母。但神經(jīng)網(wǎng)絡僅能夠處理數(shù)據(jù),所以設計一個神經(jīng)網(wǎng)絡能夠識別26個大寫拼音字母,須先將其轉(zhuǎn)化成神經(jīng)網(wǎng)絡所能夠接收的輸入輸出數(shù)據(jù),即需要有個預處理過程。根據(jù)字母的網(wǎng)格圖(如圖4-10字母“A”的網(wǎng)格圖和圖4-11字母“Z”的網(wǎng)格圖),考慮用“57”矩陣的布爾值可以清楚地表示出每個字母,即用26組數(shù)據(jù)矩陣分別表示字母“A”到“Z”的數(shù)組,例如字母“A”和“Z”分別可以用“0”、“l(fā)”矩陣表示為: Letter A=[0 0 1 0 0, 0 1 0 1 0, 0 1 0 1 0, 1 0 0 0 1 , 1 1 1 1 1 , 1 0 0 0 1 , 1 0 0 0 1 ] 圖4-10 字母A的網(wǎng)格圖 Letter Z=[1 1 1 1 1 , 0 0 0 0 1 , 0 0 0 1 0 , 0 0 1 0 0 , 0 1 0 0 0 , 1 0 0 0 0, 1 1 1 1 1 ] 圖4-11 字母Z的網(wǎng)格圖 這樣26個字母均被定義成輸入向量,每個代表字母的輸入向量均有35個元素,這樣就組成一個輸入向量矩陣。期望輸出向量被定義成一個變量targets,期望輸出向量含有26個元素,字母在字母表中所占位置處元素為1,其他位置為0。例如,因為A在字母表中為第一個字母,所以其期望輸出向量為(1,0,...,0)。 4.3.3 神經(jīng)網(wǎng)絡的建立 (1)網(wǎng)絡結(jié)構(gòu) 網(wǎng)絡輸入向量具有35個元素,網(wǎng)絡輸出就是反映字母所在位置的具有26個元素的輸出向量。如果網(wǎng)絡設計正確,那么輸入一個字母,網(wǎng)絡就能輸出一個向量,它對應位置的元素值為1,其他位置的元素值為0. 因為針對手寫漢語大寫拼音字母的書寫不可能十分標準,所以網(wǎng)絡不可能接收到一個理想的布爾向量作為輸入,所以網(wǎng)絡還必須具有容錯能力。 對于辨識字母的要求,所設計的三層BP神經(jīng)網(wǎng)絡采取35-10-26的結(jié)構(gòu),即輸入層具有35個輸人節(jié)點,輸出層有26個輸出神經(jīng)元,網(wǎng)絡隱含層有10個神經(jīng)元(隱含層神經(jīng)元數(shù)越多,網(wǎng)絡的辨識精度越高)。隱層和輸出層的神經(jīng)元傳遞函數(shù)均為logsigmoid(),這是因為logsigmoid()函數(shù)輸出量在(0,1)區(qū)間內(nèi),恰好滿足輸出布爾值的要求。 (2)初始化 利用結(jié)構(gòu)體構(gòu)造一個三層BP神經(jīng)網(wǎng)絡,并對其進行初始化,部分源代碼如下所示: #define OUT_COUT 26 //輸出向量維數(shù) #define IN_COUT 35 //輸入向量維數(shù) #define COUT 10 //樣本數(shù)量 typedef struct { //bp人工神經(jīng)網(wǎng)絡結(jié)構(gòu) int h; //實際使用隱層數(shù)量 double v[IN_COUT][10]; //隱藏層權(quán)矩陣i double w[10][OUT_COUT]; //輸出層權(quán)矩陣 double a; //學習率 double b; //精度控制參數(shù) int LoopCout; //最大循環(huán)次數(shù) } bp_nn; int InitBp(bp_nn *bp) { //初始化bp網(wǎng)絡 int i, j , a=0.7 ,b=0.1, LoopCout=300; srand((unsigned)time(NULL)); for (i = 0; i < IN_COUT; i++) for (j = 0; j < (*bp).h; j++) (*bp).v[i][j] = rand() / (double)(RAND_MAX); for (i = 0; i < (*bp).h; i++) for (j = 0; j < OUT_COUT; j++) (*bp).w[i][j] = rand() / (double)(RAND_MAX); return 1; } (3)網(wǎng)絡訓練 以字母A和Z為例,對BP網(wǎng)絡進行訓練,為了使產(chǎn)生的網(wǎng)絡對向量有一定的容錯能力,最好的辦法是既使用理想的信號,又使用帶有噪聲的信號對網(wǎng)絡進行訓練。具體過程如下: a. 應用理想的輸入信號和帶有噪聲的信號對網(wǎng)絡進行訓練,直到直到誤差足夠小為止。 b. 應用理想信號和帶有噪聲的信號對網(wǎng)絡進行訓練。在進行訓練時,同時對兩組相同的無噪聲字母信號樣本進行訓練,目的是確保網(wǎng)絡能夠正確分辨理想信號。 c. 進行了上述訓練之后,網(wǎng)絡對無噪聲信號進行辨識的時候可能也會采用有噪聲信號的方法,這樣會產(chǎn)生不必要的資源浪費。所以還需再次訓練網(wǎng)絡,這一次只需要應用理想信號進行訓練。 經(jīng)過以上三輪訓練,網(wǎng)絡能夠較好的對字母進行識別,并具有了一定的容錯能力,很好的達到了預期目的。 網(wǎng)絡訓練的部分源代碼如下: int TrainBp(bp_nn *bp, float x[COUT][IN_COUT], int y[COUT][OUT_COUT]) { //訓練bp網(wǎng)絡,樣本為x,理想輸出為y double f = (*bp).b;//精度控制參數(shù) double a = (*bp).a; //學習率 int h = (*bp).h;//隱層節(jié)點數(shù) double v[IN_COUT][10], w[10][OUT_COUT]; //權(quán)矩陣 double Ch_v[IN_COUT][10], Ch_w[10][OUT_COUT]; //權(quán)矩陣修改量 double ChgH[10], ChgO[OUT_COUT]; //修改量矩陣 double O1[10], O2[OUT_COUT]; //隱層和輸出層輸出量 int LoopCout = (*bp).LoopCout; //最大循環(huán)次數(shù) int i, j, k, n; double temp; for (n = 0; e > f && n < LoopCout; n++) { //對每個樣本訓練網(wǎng)絡 e = 0; for (j = 0; j < OUT_COUT; j++) ChgO[j] = 0; for (j = 0; j < h; j++) ChgH[j] = 0; for (j = 0; j < h; j++) for (k = 0; k < OUT_COUT; k++) Ch_w[j][k] = 0; for (j = 0; j < IN_COUT; j++) for (k = 0; k < h; k++) Ch_v[j][k] = 0; for (i= 0; i < COUT; i++) { for (k= 0; k < h; k++) { //計算隱層輸出向量 temp = 0; for (j = 0; j < IN_COUT; j++) temp = temp + x[i][j] * v[j][k]; O1[k] = fnet(temp); } for (k = 0; k < OUT_COUT; k++) { //計算輸出層輸出向量 temp = 0; for (j = 0; j < h; j++) temp = temp + O1[j] * w[j][k]; O2[k] = fnet(temp); } for (j = 0; j < OUT_COUT ; j++) } return 1;} int main() { float x[COUT][IN_COUT] = {{0 0 1 0 0, 0 1 0 1 0, 0 1 0 1 0, 1 0 0 0 1 , 1 1 1 1 1 , 1 0 0 0 1 , 1 0 0 01},… {1 1 1 1 1 , 0 0 0 0 1 , 0 0 0 1 0 , 0 0 1 0 0 , 0 1 0 0 0 , 1 0 0 0 0, 1 1 1 1 1},...}; //訓練樣本 int y[COUT][OUT_COUT] = {{1,0,0,…,0},...{0,0,...,0,1}}; //字母A-Z的理想輸出 bp_nn bp; InitBp(&bp); //初始化bp網(wǎng)絡結(jié)構(gòu) TrainBp(&bp, x, y); //訓練bp神經(jīng)網(wǎng)絡 return 1; } 第5章 實驗效果演示 5.1 系統(tǒng)界面 本系統(tǒng)主界面設計方案為窗口上面一排是功能鍵,依次為識別鍵、重寫鍵、消除上一筆、消除上一字、消除當前行,功能鍵下面是書寫區(qū)域,共有四條四線格,其效果如圖5-1所示。 圖5-1 系統(tǒng)主界面 5.2 實例操作 a. 當在四條四線格任一格上進行字母書寫時,一旦當前筆畫超出四線格上下邊界時,程序?qū)詣犹觥靶」怨?,你寫出的字母超出了格,下次注意啦!”,效果如圖5-2所示。接下來此次書寫結(jié)束,須通過點擊功能鍵消除超范圍的筆畫,重新進行書寫。當點擊“消除上一筆”功能鍵后,系統(tǒng)會自動消除當前超范圍的一筆,效果如圖5-3所示。當點擊“重寫”功能鍵后,系統(tǒng)界面恢復初始化狀態(tài),效果如圖5-4所示。 圖5-2 筆畫超范圍提示圖 圖5-3 “消除上一筆”后效果圖 圖5-4 “重寫”后效果圖 b. 當書寫完一個字母,點擊“識別”功能鍵后,系統(tǒng)將會對當前字母自動識別,若能識別則會跳出“書寫正確,當前所寫字母為“*”,小乖乖繼續(xù)哦!”,效果如圖5-5所示。 圖5-5書寫規(guī)范效果圖 c. 當所書寫的字母筆畫不清晰或不正確,又或者在四線格中的上中下位置不對時系統(tǒng)都可能無法識別,這時會彈出“書寫不規(guī)范,無法識別,小乖乖加油哦!”.因為筆畫不清楚系統(tǒng)無法識別,效果如圖5-6所示,因為書寫位置不對系統(tǒng)無法識別,效果如圖5-7所示。 圖5-6 筆畫不清晰效果圖 圖5-7 字母位置不正確效果圖 第6章 結(jié)束語 本課題是以廣大在校的學前班、小學生都采用四線格的本子進行練習這一社會現(xiàn)象而提出的課題,所以全文圍繞規(guī)定格式(四線格)的漢語拼音字母識別進行了討論和研究以及程序?qū)嵺`。從寫字窗口設計到超范圍識別再到大小字母的正確識別,我們都做了嚴格的歸署,對可能的難點都做了事前分析。其中手寫大寫拼音字母識別設計是本課題研究的重點。四線格分為了上中下格,對26個大寫字母在四線格中的書寫位置都有嚴格要求,因此在對26個大小寫字母進行識別時,不僅要求筆畫與相應的字母一致,還要求筆畫的落點位置與相應的字母一致。本文先對BP神經(jīng)網(wǎng)絡理論進行了探討和分析,利用BP神經(jīng)網(wǎng)絡對各字母進行特征選擇與提取,并對網(wǎng)絡不斷的進行樣本訓練,使網(wǎng)絡對大寫字母能夠較好的識別。本系統(tǒng)對大寫字母識別達到了預期效果。 基于語音輔導,具有書寫質(zhì)量分析功能的智能輔導、約束學習、強化效果,適用國民義務教育的手寫板練習寫字系統(tǒng)尚屬空白,所以我相信該系統(tǒng)的商業(yè)價值是巨大的。系統(tǒng)還可做許多方面的改進,比如說可以多增加一些格式,田字格,正方格等,讓其可以在這些格式之間輕松轉(zhuǎn)換,從而進行不同字體的練習。還可以將彈出框的文字提示,改為一些有意思的語音提示,用來增添其趣味性,以吸引更多的兒童使用,使小學生從小就接觸高科技技術(shù),對孩子的科技教育將有著很好的啟蒙作用。我堅信漢語拼音字母規(guī)定格式練習系統(tǒng)設計一旦進行商業(yè)開發(fā),它將是一種新型的數(shù)字文具,是一種新的文具改革思路,是對學生的一種雙向化教育,是宣傳環(huán)保的有力之舉,是邁進科技化社會的一種體現(xiàn)。 經(jīng)過一個多學期的努力,我的畢業(yè)設計即將完成,又經(jīng)過一個月的努力,我的畢業(yè)設計說明書也將撰寫完畢。在這半年里,我從當初接到課題任務的懵懵懂懂,到現(xiàn)在課題設計的完成,期間不只是分析與設計的過程,不只是完成一門課程獲得學分的過程,而更多的是學習的過程。畢業(yè)設計讓我將三年半所學的知識從書面的膚淺了解,到認真的理會,再到設計過程中的應用。經(jīng)過這三個階段,將大學本科所學的知識都串在了一起,從VC到數(shù)據(jù)結(jié)構(gòu),到智能模式識別,到計算機圖形學,到算法設計與分析,再到軟件工程。當然,因為收集資料解決設計中碰到的問題,從中學到不少課本外的知識。但計算機各個領域的知識是很淵博的,更新的速度也是課本本身更新不過來的,這要求我不斷的從課外捕捉新知識。在設計的過程中,我最大的收獲是她讓我學會了如何去學新知識,讓我如何去用知識。這點將是我以后人生道路上寶貴的財富。 參考文獻 [1]肖建華.智能模式識別方法[M].華南理工大學出版社,1998. [2]朱晴婷,黃海鷹,陳蓮君.Visual C++程序設計——基礎與實例分析[M].清華大學與出版社,1996. [3]詹紅霞,侯思穎,陶永紅.Visual C++程序設計教程[M].清華大學出版社,2000. [4]汪令江,周學文,卿川.奇思異想編程序——VC篇[M].國防工業(yè)出版社,1990. [5]羅偉堅.Visual C++ 經(jīng)典游戲程序設計[M].人民郵電出版社,2002. [6]戴永.抽取手寫文字子圖形的特征方法[J].湘潭大學自然科學報,1984,第二期:32-40. [7]李鑫,白雪.Visual C++6.0編程基礎與范例[M].北京:電子工業(yè)出版社,2000. [8]但小容,王瑞,楊莉.基于人工神經(jīng)網(wǎng)絡的模式識別[J].中國地質(zhì)大學學報. [9]胡海生,李升亮.Visual C++6.0編程學習捷徑[M].北京:清華大學出版社,2003. [10]賀懷清,劉浩翰,郭航.Visual C++的使用及面向?qū)ο筌浖こ虒嵗治鯷M].北京:電子工業(yè)出版社,2007. [11]何亮,朱自強.學習如何使用VC++[M].同濟大學出版社,1997. [12]羅耀光,盛立東.識別模式[M].人民郵電出版社,1989. [13]侯媛彬,杜京義,汪梅.神經(jīng)網(wǎng)絡[M].西安:西安電子科技大學出版社,2007. [14]黨建武.神經(jīng)網(wǎng)絡技術(shù)及應用[M].北京:中國鐵道出版社,2000. [15]戴葵.神經(jīng)網(wǎng)絡實現(xiàn)技術(shù)[M].長沙:國防科技大學出版社,1998. 致 謝 本論文是在指導老師胡紅宇教授的精心指導下完成的。論文從最初的任務確定到最后的論文撰寫,胡紅宇老師都給予了悉心的指導和幫助且傾注了大量的心血。并且我從胡紅宇老師身上學到了很多東西。老師認真負責的工作態(tài)度,嚴謹?shù)闹螌W精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實踐中,都給與我很大的幫助,使我得到不少的提高,這對于我以后的工作和學習都有一種巨大的幫助,感謝他耐心的輔導。在此我要向胡紅宇老師表示最誠摯的感謝!同時也對認真教導過我的所有老師和給予我諸多啟示和幫助的同學表示感謝! 附錄 部分核心源代碼: // Draw.cpp: implementation of the Draw class. #include "stdafx.h" #include "LetterRec.h" #include "Draw.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif // Construction/Destruction Draw::Draw() { paddingRect=CRect(10,10,150,10); clientRect=CRect(0,0,0,0); writableRect=CRect(0,0,0,0); borderPen.CreatePen(PS_SOLID,2,COLORREF(RGB(0,80,0)));//藍色粗線畫邊框 outLinePen.CreatePen(PS_SOLID,1,COLORREF(RGB(0,80,0)));//藍色細線 inLinePen.CreatePen(PS_DOT,1,COLORREF(RGB(0,80,0)));//藍色虛線 writePen.CreatePen(PS_SOLID,2,COLORREF(RGB(0,0,0)));//灰色的筆 inSpacing=20; outSpacing=40; count=4; } Draw::~Draw() { } void Draw::drawLine(CDC *dc) { dc->GetWindow()->GetClientRect(&clientRect); writableRect.left=clientRect.left+paddingRect.left; writableRect.top=clientRect.top+paddingRect.top; writableRect.right=clientRect.right-paddingRect.right; writableRect.bottom=clientRect.bottom-paddingRect.bottom; operatRect.left=writableRect.right+paddingRect.left; operatRect.right=clientRect.right; operatRect.bottom=clientRect.bottom; operatRect.top=clientRect.top; dc->SelectObject(borderPen); dc->Rectangle(writableRect);//畫出可寫方框 CBrush brush(COLORREF(RGB(239,237,221))); dc->FillRect(&operatRect,&brush); CPoint beginPt,endPt;//畫線的起點和終點 beginPt.x=writableRect.left;//第一條線的起點和終點 beginPt.y=writableRect.top+outSpacing; endPt.x=writableRect.right; endPt.y=beginPt.y; for(int i=0;i- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- 漢語拼音 大寫字母 規(guī)定 格式 練習 系統(tǒng) 設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://italysoccerbets.com/p-8863805.html