杜興
(貴州電子信息職業(yè)技術(shù)學(xué)院,貴州凱里,556000)
隨著科技的快速發(fā)展,人與設(shè)備的交互的頻率明顯增加,其中如何快速和準(zhǔn)確識(shí)別出手寫數(shù)字信息是人機(jī)交互的重要的研究方向之一[1]。其中識(shí)別核心是由算法對(duì)手寫數(shù)字進(jìn)行識(shí)別預(yù)測(cè),難度主要體現(xiàn)在手寫數(shù)字的多樣性、隨機(jī)性以及無規(guī)律性,這樣就使得數(shù)字的紋理、邊緣以及形狀特征具有相應(yīng)的特性。智能小車硬件部分的難度實(shí)現(xiàn)主要體現(xiàn)在在沒有識(shí)別指令的前提下能夠準(zhǔn)確無誤的完成前進(jìn)、后退、轉(zhuǎn)向、尋跡以及避障等功能。其中軟、硬件的數(shù)據(jù)通信是通過無線藍(lán)牙連接。
為了體現(xiàn)研究手寫數(shù)字信息識(shí)別系統(tǒng)的完整性,內(nèi)容主要由手勢(shì)識(shí)別軟件和智能小車硬件兩部分組成。
本系統(tǒng)的整體實(shí)現(xiàn)構(gòu)架如圖1所示。
圖1 系統(tǒng)整體構(gòu)架圖
整個(gè)系統(tǒng)主要由手寫數(shù)字識(shí)別核心和智能小車硬件核心兩個(gè)部分組成。
具體流程是先由用戶書寫出阿拉伯?dāng)?shù)字然后輸入到識(shí)別核心然后,獲取相對(duì)應(yīng)的識(shí)別結(jié)果,然后將結(jié)果通過藍(lán)牙傳輸?shù)街悄苄≤嚥⒆龀鱿鄳?yīng)的動(dòng)作。
識(shí)別核心由數(shù)據(jù)集的訓(xùn)練和預(yù)測(cè)兩部分組成。其中數(shù)據(jù)集是由用戶自己制作得來。
(1)數(shù)據(jù)集的準(zhǔn)備
人工智能的快速發(fā)展,主要原因是相當(dāng)數(shù)量的數(shù)據(jù)集具有不同特征的特性。本著,數(shù)據(jù)集盡可能涵蓋各種特征的。因此,數(shù)據(jù)集采集了不同人的一定數(shù)量手寫數(shù)字軌跡用于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的模型訓(xùn)練需求。樣本數(shù)據(jù)為0到9十個(gè)類別的樣本數(shù)據(jù),其中每人制作每個(gè)類別的手寫數(shù)字樣本10個(gè),每個(gè)樣本總數(shù)量為100個(gè),且圖片的尺寸為335*335的三通道RGB圖片,部分訓(xùn)練樣本如圖2所示。
圖2 部分訓(xùn)練樣本圖片
(2)網(wǎng)絡(luò)模型的訓(xùn)練
神經(jīng)網(wǎng)絡(luò)模擬受到人腦神經(jīng)元啟發(fā)而來,它之所以在檢測(cè)和分類有巨大的優(yōu)勢(shì),是由于它能夠擯棄在傳統(tǒng)算法中靠開發(fā)人員去針對(duì)這個(gè)項(xiàng)目設(shè)計(jì)特定的數(shù)學(xué)算法,從而減輕開發(fā)難度提高開發(fā)效率和準(zhǔn)確率[3]。
在本設(shè)計(jì)中,經(jīng)過多次調(diào)參確定最終的網(wǎng)絡(luò)模型是一個(gè)7層的卷積神經(jīng)網(wǎng)絡(luò),且有3層卷積層,卷積核的尺寸是5*5,步長(zhǎng)為1,每一層卷積神經(jīng)網(wǎng)絡(luò)緊連著兩層池化層,卷積層之后2層全連接層,以及輸入和輸出層。正態(tài)分布初始化網(wǎng)絡(luò)模型參數(shù),dropout設(shè)置為1,激活函數(shù)設(shè)置為ReLU[3]。數(shù)據(jù)集按照8∶2的比例分成訓(xùn)練集和驗(yàn)證集,為了減小模型的訓(xùn)練量,圖片的尺寸固定成200*200灰度的單通道圖片[4]。按照上述參數(shù)編寫程序,對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練得到訓(xùn)練和驗(yàn)證準(zhǔn)確率[5]如圖3所示。
圖3 訓(xùn)練精度曲線圖
(3)手寫數(shù)字的預(yù)測(cè)
將訓(xùn)練好的網(wǎng)絡(luò)模型文件保存到本地上,用于預(yù)測(cè)手寫數(shù)字識(shí)別[2]。接著使用基于Python語言編寫的畫板裝置在電腦屏幕上顯示,通過鼠標(biāo)在屏幕上分別寫出手寫數(shù)字0-9,將寫好的數(shù)字信息輸入到訓(xùn)練好的網(wǎng)絡(luò)模型中,并預(yù)測(cè)出識(shí)別結(jié)果,識(shí)別結(jié)果如圖4所示。
圖4 識(shí)別預(yù)測(cè)效果圖
智能小車根據(jù)藍(lán)牙傳輸?shù)闹噶钭龀銮斑M(jìn)、后退、轉(zhuǎn)向以及尋跡避障等相應(yīng)動(dòng)作,因此智能小車需要具備該功能所對(duì)應(yīng)的硬件模塊。
智能小車的硬件是由傳感器模塊、電源模塊、主控模塊、電機(jī)驅(qū)動(dòng)模塊、無線藍(lán)牙模塊等5部分組成。
智能小車傳感器模塊主要包含實(shí)現(xiàn)尋跡功能的紅外對(duì)管傳感器[9]、實(shí)現(xiàn)避障功能的激光對(duì)管傳感器;電源模塊采用標(biāo)準(zhǔn)的5v電池為整個(gè)系統(tǒng)供電;主控模塊使用STC89C52RC型號(hào)單片機(jī)[8];電機(jī)驅(qū)動(dòng)模塊使用L298N驅(qū)動(dòng)芯片;藍(lán)牙模塊使用龍邱科技的主從一體的USB藍(lán)牙轉(zhuǎn)串口模塊[10]。
智能小車硬件平臺(tái)依據(jù)模塊化設(shè)計(jì)的思想,同時(shí)實(shí)現(xiàn)智能小車各種動(dòng)作指令的目標(biāo)。智能小車的硬件原理圖和實(shí)物圖分別如圖5和圖6所示。
圖5 小車硬件電路原理圖
圖6 預(yù)測(cè)效果圖
本實(shí)驗(yàn)環(huán)境系統(tǒng)平臺(tái)是centOS7,處理器型號(hào)是Intel Xeon E5-2020v4X2,運(yùn)行內(nèi)存為16GB,顯卡型號(hào)為RTX2060。解釋器及系統(tǒng)所需框架的版本號(hào)如表1所示。
表1 解釋器及框架版本號(hào)
Keras[6] 2.1.5 Tensorflow[7] 1.13.1 Pillow 7.2.0 opencv-python 3.4.2.17
本文主要設(shè)計(jì)和實(shí)現(xiàn)了將手寫數(shù)字識(shí)別的結(jié)果無線傳輸?shù)街悄苄≤囉布希≤嚫鶕?jù)識(shí)別結(jié)果并完成了相應(yīng)的指令動(dòng)作。在手寫數(shù)字識(shí)別部分,實(shí)現(xiàn)了驗(yàn)證集的識(shí)別準(zhǔn)確度為98.41%,并在與數(shù)據(jù)集特征分布相似的情況下的測(cè)試有較高的識(shí)別準(zhǔn)確度。在智能小車硬件上,通過藍(lán)牙傳送來的數(shù)據(jù)完成對(duì)應(yīng)的尋跡、轉(zhuǎn)向、以及避障等簡(jiǎn)單功能。根據(jù)完成結(jié)果表明,本系統(tǒng)具有識(shí)別速度快、精度高、實(shí)時(shí)性強(qiáng)等特點(diǎn),具有一定的再研究和參考價(jià)值。