随着人工智能技术的快速发展,手势识别正成为人机交互最高效和重要的方式之一。本文研究在复杂真实场景下的手势识别问题,基于深度视觉,结合统计学手势分割算法与浅层CNN网络识别分类,实现高鲁棒性、高准确度的实时手势识别。
对于许多大尺度手势交互场景需要对手势动作进行识别,首先需要确定手部ROI的区域。我们在实验中发现kinect虽然提供人体关节信息,可以根据手部关节位置提取出手部roi区域,但在复杂场景人员遮挡重叠情况下,kinect骨架提取会失效,将两个人误认为一个人,给出错误关节位置结果。因此,我们利用深度信息通过背景去除、点云转换、平面检测等统计学图像处理算法,结合2D像素信息和3D深度空间信息实现手部区域的检测,生成ROI识别分类。然而在分类的过程中发现之前方法的识别准确率出现瓶颈,随着数据量的增大出现过拟合现象,因此研究并论证了CNN方案的可行性。
通过反卷积与反池化,将特征图映射回原始图像空间,可视化CNN每一层提取到的特征,如右图所示。通过对Alexnet的验证发现,CNN的特征提取并非随机、不可解释的,而是符合直觉期望属性。浅层学习角、颜色、边缘等低层特征,随着层数加深响应抽象的、具有辨别性的完整特征,从而实现分类。
本文设计浅层CNN与统计图像分割结合的方法与传统SVM相比可以更好解决过拟合的问题,有效提高识别准确率。通过DTW对连续帧的静态手势结果进行模板匹配,得到动作序列的识别结果。下面给出了不同方法的识别准确率性能对比。
由于我们提出的算法结合统计学图像处理手势分割与浅层卷积神经网络,与端对端的深度学习算法相比大幅降低了算法计算复杂度,可以实现在i5 CPU上12.5FPS的实时运行速度,达到95%以上的手势动作识别准确率。
此外,本项研究已应用于铁路火车司机的手势动作识别监控,在广州南站实地演示效果良好,演示demo图下所示。