掌桥专利:专业的专利平台
掌桥专利
首页

手势识别方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:58:26


手势识别方法、装置、电子设备和存储介质

技术领域

本公开涉及图像处理技术领域,尤其涉及一种手势识别方法、装置、电子设备和存储介质。

背景技术

手势识别技术可提供良好的人机互动性,并提高操作便利性,已受到业界广泛的重视。当用户手部与镜头之间存在其他物体遮挡时,此时无法正确检测到用户手部的手势,降低使用体验。

发明内容

本公开提供一种手势识别方法、装置、电子设备和存储介质,以解决上述技术问题。

根据本公开的第一方面,提供一种手势识别方法,所述方法包括:

对当前视频图像进行检测,得到包含手部的至少一个手部图像;

对各手部图像进行识别,得到手势分类;

根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,所述目标手势数据列表包括手势位置、手势分类和手势控制权。

可选地,对当前视频图像进行检测,得到包含手部的至少一个手部图像,包括:

对当前视频图像进行手部检测,得到第一手部检测结果;所述第一手部检测结果包括检测到手部的第一检测结果或者未检测到手部的第二检测结果;

响应于确定所述第一手部检测结果为第二检测结果,将所述当前视频图像分割为预设数量个图像子块,并对各个图像子块进行手部势检测得到第二手部检测结果;

对所述第一手部检测结果和所述第二手部检测结果进行冗余筛选处理,得到手部检测框;

裁剪所述当前视频图像中手部检测框所在区域,得到至少一个包含手势的手部图像。

可选地,对当前视频图像进行检测,得到包含手部的至少一个手部图像,包括:

获取手部识别模型,所述手部识别模型的输入数据为视频图像,输出数据为视频图像中手部区域的边缘坐标数据;

将所述当前视频图像输入到所述手部识别模型,得到所述当前视频图像中手部区域的边缘坐标数据;

根据所述手部区域的边缘坐标数据裁切所述当前视频图像,得到包含手部的至少一个手部图像。

可选地,所述手部识别模型通过以下步骤训练得到,包括:

获取手部图像训练样本集合,所述手部图像训练样本集合包括多张手部图像训练样本,各张手部图像训练样本包括至少一种手势;

依次将各张手部图像训练样本输入到手部识别模型,得到手部识别结果;

获取所述手部识别结果与所述手部图像训练样本的标注数据的损失值;

响应于所述损失值小于或等于预设损失值阈值,停止手部识别模型训练,得到所述手部识别模型。

可选地,所述手部图像训练样本集合包括公开图像训练样本子集和/或定制图像训练样本子集,获取手部图像训练样本集合中的定制图像训练样本子集,包括:

生成定制图像采集界面,所述定制图像采集界面包括图像采集框、手部类型标注框、拍摄控件和保存控件;

响应于检测到所述拍摄控件被触发,在所述图像采集框内显示所拍摄的定制图像;

获取所述手部类型标注框内输入的标注数据;

响应于检测到所述保存控件被触发,生成包含所述定制图像和所述标注数据的定制图像初始样本;

对所述定制图像初始样本进行预设处理,得到多张定制图像样本,作为所述定制图像训练样本子集;

所述预设处理包括以下至少一种:尺寸变换、角度旋转、马赛克处理和滤波处理。

可选地,根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,包括:

根据手部检测框的尺寸大小对各手部图像进行排序,并更新所述历史手势数据列表内各手部检测框及其手势分类;

响应于所述控制权为空,将所述历史手势数据列表中的控制权更新为手部检测框尺寸最大的手部图像并锁定所述控制权,得到所述目标手势数据列表。

可选地,根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,包括:

响应于所述控制权为空且未检测手势分类或者响应于所述控制权不为空且拥有控制权的手势未被检测到的时长超过预设时长,对所述视频图像进行重检测处理,得到第三手部检测结果;

根据所述第三手部检测结果更新所述历史手势数据列表。

可选地,根据所述第三手部检测结果更新所述历史手势数据列表,包括:

响应于所述第三手部检测结果为空,释放所述历史手势数据列表中手部检测框的控制权。

可选地,根据所述第三手部检测结果更新所述历史手势数据列表,包括:

响应于所述第三手部检测结果不为空,对手部图像进行手势分类并更新所述历史手势数据列表内手部检测框的手势分类。

可选地,根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,包括:

根据手部检测框的尺寸大小对各手部图像进行排序,并更新所述历史手势数据列表内各手部检测框及其手势分类;

响应于当前视频图像中拥有控制权的手部检测框的手势分类与所述历史手势数据列表中前一帧视频图像的手势分类不同,释放所述手部检测框的控制权。

根据本公开的第二方面,提供一种手势识别装置,所述装置包括:

手部图像获取模块,用于对当前视频图像进行检测,得到包含手部的至少一个手部图像;

手势分类获取模块,用于对各手部图像进行识别,得到手势分类;

手势列表获取模块,用于根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,所述目标手势数据列表包括手势位置、手势分类和手势控制权。

可选地,所述手部图像获取模块包括:

第一结果检测模块,用于对当前视频图像进行手部检测,得到第一手部检测结果;所述第一手部检测结果包括检测到手部的第一检测结果或者未检测到手部的第二检测结果;

第二结果检测模块,用于响应于确定所述第一手部检测结果为第二检测结果,将所述当前视频图像分割为预设数量个图像子块,并对各个图像子块进行手部势检测得到第二手部检测结果;

手部检测框获取模块,用于对所述第一手部检测结果和所述第二手部检测结果进行冗余筛选处理,得到手部检测框;

手部图像获取模块,用于裁剪所述当前视频图像中手部检测框所在区域,得到至少一个包含手势的手部图像。

可选地,所述手部图像获取模块包括:

识别模型获取子模块,用于获取手部识别模型,所述手部识别模型的输入数据为视频图像,输出数据为视频图像中手部区域的边缘坐标数据;

边缘坐标获取子模块,用于将所述当前视频图像输入到所述手部识别模型,得到所述当前视频图像中手部区域的边缘坐标数据;

手部图像获取模块,用于根据所述手部区域的边缘坐标数据裁切所述当前视频图像,得到包含手部的至少一个手部图像。

可选地,所述装置还包括模型训练模块,所述模型训练模块用于训练所述手部识别模型,所述模型训练模块包括:

样本集合获取子模块,用于获取手部图像训练样本集合,所述手部图像训练样本集合包括多张手部图像训练样本,各张手部图像训练样本包括至少一种手势;

识别结果获取子模块,用于依次将各张手部图像训练样本输入到手部识别模型,得到手部识别结果;

损失值获取子模块,用于获取所述手部识别结果与所述手部图像训练样本的标注数据的损失值;

识别模型获取子模块,用于响应于所述损失值小于或等于预设损失值阈值,停止手部识别模型训练,得到所述手部识别模型。

可选地,所述手部图像训练样本集合包括公开图像训练样本子集和/或定制图像训练样本子集,所述样本集合获取子模块包括:

采集界面生成单元,用于生成定制图像采集界面,所述定制图像采集界面包括图像采集框、手部类型标注框、拍摄控件和保存控件;

定制图像获取单元,用于响应于检测到所述拍摄控件被触发,在所述图像采集框内显示所拍摄的定制图像;

标注数据获取单元,用于获取所述手部类型标注框内输入的标注数据;

初始样本生成单元,用于响应于检测到所述保存控件被触发,生成包含所述定制图像和所述标注数据的定制图像初始样本;

样本子集获取单元,用于对所述定制图像初始样本进行预设处理,得到多张定制图像样本,作为所述定制图像训练样本子集;

所述预设处理包括以下至少一种:尺寸变换、角度旋转、马赛克处理和滤波处理。

可选地,所述手势列表获取模块包括:

历史列表更新子模块,用于根据手部检测框的尺寸大小对各手部图像进行排序,并更新所述历史手势数据列表内各手部检测框及其手势分类;

手势列表获取子模块,用于响应于所述手势分类不为空,将所述历史手势数据列表中的控制权更新为手部检测框尺寸最大的手部图像并锁定所述控制权,得到所述目标手势数据列表。

可选地,所述手势列表获取模块包括:

第三结果获取子模块,用于响应于所述控制权为空且未检测手势分类或者响应于所述控制权不为空且拥有控制权的手势未被检测到的时长超过预设时长,对所述视频图像进行重检测处理,得到第三手部检测结果;

手势列表获取子模块,用于根据所述第三手部检测结果更新所述历史手势数据列表。

可选地,所述手势列表获取子模块包括:

控制权释放子模块,用于响应于所述第三手部检测结果为空,释放所述历史手势数据列表中手部检测框的控制权。

可选地,所述手势列表获取子模块包括:

控制权更新子模块,用于响应于所述第三手部检测结果不为空,对手部图像进行手势分类并更新所述历史手势数据列表内手部检测框的手势分类。

可选地,所述手势列表获取模块包括:

手势分类更新子模块,用于根据手部检测框的尺寸大小对各手部图像进行排序,并更新所述历史手势数据列表内各手部检测框及其手势分类;

控制权释放子模块,用于响应于当前视频图像中拥有控制权的手部检测框的手势分类与所述历史手势数据列表中前一帧视频图像的手势分类不同,释放所述手部检测框的控制权。

根据本公开的第三方面,提供一种电子设备,包括:

处理器和存储器;

所述存储器用于存储所述处理器可执行的计算机程序;

其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如第一方面任一项所述的方法。

根据本公开的第四方面,提供一种非暂态计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如第一方面任一项所述的方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

本实施例的方案提供的方案可以对当前视频图像进行检测,得到包含手部的至少一个手部图像;然后,对各手部图像进行识别,得到手势分类;之后,根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,所述目标手势数据列表包括手势位置、手势分类和手势控制权。这样,本方案通过手势分类来更新历史手势数据列以跟踪手势控制权,避免识别过程中被遮挡而造成误识别或者控制权不准确的问题,有利于提高手势识别的准确度,提升使用体验。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

图1为本公开一实施例的一种手势识别方法的流程图。

图2为本公开一实施例的一种获取手部图像的流程图。

图3为本公开一实施例的一种获取定制图像训练样本子集的流程图。

图4为本公开一实施例的一种图像采集界面的示意图。

图5为本公开一实施例的一种输入标注数据的示意图。

图6为本公开一实施例的一种控制权更新的流程图。

图7为本公开一实施例的一种具有控制权手势的示意图。

图8为本公开一实施例的一种手势识别方法的流程图。

图9为本公开一实施例的一种手势识别装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置的例子。

为解决上述技术问题,本公开实施例提供了一种手势识别方法、装置、电子设备和存储介质。上述手势识别方法可以适用于电子设备,该电子设备可以包括但不限于手机、电脑、平板、电子书、立体显示屏、会议一体机、电子白板等具有交互功能的设备。参见图1,本实施例提供的一种手势识别方法,包括步骤11~步骤13。

在步骤11中,对当前视频图像进行检测,得到包含手部的至少一个手部图像。

在一实施例中,电子设备可以对当前视频图像进行检测,得到包含手部的至少一个手部图像,参见图2,包括步骤21~步骤24。

在步骤21中,对当前视频图像进行手部检测,得到第一手部检测结果;所述第一手部检测结果包括检测到手部的第一检测结果或者未检测到手部的第二检测结果。

本步骤中,电子设备内存储手部检测模型,用于检测输入图像中的手部。该手部检测模型可以采用推理速度较快的网络模型实现,例如RFB-Net网络模型,技术人员可以选择相应的模型,相应方案落入本公开的保护范围。

本步骤中,上述手部检测模型是已训练完的网络模型,其训练过程可以包括:

(1)构建训练样本集。

选取若干张包含人体手部的图像,各个图像中手部的姿势各个不相同,例如正视图、俯视图、侧视图等,从而得到初始样本集。然后,可以对初始样本集中的各个图像进行增强处理,例如随机选取至少两个图像进行拼接得到拼接图像并加入初始样本集,从而增加初始样本集中图像的数量;又如,对初始样本集中各个图像的尺寸进行随机缩小或者放大,得到不同尺寸的缩放图像,并加入到初始样本集,从而增加初始样本集中图像的数量;再如,将初始样本集中各个图像进行尺寸调整,得到尺寸相同的各个图像,得到训练样本集。

(2)选取手部检测模型。

构建手部检测模型,选择推理速度较快的轻量型网络模型实现,例如RFB-Net网络模型。在一示例中,初始手部检测模型可以采用迁移学习方式进行初步学习,从而提高训练效率。

(3)训练手部检测模型。

将训练样本集分成训练子集和验证子集,将训练子集中各个图像依次输入到初始手部检测模型进行训练,然后将验证子集中的图像输入到训练后的手部检测模型,并统计识别准确率;当识别准确率超过预设识别阈值(例如98%,可调整)时,确定手部检测模型完成训练。或者,输入到手部检测模型的训练子集中图像的数量超过预设数量阈值(例如数万次,可调整)时,确定手部检测模型完成训练。

本步骤中,电子设备在获取到视频流时,可以依次将每一个图像作当前视频图像作相同处理,后续实施例中仅描述对一个当前视频图像的处理过程。电子设备可以将当前视频图像输入到手部检测模型进行手部检测,得到手部检测结果,后续称之为第一手部检测结果以示区别。其中,该第一手部检测结果包括检测到手部的第一检测结果或者未检测到手部的第二检测结果。

可理解的是,第一检测结果可以包括当前视频图像中手部所在位置、手部区域的手部检测框位置等,可以根据具体场景设置检测结果包含的内容,在此不作限定。

在步骤22中,响应于确定所述第一手部检测结果为第二检测结果,将所述当前视频图像分割为预设数量个图像子块,并对各个图像子块进行手部势检测得到第二手部检测结果。

本步骤中,第一手部检测结果可以包括第二检测结果,即当前视频图像中未检测到手部,此时电子设备可以响应于确定第一手部检测结果为第二检测结果,将当前视频图像分割为预设数量个图像子块。其中预设数量可以包括但不限于4、9、16、25等,可以根据具体场景进行设置。然后,将当前视频图像的各个图像子块的尺寸放大至当前视频图像的尺寸,并输入到手势检测模型进行手部检测,得到手部检测结果,后续称之为第二手部检测结果以示区别。其中第二手部检测结果可以包括检测到手部的第一检测结果或者未检测到手部的第二检测结果。

本步骤中,将当前视频图像分割为图像子块再放大处理,可以找到当前视频图像未检测到的较小手部,可以提高手部检测的准确率。

需要说明的是,上述实施例的方案中描述了将当前视频图像分割一次的方案,在第二手部检测结果仍然是第二检测结果即图像子块内未检测到手部时,可以继续对图像子块进行分割为多个图像子块,图像子块的数量与第一次分割时的子块数量相同。考虑到未分割检测和第一次分割再检测后的检测结果通常可以满足要求,在一示例中,第一次分割之后的分割成子块的数量可以呈递减状态,例如,第一次将当前视频图像分割成9个图像子块;第二次将各个图像子块分割成4个图像子块;第三次将第二次分割的各个图像子块分割成2个图像子块。并在每次分割之后对分割得到的图像子块进行尺寸调整和调整手部检测得到第二手部检测结果。也就是说,在一示例中,电子设备可以对当前视频图像进行至少一次的分割再手部检测的过程,达到提高手部检测的准确率的效果。

在步骤23中,对所述第一手部检测结果和所述第二手部检测结果进行冗余筛选处理,得到手部检测框。

考虑到第一手部检测结果和第二手部检测结果可以包括多个第一检测结果,即从当前视频图像中检测到多处手部,该多处手部可能存在重叠的部分,因此需要进行冗余筛选处理。在一示例中,电子设备可以采用非极大抑制方法(Non Max Suppression,NMS)对第一手部检测结果和第二手部检测结果中的手部检测框进行筛选,以保留重叠手部检测框中的尺寸最大的手部检测框,得到筛选后的手部检测框。

需要说明的是,考虑到第二手部检测结果中是图像子块中手部的检测结果,可以根据当前视频图像和图像子块的位置关系将手部检测框的位置还原到当前视频图像之内,从而保证检测结果的准确性。

在步骤24中,裁剪所述当前视频图像中手部检测框所在区域,得到至少一个包含手势的手部图像。

本步骤中,在获取到当前视频图像中手部的手部检测框之后,电子设备可以裁剪当前视频图像中各个手部检测框所在区域,得到至少一个包含手势的手部图像。

在另一实施例中,电子设备可以对当前视频图像进行检测,得到包含手部的至少一个手部图像,包括:获取手部识别模型,所述手部识别模型的输入数据为视频图像,输出数据为视频图像中手部区域的边缘坐标数据;将所述当前视频图像输入到所述手部识别模型,得到所述当前视频图像中手部区域的边缘坐标数据;根据所述手部区域的边缘坐标数据裁切所述当前视频图像,得到包含手部的至少一个手部图像。

本实施例中,上述手部识别模型通过以下步骤训练得到,包括:获取手部图像训练样本集合,所述手部图像训练样本集合包括多张手部图像训练样本,各张手部图像训练样本包括至少一种手势;依次将各张手部图像训练样本输入到手部识别模型,得到手部识别结果;获取所述手部识别结果与所述手部图像训练样本的标注数据的损失值;响应于所述损失值小于或等于预设损失值阈值,停止手部识别模型训练,得到所述手部识别模型。

在一示例中,手部图像训练样本集合包括公开图像训练样本子集,和/或,定制图像训练样本子集。以获取定制图像训练样本子集为例,电子设备获取手部图像训练样本集合中的定制图像训练样本子集,参见图3,包括步骤31~步骤35。

在步骤31中,生成定制图像采集界面,所述定制图像采集界面包括图像采集框、手部类型标注框、拍摄控件和保存控件。

参见图4,定制图像采集界面41包括图像采集框42,手部类型标注框44、拍摄控件43和保存控件45。电子设备的摄像头可以采集用户作为预览图像并在图像采集框42内显示。在一些可能示例中,可以在图像采集框内部或者外部显示提示信息,例如靠近、远离、调整手部方向等,从而得到采集到不同的预览图像。当预览图像满足拍摄要求时,如手部清晰度超过预设清晰度阈值,用户可以触发上述拍摄控件43。

在步骤32中,响应于检测到所述拍摄控件被触发,在所述图像采集框内显示所拍摄的定制图像。

在步骤33中,获取所述手部类型标注框内输入的标注数据。

参见图5,手部类型标注框内输入的标注数据为“OK手势”。

在步骤34中,响应于检测到所述保存控件被触发,生成包含所述定制图像和所述标注数据的定制图像初始样本。

在步骤35中,对所述定制图像初始样本进行预设处理,得到多张定制图像样本,作为所述定制图像训练样本子集。所述预设处理包括以下至少一种:尺寸变换、角度旋转、马赛克处理和滤波处理。

本步骤中,电子设备可以定制图像初始样本进行预设处理,例如,将每张定制图像初始图像调整为不同的尺寸,得到a张不同尺寸的图像;然后对a张不同尺寸的图像中各张图像进行不同程度的马赛克处理,得到a*a张不同模糊程度的图像;之后,可以对a*a张不同模糊程度的图像中各张图像进行滤波处理,得到a*a*a张滤波程度不同的图像;最后,对a*a*a张滤波程度不同的图像中各张图像进行角度旋转,得到a*a*a*a张角度不同的图像。这样,经过上述预设处理最多可以得到(1+a+a*a+a*a*a+a*a*a*a)张图像作为定制图像训练样本子集。当然可以根据具体场景选择预设处理所得定制图像训练样本子集中样本的数量,相应方案落入本公开的保护范围。

需要说明的是,上述定制图像训练样子子集可以是在第一次手势识别模型时获取,还可以是在用户有增加手势类型时新增训练样本使用。通过新增加的定制图像训练样本子集可以对手势识别模型继续训练,从而保证手势识别模型能够识别出用户所需的各类手势,提高手势识别模型的适用范围。

下面以获取具体场景的手势识别模型为例,包括:

一,训练样本集合预处理

1,获取手部图像训练样本集合。

2,对手部图像训练样本集合中的各张训练样本进行统一设定,将训练样本的尺寸转换为1280×720像素。

3,采用Perona-Malik方程对训练样本做图像去躁,Perona-Malik方程为为

式(1)中,

4,对手部图像训练样本集合中多张含有手部的训练样本进行泊松抠图处理以获得权重alpha;

(41)进行全局抠图处理,如式(2)和(3)所示。

式(2)中,I表示训练样本中手部区域,α表示权重,F为训练样本图像,B为背景图像,Δ为梯度算子。

(42)进行局部抠图处理,如式(4)所示。

式(4)中,I表示最终抠图的结果,α表示权重,

式(5)中,x,y为横纵坐标信息,σ为标准差。

(43)根据局部抠图的权重精细化改进全局抠图中的权重值,得到最终图像的权重alpha。

5,对训练样本进行归一化处理,如式(6)所示。

Input=(Input-mean)/std; (6)

式(6)中,Input表示图像数据,mean表示平均值,为[0.5,0.5,0.5],std表示方差值,在一示例中std取[0.229,0.224,0.225]。

二,模型训练

1,选择轻量化的手部识别模型(如MobileNetV3,FBNetV3等)处理训练样本。

2,使用h-wish作为激活函数,h-wish如下所示:

式(7)中,x为上一层的输出,ReLU为ReLU激活函数。

3,将处理结果输出,输出结果为alpha。

4,将模型输出的权重和最初通过图像处理获得的权重alpha计算均方误差损失,如式(8)所示。

基于所计算的损失更新模型的每一个权重的梯度。

5,使用梯度更新模型权重。

6,输出最佳pth网络模型。

三,模型转换。

1,将pth模型转换为onnx模型;

2,将onnx模型转换为openvino模型;

3,对openvino模型进行量化处理。

四,模型部署流程:

1,将输入图像或者帧进行尺寸调整,例如1920x1080像素;

2,通过Perona-Malik方程对图像去躁;

3,将输入图像或者图像帧进行归一化;

4,将归一化之后的数据输入openvino模型,获得权重alpha;

5,通过权重alpha进行背景融合,融合方法如下;

I=alpha×F+(1-alpha)×B; (9)

式(9)中,I表示最终抠图的结果即手部图像,alpha表示权重,F为输入的训练样本图像,B为背景图像。

在步骤12中,对各手部图像进行识别,得到手势分类。

本步骤中,电子设备内存储手势分类模型,用于检测输入图像中的手势分类。该手势分类模型可以采用分类速度较快的轻量型网络模型实现,例如MobileNetV2网络模型,技术人员可以选择相应的模型,相应方案落入本公开的保护范围。本步骤中通过采用轻量型的手势分类模型,可以保证在视频显示过程对当前视频图像的手部进行手势分类,保证分类效率。

本步骤中,上述手势分类模型是已训练完的网络模型,其训练过程可以包括:

(1)构建分别训练样本集。

选取若干张包含人体手部的图像,各个图像中手部的手势分类和数量不相同,其中手势分类可以包括但不限于OK类型、大拇哥类型(first)、剪刀手类型(scissors)、数字1类型、数字6类型等,可以根据具体场景选择手势类型,此时可以得到初始分类样本集。

需要说明的是,上述手势分类与交互场景相关。例如,在交互场景为控制场景时,可以选择数字1类型表示执行第一步骤、剪刀手类型表示第二步骤、OK类型表示确定,数字6类型表示返回上一步骤等。

然后,可以对初始分类样本集中的各个图像进行增强处理,例如随机水平和/或垂直旋转得到旋转图像并加入初始分类样本集,对各图像随机添加(如高斯模糊)噪声数据得到噪声图像并加入初始分类样本集,从而增加初始分类样本集中图像的数量;再如,将初始分类样本集中各个图像进行尺寸调整和像素数据归一化处理,得到手势训练样本集。

(2)选取手势分类模型。

构建手势分类模型,选择分类速度较快的轻量型网络模型实现,例如MobileNetV2网络模型。在一示例中,初始手势分类模型可以采用迁移学习方式进行初步学习,从而提高训练效率。

(3)训练手势分类模型。

将手势训练样本集分成训练子集和验证子集,将训练子集中各个图像依次输入到初始手势分类模型进行训练,然后将验证子集中的图像输入到训练后的手势分类模型,并统计分类准确率;当分类准确率超过预设分类阈值(例如98%,可调整)时,确定手势分类模型完成训练。或者,输入到手势分类模型的训练子集中图像的数量超过预设数量阈值(例如数万次,可调整)时,确定手势分类模型完成训练。

本步骤中,电子设备可以将各个手部图像输入到手势分类模型进行分类检测,得到各个手部图像对应的手势分类。在一示例中,可以将手势分类为8个分类,即数字1类型(first)、手掌类型(palm)、八字形类型(eight)、OK类型(ok)、剪刀手类型(scissors)、点赞类型(good)七种手势和除这七种手势外其他手势类别(other)。

在步骤13中,根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,所述目标手势数据列表包括手势位置、手势分类和手势控制权。

本步骤中,电子设备可以根据各个手部图像的手势分类更新历史手势数据列表,得到目标手势数据列表。其中,目标手势数据列表包括手势手部检测框位置、手势分类和手势控制权。其中,手势控制权表示当前视频图像中需要被执行的手势。

在一示例中,手势数据列表的格式如表1所示。

表1手势数据列表

在一示例中,参见图6,电子设备可以按照各个手部检测框的尺寸大小对各手部图像进行排序,并更新历史手势数据列表内各手部检测框及其手势分类。例如,在表1的最后一行之后插入新的一行,把各个手部检测框的位置、手势分类。然后,电子设备可以判断历史手势数据列表中前一个视频图像的控制权是否为空。当控制权为空时,电子设备可以将历史手势数据列表中控制权更新为手部检测框尺寸最大的手部图像,并锁定控制权,从而得到目标手势数据列表。

在另一示例中,继续参见图6,电子设备可以根据手部检测框的尺寸大小对各手部图像进行排序,并更新历史手势数据列表中手部检测框的位置及其手势分类,例如在表1中创建当前视频图像的一行数据。然后,当当前视频图像中拥有控制权的手部检测框的手势分类与历史手势数据列表中前一帧视频图像的手势分类不同(即同一个手部在当前视频图像和前一视频图像的手势分类不同)时,电子设备可以释放该手部检测框的控制权,并将控制权置为空,例如控制权的取值置为0。

在又一示例中,继续参见图6,当历史手势数据列表中前一个视频图像的控制权为空且未检测到手势分类时,或者,历史手势数据列表中前一个视频图像的控制权不为空且拥有控制权的手势未被检测到的时长超过预设时长(例如3-5帧视频图像对应的时长)时,电子设备可以对视频图像进行重检测处理,从而得到第三手部检测结果。

本示例中,电子设备对视频图像进行重检测处理,包括:

(1)初始化搜索窗。

(2)色彩投影。

(3)迭代寻优找到概率分布的极值来定位目标(手部);

(31)通过色彩投影获取的颜色概率分布图,选取搜索框W;

(32)计算0阶距:M

(33)计算一阶距:M

(34)计算搜索窗的质心:x

(35)调整搜索窗大小,获取搜索窗的大小和中心位置。

(4)在下一帧图像中重新计算搜索窗的大小和中心位置,并返回步骤(2)重新计算。

本示例中,电子设备可以根据第三手部检测结果更新历史手势数据列表,包括:

当第三手部检测结果为空即在当前视频图像中未检测到手部时,电子设备可以释放历史手势数据列表中手部检测框的控制权。在一示例中,在视频流的视频图像中长时间(超过预设时长)未检测到手部时,说明手部有可能被遮挡,此时可以释放手势检测框的控制权,以保证控制权的有效性。

当第三手部检测结果不为空即在当前视频图像中检测到手部时,对当前视频图像对应的手部图像进行手势分类,并根据手势分类更新历史手势数据列表内手部检测框的手势分类,然后按照手势分类更新历史手势数据列表,例如并将控制权更新为手部检测框尺寸最大的手部图像,达到转换控制权的效果。

需要说明的是,本实施例中目标手势数据列表可以存储到本地存储器和/或云端。例如,电子设备可以将目标手势数据列表存储到本地存储器,可以直接读取该目标手势数据列表。又如,电子设备可以将目标手势数据列表上传到云端,可以降低对本地存储器的占用,降低电子设备的成本;又如,电子设备可以将目标手势数据列表的部分数据上传到云端而其他数据存储到本地存储器,在使用时从云端读取目标手势数据列表的数据与本地存储的数据进行组合得到最终的目标手势数据列表。

在一实施例中,电子设备在确定具有手势控制权的手部后,可以在预览界面内显示该手势,如图7所示,具有控制权的手部的周围可以显示手势类型,如“OK”类型;而尺寸较小的“1”字形手势不具有控制权则不显示其类型,从而提醒用户。

在一实施例中,电子设备在确定手势控制权的手部后,当手势表示对当前显示图像进行抠图时,可以采用上述获取手部识别模型的方式获取图像中的目标对象,其区别在于将手部识别模型识别手部更新为识别目标对象即可,而训练样本集合中的样本图像中包含目标对象,训练过程与上述手部识别模型的训练过程相同,在此不再赘述。

至此,本实施例的方案提供的方案可以对当前视频图像进行检测,得到包含手部的至少一个手部图像;然后,对各手部图像进行识别,得到手势分类;之后,根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,所述目标手势数据列表包括手势位置、手势分类和手势控制权。这样,本方案通过手势分类来更新历史手势数据列以跟踪手势控制权,避免识别过程中被遮挡而造成误识别或者控制权不准确的问题,有利于提高手势识别的准确度,提升使用体验。

下面结合实施例描述本公开提供的一种手势识别方法,参见图8,包括:

电子设备的摄像头可以采集视频流或者录像视频流,并将视频流中的每一帧图像作为当前视频图像。

电子设备可以将该当前视频图像输入到手部检测模型,得到第一手部检测结果。当第一手部检测结果表示未检测到手部的第二检测结果时,电子设备可以将该当前视频图像分割为预设数量个图像子块;然后将各个图像子块调整尺寸后输入到手部检测模型,得到第二手部检测结果。

电子设备可以对第一手部检测结果和第二手部检测结果进行冗余筛选,得到手部检测框。然后,根据手部检测框在当前视频图像上裁剪图像,得到手部图像。

电子设备可以将各个手部图像依次输入手势分类模型,得到各个手部图像对应的手势分析。考虑到手部图像与手部检测框是一一对应的,因此也可以称之为手部检测框的手势分类。

电子设备可以获取如表1所示的历史手势数据列表,并根据手部检测框的手势分类更新该历史手势数据列表。

当历史手势数据列表中控制权为空且当前视频图像识别到手势类型,此时可以按照尺寸大小对手部检测框进行排序,更新历史手势数据列表内的手部检测框的位置和手势类型;并且,将控制权更新为尺寸最大的手部检测框。

当历史手势数据列表中控制权不为空且当前视频图像识别到手势类型且与前一帧视频图像中同一手势检测框的手势类型不同,此时可以按照尺寸大小对手部检测框进行排序,更新历史手势数据列表内的手部检测框的位置和手势类型;并且,释放控制权。

当历史手势数据列表中控制权不为空且当前视频图像未识别出手势类型,或者历史手势数据列表中控制权为空且当前视频图像未识别出手势类型时,此时可以对当前视频图像进行重检测处理,得到第三手部检测结果。

当第三手部检测结果为空即在当前视频图像中未检测到手部时,电子设备可以释放历史手势数据列表中手势检测框的控制权,也就是说,在视频流的视频图像中长时间(超过预设时长)未检测到手部时,说明手部有可能被遮挡,此时可以释放最近一个手势检测框的控制权,以保证控制权的有效性。

当第三手部检测结果不为空即在当前视频图像中检测到手部时,对当前视频图像对应的手部图像进行手势分类,并根据手势分类更新历史手势数据列表内手部检测框的手势分类,然后根据手势分类更新历史手势数据列表。

在本公开实施例提供的一种手势识别方法的基础上,本公开实施例还提供了一种手势识别装置,参见图9,所述装置包括:

手部图像获取模块91,用于对当前视频图像进行检测,得到包含手部的至少一个手部图像;

手势分类获取模块92,用于对各手部图像进行识别,得到手势分类;

手势列表获取模块93,用于根据所述手势分类更新历史手势数据列表,得到目标手势数据列表,所述目标手势数据列表包括手势位置、手势分类和手势控制权。

在一实施例中,所述手部图像获取模块包括:

第一结果检测模块,用于对当前视频图像进行手部检测,得到第一手部检测结果;所述第一手部检测结果包括检测到手部的第一检测结果或者未检测到手部的第二检测结果;

第二结果检测模块,用于响应于确定所述第一手部检测结果为第二检测结果,将所述当前视频图像分割为预设数量个图像子块,并对各个图像子块进行手部势检测得到第二手部检测结果;

手部检测框获取模块,用于对所述第一手部检测结果和所述第二手部检测结果进行冗余筛选处理,得到手部检测框;

手部图像获取模块,用于裁剪所述当前视频图像中手部检测框所在区域,得到至少一个包含手势的手部图像。

在一实施例中,所述手部图像获取模块包括:

识别模型获取子模块,用于获取手部识别模型,所述手部识别模型的输入数据为视频图像,输出数据为视频图像中手部区域的边缘坐标数据;

边缘坐标获取子模块,用于将所述当前视频图像输入到所述手部识别模型,得到所述当前视频图像中手部区域的边缘坐标数据;

手部图像获取模块,用于根据所述手部区域的边缘坐标数据裁切所述当前视频图像,得到包含手部的至少一个手部图像。

在一实施例中,所述装置还包括模型训练模块,所述模型训练模块用于训练所述手部识别模型,所述模型训练模块包括:

样本集合获取子模块,用于获取手部图像训练样本集合,所述手部图像训练样本集合包括多张手部图像训练样本,各张手部图像训练样本包括至少一种手势;

识别结果获取子模块,用于依次将各张手部图像训练样本输入到手部识别模型,得到手部识别结果;

损失值获取子模块,用于获取所述手部识别结果与所述手部图像训练样本的标注数据的损失值;

识别模型获取子模块,用于响应于所述损失值小于或等于预设损失值阈值,停止手部识别模型训练,得到所述手部识别模型。

在一实施例中,所述手部图像训练样本集合包括公开图像训练样本子集和/或定制图像训练样本子集,所述样本集合获取子模块包括:

采集界面生成单元,用于生成定制图像采集界面,所述定制图像采集界面包括图像采集框、手部类型标注框、拍摄控件和保存控件;

定制图像获取单元,用于响应于检测到所述拍摄控件被触发,在所述图像采集框内显示所拍摄的定制图像;

标注数据获取单元,用于获取所述手部类型标注框内输入的标注数据;

初始样本生成单元,用于响应于检测到所述保存控件被触发,生成包含所述定制图像和所述标注数据的定制图像初始样本;

样本子集获取单元,用于对所述定制图像初始样本进行预设处理,得到多张定制图像样本,作为所述定制图像训练样本子集;

所述预设处理包括以下至少一种:尺寸变换、角度旋转、马赛克处理和滤波处理。

在一实施例中,所述手势列表获取模块包括:

历史列表更新子模块,用于响应于所述手势分类不为空,根据手部检测框的尺寸大小对各手部图像进行排序,并更新所述历史手势数据列表内各手部检测框及其手势分类;

手势列表获取子模块,用于将所述历史手势数据列表中的控制权更新为手部检测框尺寸最大的手部图像并锁定所述控制权,得到所述目标手势数据列表。

在一实施例中,所述手势列表获取模块包括:

第三结果获取子模块,用于响应于所述手势分类为空且拥有控制权的手势未被检测到的时长超过预设时长,对所述视频图像进行重检测处理,得到第三手部检测结果;

手势列表获取子模块,用于根据所述第三手部检测结果更新所述历史手势数据列表。

在一实施例中,所述手势列表获取子模块包括:

控制权释放子模块,用于响应于所述第三手部检测结果为空,释放所述历史手势数据列表中的控制权。

在一实施例中,所述手势列表获取子模块包括:

控制权更新子模块,用于响应于所述第三手部检测结果不为空,更新所述历史手势数据列表内手部检测框的手势分类;并将控制权更新为尺寸最大的手部检测框。

在一实施例中,所述手势列表获取模块包括:

控制权释放子模块,用于响应于当前视频图像中拥有控制权的手部检测框的手势分类与所述历史手势数据列表中前一帧视频图像的手势分类不同,更新所述历史手势数据列表中所述手部检测框的手势分类并释放所述手部检测框的控制权。

需要说明的是,本实施例中示出的装置与方法实施例的内容相匹配,可以参考上述方法实施例的内容,在此不再赘述。

在一些可能的实施例中,提供一种电子设备,包括:

处理器和存储器;

所述存储器用于存储所述处理器可执行的计算机程序;

其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如上述的方法。

在一些可能的实施例中,提供一种非暂态计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如上述的方法。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。除非另作定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开说明书以及权利要求书中使用的“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“多个”表示至少两个。“包括”或者“包含”等类似词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同,并不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而且可以包括电性的连接,不管是直接的还是间接的。在本公开说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

对于方法实施例而言,由于其基本对应于装置实施例,所以相关之处参见装置实施例的部分说明即可。方法实施例和装置实施例互为补充。

以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

相关技术
  • 手势关键点检测方法、装置、电子设备及存储介质
  • 一种手势识别方法、装置、存储介质及电器
  • 一种漆面识别方法、装置、存储介质及电子设备
  • 欺诈行为识别方法、装置、电子设备及可读存储介质
  • 命名实体识别方法、装置、电子设备、机器可读存储介质
  • 手势识别方法、手势识别装置、手势识别系统及存储介质
  • 一种动态手势实时识别方法、装置、电子设备和存储介质
技术分类

06120116486713