CN108052927B - 基于视频数据的手势处理方法及装置、计算设备 - Google Patents

基于视频数据的手势处理方法及装置、计算设备 Download PDF

Info

Publication number
CN108052927B
CN108052927B CN201711477668.5A CN201711477668A CN108052927B CN 108052927 B CN108052927 B CN 108052927B CN 201711477668 A CN201711477668 A CN 201711477668A CN 108052927 B CN108052927 B CN 108052927B
Authority
CN
China
Prior art keywords
gesture
tracking
image frame
detection
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711477668.5A
Other languages
English (en)
Other versions
CN108052927A (zh
Inventor
熊超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711477668.5A priority Critical patent/CN108052927B/zh
Publication of CN108052927A publication Critical patent/CN108052927A/zh
Application granted granted Critical
Publication of CN108052927B publication Critical patent/CN108052927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种基于视频数据的手势处理方法及装置、计算设备,其方法包括:每当获取到跟踪器当前输出的与视频数据相对应的跟踪结果后,根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定输出时间最晚的检测结果中包含的手势类型;根据与当前跟踪图像帧相对应的音频数据确定音频指令类型,判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配;若是,确定与手势类型相对应的手势处理规则,根据当前跟踪图像帧中包含的手势跟踪区域,对当前跟踪图像帧执行与手势处理规则相对应的手势处理操作。

Description

基于视频数据的手势处理方法及装置、计算设备
技术领域
本发明涉及图像处理领域,具体涉及一种基于视频数据的手势处理方法及装置、计算设备。
背景技术
随着科技的发展,图像采集设备的技术也日益提高。使用图像采集设备录制的视频也更加清晰,分辨率、显示效果也大幅提高。为了使图像采集设备录制的视频显示效果更加多元化,通常需要在连续的视频帧中确定每一帧图像中包含的手部区域、手势类型或者音频指令,以便根据手势类型和音频指令对图像进行处理,以提升视频显示效果。
但是发明人在实现本发明的过程中发现,现有技术中,大多采用检测算法检测每一帧图像中包含的手势区域和手势类别,然而,检测时需针对图像中的全部区域进行检测,效率低下且耗时较长,当手势位置发生快速的变化时,无法及时地根据检测到的手势对图像进行处理。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于视频数据的手势处理方法及装置、计算设备。
根据本发明的一个方面,提供了一种基于视频数据的手势处理方法,其包括:
每当获取到跟踪器当前输出的与所述视频数据相对应的跟踪结果后,根据所述跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;
从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定所述输出时间最晚的检测结果中包含的手势类型;
根据与所述当前跟踪图像帧相对应的音频数据确定音频指令类型,判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
可选地,其中,所述判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配的步骤具体包括:
查询预设的手势指令对照库,根据所述手势指令对照库确定所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
其中,所述手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。
可选地,其中,所述手势指令对照库进一步用于存储与各种手部运动轨迹相对应的音频指令类型;
则所述判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配的步骤具体包括:
确定所述当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;
根据所述前帧跟踪图像帧中包含的手势跟踪区域以及所述当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;
结合所述手部运动轨迹判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。
可选地,其中,所述对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作的步骤之后,进一步包括:
将所述视频数据中的当前跟踪图像帧替换为执行所述手势处理操作后的图像帧,得到处理后的视频数据,显示所述处理后的视频数据。
可选地,其中,所述跟踪器每隔第一预设间隔从所述视频数据中提取一帧图像作为当前跟踪图像帧,并输出与所述当前跟踪图像帧相对应的跟踪结果;
所述检测器每隔第二预设间隔从所述视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;
其中,所述第二预设间隔大于所述第一预设间隔。
可选地,其中,所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的步骤之前,进一步包括步骤:
判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域;
当判断结果为是时,执行所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的步骤及其后续步骤。
可选地,其中,所述判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域的步骤具体包括:
通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;
若是,则确定所述当前跟踪图像帧中包含的手势跟踪区域为有效区域;若否,则确定所述当前跟踪图像帧中包含的手势跟踪区域为无效区域。
可选地,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为无效区域时,所述方法进一步包括:
获取所述检测器在所述跟踪结果之后输出的检测结果,确定所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域;
将所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
可选地,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为有效区域时,所述方法进一步包括:
将所述有效区域提供给所述检测器,以供所述检测器根据所述有效区域输出后续的检测结果。
可选地,其中,所述检测器根据所述有效区域输出后续的检测结果的步骤具体包括:
根据所述有效区域确定当前检测图像帧中的检测范围;
根据所述检测范围,通过神经网络算法预测与所述当前检测图像帧相对应的检测结果;
其中,所述检测结果中包含手势检测区域以及手势类型。
可选地,其中,所述方法执行之前,进一步包括步骤:
确定检测器已输出的检测结果中包含的手部检测区域;
将所述检测器已输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
可选地,其中,跟踪器当前输出与所述视频数据相对应的跟踪结果的步骤具体包括:
跟踪器判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;
若是,则根据所述前帧跟踪图像帧中包含的手势跟踪区域输出与所述当前跟踪图像帧相对应的跟踪结果;
若否,则根据所述检测器提供的手部检测区域输出与所述当前跟踪图像帧相对应的跟踪结果。
可选地,其中,所述确定与所述手势类型相对应的手势处理规则的步骤具体包括:
根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。
根据本发明的另一方面,提供了一种基于视频数据的手势处理装置,其包括:
第一确定模块,适于每当获取到跟踪器当前输出的与所述视频数据相对应的跟踪结果后,根据所述跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;
第二确定模块,适于从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定所述输出时间最晚的检测结果中包含的手势类型;
第一判断模块,适于根据与所述当前跟踪图像帧相对应的音频数据确定音频指令类型,判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
执行模块,适于若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
可选地,其中,所述第一判断模块具体适于:
查询预设的手势指令对照库,根据所述手势指令对照库确定所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
其中,所述手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。
可选地,其中,所述手势指令对照库进一步用于存储与各种手部运动轨迹相对应的音频指令类型;
则所述第一判断模块具体适于:
确定所述当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;
根据所述前帧跟踪图像帧中包含的手势跟踪区域以及所述当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;
结合所述手部运动轨迹判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。
可选地,其中,所述装置进一步包括显示模块,适于:
将所述视频数据中的当前跟踪图像帧替换为执行所述手势处理操作后的图像帧,得到处理后的视频数据,显示所述处理后的视频数据。
可选地,其中,所述跟踪器每隔第一预设间隔从所述视频数据中提取一帧图像作为当前跟踪图像帧,并输出与所述当前跟踪图像帧相对应的跟踪结果;
所述检测器每隔第二预设间隔从所述视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;
其中,所述第二预设间隔大于所述第一预设间隔。
可选地,其中,所述装置进一步包括第二判断模块,适于:
判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域;
当判断结果为是时,执行所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的的步骤及其后续步骤。
可选地,其中,所述第二判断模块具体适于:
通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;
若是,则确定所述当前跟踪图像帧中包含的手势跟踪区域为有效区域;若否,则确定所述当前跟踪图像帧中包含的手势跟踪区域为无效区域。
可选地,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为无效区域时,所述第二判断模块进一步适于:
获取所述检测器在所述跟踪结果之后输出的检测结果,确定所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域;
将所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
可选地,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为有效区域时,所述第二判断模块进一步适于:
将所述有效区域提供给所述检测器,以供所述检测器根据所述有效区域输出后续的检测结果。
可选地,其中,第二判断模块具体适于:
根据所述有效区域确定当前检测图像帧中的检测范围;
根据所述检测范围,通过神经网络算法预测与所述当前检测图像帧相对应的检测结果;
其中,所述检测结果中包含手势检测区域以及手势类型。
可选地,其中,所述装置还包括:
第三确定模块,适于确定检测器已输出的检测结果中包含的手部检测区域;
提供模块,适于将所述检测器已输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
可选地,其中,第一确定模块具体适于:
跟踪器判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;
若是,则根据所述前帧跟踪图像帧中包含的手势跟踪区域输出与所述当前跟踪图像帧相对应的跟踪结果;
若否,则根据所述检测器提供的手部检测区域输出与所述当前跟踪图像帧相对应的跟踪结果。
可选地,其中,所述执行模块具体适于:
根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于视频数据的手势处理方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于视频数据的手势处理方法对应的操作。
根据本发明提供的基于视频数据的手势处理方法及装置、计算设备,能够根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域,并且由检测器确定输出时间最晚的检测结果中包含的手势类型,然后根据与当前跟踪图像帧相对应的音频数据确定音频指令类型,判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配,若是则根据当前跟踪图像帧中包含的手势跟踪区域,对当前跟踪图像帧执行与手势处理规则相对应的手势处理操作。由此可见,通过由跟踪器根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域,并将语音指令和输出时间最晚的检测结果中包含的手势类型匹配之后,即使当手势位置发生快速的变化时,也能够及时地根据检测到的手势对图像进行处理,提升了效率,缩短了耗时,并且跟踪和检测的过程同时进行,提高了根据手势对图像帧进行处理的准确性,减小了失误率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于视频数据的手势处理方法的流程图;
图2示出了根据本发明另一个实施例的基于视频数据的手势处理方法的流程图;
图3示出了根据本发明一个实施例的基于视频数据的手势处理装置的功能框图;
图4示出了根据本发明一个实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于视频数据的手势处理方法的流程图。如图1所示,基于视频数据的手势处理方法具体包括如下步骤:
步骤S101,每当获取到跟踪器当前输出的与视频数据相对应的跟踪结果后,根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域。
具体地,在视频进行播放的时候,可以根据预设的帧率,每隔几帧图像或者每隔预设的时间间隔获取视频数据中的一帧图像进行跟踪,比如,假设一秒钟内播放30帧图像,则可以每隔2帧图像或者每隔80毫秒获取一帧图像进行跟踪。或者,还可以对视频帧中的每一帧图像都进行跟踪,具体地,可以根据跟踪器的处理速度和想要达到的跟踪精度具体选择获取视频帧的方式。比如跟踪器处理的速度较快,为了达到更高的精度要求可以对视频中的每一帧图像都进行跟踪;如果跟踪器的处理速度较慢、精度要求也较低,此时可以每隔几帧图像获取一帧图像来进行跟踪。本领域人员可以根据实际情况具体进行选择,在此不再一一类述。在获取到跟踪器当前输出的与视频数据相对应的跟踪结果之后,根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域。其中,当前跟踪图像帧是指当前获取的要跟踪的这一帧图像。根据本步骤,可以根据当前跟踪图像帧的上一帧或者上几帧图像确定当前跟踪图像帧中包含的手势跟踪区域。
步骤S102,从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定输出时间最晚的检测结果中包含的手势类型。
从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果可以是与上述跟踪器跟踪到的当前跟踪图像帧相对应的检测结果,还可以是与当前跟踪图像帧对应的前帧跟踪图像帧中的一帧图像相对应的检测结果。即检测器检测的过程可以和跟踪器跟踪的过程同步,还可以比跟踪器跟踪的过程延迟。从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果之后,确定输出时间最晚的检测结果中包含的手势类型。其中,手势类型可以为各种手势类型,可以为静态的还可以为动态的,比如为双手比出的爱心,单手做出的“OK”手势等。
步骤S103,根据与当前跟踪图像帧相对应的音频数据确定音频指令类型,判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配。
可以通过查询预设的手势指令对照库,并根据手势指令对照库中存储的各种手势类型与其对应的音频指令类型之间的映射关系判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配。在判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配时还可以结合各种手势运动轨迹判断音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配,从而能够更加全面准确地判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配。除了根据上述方法外,还可以根据其它的方法来判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配,在此不再赘述。
步骤S104,若是,确定与手势类型相对应的手势处理规则,根据当前跟踪图像帧中包含的手势跟踪区域,对当前跟踪图像帧执行与手势处理规则相对应的手势处理操作。
其中,手势处理规则可以是根据手势类型和/或手部运动的轨迹对一帧或者多帧图像添加效果贴图,该效果贴图可以是动态的或者静态的;手势处理规则还可以是根据手势类型和/或手部运动的轨迹在当前跟踪图像帧中添加语音特效,手势处理规则还可以是其它类型的手势处理规则,在此不再一一赘述。由于检测的速度相对比跟踪的速度慢,在不能对每一帧图像都进行检测的情况下,根据该步骤能够快速地跟踪到每一帧图像中手势所在的位置,并对当前跟踪图像帧执行与手势处理操作。
根据本实施例提供的基于视频数据的手势处理方法,能够根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域,并且由检测器确定输出时间最晚的检测结果中包含的手势类型,然后根据与当前跟踪图像帧相对应的音频数据确定音频指令类型,判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配,若是则根据当前跟踪图像帧中包含的手势跟踪区域,对当前跟踪图像帧执行与手势处理规则相对应的手势处理操作。由此可见,通过由跟踪器根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域,并将语音指令和输出时间最晚的检测结果中包含的手势类型匹配之后,即使当手势位置发生快速的变化时,也能够及时地根据检测到的手势对图像进行处理,提升了效率,缩短了耗时,并且跟踪和检测的过程同时进行,提高了根据手势对图像帧进行处理的准确性,减小了失误率。
图2示出了根据本发明另一个实施例的基于视频数据的手势处理方法的流程图。如图2所示,基于视频数据的手势处理方法具体包括如下步骤:
步骤S201,确定检测器已输出的检测结果中包含的手部检测区域。
其中,检测器已输出的检测结果可以是输出的第一帧待检测的图像所对应的检测结果,从而实现快速初始化跟踪器,提升效率的目的。当然,检测器已输出的检测结果还可以是输出的单独的第N帧待检测的图像或连续的前N帧图像。其中,N为大于1的自然数,从而结合多帧检测结果来准确确定手部检测区域的具体位置。
在本实施例中,以检测器已输出的检测结果为第一帧待检测的图像所对应的检测结果为例进行说明。具体地,该第一帧待检测的图像可以是视频中播放的首帧图像,也可以是视频中的第二帧图像等。在获取到第一帧待检测的图像时,为了确定跟踪器跟踪的对象,以便初始化跟踪器,需要利用检测器检测第一帧待检测的图像中手部所在的区域,并将该区域确定为手部检测区域,从而确定检测器已输出的检测结果中包含的手部检测区域。其中,检测器可利用神经网络预测算法等多种方式实现检测手部所在区域的目的,本发明对此不做限定。
步骤S202,将检测器已输出的检测结果中包含的手部检测区域提供给跟踪器,以供跟踪器根据检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
检测器输出的检测结果中包含的手部检测区域是检测出来的精确度较高的手部所在的区域,可以将检测器已输出的检测结果中包含的手部检测区域提供给跟踪器,以初始化跟踪器,为跟踪器提供跟踪目标,从而供跟踪器根据检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。具体地,由于视频中包含的各帧图像之间存在连贯性,因此,跟踪器利用已检测出的图像中的手部检测区域能够快速确定后续图像中的手部位置。
步骤S203,每当获取到跟踪器当前输出的与视频数据相对应的跟踪结果后,根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域。
为了提高跟踪器跟踪的准确性,减小失误率,每当获取到跟踪器当前输出的与视频数据相对应的跟踪结果时,跟踪器需要判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;若是,则根据前帧跟踪图像帧中包含的手势跟踪区域输出与当前跟踪图像帧相对应的跟踪结果;若否,则根据检测器提供的手部检测区域输出与当前跟踪图像帧相对应的跟踪结果。根据上述步骤,能够在执行对当前帧跟踪图像帧进行跟踪的步骤之前过滤掉无效的前帧跟踪图像帧,从而能够提高跟踪器跟踪的准确性,并且提高了跟踪的效率,缩短了跟踪的时间。
在本步骤中,具体地,跟踪器可以每隔第一预设间隔从视频数据中提取一帧图像作为当前跟踪图像帧,并输出与当前跟踪图像帧相对应的跟踪结果。其中,当前跟踪图像帧是指当前获取的要跟踪的这一帧图像。第一预设间隔可以根据预设的帧率设定,还可以由用户自定义设定,还可以根据其它的方式来设定。比如一秒钟内获取30帧图像,则第一预设间隔可以设定为每隔2帧图像的时间间隔或者可以直接设定为80毫秒,还可以将第一预设间隔设定为获取每一帧图像之间的时间间隔。每当获取到跟踪器当前输出的与视频数据相对应的跟踪结果后,根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域。
步骤S204,判断当前跟踪图像帧中包含的手势跟踪区域是否为有效区域。
在跟踪的时候,当手的位置变化特别快时,可能会出现跟踪器跟踪不上的手部位置的变化,或者跟踪到错误的位置,此时当前跟踪图像帧中包含的手势跟踪区域为错误的区域即无效区域。所以对当前跟踪图像帧进行跟踪的时候,需要判断当前跟踪图像帧中包含的手势跟踪区域是否为有效区域。
具体地,判断的方法可以是通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;当手势跟踪区域内存在人手并且能够被手部分类器识别的时候,则当前跟踪的图像帧中包含的手势跟踪区域为手部区域;当手势跟踪区域内不存在人手或者只存在手的很小一部分而不能被手部分类器识别的时候,则当前跟踪的图像帧中包含的手势跟踪区域不是手部区域。若当前跟踪的图像帧中包含的手势跟踪区域是手部区域,则确定当前跟踪图像帧中包含的手势跟踪区域为有效区域;若当前跟踪的图像帧中包含的手势跟踪区域不是手部区域,则确定当前跟踪图像帧中包含的手势跟踪区域为无效区域。其中,手部分类器可以为二叉树分类器或者其它的手部分类器,上述手部分类器可以通过利用手的特征数据和/或非手的特征数据训练出手部识别模型,然后将获取的当前跟踪的图像帧中包含的手势跟踪区域相对应的数据输入给该手部识别模型,并根据手部识别模型的输出结果判断当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域。根据该步骤S204判断出当前跟踪图像帧中包含的手势跟踪区域若不是有效区域,则执行步骤S205~步骤S206,若是,则执行后续的步骤S207~S2011。
步骤S205,获取检测器在跟踪结果之后输出的检测结果,确定在跟踪结果之后输出的检测结果中包含的手部检测区域。
当判断出当前跟踪图像帧中包含的手势跟踪区域为无效区域之后,获取检测器在跟踪结果之后输出的检测结果,并且确定在跟踪结果之后输出的检测结果中包含的手部检测区域。
其中,检测器与跟踪器并行运行。具体实施时,可以通过检测线程实现检测器的功能,以进行检测;通过跟踪线程实现跟踪器的功能,以进行跟踪。跟踪线程每隔第一预设时间从视频数据中提取一帧图像作为当前跟踪图像帧,并输出与当前跟踪图像帧相对应的跟踪结果;检测线程每隔第二预设时间从视频数据中提取一帧图像作为当前检测图像帧,并输出与当前检测图像帧相对应的检测结果,并且第二预设时间大于第一预设时间间隔。所以跟踪线程跟踪的速度大于检测线程的速度,比如跟踪器每隔2帧的时间间隔获取一帧图像进行跟踪,则检测器可以每隔10帧的时间间隔获取一帧图像进行检测。因此利用跟踪线程能够快速地跟踪到手部移动的位置,以弥补检测线程检测较慢的缺点。
步骤S206,将在跟踪结果之后输出的检测结果中包含的手部检测区域提供给跟踪器,以供跟踪器根据在跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
在判断出当前跟踪图像帧中包含的手势跟踪区域为无效区域之后,检测器可能同时地将检测结果中包含的手部检测区域提供给跟踪器。由于检测器检测的速度小于跟踪器跟踪的速度,所以可能还需要等待一段延时时间检测器才能将在跟踪结果之后输出的检测结果中包含的手部检测区域提供给跟踪器,此时会出现一定的延迟。将在跟踪结果之后输出的检测结果中包含的手部检测区域提供给跟踪器,以初始化跟踪器,从而供跟踪器根据在跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果,进而进一步地执行步骤S203~步骤S2011。
步骤S207,将有效区域提供给检测器,以供检测器根据有效区域输出后续的检测结果。
其中,有效区域可以是当前跟踪图像帧中的有效区域,还可以是在当前跟踪图像帧之前,且在当前检测图像帧之后的多帧跟踪图像帧中的有效区域,上述当前检测图像帧是指检测器当前检测的这一帧图像。比如跟踪器当前跟踪到第10帧图像,检测器此时检测到第2帧图像时,则有效区域可以是第10帧图像的有效区域,还可以是在第10帧图像之前,第2帧图像之后的图像帧中的多帧图像。也就是说,在一种实现方式中,跟踪器可以将每一次得到的跟踪图像帧中的有效区域都提供给检测器,由于检测器的检测频率低于跟踪器的跟踪频率,因此,此时,检测器可以根据得到的多个跟踪图像帧中的有效区域对当前检测图像帧进行检测,从而通过分析多个跟踪图像帧中的有效区域的运动趋势和/或运动速度来更精确地确定当前检测图像帧中的手部检测区域。在另一种实现方式中,跟踪器也可以从连续的M个跟踪图像帧中选择一帧,并将选择的该帧中的有效区域提供给检测器,M为大于1的自然数,具体取值可根据跟踪器的跟踪频率和检测器的检测频率确定。例如,跟踪器的跟踪频率是每隔2帧图像跟踪一次,检测器检测的频率是每隔10帧图像检测一次,则M可以取值为5,即跟踪器可以从连续的5个跟踪图像帧中选择一帧,并将选择的该帧中的有效区域提供给检测器。具体地,检测器根据有效区域确定当前检测图像帧中的检测范围;根据检测范围,通过神经网络算法预测与当前检测图像帧相对应的检测结果;其中,检测结果中包含手势检测区域以及手势类型。其中检测范围是根据有效区域确定的,具体地,检测范围既可以是与有效区域相同的区域范围,也可以是大于有效区域的区域范围,甚至也可能是小于有效区域的区域范围,具体选取的大小本领域人员可以根据实际情况自己设定。并且在上述有效区域内可以通过神经网络算法预测与当前检测图像帧相对应的检测结果,其中神经网络算法是逻辑性的思维,具体是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理。通过神经网络算法可以比较准确地预测出当前检测图像帧相对应的检测结果。由于检测范围仅为整个图像中的局部区域,因此,通过将有效区域提供给检测器,以供检测器根据有效区域输出后续的检测结果的方式,可以加快检测速度,提升效率并且缩短延时。
步骤S208,从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定输出时间最晚的检测结果中包含的手势类型。
具体地,由上述步骤S203可知,跟踪器每隔第一预设间隔从视频数据中提取一帧图像作为当前跟踪图像帧,并输出与当前跟踪图像帧相对应的跟踪结果。由于检测器可以每隔第二预设时间从视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;并且第二预设间隔大于上述第一预设间隔。其中,第二预设间隔可以根据预设的帧率设定,还可以由用户自定义设定,还可以根据其它的方式来设定。比如一秒钟内获取30帧图像,如果第一预设间隔设定为每获取2帧图像的时间间隔,则第二预设时间间隔可以设定为每获取10帧图像的时间间隔,当然还可以根据其它的方式设定为其它的值,在此不作限制。跟踪器跟踪的线程和检测器检测的线程是两个同时工作的线程,但是跟踪的速度大于检测的速度。从而当手部的手势变化不大,但是位置发生变化时,由检测器可能不能及时地检测到手部所在的位置时,由跟踪器则可以快速地检测到手部所在的位置,并且及时地根据检测到的手势对图像进行处理。在将有效区域提供给检测器,以供检测器根据有效区域输出后续的检测结果之后,在本步骤S208中从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定输出时间最晚的检测结果中包含的手势类型。具体地,发明人在实现本发明的过程中发现,由于视频的帧率较高,人手的手势动作往往会在连续的数帧图像中保持恒定,因此,在本实施例中,获取输出时间最晚的检测结果中包含的手势类型(即检测器最近一次输出的检测结果中包含的手势类型),将该手势类型确定为跟踪器跟踪到的手势跟踪区域中的手势类型,从而能够充分利用跟踪器检测速度快(但可能无法及时确定出手势的具体类型),检测器检测精度高的优势。例如,假设跟踪器目前跟踪至第8帧图像,而检测器则刚刚输出第5帧图像的检测结果,因此,直接将第5帧图像中的手势类型确定为第8帧图像中的手势类型。
步骤S209,根据与当前跟踪图像帧相对应的音频数据确定音频指令类型,判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配。
其中,在判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配时可以首先查询预设的手势指令对照库,根据手势指令对照库确定音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配;其中,手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。在查询手势指令对照库时,可以根据这种映射关系判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配。
进一步地,由于手势指令库还可以用于存储与各种手部运动轨迹相对应的音频指令类型,则可以通过确定当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;其中当前跟踪图像帧对应的前帧跟踪图像帧可以是当前跟踪图像帧对应的前帧跟踪图像帧中的一帧或者多帧,然后根据前帧跟踪图像帧中包含的手势跟踪区域以及当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;最后结合手部运动轨迹判断音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。从而能够更加全面准确地判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配。根据本步骤能够根据手势类型和音频指令的映射关系,将音频指令和手势类型、手部的动作结合起来对视频中的图像进行处理,使对图像的处理更加生动多元化。比如用户在做“降龙十八掌”的动作和手势时,还要结合“降龙十八掌”的语音指令才能在视频图像中显示对应的处理效果,从而更加的生动形象,提升了用户体验。另外,结合语音的控制方式还能够提升控制的准确率,避免错误率的发生。例如,当两个手势类型非常接近时,进一步结合语音能够有效区分各个手势类型,提升识别的准确率。
步骤S2010,若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
可选地,在确定手势处理规则的时候,不仅可以根据手势类型确定,还可以根据手部运动的动作确定。获取手部运动的动作的时候,需要确定手部运动轨迹。具体地,可以首先确定当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;其中当前跟踪图像帧对应的前帧跟踪图像帧可以是当前跟踪图像帧对应的前帧跟踪图像帧中的一帧或者多帧。然后根据前帧跟踪图像帧中包含的手势跟踪区域以及当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;最后根据输出时间最晚的检测结果中包含的手势类型以及手部运动轨迹,确定对应的手势处理规则。在确定对应的手势处理规则时可以根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。其中手势处理规则可以是根据手势类型和/或手部运动轨迹对一帧或者多帧图像添加效果贴图,该效果贴图可以是动态的或者静态的;手势处理规则还可以是根据手势类型和/或手部运动轨迹对当前跟踪图像帧添加语音特效,手势处理规则还可以是其它类型的手势处理规则,在此不再一一赘述。比如,当用手势比出一个静态的“爱心”的时候,可以在视频帧中一帧或者多帧图像中显示掉落的爱心的效果;或者当结合手势和手部运动轨迹作出“降龙十八掌”的动作时,可以在视频帧中一帧或者多帧图像中显示与“降龙十八掌”相对应的动态效果。根据输出时间最晚的检测结果中包含的手势类型以及手部运动轨迹,确定对应的手势处理规则,根据当前跟踪图像帧中包含的手势跟踪区域,对当前跟踪图像帧执行与手势处理规则相对应的手势处理操作,不仅可以根据静态的手势来对图像进行处理,还可以将静态的手势和手部的动作结合起来对图像进行处理,从而增强了图像的多元化和趣味性。
步骤S2011,将视频数据中的当前跟踪图像帧替换为执行手势处理操作后的图像帧,得到处理后的视频数据,显示处理后的视频数据。
将视频数据中的当前跟踪图像帧替换为执行手势处理操作后的图像帧,可以得到处理后的视频数据。得到处理后的视频数据后,可以将其实时的进行显示,用户可以直接看到处理后的视频数据的显示效果。
根据本实施例提供的方法,首先确定检测器已输出的检测结果中包含的手部检测区域,将检测器已输出的检测结果中包含的手部检测区域提供给跟踪器,以供跟踪器根据检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果,从而能够初始化跟踪器,使跟踪器获得跟踪的目标。然后进一步地,根据跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域,并且判断当前跟踪图像帧中包含的手势跟踪区域是否为有效区域,若否,则获取检测器在跟踪结果之后输出的检测结果,确定在跟踪结果之后输出的检测结果中包含的手部检测区域,并将在跟踪结果之后输出的检测结果中包含的手部检测区域提供给跟踪器,以供跟踪器根据在跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果,从而初始化跟踪器;若是,则继续从检测器已输出的与视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定输出时间最晚的检测结果中包含的手势类型,并根据与当前跟踪图像帧相对应的音频数据确定音频指令类型,判断音频指令类型与输出时间最晚的检测结果中包含的手势类型是否匹配,若是则确定与手势类型相对应的手势处理规则,根据当前跟踪图像帧中包含的手势跟踪区域,对当前跟踪图像帧执行与手势处理规则相对应的手势处理操作,最后将视频数据中的当前跟踪图像帧替换为执行手势处理操作后的图像帧,得到处理后的视频数据,显示处理后的视频数据。根据该方法,无需针对每一帧图像都进行检测,提升了效率,缩短了耗时,并且跟踪和检测的过程同时进行,提高了根据手势对图像进行处理的准确性,减小了失误率,从而更加准确及时地根据手势类型和手部运动趋势以及语音指令对图像帧进行处理,使图像采集设备录制的视频显示效果更加多元化,并且增强了趣味性,且提升了判断及处理的准确性。
图3示出了根据本发明一个实施例的基于视频数据的手势处理装置的功能框图。如图3所示,该装置包括:第三确定模块301,提供模块302、第一确定模块303、第二判断模块304、第二确定模块305、第一判断模块306、执行模块307、显示模块308。其中,第一确定模块303,适于每当获取到跟踪器当前输出的与所述视频数据相对应的跟踪结果后,根据所述跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;
第二确定模块305,适于从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定所述输出时间最晚的检测结果中包含的手势类型;
第一判断模块306,适于根据与所述当前跟踪图像帧相对应的音频数据确定音频指令类型,判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
执行模块307,适于若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
另外,在本发明另一个实施例中,其中,所述第一判断模块306具体适于:
查询预设的手势指令对照库,根据所述手势指令对照库确定所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
其中,所述手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。
可选地,其中,所述手势指令对照库进一步用于存储与各种手部运动轨迹相对应的音频指令类型;
则所述第一判断模块306具体适于:
确定所述当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;
根据所述前帧跟踪图像帧中包含的手势跟踪区域以及所述当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;
结合所述手部运动轨迹判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。
可选地,其中,所述装置进一步包括显示模块308,适于:
将所述视频数据中的当前跟踪图像帧替换为执行所述手势处理操作后的图像帧,得到处理后的视频数据,显示所述处理后的视频数据。
可选地,其中,所述跟踪器每隔第一预设间隔从所述视频数据中提取一帧图像作为当前跟踪图像帧,并输出与所述当前跟踪图像帧相对应的跟踪结果;
所述检测器每隔第二预设间隔从所述视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;
其中,所述第二预设间隔大于所述第一预设间隔。
可选地,其中,所述装置进一步包括第二判断模块304,适于:
判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域;
当判断结果为是时,执行所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的的步骤及其后续步骤。
可选地,其中,所述第二判断模块304具体适于:
通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;
若是,则确定所述当前跟踪图像帧中包含的手势跟踪区域为有效区域;若否,则确定所述当前跟踪图像帧中包含的手势跟踪区域为无效区域。
可选地,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为无效区域时,所述第二判断模块304进一步适于:
获取所述检测器在所述跟踪结果之后输出的检测结果,确定所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域;
将所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
可选地,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为有效区域时,所述第二判断模块304进一步适于:
将所述有效区域提供给所述检测器,以供所述检测器根据所述有效区域输出后续的检测结果。
可选地,其中,第二判断模块304具体适于:
根据所述有效区域确定当前检测图像帧中的检测范围;
根据所述检测范围,通过神经网络算法预测与所述当前检测图像帧相对应的检测结果;
其中,所述检测结果中包含手势检测区域以及手势类型。
可选地,其中,所述装置还包括:
第三确定模块301,适于确定检测器已输出的检测结果中包含的手部检测区域;
提供模块,适于将所述检测器已输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
可选地,其中,第一确定模块303具体适于:
跟踪器判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;
若是,则根据所述前帧跟踪图像帧中包含的手势跟踪区域输出与所述当前跟踪图像帧相对应的跟踪结果;
若否,则根据所述检测器提供的手部检测区域输出与所述当前跟踪图像帧相对应的跟踪结果。
可选地,其中,所述执行模块307具体适于:
根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。
其中,上述各个模块的具体工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
图4示出了根据本发明一个实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述基于视频数据的手势处理方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:
每当获取到跟踪器当前输出的与所述视频数据相对应的跟踪结果后,根据所述跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;
从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定所述输出时间最晚的检测结果中包含的手势类型;
根据与所述当前跟踪图像帧相对应的音频数据确定音频指令类型,判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
查询预设的手势指令对照库,根据所述手势指令对照库确定所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
其中,所述手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。
在一种可选的方式中,其中,所述手势指令对照库进一步用于存储与各种手部运动轨迹相对应的音频指令类型;则程序410具体可以进一步用于使得处理器402执行以下操作:
确定所述当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;
根据所述前帧跟踪图像帧中包含的手势跟踪区域以及所述当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;
结合所述手部运动轨迹判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
将所述视频数据中的当前跟踪图像帧替换为执行所述手势处理操作后的图像帧,得到处理后的视频数据,显示所述处理后的视频数据。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作,其中,所述跟踪器每隔第一预设间隔从所述视频数据中提取一帧图像作为当前跟踪图像帧,并输出与所述当前跟踪图像帧相对应的跟踪结果;
所述检测器每隔第二预设间隔从所述视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;
其中,所述第二预设间隔大于所述第一预设间隔。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域;
当判断结果为是时,执行所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的的步骤及其后续步骤。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;
若是,则确定所述当前跟踪图像帧中包含的手势跟踪区域为有效区域;若否,则确定所述当前跟踪图像帧中包含的手势跟踪区域为无效区域。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
获取所述检测器在所述跟踪结果之后输出的检测结果,确定所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域;
将所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
将所述有效区域提供给所述检测器,以供所述检测器根据所述有效区域输出后续的检测结果。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
根据所述有效区域确定当前检测图像帧中的检测范围;
根据所述检测范围,通过神经网络算法预测与所述当前检测图像帧相对应的检测结果;
其中,所述检测结果中包含手势检测区域以及手势类型。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
确定检测器已输出的检测结果中包含的手部检测区域;
将所述检测器已输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
跟踪器判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;
若是,则根据所述前帧跟踪图像帧中包含的手势跟踪区域输出与所述当前跟踪图像帧相对应的跟踪结果;
若否,则根据所述检测器提供的手部检测区域输出与所述当前跟踪图像帧相对应的跟踪结果。
在一种可选的方式中,程序410具体可以进一步用于使得处理器402执行以下操作:
根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。
确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于视频数据的手势处理的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (28)

1.一种基于视频数据的手势处理方法,其包括:
每当获取到跟踪器当前输出的与所述视频数据相对应的跟踪结果后,根据所述跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;
从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定所述输出时间最晚的检测结果中包含的手势类型;
根据与所述当前跟踪图像帧相对应的音频数据确定音频指令类型,判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
2.根据权利要求1所述的方法,其中,所述判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配的步骤具体包括:
查询预设的手势指令对照库,根据所述手势指令对照库确定所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
其中,所述手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。
3.根据权利要求2所述的方法,其中,所述手势指令对照库进一步用于存储与各种手部运动轨迹相对应的音频指令类型;
则所述判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配的步骤具体包括:
确定所述当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;
根据所述前帧跟踪图像帧中包含的手势跟踪区域以及所述当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;
结合所述手部运动轨迹判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。
4.根据权利要求1所述的方法,其中,所述对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作的步骤之后,进一步包括:
将所述视频数据中的当前跟踪图像帧替换为执行所述手势处理操作后的图像帧,得到处理后的视频数据,显示所述处理后的视频数据。
5.根据权利要求1-4任一所述的方法,其中,所述跟踪器每隔第一预设间隔从所述视频数据中提取一帧图像作为当前跟踪图像帧,并输出与所述当前跟踪图像帧相对应的跟踪结果;
所述检测器每隔第二预设间隔从所述视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;
其中,所述第二预设间隔大于所述第一预设间隔。
6.根据权利要求1所述的方法,其中,所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的步骤之前,进一步包括步骤:
判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域;
当判断结果为是时,执行所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的步骤及其后续步骤。
7.根据权利要求6所述的方法,其中,所述判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域的步骤具体包括:
通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;
若是,则确定所述当前跟踪图像帧中包含的手势跟踪区域为有效区域;若否,则确定所述当前跟踪图像帧中包含的手势跟踪区域为无效区域。
8.根据权利要求7所述的方法,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为无效区域时,所述方法进一步包括:
获取所述检测器在所述跟踪结果之后输出的检测结果,确定所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域;
将所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
9.根据权利要求6-8任一所述的方法,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为有效区域时,所述方法进一步包括:
将所述有效区域提供给所述检测器,以供所述检测器根据所述有效区域输出后续的检测结果。
10.根据权利要求9所述的方法,其中,所述检测器根据所述有效区域输出后续的检测结果的步骤具体包括:
根据所述有效区域确定当前检测图像帧中的检测范围;
根据所述检测范围,通过神经网络算法预测与所述当前检测图像帧相对应的检测结果;
其中,所述检测结果中包含手势检测区域以及手势类型。
11.根据权利要求1所述的方法,其中,所述方法执行之前,进一步包括步骤:
确定检测器已输出的检测结果中包含的手部检测区域;
将所述检测器已输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
12.根据权利要求1所述的方法,其中,跟踪器当前输出与所述视频数据相对应的跟踪结果的步骤具体包括:
跟踪器判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;
若是,则根据所述前帧跟踪图像帧中包含的手势跟踪区域输出与所述当前跟踪图像帧相对应的跟踪结果;
若否,则根据所述检测器提供的手部检测区域输出与所述当前跟踪图像帧相对应的跟踪结果。
13.根据权利要求1所述的方法,其中,所述确定与所述手势类型相对应的手势处理规则的步骤具体包括:
根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。
14.一种基于视频数据的手势处理装置,其包括:
第一确定模块,适于每当获取到跟踪器当前输出的与所述视频数据相对应的跟踪结果后,根据所述跟踪结果确定当前跟踪图像帧中包含的手势跟踪区域;
第二确定模块,适于从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果,确定所述输出时间最晚的检测结果中包含的手势类型;
第一判断模块,适于根据与所述当前跟踪图像帧相对应的音频数据确定音频指令类型,判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
执行模块,适于若是,确定与所述手势类型相对应的手势处理规则,根据所述当前跟踪图像帧中包含的手势跟踪区域,对所述当前跟踪图像帧执行与所述手势处理规则相对应的手势处理操作。
15.根据权利要求14所述的装置,其中,所述第一判断模块具体适于:
查询预设的手势指令对照库,根据所述手势指令对照库确定所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配;
其中,所述手势指令对照库用于存储各种手势类型与其对应的音频指令类型之间的映射关系。
16.根据权利要求15所述的装置,其中,所述手势指令对照库进一步用于存储与各种手部运动轨迹相对应的音频指令类型;
则所述第一判断模块具体适于:
确定所述当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域;
根据所述前帧跟踪图像帧中包含的手势跟踪区域以及所述当前跟踪图像帧中包含的手势跟踪区域确定手部运动轨迹;
结合所述手部运动轨迹判断所述音频指令类型与所述输出时间最晚的检测结果中包含的手势类型是否匹配。
17.根据权利要求14所述的装置,其中,所述装置进一步包括显示模块,适于:
将所述视频数据中的当前跟踪图像帧替换为执行所述手势处理操作后的图像帧,得到处理后的视频数据,显示所述处理后的视频数据。
18.根据权利要求14-17任一所述的装置,其中,所述跟踪器每隔第一预设间隔从所述视频数据中提取一帧图像作为当前跟踪图像帧,并输出与所述当前跟踪图像帧相对应的跟踪结果;
所述检测器每隔第二预设间隔从所述视频数据中提取一帧图像作为当前检测图像帧,并输出与所述当前检测图像帧相对应的检测结果;
其中,所述第二预设间隔大于所述第一预设间隔。
19.根据权利要求14-17任一所述的装置,其中,所述装置进一步包括第二判断模块,适于:
判断所述当前跟踪图像帧中包含的手势跟踪区域是否为有效区域;
当判断结果为是时,执行所述从检测器已输出的与所述视频数据相对应的各次检测结果中获取输出时间最晚的检测结果的步骤及其后续步骤。
20.根据权利要求19所述的装置,其中,所述第二判断模块具体适于:
通过预设的手部分类器判断所述当前跟踪的图像帧中包含的手势跟踪区域是否为手部区域;
若是,则确定所述当前跟踪图像帧中包含的手势跟踪区域为有效区域;若否,则确定所述当前跟踪图像帧中包含的手势跟踪区域为无效区域。
21.根据权利要求20所述的装置,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为无效区域时,所述第二判断模块进一步适于:
获取所述检测器在所述跟踪结果之后输出的检测结果,确定所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域;
将所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述在所述跟踪结果之后输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
22.根据权利要求19所述的装置,其中,当所述当前跟踪图像帧中包含的手势跟踪区域为有效区域时,所述第二判断模块进一步适于:
将所述有效区域提供给所述检测器,以供所述检测器根据所述有效区域输出后续的检测结果。
23.根据权利要求22所述的装置,其中,所述第二判断模块具体适于:
根据所述有效区域确定当前检测图像帧中的检测范围;
根据所述检测范围,通过神经网络算法预测与所述当前检测图像帧相对应的检测结果;
其中,所述检测结果中包含手势检测区域以及手势类型。
24.根据权利要求14所述的装置,其中,所述装置还包括:
第三确定模块,适于确定检测器已输出的检测结果中包含的手部检测区域;
提供模块,适于将所述检测器已输出的检测结果中包含的手部检测区域提供给所述跟踪器,以供所述跟踪器根据所述检测器已输出的检测结果中包含的手部检测区域输出后续的跟踪结果。
25.根据权利要求14所述的装置,其中,所述第一确定模块具体适于:
跟踪器判断当前跟踪图像帧对应的前帧跟踪图像帧中包含的手势跟踪区域是否为有效区域;
若是,则根据所述前帧跟踪图像帧中包含的手势跟踪区域输出与所述当前跟踪图像帧相对应的跟踪结果;
若否,则根据所述检测器提供的手部检测区域输出与所述当前跟踪图像帧相对应的跟踪结果。
26.根据权利要求14所述的装置,其中,所述执行模块具体适于:
根据预设的手势规则库确定与所述手势类型相对应的手势处理规则;其中,所述手势规则库用于存储各种手势类型和/或手部运动轨迹相对应的手势处理规则。
27.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-13中任一项所述的基于视频数据的手势处理方法对应的操作。
28.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-13中任一项所述的基于视频数据的手势处理方法对应的操作。
CN201711477668.5A 2017-12-29 2017-12-29 基于视频数据的手势处理方法及装置、计算设备 Active CN108052927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711477668.5A CN108052927B (zh) 2017-12-29 2017-12-29 基于视频数据的手势处理方法及装置、计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711477668.5A CN108052927B (zh) 2017-12-29 2017-12-29 基于视频数据的手势处理方法及装置、计算设备

Publications (2)

Publication Number Publication Date
CN108052927A CN108052927A (zh) 2018-05-18
CN108052927B true CN108052927B (zh) 2021-06-01

Family

ID=62129507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711477668.5A Active CN108052927B (zh) 2017-12-29 2017-12-29 基于视频数据的手势处理方法及装置、计算设备

Country Status (1)

Country Link
CN (1) CN108052927B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108921101A (zh) 2018-07-04 2018-11-30 百度在线网络技术(北京)有限公司 基于手势识别控制指令的处理方法、设备及可读存储介质
CN109902588B (zh) * 2019-01-29 2021-08-20 北京奇艺世纪科技有限公司 一种手势识别方法、装置及计算机可读存储介质
CN114390341B (zh) * 2020-10-22 2023-06-06 华为技术有限公司 一种视频录制方法、电子设备、存储介质及芯片

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797284A (zh) * 2004-12-30 2006-07-05 中国科学院自动化研究所 基于玩家姿势和语音的电子游戏场景和角色控制方法
KR20110025720A (ko) * 2009-09-05 2011-03-11 에스케이텔레콤 주식회사 아바타 기반 화상 통화 방법 및 시스템, 이를 지원하는 단말기
CN104992171A (zh) * 2015-08-04 2015-10-21 易视腾科技有限公司 一种基于2d视频序列的手势识别及人机交互方法和系统
CN106502424A (zh) * 2016-11-29 2017-03-15 上海小持智能科技有限公司 基于语音手势及肢体动作互动的增强现实系统
CN106569613A (zh) * 2016-11-14 2017-04-19 中国电子科技集团公司第二十八研究所 一种多模态人机交互系统及其控制方法
CN106648083A (zh) * 2016-12-09 2017-05-10 广州华多网络科技有限公司 增强演奏场景合成控制方法及装置
CN106708265A (zh) * 2016-12-19 2017-05-24 四川长虹电器股份有限公司 带有语音及手势识别的空气管理系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797284A (zh) * 2004-12-30 2006-07-05 中国科学院自动化研究所 基于玩家姿势和语音的电子游戏场景和角色控制方法
KR20110025720A (ko) * 2009-09-05 2011-03-11 에스케이텔레콤 주식회사 아바타 기반 화상 통화 방법 및 시스템, 이를 지원하는 단말기
CN104992171A (zh) * 2015-08-04 2015-10-21 易视腾科技有限公司 一种基于2d视频序列的手势识别及人机交互方法和系统
CN106569613A (zh) * 2016-11-14 2017-04-19 中国电子科技集团公司第二十八研究所 一种多模态人机交互系统及其控制方法
CN106502424A (zh) * 2016-11-29 2017-03-15 上海小持智能科技有限公司 基于语音手势及肢体动作互动的增强现实系统
CN106648083A (zh) * 2016-12-09 2017-05-10 广州华多网络科技有限公司 增强演奏场景合成控制方法及装置
CN106708265A (zh) * 2016-12-19 2017-05-24 四川长虹电器股份有限公司 带有语音及手势识别的空气管理系统

Also Published As

Publication number Publication date
CN108052927A (zh) 2018-05-18

Similar Documents

Publication Publication Date Title
US20240152548A1 (en) Electronic apparatus for searching related image and control method therefor
CN108876804B (zh) 抠像模型训练和图像抠像方法、装置和系统及存储介质
KR102433931B1 (ko) 움직임 인식 방법 및 움직임 인식 장치
CN107003727B (zh) 运行多个应用的电子设备及用于控制电子设备的方法
CN108052927B (zh) 基于视频数据的手势处理方法及装置、计算设备
US10846515B2 (en) Efficient face detection and tracking
US10867390B2 (en) Computer vision processing
US10366345B2 (en) Continuous interaction learning and detection in real-time
EP3540574B1 (en) Eye tracking method, electronic device, and non-transitory computer readable storage medium
CN108096833B (zh) 基于级联神经网络的体感游戏控制方法及装置、计算设备
CN109740508B (zh) 一种基于神经网络系统的图像处理方法及神经网络系统
US20150378440A1 (en) Dynamically Directing Interpretation of Input Data Based on Contextual Information
CN110427806A (zh) 视频识别方法、装置及计算机可读存储介质
US20230418388A1 (en) Dynamic gesture identification method, gesture interaction method and interaction system
CN109685797A (zh) 骨骼点检测方法、装置、处理设备及存储介质
CN109035303B (zh) Slam系统相机跟踪方法及装置、计算机可读存储介质
CN110751021A (zh) 图像处理方法、装置、电子设备和计算机可读介质
CN109086725B (zh) 手部跟踪方法及机器可读存储介质
CN108108707A (zh) 基于视频数据的手势处理方法及装置、计算设备
CN108181989B (zh) 基于视频数据的手势控制方法及装置、计算设备
EP3654205A1 (en) Systems and methods for generating haptic effects based on visual characteristics
WO2021248857A1 (zh) 一种障碍物属性判别方法、系统及智能机器人
CN110141861B (zh) 控制方法、装置及终端
JP2023035870A (ja) ヒューマン・マシン・インターフェースのアプリケーションにおけるコンテンツ識別のためのマルチモーダル・センサ・フュージョン
CN115079818A (zh) 一种手部捕捉方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant