一、寄语

这个项目是刚好在B站上面看到得,感觉做的挺好的,感兴趣的小伙伴开源关注一下,代码将逐步开源,作为毕设或者课程设计蛮不错的!挺酷眩的感觉

如果觉得不错,也给我一个三连吧。

 

手势识别开源项目分享 |  按键操作+手势交互+静态手势+静态手势交互_无人机

二、项目介绍

注意:该项目不包括手部检测部分,手部检测项目地址:https://codechina.csdn.net/EricLee/yolo_v3
该项目是对手的21个关键点进行检测,示例如下 :

图片示例:

手势识别开源项目分享 |  按键操作+手势交互+静态手势+静态手势交互_无人机_02

 

 

Demo小样

示例1 - 按键操作

因为考虑到目前没有三维姿态不好识别按键按下三维动作,所以目前采用二维方式。
该示例的原理:通过简单的IOU跟踪,对二维目标如手的边界框或是特定手指的较长时间位置稳定性判断确定触发按键动作的时刻,用特定指尖的二维坐标确定触发位置。
(注意:目前示例并未添加到工程,后期整理后会进行发布,只是一个样例,同时希望同学们自己尝试写自己基于该项目的小应用。)

手势识别开源项目分享 |  按键操作+手势交互+静态手势+静态手势交互_无人机_03

示例2 - 手势交互:指定区域物体识别

该示例的出发点是希望通过手势指定用户想要识别的物体。那么就要选中物体的准确边界框才能达到理想识别效果。如果待识别目标边界框太大会引入背景干扰,太小又会时目标特征不完全。所以希望通过手势指定较准确的目标边界框。因为边界框涉及左上、右下两个二维坐标,所以通过两只手的特定指尖来确定。且触发逻辑与示例1相同。
该示例的原理:通过简单的IOU跟踪,对二维目标如手的边界框或是特定手指的较长时间位置稳定性判断确定触发按键动作的时刻,用特定指尖的二维坐标确定触发位置。
(注意:目前示例并未添加到工程,后期整理后会进行发布,只是一个样例,同时希望同学们自己尝试写自己基于该项目的小应用。)
该示例依赖于另外一个物体识别分类项目。

手势识别开源项目分享 |  按键操作+手势交互+静态手势+静态手势交互_无人机_04

以下是对书上狗的图片进行分类识别的样例,同学们可以根据自己对应的物体识别分类需求替换对应的分类识别模型即可。‍

‍示例3 - 静态手势

通过手关键点的二维角度约束关系定义静态手势。
示例中手势包括:fist five gun love one six three thumbup yeah
目前该示例由于静态手势数据集的限制,目前用手骨骼的二维角度约束定义静态手势,原理如下图,计算向量AC和DE的角度,它们之间的角度大于某一个角度阈值(经验值)定义为弯曲,小于摸一个阈值(经验值)为伸直。
注:这种静态手势识别的方法具有局限性,有条件还是通过模型训练的方法进行静态手势识别。

手势识别开源项目分享 |  按键操作+手势交互+静态手势+静态手势交互_无人机_05

示例4 - 静态手势交互(识别)
通过手关键点的二维角度约束关系定义静态手势。
该项目通过手势操作选择分类识别区域或是ocr识别区域,送入分类识别网络或是第三方web识别服务,亦或是检索数据库等应用。

原理:通过二维约束获得静态手势,该示例是通过 食指伸直(one) 和 握拳(fist)分别代表范围选择和清空选择区域。
建议最好还是通过分类模型做静态手势识别鲁棒和准确高,目前局限于静态手势训练集的问题用二维约束关系定义静态手势替代‍。

手势识别开源项目分享 |  按键操作+手势交互+静态手势+静态手势交互_无人机_06