最近一个项目是在做手势的识别,使用传统的图像匹配方法误差率太大,还是得上深度学习。以前我听信网上很多人的言论,认为深度学习只是概率统计的一个衍生,本身的理论水平有限,只能作为调参侠来使用神经网络,或者利用一些Trick或者技巧来实验性地改造神经网络,没有理论的支持。因此我认为深度学习只是昙花一现的事务,如今中国大兴的人工智能浪潮有点太过。但做了这么多项目以来,我越来越感觉到机器学习的强大,越来越懂得其可以用来改造的传统行业的前景,未来肯定是机器学习爆发的时刻,现在还只是开始。

前言:做手势识别我用了很多的方法。第一,基于opencv的模板匹配方法,这个虽然有一定概率可以识别出手势,但识别错误率太高,识别的手势也只能是非常简单的;第二,基于SURF等特征的匹配方法,这个做到一半放弃了,因为特征点相同我想只能证明是相同的手,而很难说明是相同的手势;第三,基于均值Hash算法的模板匹配方法,这个方法给每张图片一个指纹向量,通过比较指纹的距离判断相似性,结果很多手势指纹相同,这个方法也失效了;最后找到了这个基于Openpose开源程序的手部骨架提取来识别手势,我看了demo,感觉鲁棒性非常好,可以识别手部关节和手指,手掌,可行性和可靠性非常高。

1.Openpose的介绍

github链接:https://github.com/CMU-Perceptual-Computing-Lab/openpose

win10下安装配置openpose的视频:https://www.bilibili.com/video/BV1BT4y13773

模型下载链接:

2.Openpose模型的介绍

openpose模型就是用来检测人体骨架的,所以输出为关键点信息。

我安装时是2020年5月3日。具体的介绍见链接:https://www.aiuai.cn/aifarm712.html

2.1 BODY_25 - pose_iter_584000.caffemodel

opencv手势识别 opencv手势识别及骨架_openpose

2.2 COCO - pose_iter_440000.caffemodel

opencv手势识别 opencv手势识别及骨架_coco_02

2.3 MPI - pose_iter_160000.caffemodel

2.4 Face - pose_iter_116000.caffemodel

opencv手势识别 opencv手势识别及骨架_coco_03

2.5 Hand - pose_iter_102000.caffemodel

opencv手势识别 opencv手势识别及骨架_手部骨架_04