1、项目简介 这是一个基于卷积神经网络的数字手势识别APP(安卓),主要功能为:通过手机摄像头识别做出的数字手势,能够识别数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 对应的手势。 Chinese-number-gestures-recognition项目下包含两块代码:1. DigitalGestureRecognition为安卓APP代码;2. digital_gesture_recognition为PC端处理数据及训练模型代码,编程语言为python。 开发环境: PC端:python3.6, TensorFlow-gpu1.8, keras2.1.6, PIL,硬件NVIDIA GTX1070, 16GB momery APP端:Android studio3.1.2, TensorFlow Lite, opencv-3.4.0-android-sdk 2、APP识别结果演示2.1、白天场景2.2、夜间场景2.3、复杂场景(正确率较低,碰运气...仅仅是会心一笑,只是好奇试一试)3、数据集3.1、原始数据集该数据集共215张数字手势图片,该数据集由我,女票(李娜)及好友:蒋雯、宋俞璋、彭仲俊、张蒙、袁程、邢守一和郑超自己拍照而来。(排名不分先后,大家贡献一样),感谢他们的帮助。每张图片对应的标签已标记在图片的命名中,图片命名格式为:标签_编号。例如: 数据集还是太少了,因此,有奉献精神的同学,可以把您拍到的照片放到 collect_picture 文件下,命名规则参照上面的命名,原则上,命名只要保证 “标签_”即可,“_”后面随意。 3.2、数据增强(data augmentation)后的数据集原始图片通过平移,拉伸,旋转等操作,每张图片生成100张,使用的生成代码为 digital_gesture_recognition/data_augmentation.py。故生成后的数据集共21592张图片。 NOTE: 该数据集大小为11.6GB,压缩后约11GB。如果您的网络带宽下载速度较慢,可以使用原始数据集和digital_gesture_recognition/data_augmentation.py自己重新生成。 3.3、压缩后的数据集把每张图片缩放到64*64大小,形成的数据集为:digital_gesture_recognition/resized_img,共21592张图片,采用的压缩算法为TensorFlow中area interpolation。digital_gesture_recognition/resized_img_split数据集和resized_img是相同的,只是分割成了10个小文件夹。 3.4、H5数据集此h5数据集由resized_img中图片转化为h5文件得来。此数据集的大小为:215926464*3,您可以使用 h5py 库来对此数据集进行操作。比如,你可以使用如下语句来载入数据集: data = h5py.File("dataset//data.h5","r")X_data = np.array(data['X']) #data['X']是h5py._hl.dataset.Dataset类型,转化为arrayY_data = np.array(data['Y'])4、训练好的模型digital_gesture_recognition/model_200中为epoch=200训练得到的模型,也是APP中使用的模型,model_2500 则为epoch=2500训练的模型。在PC端训练得到的模型在训练集、测试集上的accuracy分别为:99.8%和99.5%。在APP上因为面临的环境更加复杂,准确率远没有达到这个数字。在PC端随机测试几张好友拍的照片(在训练集、测试集中均没有出现过),测试结果比较满意,测试结果如下: 5、Android Studio环境的配置
|