关键词:
手势识别
目标检测
关键点检测
轻量级卷积神经网络
嵌入式系统
摘要:
手势识别是通过计算机技术捕捉并进一步分析人类手部所做出的动作和姿态,将手势转换为相应的计算机信息。随着神经网络在机器视觉领域的快速发展,出现了很多基于神经网络算法的手势识别应用,但目前神经网络模型的参数量和计算量往往都比较庞大,难以有效地运行在计算资源有限的嵌入式设备上。为此,一些研究人员进行了轻量级神经网络的设计或部署工作。轻量级神经网络在保证模型表达能力的前提下有着较少的参数量和计算量,这使得在嵌入式设备上运行神经网络应用成为可能。但在目标或关键点检测任务上,部分轻量级神经网络与大型神经网络的检测精度难免存在一定差距,需要进一步提高轻量级神经网络的检测精度。同时,部分研究人员往往选择特定的硬件平台进行神经网络的部署,神经网络的推理过程严重依赖这些平台特有的硬件环境,导致神经网络算法难以便捷地移植到其他嵌入式平台中,其硬件平台的价格也过于昂贵,限制了神经网络应用的推广。针对以上问题,本文基于现有的两种轻量级神经网络,主要从预测方式上对网络进行改进,并提出一种实时性和通用性都较高的嵌入式平台手势识别方案。具体而言,主要研究内容如下:(1)针对YOLO-Fastest V2轻量级网络中基于锚框(Anchor-Based)预测方式的缺陷,研究了一种基于无锚框(Anchor-Free)的轻量级手部检测网络,该网络负责框选出RGB摄像头图像中手部的位置,网络的参数量仅有0.227 M,千兆浮点运算数(Giga Floating-point Operations,GFLOPs)为0.222。Anchor-Free能够有效缓解Anchor-Based中引入锚框带来的负面影响,同时采用简易最优传输分配作为训练过程中的正负样本匹配策略。针对手势交互场景建立了专用数据集Lite Gesture Dataset,并使用Mosaic数据增强对网络进行训练。实验表明,改进后的网络在参数量和计算量上都略有降低,同时在Lite Gesture Dataset数据集上的m AP(mean Average Precision)提升显著。(2)针对轻量级高分辨率网络中基于热力图的关键点预测方式在低分辨率输入下会产生较大的量化误差,从而影响精度这一问题,研究了一种基于简易坐标分类的轻量级手部关键点检测网络,该网络负责对手部区域进行21个手部关键点的定位,网络的参数量仅有0.955 M,GFLOPs为0.111。本文在热力图输出层之后加入两个额外的全连接层,把输入图片的每个像素划分为横坐标和纵坐标上的若干个子像素,将关键点定位任务变为子像素坐标的分类任务,根据最大分类概率在子像素级别进行关键点横坐标和纵坐标的定位,以弥补热力图预测方式中分辨率降低导致的精度下降问题。实验结果也充分印证了该改进方案对原网络的手部关键点定位精度有着明显的提升。(3)针对目前研究人员在神经网络应用部署工作中使用特定硬件平台,而忽略软件通用性和可移植性的问题,提出了一种通用性和可移植性都较高的嵌入式平台手势识别方案。利用NCNN推理框架将神经网络模型进行转换并部署在搭载国产RK3568 So C(System on a Chip)的Rock pi 3A嵌入式平台上,仅使用CPU进行推理时,手部检测网络的推理耗时为23.85 ms,手部关键点检测网络的推理耗时为31.35 ms,达到了较高的实时性要求。手部检测网络和手部关键点检测网络构成了一套适用于嵌入式平台的手势识别方案,该方案通过手部关键点实现静态手势的识别,通过部分关键点轨迹和动态时间规整算法实现动态手势的识别,并根据手势检测结果实现不同的人机交互功能。并且该方案并不依赖特定的硬件,通过不同的编译方式可以方便地部署到其他硬件平台。