基于人体姿态的手语图像识别系统采用了软硬件相结合的方法。硬件部分主要是用于采集手语图像的单目摄像头。软件部分主要是通过ffmpeg对视频图像进行处理,然后在Anaconda下配置Python3.6的开发环境,再结合Cmake编译OpenPose模型,最后在VScode编译器中结合OpenCV中的图像算法,实现了对手语图像识别系统所有程序的编译,通过wxFromBuilder框架整合设计了系统主界面。
(1) 视频处理工具:ffmpeg-20181115
(2) 集成开发环境:Microsoft Visual Studio Code、Anaconda3
(3) 界面设计工具:wxFromBuilder
(4) 编程语言环境:python3.6
一个基于人体姿态研究的手语图像识别系统。根据OpenPose人体姿态开源模型和YOLOv3自训练手部模型检测视频和图像,再把数字特征进行分类器模型预测,将预测结果以文本形式展现出来。
基于人体姿态的手语图像识别系统是由多模块组成的,主要分为训练模块和识别模块两个部分。
Python+Opencv2(三)保存视频关键帧
Openpose人体骨骼、手势–静态图像标记及分类(附源码)
Openpose人体骨骼、手势–静态图像标记及分类2(附源码)
由于仅靠人体姿态4和7关键点不足以识别手部位置,容易误判,因此在最终设计中引入了yolo手部识别。
环境:【GPU】win10 (1050Ti)+anaconda3+python3.6+CUDA10.0+tensorflow-gpu2.1.0
训练模型:【Keras+TensorFlow+Yolo3】一文掌握图像标注、训练、识别(tf2填坑)
识别:【Keras+TensorFlow+Yolo3】教你如何识别影视剧模型
模型训练参考代码:https://gitee.com/cungudafa/keras-yolo3
yolo3识别这里参考于:https://github.com/AaronJny/tf2-keras-yolo3
在OpenPose设计中阐述过求解距离和角度的公式及方法,最终因为个体差异每个人的骨骼可能不同,目前优化为距离比(即小臂3-4关键点的距离与脖子长度0-1关键点距离之比)。
【Sklearn】入门花卉数据集实验–理解朴素贝叶斯分类器
预期是通过手机移动端对视频进行采集处理并应用,详见视频。
本文采用的是单人的骨骼识别,当然对多人骨骼标记分类是OpenPose的一大亮点,源码中没有扩展,Openpose多人骨骼特征点标记。
视频帧的提取准确性也不够高,扩展衍生为HMM序列,视频动态序列等方法。对于特征提取还可以结合手势动态轨迹特征,能够多维度的描述运动曲线。
手语识别关键在于手语种类的划分,尤其是中国手语包含5600+词汇,因此NLP自然语言处理融合进来是很有必要的,因此任总而道远,有兴趣的朋友可以试试。
手语识别不仅为聋哑朋友们日常交流提供方便,更是为人机交互发展做出贡献,有创新意义和价值背景,值得一试哦。
备注:
(我最近办理提前入职,太忙了,这篇博客也是很早写了一半儿,没时间发)
源码会开源放在gitee(目前源码项目有很多笔记过程,也很有价值,需要整理成封装版本,太忙了呀~~不然这个项目还有很多发挥空间)
模型和视频资料涉及专业学习范畴和多人版权因素,未征得所有人授权,暂不提供。
相关学习内容还可以私聊,闲暇时可以给出经验指导意见。