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