OpenCV-手势语言识别
- OpenCV-手势语言识别
- Python环境、TensorFlow环境
- 设置直方图
- 模型保存
- set_hand_hist.py相关代码如下:
- 载入手势图片
OpenCV-手势语言识别
本部分包括Python环境、TensorFlow环境和OpenCV-Python环境。
Python环境、TensorFlow环境
需要Python 3.6及以上配置,在Windows环境下推荐下载Anaconda完成Python所需的配置,下载地址为:https://www.anaconda.com/,也可以下载虚拟机在Linux环境下运行代码。
打开Anaconda Prompt,输入清华仓库镜像,输入命令:
conda config–add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config–set show_channel_urls yes
创建Python 3.5的环境,名称为TensorFlow,此时Python版本和后面TensorFlow的版本有匹配问题,此步选择Python 3.x,输入命令:
conda create-n tensorflow python=3.5
有需要确认的地方,都输入y。
在Anaconda Prompt中激活TensorFlow环境,输入命令: activate tensorflow
安装CPU版本的TensorFlow,输入命令:
pip install-upgrade–ignore-installed tensorflow
安装完毕。
设置直方图
定义模型结构及损失函数后,需要对模型进行训练,使其具有服装图像分类的能力。经过训练的模型需要测试,以评估模型的训练效果。根据训练和测试的效果进行参数的调整后,保存模型。设定训练集batch_size=50,则每训练50张图片后进行一次迭代,根据损失函数前向传播,完成参数更新。输入命令python set_hand_hist.py运行Python文件,出现弹窗Set hand histogram。设置直方图具有50个正方形(5×10)。将手放在其中,确保遮盖所有正方形。按下C键,出现Thresh窗口,具有皮肤颜色图像部分的白色补丁会出现在Thresh窗口中。获得良好的直方图后,按下S键保存图像,然后关闭所有窗口,如图
模型保存
在模型训练过程中,同时保存模型当前已训练周期数、权重、损失函数、优化算法,便于在训练终止后从当前进度恢复训练,并同时保存每个周期的损失值和正确率,以方便数据可视化。
set_hand_hist.py相关代码如下:
该应用分两部分:一是网页端交互功能,用户可以上传需要分类的图片并查看分类结果;二是图片预处理,将图片转换为PyTorch能够处理的格式并输入模型中,获取图片分类结果。
获得用户上传的图片并输入至模型获得对应的分类,将标签和图片写入数据库中。为了提高数据库的稳定性,采用bulk_create()方法批量写入数据,避免每写入一条数据就需要调用和关闭数据库的烦琐操作。
载入手势图片
加载26个字母和10个数字的每个手势以及包含2400张图像的数据集,通过Python实现,相关代码如下: