999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的手寫數字識別平臺的設計與實現

2023-04-29 00:00:00陳紅梅李晟李玉曉
現代信息科技 2023年21期

收稿日期:2023-03-20

基金項目:江西省教育廳科技研究項目(GJJ210816)

DOI:10.19850/j.cnki.2096-4706.2023.21.015

摘" 要:設計了基于STM32的手寫數字識別平臺,首先,利用MNIST數據集去訓練和測試BP神經網絡的權重和偏重,在得到理想的訓練結果后結束訓練和測試;其次,利用C語言編寫識別模型并移植至STM32單片機硬件平臺;最后,利用STM32單片機硬件平臺上的可觸摸屏采集實時書寫的0~9中任意數字進行實驗,利用串口打印識別結果并進行統計,實驗結果表明,該平臺能夠準確識別手寫數字。

關鍵詞:STM32單片機;手寫數字識別;BP神經網絡;C語言

中圖分類號:TP391.4;TP274+.2;TP183 " 文獻標識碼:A 文章編號:2096-4706(2023)21-0063-05

Design and Implementation of the Handwritten Digital Recognition Platform

Based on STM32

CHEN Hongmei, LI Sheng, LI Yuxiao

(School of Science, Jiangxi University of Science and Technology, Ganzhou" 341000, China)

Abstract: A handwritten digital recognition platform based on STM32 is designed. Firstly, the MNIST dataset is used to train and test the weights and biases of the BP neural network. After obtaining ideal training results, the training and testing are completed; secondly, the recognition model is written in C language and ported to the STM32 Single-Chip Microcomputer hardware platform. Finally, the touchable screen on the STM32 Single-Chip Microcomputer hardware platform is used to collect any number from 0 to 9 in real-time writing for experiments. Using serial port to print recognition results and perform statistics. The experimental results show that the platform can accurately recognize handwritten numbers.

Keywords: STM 32 Single-Chip Microcomputer; handwritten digital recognition; BP neural network; C language

0" 引" 言

手寫數字識別是處理當代眾多數字信息的重要應用之一,它可以用于計算機自動識別手寫阿拉伯數字,是光學字符識別(Optical Character Recognition, OCR)的一個分支[1]。該技術的研究目的是將大量的人書寫在紙張上的阿拉伯數字錄入到計算機中并且進行處理,從而轉換為計算機中的數字,比如信件上面手寫的郵政編碼、公司內部的各種報表和稅務系統中的眾多統計數據、銀行內的各種票據上的手寫數字、試卷上的準考證號、物流行業中手寫快遞單據等手寫數字的錄入[2]。并且隨著時間推移,世界信息化進程的加快、經濟的高速發展以及人們對自動化要求的日益提高,手寫數字識別的應用需求越來越迫切[3]。

手寫數字識別方法大致可以分為基于統計特征分類的識別方法、基于結構特征分類的識別方法和基于神經網絡的識別方法三類[2]。第一類方法包括模板匹配法等;第二類方法則是需要盡量抽取數字骨架或者是輪廓特征的信息;第三種方法直接利用神經網絡算法提取字符特征,然后達到識別字符的目的[4]。常見的手寫數字識別方法一般是將基于結構的識別方法和模板匹配法兩相結合,但是此方法的可靠性和準確性都有所欠缺[5]。近年來人工智能技術取得了巨大發展,基于神經網絡的識別方法具有可以同時處理各種相關信息、自行優化組織、自動學習信息、識別速度快等優點,特別適用于手寫數字識別問題[6]。

STM32單片機是一款功能強大、價格相對較低、被廣泛使用的單片機,它采用了ARM內核和集成DSP處理器的設計,配置了豐富的接口、完善的通信模塊以及很多其他功能組件,同時它還提供了多樣的開發資料和完備的開發工具,可以選擇的單片機型號種類非常多;除此之外,STM32單片機基本不需要額外的硬件擴展就可以進行開發,功耗小,能夠支持長時間的高精度浮點運算,并且具有較強的實時性,適合用于實現神經網絡的運算[7]。

綜上所述,本文提出一種基于STM32單片機的手寫數字識別平臺,該平臺包括了識別算法和基于STM32單片機的運算處理硬件,能夠從手寫數字圖片中自主學習到有效特征并對數字進行準確識別。該平臺具有網絡結構簡單、識別準確率高的優點。

1" 識別方法

1.1" BP神經網絡原理

誤差反向傳播(Back Propagation, BP)神經網絡是一種反饋型學習網絡,神經網絡拓撲結構如圖1所示,這個算法的學習過程可以分為正向傳播和反向傳播兩個階段。在神經網絡的正向傳播過程中,輸入層接收來自外界的信息輸入到內部的各個神經元中,經過線性變換后將其傳遞給中間層。中間層是內部信息處理的層,根據不同的需求,中間層可以設計為單隱含層結構,亦可以設計為多隱含層結構,它們主要負責對輸入的信息進行變換。最后一個隱含層會將處理好的信息傳遞至輸出層,輸出層再進行信息處理后將結果輸出給外界。如果輸出值與實際值之間的誤差大于預先設定的誤差值,則網絡進入誤差反向傳播階段。在神經網絡的反向傳播過程中,誤差通過輸出層,根據誤差梯度下降對每一層的權重進行修正,并且逐層反向傳播到中間層和輸入層。反向傳播完成后,繼續進行正向傳播。通過一次又一次的迭代正向傳播和反向傳播,直到輸出的誤差在預先設定的誤差范圍內或者是達到先前設定的最大迭代次數,結束網絡的訓練[8]。

BP神經網絡的神經元結構如圖2所示。

其輸入與輸出關系如式(1)所示:

(1)

其中,Wi表示某層的第i個權重,Xi表示某層的第i個輸入數據,b表示某層的偏置,a表示某層的輸入,n表示某層的輸入數據總數,f (a)表示該層的激活函數,y表示該層的輸出[9]。在反向傳播中需要對不理想的權重進行調整,BP神經網絡的核心任務是調整權重以達到降低誤差的目的。首先定義誤差函數,假設輸入M組樣本,用X 1,X 2,…,X M來表示,第m組樣本作為輸入,它輸入網絡后得到輸出 ( j = 1,2,3,…,q),其第m組樣本的誤差Em如式(2)所示:

(2)

其中,q表示第m組的樣本數, 表示第m組樣本中的第j個數據對應的期望輸出, 表示第m樣本中的第j個數據對應的網絡輸出。由式(2)可推得M組樣本的全局誤差E如式(3)所示:

(3)

對于不理想的權重采用梯度下降法去調整,從而使全局誤差E變小,其調整公式如式(4)所示:

(4)

式中η表示學習率, 表示第m組樣本中第j個數據對應的權重[5]。網絡會不停進行前向和反向傳播,直到全局誤差E在設定的閾值內到達設置的最大學習次數才會停止傳播。

1.2" 搭建識別模型

本文提出的基于BP神經網絡的手寫數字識別模型由三部分構成:輸入層、隱含層、輸出層,其模型結構如圖3所示。本文采用MNIST數據集訓練模型。MNIST數據集是一個適用于深度學習初學者的計算機視覺數據集。該數據集包涵了60 000張訓練圖片和10 000測試圖片,每張灰度圖片的大小都是28×28像素,分別代表了0到9之間的數字。這些構成MNIST數據集的圖片分別是由250個不同的人所手寫,這些圖片來源可以平均分為兩類:高中生和人口普查局的工作人員[10]。MNIST數據集中的部分樣本圖片如圖4所示。

2" 硬件實現

2.1" 識別平臺整體框架

本文提出的基于STM32的識別平臺整體框架如圖5所示。該平臺包括手寫數字識別模型、MDK5、STM32MCU、TFT-LCD和STC-ISP。STM32MCU微控制器使用高性能的ARM Cortex-M3內核,內部配置了高速存儲器,同時擁有各種的增強型I/O接口和外設,此外,還同時支持JTAG和SWD兩種不同的調試方式[11]。本文使用的TFT-LCD模塊即薄膜晶體管液晶顯示器,該顯示器在每個像素下方都配置了一個薄膜晶體管(TFT),可以有效克服未被選中的串擾,極大地提升了顯示的圖像質量,增強了視覺上的體驗。TFT-LCD模塊自帶的觸摸屏一般常用的是電阻式觸摸屏和電容式觸摸屏。本文選用的是電阻式觸摸屏,它是通過感應壓力去進行控制。當手指按壓屏幕的時候,電阻式觸摸屏內部的阻性層和導電層在按壓點形成通道,在X方向和Y方向產生信號,控制器接收信號并其在內部進行A/D轉換,即可得到按壓點的X軸和Y軸坐標[12]。

將獲取手寫數字識別模型的權重和偏置輸入到MDK5,經過一系列的代碼編寫和數據處理,再通過J-LINK下載到STM32MCU中。通過使用普通IO口模擬8080總線,TFT-LCD液晶屏可由STM32MCU主控電路控制[13]。在TFT-LCD液晶屏上采集實時手寫數字數據,進行數據處理后輸入至STM32MCU進行識別,打開STC-ISP軟件內的串口,打印出識別結果。

2.2" 識別算法的STM32平臺移植

安裝STM32F1的器件支持包:Keil.STM32F1xx_DFP.2.2.0.pack(STM32F1的器件包)以及MDK 5.21A安裝軟件。這樣便可以支持STM32F103的開發。本文是基于開發資料中的觸摸屏代碼進行修改,將修改后的代碼下載到STM32開發板上,代碼主要修改和編寫了以下兩部分。

2.2.1" 添加和修改文件

因為需要在串口顯示出最終的識別結果,以及在進行C語言編寫網絡模型的時候調用一些數學函數,所以需要在原有頭文件的基礎上添加lt;stdiogt;和lt;mathgt;頭文件,再創建一個新文件用來放置編寫的手寫數字識別模型代碼。

2.2.2" 代碼編寫

本文需要采集在觸摸屏上書寫數字所按下的坐標,獲取到所有坐標并進行數據處理后,將其轉化為一張28×28像素的灰度圖片,輸入到用C語言編寫的手寫數字識別網絡模型中進行識別。由于采集的書寫數字所對應坐標只是一張圖片上的部分點,也就是只采集到了手寫數字所對應的坐標,并沒有采集到數字周邊的坐標。因只有采集的坐標并不能構成完整的一張圖片,故需要將采集到的這些點映射為一張完整的圖片,并且進行歸一化。本文采用的歸一化方法便是定義一個84×84的數組,用一個大小為3×3的矩陣進行平均池化,得到可以作為輸入大小為28×28的數組。在進行平均池化的同時,設定一個采集區間,選擇性保留一些數據,若平均池化后得到的數據在設定的采集區間,便將這個數據設為1,不在這個區間的數據便舍去,其他為0,則得到一張只由0和1構成的大小為28×28的手寫數字圖片。至此,完成歸一化。將大小為28×28的數組輸入網絡,在網絡中經歷的主要過程如式(1)所示。f (a)在隱含層和輸出層的激活函數分別為Relu函數[14]和Sigmoid函數[15]。在得到輸出層的10個輸出值(0~9每個數字對應的概率)后,編寫一個排序函數,調用串口,利用它打印出最大輸出值所對應的數字,即為識別結果。最后,對修改后的工程進行編譯,再利用J-LINK將其下載進入開發板中,便可以在開發板的觸摸屏上書寫數字進行識別。

3" 硬件測試

3.1" 手寫數字識別實驗

本文利用MNIST數據集進行手寫數字識別模型訓練,60 000張圖片作為訓練集,10 000張圖片作為測試集,迭代次數設為15,學習率設置為0.002,優化器使用Adam,誤差函數使用交叉熵損失函數。訓練結束后將測試集、訓練集對應的準確率和錯誤率導出保存到Excel文件中,繪出對應的曲線,如圖6所示。在TFT-LCD模塊自帶的觸摸屏上隨機手寫0~9數字各50次,利用平臺自動進行手寫數字的識別,統計識別的正確次數,計算出準確率,統計的測試結果如表1所示,圖7(a)為數字9的實驗結果圖,圖7(b)為數字7的實驗結果圖。

3.2" 實驗結果分析

通過硬件測試,證明該平臺設計成功,識別結果具有較高的準確率和可參考性,能夠有效、快速地進行手寫數字的實時識別。在進行實驗結果數據分析的時候,發現數字0的識別準確率只有90%,相比于其他數字的識別準確率略低。經分析,總結出導致出現以上結果的兩個原因,原因一是在采集觸摸屏上書寫的數字對應的坐標后,進行的數據處理較為簡單,導致大小為28×28的數組全是由0和1構成,這和MNIST數據集中進行歸一化后處于0~1之間的數據差距較大,于是產生了數據不匹配問題,導致測試時準確率不高。原因二是搭建的BP神經網絡比較簡單,網絡的抗干擾能力弱,容易受到數據不匹配問題的影響。以后將加強機器學習、深度學習和數據處理方面的學習,制作出一個完全由0和1構成的數據集,以此解決數據不匹配問題,再進一步優化網絡模型,提高網絡的抗干擾性。

4" 結" 論

以手寫數字識別技術的不同方法及識別準確率為研究對象,提出了基于BP神經網絡的手寫數字識別模型,并設計實現了手寫數字識別平臺。通過硬件測試和實驗結果分析,該平臺具有較高的識別準確率和可靠性,能夠高效地進行手寫數字的實時識別。本文提出的手寫數字識別模型結構簡單、識別準確率高,設計的平臺可以自動化識別手寫數字,從而可以高效快捷地對手寫數字進行采集和識別,提高了將數據錄入計算機中的效率,節約了大量時間。

參考文獻:

[1] 黃一格,張炎生.基于BP神經網絡的手寫數字識別系統 [J].機電工程技術,2020,49(1):108-110.

[2] 胡君萍,傅科學.基于改進KNN算法的手寫數字識別研究 [J].武漢理工大學學報:信息與管理工程版,2019,41(1):22-26.

[3] 高春庚,孫建國.基于卷積神經網絡的手寫數字識別研究 [J].蘭州文理學院學報:自然科學版,2022,36(5):50-54.

[4] 耿西偉,張猛,沈建京.基于結構特征分類BP網絡的手寫數字識別 [J].計算機技術與發展,2007(1):130-132.

[5] 馬寧,常驥.基于BP神經網絡的手寫數字識別研究 [J].哈爾濱師范大學自然科學學報,2009,25(4):89-91.

[6] 王愛玲,葉明生,鄧秋香.MATLAB R2007圖像處理技術與應用 [M].北京:電子工業出版社,2008.

[7] 郝淑怡,張慧楠,肖廣兵.基于STM32的智能車隊輪胎安全監測系統 [J].微處理機,2023,44(1):40-44.

[8] 朱文慧,鄒浩,何明明,等.基于BP神經網絡的地質災害易發性分區方法研究——以蘄春縣為例 [J].資源環境與工程,2021,35(6):840-844.

[9] 夏少杰,項鯤.基于BP神經網絡的手寫數字識別及優化方法 [J].智能物聯技術,2018,1(1):19-22.

[10] 張玉嬌.基于Tensorflow框架的手寫數字識別 [J].內江科技,2022,43(2):54-55.

[11] 胡方猛,王堯.基于STM32F103ZET6的紅外遙控盒設計 [J].電子產品世界,2021,28(10):44-47.

[12] 樊民革,吳登朝,劉林仙.電阻觸摸屏與滾球間的摩擦系數測量 [J].測試技術學報,2020,34(6):475-480.

[13] 張狄.基于STM32單片機的智能鎖設計 [J].光源與照明,2021(2):85-86.

[14] 徐靜萍,王芳.基于改進的S-ReLU激活函數的圖像分類方法 [J].科學技術與工程,2022,22(29):12963-12968.

[15] 李波燕,張勇,袁德榮,等.基于注意力機制的手寫體數字識別 [J].計算機科學,2022,49(S2):626-630.

作者簡介:陳紅梅(2004—),女,漢族,江西撫州人,本科在讀,研究方向:深度學習和人工智能。

主站蜘蛛池模板: 九九九久久国产精品| 综合色在线| 国产欧美日韩视频怡春院| 午夜成人在线视频| 91综合色区亚洲熟妇p| 免费人成又黄又爽的视频网站| 久久综合亚洲色一区二区三区 | 亚洲精品亚洲人成在线| 国产成人资源| 亚洲专区一区二区在线观看| 色噜噜久久| 国产xx在线观看| 亚洲精品天堂自在久久77| 72种姿势欧美久久久久大黄蕉| jizz在线观看| 亚洲色欲色欲www网| 人妻丰满熟妇av五码区| 3D动漫精品啪啪一区二区下载| 国产黑丝一区| 一本大道香蕉中文日本不卡高清二区| 国产福利影院在线观看| 国产成人久视频免费| 91在线精品免费免费播放| 欧美丝袜高跟鞋一区二区| 中文字幕欧美日韩| 日本精品一在线观看视频| 亚洲最大福利网站| jizz国产在线| 国产va欧美va在线观看| 丰满的少妇人妻无码区| 国产主播在线观看| 91一级片| 国产精品无码一二三视频| 国产一区二区三区精品欧美日韩| 亚洲精品国产精品乱码不卞| 18禁高潮出水呻吟娇喘蜜芽| 麻豆国产在线观看一区二区| 久久综合色视频| 狠狠色香婷婷久久亚洲精品| 日韩成人午夜| 欧美日韩国产成人高清视频| 毛片基地美国正在播放亚洲 | 91视频青青草| 日韩视频福利| 日本福利视频网站| 88av在线播放| 无码内射在线| 成人国产免费| 青青草91视频| 欧美福利在线| 久久人人爽人人爽人人片aV东京热 | 日本成人在线不卡视频| 在线看国产精品| 国产在线拍偷自揄拍精品| 国产视频自拍一区| 亚洲成人精品| 国产福利免费视频| 亚洲日韩图片专区第1页| 亚洲综合狠狠| 伊人国产无码高清视频| 中文成人无码国产亚洲| 一级毛片在线播放| 亚洲人成网7777777国产| 国产精品亚洲а∨天堂免下载| 亚洲中文字幕手机在线第一页| 在线观看网站国产| 中文字幕欧美日韩高清| 看你懂的巨臀中文字幕一区二区| 人妻中文字幕无码久久一区| 国产人成午夜免费看| 九九久久99精品| 国产一级毛片网站| 欧美成人精品高清在线下载| 一级黄色欧美| 制服丝袜在线视频香蕉| 亚洲无码熟妇人妻AV在线| 亚洲激情99| 欧美曰批视频免费播放免费| 免费看av在线网站网址| 国产h视频免费观看| 亚洲精品高清视频| 亚洲IV视频免费在线光看|