本发明属于手势控制技术领域,特别是涉及一种基于深度学习模型级联的空间手势控制方法。
背景技术:
手势是人机交互的重要途径之一,相比于其他交互方式,手势交互具有更加开放的场景以及更高的自由度,传统的手势识别主要是基于人工设计特征进行检测与识别,对场景的要求较高,当遇到复杂环境时手势交互经常会失效。与此同时随着深度图像技术的发展,手势交互也从过去二维平面逐渐向三维空间扩展,空间维度的增加使得手势交互的计算成本大幅增加。
近些年随着深度学习的发展,复杂场景下的手势检测对场景的要求越来越低,手势识别的准确率越来越高。但是深度学习算法复杂性较高,需要有相应的嵌入式计算平台与之相匹配,在应用过程中目前主流的边缘计算硬件有gpu、soc、fpga、asic等。手势交互作为最贴近人类生活场景的交互方式,在应用落地时除了要考虑性能以外,还要进行成本控制,高复杂度的深度学习算法在复杂场景中具有较高的识别准确率,但与此同时需要消耗的计算资源也就越大,承载算法所需的硬件成本也就越高。
技术实现要素:
本发明目的是为了解决现有的技术问题,提出了一种基于深度学习模型级联的空间手势控制方法。
本发明是通过以下技术方案实现的,本发明提出一种基于深度学习模型级联的空间手势控制方法,所述方法采用双目摄像头来实现空间手势各个坐标的计算,所述方法具体为:
步骤1、左相机和右相机分别采集图像数据;
步骤2、根据深度学习模型对各自采集的图像数据进行手掌检测;
步骤3、对手掌检测的结果进行关键点检测;
步骤4、对关键点检测后的结果进行精细化的二次处理;
步骤5、根据手掌检测结果和精细化的二次处理结果进行空间坐标计算;
步骤6、根据空间坐标进行空间手势识别。
进一步地,在步骤2中,在采用深度学习模型进行手掌检测时,模型的输入图像尺寸为320*240,为了实现多尺度的检测,在检测前设置900个尺度不一的预选框,利用所述预选框对整个图像进行采样,来实现多尺度检测;同时采用下采样来逐渐提高特征图的感知范围,输出结果为900个预选框的中心点坐标和高、宽以及每个预选框对于手掌判断的置信度;损失函数采用focusloss;最后通过对输出结果进行非极大值抑制筛选出最优的手掌检测框,并将手掌检测框的中心坐标作为手掌的位置。
进一步地,在步骤3中,在获得手掌位置后,基于人手的结构特征,圈出手指的区域,并在该区域内进行指尖关键点的检测;首先将手掌检测框向上进行平移,移动距离为检测框的高,然后将平移后的检测框尺寸扩大为原来的1.5倍,在原图中将扩大后的检测框所圈出的区域裁剪出来,在指尖关键点检测之前将裁剪出的图像尺寸统一成64*64;损失函数采用smoothl1,模型的输出结果为除拇指以外的其余四个手指的指尖坐标。
进一步地,在步骤4中,精细化的二次处理采用基于热力图的关键点回归,在关键点检测的基础上,以输出的指尖点为中心,再次裁剪出49*49尺寸的区域,每个指尖独立裁剪出相同尺寸的图像;指尖精细化的深度学习模型输出为热力图,根据输出的热力图,找到热力图中概率最高的点即为精细化后的指尖坐标。
进一步地,在步骤5中,根据事先标定好的双目摄像头参数及极线校正参数,对所需要关键点进行两两配对,采用视差法计算出关键点的空间坐标。
进一步地,识别出的空间手势包括拖动手势、点击手势和指向手势。
为了使得手势交互能够落地应用,在提高手势交互的自然性同时解决复杂场景、计算资源、硬件成本等问题。本发明提出了一种在低成本边缘计算硬件上进行复杂场景下的空间手势控制方法,一方面采用级联的思想来降低复杂场景下深度学习算法的复杂度,以此来降低计算资源的消耗同时降低硬件成本;另一方面采用双rgb摄像头来实现空间手势各个坐标的计算,提高空间手势交互的自然性。
附图说明
图1为本发明所述基于深度学习模型级联的空间手势控制方法流程图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明包括手关键点计算、手势识别两大部分:其中手关键点计算又包括手掌检测、关键点检测、关键点精细化处理以及空间坐标计算;手势识别部分主要是根据所提供的关键点空间坐标来实现各种控制手势,具体流程如图1所示,本发明提出一种基于深度学习模型级联的空间手势控制方法,所述方法采用双目摄像头来实现空间手势各个坐标的计算,所述方法具体为:
步骤1、左相机和右相机分别采集图像数据;
步骤2、根据深度学习模型对各自采集的图像数据进行手掌检测;
步骤3、对手掌检测的结果进行关键点检测;
步骤4、对关键点检测后的结果进行精细化的二次处理;
步骤5、根据手掌检测结果和精细化的二次处理结果进行空间坐标计算;
步骤6、根据空间坐标进行空间手势识别。
在步骤2中,人手作为具有高自由度目标,在进行整手检测时模型复杂度较大,同时部分手势之间相接近,这都使得检测难度增加。之所以将检测手掌作为第一步,是因为无论在做何种手势时,手掌作为一个刚体几乎无任何形变,外观特征比较稳定。在采用深度学习模型进行手掌检测时,模型的输入图像尺寸为320*240,为了实现多尺度的检测,在检测前设置900个尺度不一的预选框,利用所述预选框对整个图像进行采样,来实现多尺度检测;同时在网络结构上采用下采样来逐渐提高特征图的感知范围,输出结果为900个预选框的中心点坐标和高、宽以及每个预选框对于手掌判断的置信度;为了防止由于目标与背景数据数量相差过大带来的数据不平衡问题,损失函数采用focusloss;最后通过对输出结果进行非极大值抑制筛选出最优的手掌检测框,并将手掌检测框的中心坐标作为手掌的位置。
在步骤3中,在获得手掌位置后,基于人手的结构特征,圈出手指的区域,并在该区域内进行指尖关键点的检测;首先将手掌检测框向上进行平移,移动距离为检测框的高,然后将平移后的检测框尺寸扩大为原来的1.5倍,在原图中将扩大后的检测框所圈出的区域裁剪出来,考虑到不同尺度手掌所裁剪出的区域尺寸不同,在指尖关键点检测之前将裁剪出的图像尺寸统一resize成64*64;指尖关键点检测的深度学习模型结构为输入尺寸64*64,同样为了实现特征图的感知范围的扩大,网络结构中仍然采用了下采样,为了平稳且快速的使得模型收敛,损失函数采用smoothl1,模型的输出结果为除拇指以外的其余四个手指的指尖坐标。
在步骤3中检测的指尖由于缺少其他的监督信息,因此当图像中有手指未出现时,模型仍然会有结果输出,这会导致后续的手势误识别,因此需要在此基础上对指尖点进行精细化的二次处理。精细化的二次处理采用基于热力图的关键点回归,在关键点检测的基础上,以输出的指尖点为中心,再次裁剪出49*49尺寸的区域,每个指尖独立裁剪出相同尺寸的图像;指尖精细化的深度学习模型输出为热力图,根据输出的热力图,找到热力图中概率最高的点即为精细化后的指尖坐标。
在步骤5中,在第2步和第4步中分别获得掌心坐标以及各个手指的指尖坐标,但是此坐标为图像坐标,想要进行空间手势交互还需要计算出相应的空间坐标。根据事先标定好的双目摄像头参数及极线校正参数,对所需要关键点进行两两配对,采用视差法计算出关键点的空间坐标。
由于已经可以获取到各个关键点的坐标,因此可以根据相应的需求来设计各种各样的手势,此处仅列出三种手势为例:
1、拖动手势
拖动手势为除食指以外的其他手指握拳,食指伸直,随着食指指尖的上下左右移动,鼠标跟随指尖移动,为了提高鼠标的稳定性,需要对食指指尖点坐标做平滑,数据平滑的窗口长度为5,拖动手势除了可以实现鼠标的拖动,还可以进行区域的选择。
2、点击手势
点击手势为除食指以外的其他手指握拳,食指伸直,食指指尖朝相同方向连续点击两次,点击手势主要是为了对相应的选项进行确认。
3、指向手势
指向手势为除食指以外的其他手指握拳,食指伸直,根据食指指尖与掌心连线的方向进行相应功能的拖动与选中。
实施例
本实施例以芯片rk3399作为平台,数据采集的双目摄像头分辨率为320x240,显示设备尺寸为30cm*30cm、60cm*60cm、90cm*90cm三种,根据不同尺寸的显示设备并结合不同的手势来实现不同场景下的应用。
1、家用电子相框
将双目摄像头固定于电子相框的顶端,正对操作者。
步骤a:双目摄像头实时采集图像,并在rk3399芯片上实时监测是否有手掌出现;
步骤b:当检测到手掌时,进行指尖点坐标检测并计算空间坐标,并识别是否是拖动手势;
步骤c:当检测到拖动手势,根据食指指尖点坐标的运动轨迹来判断相应功能;
步骤d:当左右滑动时,为照片的上一张/下一张切换,当顺时针/逆时针旋转时,可以调节电子相框的背景亮度。
2、自动售卖机
将双目摄像头固定于自动售卖机显示屏上方,采用从上向下的视角来进行手势识别。
步骤a:双目摄像头实时采集图像,并在rk3399上实时监测是否有手掌出现;
步骤b:当检测到手掌时,进行指尖坐标的检测与空间坐标计算,并识别是否是拖动手势;
步骤c:当检测到拖动手势,并根据食指指尖位置及轨迹来判断相应功能;
步骤d:食指指尖移动到相应的商品图标框即为选定该商品;
步骤e:当在某商品框位置处进行点击手势,即为确定购买该商品;
步骤f:当在屏幕区域快速左右滑动时,可以实现商品展示页的翻页功能。
3、自助信息查询机
将双目摄像头固定于自助信息查询机上方,采用从上向下的视角来进行手势识别。
步骤a:双目摄像头实时采集图像,并在rk3399上实时监测是否有手掌出现;
步骤b:当检测到手掌时,进行指尖坐标的检测与空间坐标计算,并识别是否是指向手势;
步骤c:根据指向手势的方向来判断所选择的要查询的信息选项;
步骤d:当检测到点击手势时,表示确认显示该信息;
步骤e:当左右快速拖动手势时,表示显示信息的翻页功能;
步骤f:当快速向上拖动手势时,表示退出当前页返回功能选项页。
以上对本发明所提供的一种基于深度学习模型级联的空间手势控制方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
1.一种基于深度学习模型级联的空间手势控制方法,其特征在于:所述方法采用双目摄像头来实现空间手势各个坐标的计算,所述方法具体为:
步骤1、左相机和右相机分别采集图像数据;
步骤2、根据深度学习模型对各自采集的图像数据进行手掌检测;
步骤3、对手掌检测的结果进行关键点检测;
步骤4、对关键点检测后的结果进行精细化的二次处理;
步骤5、根据手掌检测结果和精细化的二次处理结果进行空间坐标计算;
步骤6、根据空间坐标进行空间手势识别。
2.根据权利要求1所述的方法,其特征在于:在步骤2中,在采用深度学习模型进行手掌检测时,模型的输入图像尺寸为320*240,为了实现多尺度的检测,在检测前设置900个尺度不一的预选框,利用所述预选框对整个图像进行采样,来实现多尺度检测;同时采用下采样来逐渐提高特征图的感知范围,输出结果为900个预选框的中心点坐标和高、宽以及每个预选框对于手掌判断的置信度;损失函数采用focusloss;最后通过对输出结果进行非极大值抑制筛选出最优的手掌检测框,并将手掌检测框的中心坐标作为手掌的位置。
3.根据权利要求2所述的方法,其特征在于:在步骤3中,在获得手掌位置后,基于人手的结构特征,圈出手指的区域,并在该区域内进行指尖关键点的检测;首先将手掌检测框向上进行平移,移动距离为检测框的高,然后将平移后的检测框尺寸扩大为原来的1.5倍,在原图中将扩大后的检测框所圈出的区域裁剪出来,在指尖关键点检测之前将裁剪出的图像尺寸统一成64*64;损失函数采用smoothl1,模型的输出结果为除拇指以外的其余四个手指的指尖坐标。
4.根据权利要求3所述的方法,其特征在于:在步骤4中,精细化的二次处理采用基于热力图的关键点回归,在关键点检测的基础上,以输出的指尖点为中心,再次裁剪出49*49尺寸的区域,每个指尖独立裁剪出相同尺寸的图像;指尖精细化的深度学习模型输出为热力图,根据输出的热力图,找到热力图中概率最高的点即为精细化后的指尖坐标。
5.根据权利要求4所述的方法,其特征在于:在步骤5中,根据事先标定好的双目摄像头参数及极线校正参数,对所需要关键点进行两两配对,采用视差法计算出关键点的空间坐标。
6.根据权利要求5所述的方法,其特征在于:识别出的空间手势包括拖动手势、点击手势和指向手势。
技术总结