发明内容
鉴于此,本申请提供一种基于手势识别的投票方法与***、电子设备,以解决现有的投票方法需要依赖投票器实现的问题。
一方面,提供一种基于手势识别的投票方法,包括:
获取摄像头采集的图像;
对所述图像进行手势检测,获取手势中预设数量的关键点;
当根据所述关键点的位置判断所述手势为预设手势时,按照预设投票规则进行投票计数。
在其中的一个实施例中,所述对所述图像进行手势检测,获取所述手势中预设数量的关键点包括:
采用关键点检测模型对所述图像进行处理,获取手势中预设数量的关键点;
其中,所述关键点检测模型包括由5层卷积层、3层全连接层以及输出层构成的深度学习网络。
在其中的一个实施例中,所述根据关键点的位置判断所述手势为预设手势,包括:
获取预设手势的预设关键点在图像中的位置;
计算所述关键点的位置与预设关键点在图像中的位置的相似度;
当所述相似度满足预设相似度阈值时,判断所述手势为预设手势。
在其中的一个实施例中,所述采用关键点检测深度学习网络模型对所述图像进行处理之前,还包括构建训练集对所述关键点检测模型进行训练;
其中,所述构建训练集的步骤包括:
通过多个摄像头获取当前训练手势的多个视角的图像;
采用关键点检测模型对所述训练手势的多个视角的图像分别进行向前传播处理,分别获得每个视角图像的多个关键点;
通过多个视角的图像中的多个关键点,并结合视觉定位中三角测量原理建立关键点空间定位模型;
当多个视角的图像中的第一视角图像在所述进行向前传播处理的过程中未获取得到第一关键点时,根据所述关键点空间模型以及第一视角图像中已获取的关键点的位置,在第一视角图像中标记所述第一关键点的位置;
将所述多个视角图像以及获取的所有关键点,构建训练集。
在其中的一个实施例中,在所述分别获得每个视角图像的关键点之后,在所述通过三角测量原理建立关键点空间模型之前,还包括:
获取每个视角的图像中的每个关键点的置信度;
根据每个视角的图像中的每个关键点的置信度,计算得到置信度评分;
当所述置信度评分小于预设置信度评分时,则删除当前所述训练手势的所有视角的图像。
在其中的一个实施例中,所述置信度评分的计算公式为:
其中,S为置信度评分,v为视角的序号,m为视角的总数量,p为关键点的序号,n为所有关键点的数量,
为第v视角的图像中第p个关键点的置信度,γ为预设系数,
为第v视角的图像中第p个关键点在所述图像中的横坐标,
为第v视角的图像中第p个关键点在所述图像中的纵坐标,
为第v视角的图像中所有关键点横坐标的平均值,
为第v视角的图像中所有关键点纵坐标的平均值。
在其中的一个实施例中,所述通过多个摄像头获取当前训练手势的多个视角的图像的步骤中,所述多个摄像头均匀分布在所述训练手势周围,所述摄像头的数量大于10个。
在其中的一个实施例中,所述预设手势包括:点赞手势,其中,所述点赞手势为大拇指向远离掌心的方向伸出,剩余四指向掌心内侧弯曲的手势;
所述点赞手势中预设关键点包括:掌心关键点、大拇指指掌关节关键点、大拇指指间关节关键点、食指指尖关键点、中指指尖关键点、无名指指尖关键点、小拇指指尖关键点。
第二方面,提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序可被处理器所执行,以用于实现如上所述的基于手势识别的投票方法。
第三方面,提供一种基于手势识别的投票***,包括后台服务器、电子终端和至少一个摄像机,所述后台服务器与所述电子终端、摄像机通信连接,所述电子终端与所述摄像机通信连接;
所述摄像机用于采集图像,并将所述图像上传至所述服务器;
所述服务器用于根据上传的对所述图像进行手势检测,获取手势中预设数量的关键点,并发送至所述电子终端,当根据所述关键点的位置判断所述手势为预设手势时,按照预设投票规则进行投票计数,并将所述投票计数的结果传输至电子终端;
所述电子终端用于展示所述投票计数的结果。
本申请上述基于手势识别的投票方法中,通过检测图像中手势的关键点,根据关键点的位置判断手势为预设手势时,按照预设投票规则进行投票计数,实现对图像中手势的识别,进而达到无需依赖投票器实现投票计数的目的。
具体实施方式
下面结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,下述每个实施例及其技术特征可以相互组合。
本申请实施例提出一种基于手势识别的投票方法,该方法可以应用于电子设备,具体可以是手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal DigitalAssistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、可穿戴设备、智能手环等移动终端,以及诸如数字TV、台式计算机等固定终端。图1为一个实施例中电子设备的内部结构示意图。如图1所示,该电子设备包括通过***总线连接的处理器、存储器和网络接口。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器用于存储数据、程序等,存储器上存储至少一个计算机程序,该计算机程序可被处理器执行,以实现本申请实施例中提供的适用于电子设备的无线网络通信方法。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作***和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种基于手势识别的投票方法。内存储器为非易失性存储介质中的操作***计算机程序提供高速缓存的运行环境。网络接口可以是以太网卡或无线网卡等,用于与外部的电子设备进行通信。
请参阅图2,基于手势识别的投票方法,包括:
步骤201、获取摄像头采集的图像;
步骤202、对图像进行手势检测,获取手势中预设数量的关键点;
步骤203、当根据关键点的位置判断手势为预设手势时,按照预设投票规则进行投票计数。
基于手势识别的投票方法中,通过检测图像中手势的关键点,根据关键点的位置判断手势为预设手势时,按照预设投票规则进行投票计数,实现对图像中手势的识别,进而达到无需依赖投票器实现投票计数的目的。
步骤201的目的是获取用于手势检测的图像。具体可以是通过摄像头拍摄视频数据,再从视频数据中提取一帧或多帧图像用于手势检测;也可以直接通过摄像头对手势进行拍照,以获得相应图像。
步骤202中对图像中进行手势检测,并获取手势中的关键点。其中,手势(手的姿势)是指用手作出的各种姿势。举例地,手势包括:点赞手势、数字1-9手势中的一种或多种。其中,如图6所示,点赞手势6(竖大拇指)为大拇指向远离掌心的方向伸出,剩余四指向掌心内侧弯曲的手势;数字1-9手势可以是约定俗成的手势,例如数字6手势为大拇指和小拇指向远离掌心的方向伸出,剩余三指向掌心内侧弯曲的手势。
关键点是对于分析图像中手部姿态较为重要的点,一般来说,通过手势中的一定数量关键点可以实现确定图像中手掌和手指的姿态。具体地,请参阅图5,关键点501位于手部5上,如可以位于各个手指的关节处、手掌上处、指尖处等位置,从而实现通过关键点501的位置关系描述各个手指的状态,如确定各个手指曲直状态。
手势中关键点的预设数量会影响到手势识别的准确性。一般来说,手势中关键点的预设数量越大,手势识别的准确性越高,但同时也会导致手势识别速度的降低。一般地,关键点的预设数量可以为六个,即位于五个手指尖和一个手掌心的关键点,或如图5中关键点的预设数量为21个。
在其中的一个实施例中,可以根据手势的不同确定关键点的预设数量,即关键点的预设数量根据手势的不同进行灵活调整,达到提高手势识别的准确度和速度的效果。举例地,点赞手势中预设关键点为7个,分别为:掌心关键点、大拇指指掌关节关键点、大拇指指间关节关键点、食指指尖关键点、中指指尖关键点、无名指指尖关键点、小拇指指尖关键点。点赞手势中,通过大拇指指掌关节关键点和大拇指指间关节关键点保证大拇指为伸直状态,其他四指则是通过各个指尖关键点与掌心关键点的位置关系,可以确定其他四指处于弯曲状态。
可选地,如图6所示的点赞手势6中关键点601主要分布在掌心、近指间关节点以及远指间关节点处。相比与指尖处的关键点,图6中关键点601更容易直接检测得到。
可选地,步骤202中可以通过关键点检测模型对图像进行分析,获得手势中预设数量的关键点。其中,关键点检测模型是一种深度学习网络模型,能够实现对图像中的手势进行检测分析并获取手势中关键点的算法模型。其中,关键点检测模型包括由5层卷积层、3层全连接层以及输出层构成的深度学习网络。具体地,关键点检测模型中层与层之间使用最大化池(max-pooling)分开,所有隐层的激活单元都采用线性整流函数(ReLU函数)。
在其中的一个实施例中,关键点检测模型的处理流程包括:
1、输入224×224×3的图片,经64个3×3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224×224×64;
2、作max pooling(最大化池化),池化单元尺寸为2×2,池化后的尺寸变为112×112×64;
3、经128个3×3的卷积核作两次卷积+ReLU,尺寸变为112×112×128;
4、作2×2的max pooling池化,尺寸变为56×56×128;
5、经256个3×3的卷积核作三次卷积+ReLU,尺寸变为56×56×256;
6、作2×2的max pooling池化,尺寸变为28×28×256;
7、经512个3×3的卷积核作三次卷积+ReLU,尺寸变为28×28×512;
8、作2×2的max pooling池化,尺寸变为14×14×512;
9、经512个3×3的卷积核作三次卷积+ReLU,尺寸变为14×14×512;
10、作2×2的max pooling池化,尺寸变为7×7×512;
11、与两层1×1×4096,一层1×1×1000进行全连接+ReLU(共三层);
12、通过softmax输出结果。
步骤203中通过对获取的关键点进行分析判断是否为预设手势,具体可以是通过神经网络模型实现,也可以通过对获取的手势中关键点的位置与预设手势中关键点的位置相比较进行判断,请参阅图3,具体包括:
步骤301、获取预设手势的预设关键点在图像中的位置;
步骤302、计算所述关键点的位置与预设关键点在图像中的位置的相似度;
步骤303、当相似度满足预设相似度阈值时,判断手势为预设手势。
其中,预设手势是针对投票规则设置的,例如,在一个投票规则中,预设手势为点赞手势,检测到点赞手势时表示投票者表示赞成。具体请参阅图9及图10,采用本实施例的基于手势识别的投票方法分别对图9和图10进行处理,图9和图10中标记的框中的手势为点赞手势,可见,本实施例的基于手势识别的投票方法能够实现有效对点赞手势的识别。
步骤301中,由于每次获取的图像的视角可能不同,因此对于同一手势来说,不同视角的图像中关键点的位置不同,其中,关键点的位置可以用坐标表示。基于此,需要将预设手势的预设关键点转换到相对应视角的图像中,也即是将预设关键点转换到步骤201获得的图像中。例如,检测得到的关键点的图像为从手掌心向手掌背观察的视角图像,那么同样需要将预设关键点转换到从手掌心向手掌背观察的视角图像上,并获取预设关键点在图像上的坐标。可选地,在转换为图像的坐标前,预设关键点的位置是预设手势模型中的预设关键点三维坐标,通过从不同的角度进行投影可以得到不同视角图像中的关键点二维坐标。
步骤302中,通过相似度算法计算检测得到的关键点与预设关键点在图像中的相似度。可选地,相似度算法可以是通过欧氏距离(EuclideanDistance)算法。
步骤203中,根据识别的手势,按照预设投票规则进行投票计数。例如,预设投票规则为预设点赞手势为投赞成票,图像中每检测一个点赞手势,则赞成票数加一,通过统计图像中点赞手势的数量即可以得到得票总数。
在其中的一个实施例中,采用关键点检测模型对图像进行处理之前,还包括构建训练集对关键点检测模型进行训练;
其中,请参阅图4,构建训练集的步骤包括:
步骤401、通过多个摄像头获取当前训练手势的多个视角的图像;
步骤402、采用关键点检测模型对训练手势的多个视角的图像分别进行向前传播处理,分别获得每个视角图像的多个关键点;
步骤403、通过多个视角的图像中的多个关键点,并结合视觉定位中三角测量原理建立关键点空间定位模型;
步骤404、当多个视角的图像中的第一视角图像在所述进行向前传播处理的过程中未获取得到第一关键点时,根据关键点空间模型以及第一视角图像中已获取的关键点的位置,在第一视角图像中标记第一关键点的位置;
步骤405、将多个视角图像以及获取的所有关键点,构建训练集。
本实施例对关键点检测模型进行训练方法是通过基于多视图三角测量原理构建训练集作为外部监督源,实现改进弱监督学习的方法。具体地是,通过训练集对关键点检测模型多次迭代训练,可以改进关键点检测模型。
步骤401中通过从训练手势的不同方向获取不同视角的图像。具体通过在训练手势的周围不同位置布置摄像头进行拍摄。为全面获取训练手势在不同视角下的图像,在其中的一个实施例中,多个摄像头均匀分布在训练手势周围,摄像头的数量大于10个,例如20个或40个。
步骤402是采用关键点检测模型对训练手势的多个视角的图像分别进行一次向前传播处理,分别获得每个视角图像的多个关键点,其中,对于一些视角图像中,由于遮挡不能完全得到所有预设数量的关键点,即有些关键点未检测得到或关键点的置信度达不到要求而被舍弃,例如对于从手背方向视角下的点赞手势的图像中,难以检测得到弯曲手指指尖的关键点。
步骤403是使用至少两个视角的图像的关键点,并结合视觉定位中三角测量原理建立关键点空间定位模型,其中关键点空间定位模型是手势立体模型,且包含了关键点在手势立体模型中的三维坐标。其中三角测量(Triangulation)原理是视觉定位中,获得多个摄像头位置和空间中一点的投影点,进一步获取该点3D位置的方法。请参阅图7,已知R0,R1两台摄像头的位置信息和同一关键点的投影点x0、x1,关键点的位置应该就是两条射线的交点。而实际情况中,由于存在多台摄像头,获取多张不同位置拍摄的图像,所有射线往往并不恰好交于一点,此时需要写出误差公式,将目标问题表示为最小化误差的优化问题,用最小二乘法求出关键点的最优值。
步骤404、可以通过三角测量原理,标记出由于遮挡等情况而遗漏的关键点或在所述进行向前传播处理的过程中未获取得到关键点,从而使所有视角的图像中的关键点数量达到预设数量。具体地,当多个视角的图像中的第一视角图像缺少第一关键点时,同样可以通过三角测量原理实现将关键点空间模型中第一关键点投影到第一视角图像中,即在第一视角图像中增加缺少的第一关键点的位置。
步骤405,将完成增加缺失的关键点标记的所有视角的图像作为训练集改进关键点检测模型。
在其中的一个实施例中,为了避免训练集中关键点信息出错,需要对当前时刻训练手势产生的关键点的可信度进行评估。具体地,在分别获得每个视角图像的关键点之后,在通过三角测量原理建立关键点空间模型之前,还包括:
步骤701、获取每个视角的图像中的每个关键点的置信度;
步骤702、根据每个视角的图像中的每个关键点的置信度,计算得到置信度评分;
步骤703、当置信度评分小于预设置信度评分时,则删除当前训练手势的所有视角的图像。
本实施例通过基于当前时刻拍摄的所有视角的图像中所有关键点的置信度,获取置信度评分,并根据置信度评分是否保留当前时刻拍摄的所有视角的图像,以避免当前时刻的图像关键点整体置信度过低的情况,导致手势识别准确性的降低的问题。
步骤701中,在采用关键点检测模型对训练手势的多个视角的图像分别进行向前传播处理的过程,能够提取关键点以及与每个关键点相对应的置信度。
步骤702中,通过每个关键点的置信度计算基于当前时刻训练手势的所得的图像的置信度评分。具体可以是将所有视角图像的所有关键点的置信度相加,获得置信度评分。
在其中的一个实施例中,置信度评分的计算公式为:
其中,S为置信度评分,v为视角的序号,m为视角的总数量,p为关键点的序号,n为所有关键点的数量,
为第v视角的图像中第p个关键点的置信度,
为第v视角的图像中第p个关键点在图像中的横坐标,
为第v视角的图像中第p个关键点在图像中的纵坐标,
为第v视角的图像中所有关键点横坐标的平均值,
为第v视角的图像中所有关键点纵坐标的平均值,γ为预设系数,γ通常取不为零的整数,例如γ=1。
置信度评分公式中,置信度评分与关键点P和图像中所有关键点的平均点
相关,具体地,关键点P距离平均点
越远,关键点P对置信度影响越大,有利于后续步骤保留关键点覆盖范围较大的图像,而舍弃关键点覆盖范围较小的图像。
步骤703、当置信度评分小于预设置信度评分时,则继续进行后续的步骤403、步骤404、步骤405实现构建训练集;当置信度评分小于预设置信度评分时,则删除当前训练手势的所有视角的图像,不参与训练集的构建。
本申请实施例的手势识别的投票方法中,通过检测图像中手势的关键点,根据关键点的位置判断手势为预设手势时,按照预设投票规则进行投票计数,实现对图像中手势的识别,进而达到无需依赖投票器实现投票计数的目的。
与传统的投票器相比,本申请实施例的手势识别的投票方法不需每人配置一个投票设备,投票者不需要接触任何物理器械;而且,投票者无需掌握投票器的使用方法,降低投票者的学习成本。
提供一种电子设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序可被处理器所执行,以用于实现如上的基于手势识别的投票方法。
提供一种基于手势识别的投票***,包括后台服务器、电子终端和至少一个摄像机,后台服务器与电子终端、摄像机通信连接,电子终端与摄像机通信连接;
摄像机用于采集图像,并将图像上传至服务器;
服务器用于根据上传的对图像进行手势检测,获取手势中预设数量的关键点,并发送至电子终端,当根据关键点的位置判断手势为预设手势时,按照预设投票规则进行投票计数,并将投票计数的结果传输至电子终端;
电子终端用于展示投票计数的结果。
还提出一种电子设备,包括存储器及处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行如上任一实施例中的基于手势识别的投票方法的步骤。
本申请中描述的电子设备可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable MediaPlayer,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本申请的实施方式的构造也能够应用于固定类型的终端。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
还提出一个或多个存储有计算机可读指令的非易失性可读存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上任一实施例中的基于手势识别的投票方法的步骤。
本申请还一种基于手势识别的投票***,如图8所示,该***包括后台服务器810、店铺工作人员或店铺管理人员权限登录的电子终端820和均匀安装在店铺内的至少一个摄像机830,后台服务器810与电子终端820、摄像机830通信连接,电子终端820与摄像机830通信连接;
摄像机830用于采集图像,并将图像上传至服务器810;
服务器810用于根据上传的对图像进行手势检测,获取手势中预设数量的关键点,并发送至电子终端,当根据关键点的位置判断手势为预设手势时,按照预设投票规则进行投票计数,并将投票计数的结果传输至电子终端820;
电子终端820用于展示投票计数的结果。
关于本申请实施例基于手势识别的投票***的具体限定,参见前述基于手势识别的投票方法,不再赘述。前述基于手势识别的投票方法也可以参见本申请实施例中的基于手势识别的投票***的具体限定。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。