原标题:OpenCV手部关键点检测(手势识别)代码示例
(欢迎关注“我爱计算机视觉”公众号,一个有价值有深度的公众号~)
前几日分享了learnopencv.com博主Satya Mallick发表的关于OpenCV Mask RCNN实例分割的博文(详见:OpenCV4.0 Mask RCNN 实例分割示例 C++/Python实现),展示了OpenCV作为DNN推断工具的简单用法。
昨日Satya Mallick又发表了使用OpenCV调用OpenPose工程中的手部关键点检测(hand pose estimation)模型的文章,对于想要使用手部关键点检测做手势识别、手语识别、抽烟检测等工程开发的朋友来说这是一个非常简单的上手教程。
先来看看作者发布的视频效果:
在大部分情况下还是不错的,但也出现了少数帧关键点跳变的情况。
算法思想
该文中作者使用的算法模型是CMU Perceptual Computing Lab开源的集合人体、人脸、手部关键点检测的开源库OpenPose,其中手部关键点检测(Hand Keypoint detector)算法来自CVPR2017的论文《Hand Keypoint Detection in Single Images using Multiview Bootstrapping》。
人手在3D空间由于视角不同、灵活的精细动作等原因,较难得到精确标注的数据集。在该论文中,作者提出了一种称之为Multiview Bootstrapping的手部关键点检测迭代改进算法,实现了具有较高精度的检测算法。
如上图所示,作者提出首先使用少量标注的含有人手关键点的数据集训练Convolutional Pose Machines神经网络