杜兴
(贵州电子信息职业技术学院,贵州凯里,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%,并在与数据集特征分布相似的情况下的测试有较高的识别准确度。在智能小车硬件上,通过蓝牙传送来的数据完成对应的寻迹、转向、以及避障等简单功能。根据完成结果表明,本系统具有识别速度快、精度高、实时性强等特点,具有一定的再研究和参考价值。