所属的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。图12是本发明实施例中的一种深度引导的手势跟踪设备的结构示意图。下面参照图12来描述根据本发明的这种实施方式的电子设备600。图12显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图12所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述一种深度引导的手势跟踪方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图12中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。本发明实施例中还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的一种深度引导的手势跟踪方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述一种深度引导的手势跟踪方法部分中描述的根据本发明各种示例性实施方式的步骤。如上所示,本实施例在视频中获取第一帧图像,并根据深度范围进行引导,获得第一手部区域,再通过不同帧的手部关键点,计算手部关键点在三维空间的运动夹角,并结合运动幅度确定手部的完整运动轨迹,从而可以更好地识别出手势的含义,进行各种手势交互,具有稳定性好,准确度高,快速高效的特点。图13是本发明实施例中的计算机可读存储介质的结构示意图。参考图13所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。本实施例在视频中获取第一帧图像,并根据深度范围进行引导,获得第一手部区域,再通过不同帧的手部关键点,计算手部关键点在三维空间的运动夹角,并结合运动幅度确定手部的完整运动轨迹,从而可以更好地识别出手势的含义,进行各种手势交互,具有稳定性好,准确度高,快速高效的特点。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
背景技术:
1、手势跟踪是指通过电脑视觉技术或传感器技术等手段,识别和跟踪人手的运动轨迹及手势,从而实现手部交互和控制。手势跟踪技术可以广泛应用于人机交互、虚拟现实、智能家居等领域。
2、手势跟踪技术主要包括以下几种技术:
3、基于图像处理的手势识别技术:通过采集手部图像,提取手部特征和纹理信息,使用分类器模型来识别手势。常用的特征包括手部形状、颜色、纹理、轮廓线等。
4、基于深度摄像头的手势识别技术:通过使用深度传感器,可以获得更为准确的三维手部模型,结合基于机器学习等算法,实现更为精确的手势跟踪和识别。
5、基于惯性传感器的手势识别技术:通过使用加速度计、陀螺仪等惯性传感器,测量手部加速度和角速度,从而识别手势。这种技术可以实现无需摄像头的手势识别。
6、基于传统传感器的手势识别技术:通过使用手套、腕带等传统传感器,可以测量手部运动轨迹和姿态,实现手部交互和控制。
7、手势跟踪技术在人机交互、虚拟现实、智能家居等领域有广泛应用,但仍面临着识别精度、延迟性、多变性等问题,需要不断改进和优化。
8、现有技术中的手势跟踪技术的缺点如下:
9、对光照和背景敏感:手势跟踪需要采集手部图像并对其进行分析,但在光线不足或背景复杂的情况下,可能会导致手部图像糊或无法识别,从而影响手势的跟踪和识别精度。
10、多变性:不同人的手型和手势可能会有很大的差别,且同一个手势也可能有多种不同的变形,这会增加识别难度和误差率。
11、延迟性:手势跟踪通常需要进行多帧图像的处理才能确定手势,因此有一定的延迟,这可能会影响实时性和用户体验。
12、操作限制:手势跟踪通常需要使用手部进行操作,因此需要保持一定的距离和角度,不能过于靠近或过于扭曲,否则会影响识别效果。此外,需要保持手部清洁和干燥,避免汗水和尘土等干扰手势识别。
13、以上背景技术内容的公开仅用于辅助理解本发明的发明构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本技术的新颖性和创造性。
技术实现思路
1、为此,本发明在视频中获取第一帧图像,并根据深度范围进行引导,获得第一手部区域,再通过不同帧的手部关键点,计算手部关键点在三维空间的运动夹角,并结合运动幅度确定手部的完整运动轨迹,从而可以更好地识别出手势的含义,进行各种手势交互。
2、第一方面,本发明提供一种深度引导的手势跟踪方法,其特征在于,包括如下步骤:
3、步骤s1:获取第一帧图像,并根据预设深度范围,获得初始手部区域;其中,所述第一帧图像包括一一对应的深度图和第二图像;所述第二图像为rgb图、光斑图、红外图中的一种;
4、步骤s2:对所述初始手部区域进行手部识别,得到第一手部区域;
5、步骤s3:识别出所述第一手部区域的手部关键点和手部姿态;
6、步骤s4:确定所述第一手部区域的中心手部关键点位置;其中,所述中心手部关键点是所述手掌关键点中的一个或多个的均值;
7、步骤s5:计算所述中心手部关键点在三维空间与前一帧图像中的运动夹角θ;
8、步骤s6:通过对所述运动夹角θ之和、所述中心手部关键点位置及运动幅度确定手部的完整运动轨迹。
9、可选地,所述的一种深度引导的手势跟踪方法,其特征在于,步骤s2包括:
10、步骤s21:对所述初始手部区域进行手部识别,得到第一区域;
11、步骤s22:对所述第一区域中不完整的手部进行补全,得到第二区域;
12、步骤s23:将所述第二区域与第二帧图像中的所述第一手部区域对比,得到被完全遮挡的手部的位置,再与所述第二区域融合得到第一手部区域;其中,所述第二帧图像是所述第一帧图像的前一帧。
13、可选地,所述的一种深度引导的手势跟踪方法,其特征在于,步骤s3包括:
14、步骤s31:识别出所述第一手部区域的手部关键点和手部姿态;
15、步骤s32:对多个所述第一手部区域进行关联度分析,确定不同的所述第一手部区域是否属于同一个人;
16、步骤s33:根据所述手部姿态与预设姿态对比,剔除与所述预设姿态不同的所述第一手部区域。
17、可选地,所述的一种深度引导的手势跟踪方法,其特征在于,还包括:
18、步骤s34:与所述第一帧图像的前若干帧对比,确定有效的所述第一手部区域。
19、可选地,所述的一种深度引导的手势跟踪方法,其特征在于,步骤s5包括:
20、步骤s51:计算所述中心手部关键点在所述第一帧图像中三维空间坐标p1和所述第二帧图像中的三维空间坐标p2;
21、步骤s52:得到所述中心手部关键点从所述第二帧图像移动到所述第二帧图像的向量
22、步骤s53:计算所述中心手部关键点在所述第三帧图像中三维空间坐标p3;其中,所述第三帧图像是所述第二帧图像的前一帧;
23、步骤s54:得到所述中心手部关键点从所述第三帧图像移动到所述第二帧图像的向量
24、步骤s55:计算得到向量与向量在点p2的夹角θ。
25、可选地,所述的一种深度引导的手势跟踪方法,其特征在于,所述步骤s6包括:
26、步骤s61:利用多帧图像中的所述中心手部关键点计算每一帧图像的运动幅度;
27、步骤s62:当所述运动幅度符合预设要求时,计算后帧所述中心手部关键点的向量相对于前帧所述中心手部关键点的向量的偏移角度θ';
28、步骤s63:计算多个偏移角度θ'之和,并当偏移角度θ'之和大于等于360度时,判定所述左手或所述右手完成一次闭环运动。
29、可选地,所述的一种深度引导的手势跟踪方法,其特征在于,在计算所述偏移角度时,先对不同帧中所述中心手部关键点位置进行平滑处理,再进行偏移角度计算。
30、第二方面,本发明提供一种深度引导的手势跟踪系统,用于实现上述任一项所述的深度引导的手势跟踪方法,其特征在于,包括:
31、初始区域模块,用于获取第一帧图像,并根据预设深度范围,获得初始手部区域;其中,所述第一帧图像包括一一对应的深度图和第二图像;所述第二图像为rgb图、光斑图、红外图中的一种;
32、手部区域模块,用于对所述初始手部区域进行手部识别,得到第一手部区域;
33、关键点模块,用于识别出所述第一手部区域的手部关键点和手部姿态;
34、运动轨迹模块,用于确定所述第一手部区域的中心手部关键点位置;其中,所述中心手部关键点是所述手掌关键点中的一个或多个的均值;
35、运动夹角模块,用于计算所述中心手部关键点在三维空间与前一帧图像中的运动夹角θ;
36、判断模块,用于通过对所述运动夹角θ之和、所述中心手部关键点位置及运动幅度确定手部的完整运动轨迹。
37、第三方面,本发明提供一种深度引导的手势跟踪设备,其特征在于,包括:
38、处理器;
39、存储器,其中存储有所述处理器的可执行指令;
40、其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述深度引导的手势跟踪方法的步骤。
41、第四方面,本发明提供一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现前述任意一项所述深度引导的手势跟踪方法的步骤。
42、与现有技术相比,本发明具有如下的有益效果:
43、本发明根据预设深度范围引导识别第一手部区域,减小了识别范围,减少了计算量,有利于提高计算速度,降低对算力的要求。
44、本发明通过对不同帧图像的第一手部区域及中心手部关键点进行提取,可以准确地衡量手掌的运动情况,更好地识别出手掌运动的含义,进行各类有效交互。
45、本发明不需要确立完整的手部模型,只需要识别出手部的关键信息即可进行识别与处理,大大减少计算量,有利于提高处理速度,降低对算力要求。
46、本发明利用对手形和手势的判别要求不高,只需获得大致的轮廓即可,因而对不同人群具有很高的适应性,有利于获得稳定的分析结果,提升识别的准确性。
47、本发明利用三维空间中手势信息进行分析,大大降低对于操作者手部朝向、距离等的限制,使得操作者具有更高的操作灵活度与操作空间,对各类应用场景均具有较好的适应性。
48、本发明可以实时获得手部姿态及运动状态,计算量小,可以快速对手势进行跟踪与响应,缩短反应时间,降低延迟,提高用户体验。