本项目依赖于Keras深度学习模型,旨在对手语进行分类和实时识别。为了实现这一目标,项目结合了OpenCV库的相关算法,用于捕捉手部的位置,从而能够对视频流和图像中的手语进行实时识别。
首先,项目使用OpenCV库中的算法来捕捉视频流或图像中的手部位置。这可以涉及到肤色检测、运动检测或者手势检测等技术,以精确定位手语手势。
接下来,项目利用CNN深度学习模型,对捕捉到的手语进行分类,经过训练,能够将不同的手语手势识别为特定的类别或字符。
在实时识别过程中,视频流或图像中的手语手势会传递给CNN深度学习模型,模型会进行推断并将手势识别为相应的类别。这使得系统能够实时地识别手语手势并将其转化为文本或其他形式的输出。
总的来说,本项目结合了计算机视觉和深度学习技术,为手语识别提供了一个实时的解决方案。这对于听觉障碍者和手语使用者来说是一个有益的工具,可以帮助他们与其他人更轻松地进行交流和理解。
本部分包括系统整体结构图和系统流程图。
系统整体结构如图所示。
系统流程如图所示。
本部分包括 Python 环境、TensorFlow环境、 Keras环境和Android环境。
本项目包括6个模块:数据预处理、数据增强、模型构建、模型训练及保存、模型评估和模型测试,下面分别介绍各模块的功能及相关代码。
在Kaggle上下载相应的数据集,下载地址为https://www.kaggle.com/ardamavi/sign-language-digits-dataset。
详见博客。
为方便展示生成图片的效果及对参数进行微调,本项目未使用keras直接训练生成器,而是先生成一个增强过后的数据集,再应用于模型训练。
详见博客。
数据加载进模型之后,需要定义模型结构,并优化损失函数。
详见博客。
本部分包括模型训练和模型保存的相关代码。
详见博客。
由于网络上缺乏手语识别相关模型,为方便在多种模型中选择最优模型,以及进行模型的调优,模型应用于安卓工程之前,需要先在PC设备上使用Python文件进行初步的运行测试,以便验证本方案的手语识别策略是否可行并选择最优的分类模型。
详见博客。
评估整体模型可行性后,将手语识别模型应用于Android Studio工程中,完成APP。具体步骤如下。
详见博客。
本部分包括训练准确率、测试效果及模型应用。
训练过程的准确率损失变化如图1和图2所示。
在初步评估中,使用Spyder编译运行相关评估代码之后,能够在以白色墙壁、各种光照的条件下较好地捕捉手部位置,并准确识别0~9共10个手语手势,如图3和图4所示。
本部分包括程序下载运行、应用使用说明和测试结果。
Android项目编译成功后,建议将项目运行到真机上进行测试。模拟器运行较慢,不建议使用。运行到真机方法如下:
(1) 将手机数据线连接到计算机,开启开发者模式,打开USB调试,单击Android项 目的运行按钮,出现连接手机的选项,单击即可。
(2) Android Studio生成apk文件,发送至手机,在手机上下载该apk文件并安装即可。
界面从上至下3个按钮分别为【转到图片识别】、【开始翻译手语】、【停止翻译】。界面依次显示本次的识别结果及置信度、捕捉到的手部区域、累计识别到的句子翻译。
单击【开始识别】按钮,结果如图所示。
单击【转到图片识别】按钮,跳转到图片识别界面。单击【拍照识别】按钮调用摄像头拍照,切换前置及后置摄像头。单击【从相册中选择】即可调出相册界面。选择好图像后,APP将展示所选图片并返回手语识别结果,如图所示。
手势识别“520’效果如图所示。
图片识别其他手势效果如图所示。
复杂背景效果如图所示。
基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(一)
基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(二)
基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(三)
基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(四)
详见本人博客资源下载页
如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。