CN106022297A - 一种手势识别方法及装置 - Google Patents
一种手势识别方法及装置 Download PDFInfo
- Publication number
- CN106022297A CN106022297A CN201610382507.7A CN201610382507A CN106022297A CN 106022297 A CN106022297 A CN 106022297A CN 201610382507 A CN201610382507 A CN 201610382507A CN 106022297 A CN106022297 A CN 106022297A
- Authority
- CN
- China
- Prior art keywords
- layer
- gesture
- neuron
- point
- profile
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
- G06V40/113—Recognition of static hand signs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种手势识别方法,所述方法包括如下步骤:S1、获取待识别手势,并获取轮廓上的所有轮廓点及每个轮廓点的坐标;S2、确定当前所有轮廓点所在的轮廓的层数为1,计算当前所有轮廓点对应于当前层的特征参数;S3、将当前层加1作为当前层,计算当前所有轮廓点对应于当前层的特征参数,然后计算差异,并判断比值是否小于差异阈值,如果是,则确定当前层减1得到的层数为轮廓的层数,并执行步骤S5,如果否,则执行步骤S4;S4、返回步骤S3;S5、利用每个轮廓点的特征参数,将待识别手势输入预设BP神经网络,得到输出手势类别。本发明特征参数的维度较低,计算复杂度降低,从而本发明能同时保证较高的识别效率和识别准确率。
Description
技术领域
本发明涉及一种于多尺度不变量描述的手势识别方法及装置,属于目标识别技术领域。
背景技术
手势识别在人机交互领域具有重要意义,在虚拟现实、手语识别和人机博弈等方面有着广泛的应用。
现有手势识别技术的难点在于手势的获取,随着深度相机的发展,Kinect传感器很好的解决了这一问题,进而手势识别的难点集中到识别效率和准确率上。
通常手势识别方法可以分为两类。第一类是基于统计学的方法:对于一个动态手势,将它看成一个随机过程的输出,手势识别则可以根据统计学模型来确定,如PCA、HMMS、粒子滤波、浓缩算法等,但计算复杂,识别效率低,无法达到实时的要求。第二类是基于规则的方法:先根据输入特征预设一些列模板,对一个手势进行识别时,获取该手势的一系列特征并与预设的模板特征进行匹配,与输入手势匹配度最佳的模板则作为待识别手势的类别输出,如Shape contexts、Thresholding+FEMD、Near-convex+FEMD等,但无法同时保证识别准确率和识别效率。
针对上述问题,如何获取一种能够同时保证较高的识别准确率及识别效率的手势识别方法,是目前相关技术领域的关键问题。
发明内容
本发明的发明目的是提供一种手势识别方法及装置,以同时保证较高的识别效率及识别准确率。
为达到上述发明目的,本发明采用的技术方案是:一种手势识别方法,所述方法包括如下步骤:
S1、获取待识别手势,并由所述待识别手势形状的边缘提取一个封闭的轮廓,获取所述轮廓上的所有轮廓点及每个轮廓点的坐标;
S2、确定当前所有轮廓点所在的轮廓的层数为1,计算当前所有轮廓点对应于当前层的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距,将每个轮廓点的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距作为该轮廓点的特征参数;
S3、将当前层加1作为当前层,计算当前所有轮廓点对应于当前层的特征参数,然后计算当前所有轮廓点对应于当前层的特征参数与当前所有轮廓点对应于当前层的层数减1的特征参数之间的差异,并判断当前所有轮廓点对应的所述差异的和与所述所有轮廓点的数量的比值是否小于差异阈值,如果是,则确定当前层减1得到的层数为所述轮廓的层数,并执行步骤S5,如果否,则执行步骤S4;
S4、返回步骤S3;
S5、利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别;
其中归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距获取的步骤包括:
(1)、确定任一轮廓点为目标轮廓点,以所述目标轮廓点的坐标为中心,以与所述当前层对应的半径为预设半径作圆,得到与所述当前层对应的预设圆;
(2)、将所述待识别手势形状中被所述预设圆截取的与所述目标轮廓点具有直接连接关系的区域的面积与所述预设圆的面积的比值作为所述目标轮廓点的归一化单连通区域面积;
(3)、取目标轮廓点前一点,并求取所述目标轮廓点前一点的归一化单连通区域面积,将所述目标轮廓点的归一化单连通区域面积与所述目标轮廓点前一点的归一化单连通区域面积相减,得到面积变化率;
(4)、将所述待识别手势形状中被所述预设圆切割出的与所述目标轮廓点具有直接连接关系的弧段的长度与所述预设圆的周长的比值作为所述目标轮廓点的归一化单连通弧长;
(5)、取目标轮廓点前一点,并求取所述目标轮廓点前一点的归一化单连通弧长,将所述目标轮廓点的归一化单连通弧长与所述目标轮廓点前一点的归一化单连通弧长相减,得到弧长变化率;
(6)、确定所述待识别手势形状中被所述预设圆截取的与所述目标轮廓点具有直接连接关系的区域的重心与所述目标轮廓点的距离,并将该距离与所述预设半径的比值作为所述目标轮廓点的归一化重心距。
优选地,利用Kinect传感器获取所述待识别手势的形状。
优选地,采用Canny算子提取所述待识别手势形状的边缘获得一个封闭的轮廓。
优选地,确定与所述当前层对应的半径为预设半径,包括:
将所述待识别手势形状的等效半径与2的N次方的比值作为所述当前层对应的预设半径,其中,N为所述当前层对应的层数。
优选地,确定所述待识别手势形状的等效半径,包括:
计算所述待识别手势形状的面积,并对所述待识别手势形状的面积进行开平方得到所述待识别手势的等效半径。
优选地,利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别,包括:
将所述待识别手势的所有轮廓点的特征参数按序排列组成目标序列;
将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号;
每个输出层神经元的输出信号代表一种手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别即为所述待识别手势的手势类别。
进一步技术方案中,将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号的步骤如下:
将所述目标序列的每一项输入预设BP神经网络的输入层的对应神经元,作为预设BP神经网络的输入层神经元的输入信号,
将预设BP神经网络的输入层神经元的输入信号作为预设BP神经网络的输入层神经元的输出信号,
再将预设BP神经网络的输入层每个神经元的输出信号与预设BP神经网络输入层与第一层隐藏层一个神经元之间对应的权值相乘,作为第一层隐藏层一个神经元的输入信号,再将第一层隐藏层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述第一层隐藏层一个神经元的输出信号,循环上述步骤,直至得到所述第一层隐藏层每个神经元的输出信号;再将所述第一层隐藏层每个神经元的输出信号与所述第一层隐藏层到下一层隐藏层一个神经元之间对应的权值相乘,作为所述下一层隐藏层一个神经元的输入信号,再将所述下一层隐藏层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述下一层隐藏层一个神经元的输出信号,循环上述步骤,直至得到所述下一层隐藏层每个神经元的输出信号;
按上述方法,重复上述隐藏层之间的操作,得到最后一层隐藏层每个神经元的输出信号,将所述最后一层隐藏层每个神经元的输出信号与所述最后一层隐藏层到所述输出层一个神经元之间对应的权值相乘,作为所述输出层一个神经元的输入信号,再将所述输出层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述输出层一个神经元的输出信号,循环上述步骤,直至得到所述输出层每个神经元的输出信号,输出层一个神经元对应一个手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别即为所述待识别手势的手势类别。
本发明还公开了一种手势识别装置,包括:
提取模块,用于获取待识别手势的形状,由所述手势形状边缘提取一个封闭的轮廓,获取该轮廓上所有的轮廓点及每个轮廓点的坐标;
计算模块,用于确定轮廓的层数,并基于每个所述轮廓点的坐标计算每个所述轮廓点对应于每层的归一化单连通区域面积、面积变化率、归一化单连通弧长弧长变化率及归一化重心距,作为该轮廓点的特征参数;
识别模块,用于利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别,并确定所述输出手势类别为所述待识别手势的类别。
由于上述技术方案运用,本发明与现有技术相比具有下列优点:
1.本发明不是单一的关注全局特征或局部特征,而是同时对全局特征、局部特征及全局特征与局部特征之间的关系进行描述,多尺度、全方位地进行分析表述,实现了对待识别手势形状的全局特征和局部特征的有效提取和表示,避免了基于单一特征导致的识别准确率低的情况;
2.本发明的特征参数的维度较低,计算复杂度降低,实现了较高的识别效率,从而本发明能同时保证较高的识别效率和识别准确率。
附图说明
图1是本发明手势识别方法的流程示意图。
图2是本发明实施例一的提供的手势识别方法中涉及的目标形状的具体例子示意图。
图3为本发明实施例一中提供的手势识别方法中目标形状的具体示意图。
图4为本发明实施例一中提供的手势识别方法中目标形状被预设圆截取后的示意图。
图5为本发明实施例一中提供的手势识别方法中目标形状被预设圆分割后的示意图。
图6为本发明实施例一中提供的手势识别装置的结构示意图。
其中:1、提取模块;2、计算模块;3、匹配模块。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例一:参见图1所示,一种手势识别方法,所述方法包括如下步骤:
S1、获取待识别手势,并由所述待识别手势形状的边缘提取一个封闭的轮廓,获取所述轮廓上的所有轮廓点及每个轮廓点的坐标;
S2、确定当前所有轮廓点所在的轮廓的层数为1,计算当前所有轮廓点对应于当前层的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距,将每个轮廓点的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距作为该轮廓点的特征参数;
S3、将当前层加1作为当前层,计算当前所有轮廓点对应于当前层的特征参数,然后计算当前所有轮廓点对应于当前层的特征参数与当前所有轮廓点对应于当前层的层数减1的特征参数之间的差异,并判断当前所有轮廓点对应的所述差异的和与所述所有轮廓点的数量的比值是否小于差异阈值,如果是,则确定当前层减1得到的层数为所述轮廓的层数,并执行步骤S5,如果否,则执行步骤S4;
S4、返回步骤S3;
S5、利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别;
其中归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距获取的步骤包括:
(1)、确定任一轮廓点为目标轮廓点,以所述目标轮廓点的坐标为中心,以与所述当前层对应的半径为预设半径作圆,得到与所述当前层对应的预设圆;
(2)、将所述待识别手势形状中被所述预设圆截取的与所述目标轮廓点具有直接连接关系的区域的面积与所述预设圆的面积的比值作为所述目标轮廓点的归一化单连通区域面积,归一化单连通区域面积的取值范围应当在0到1之间;
(3)、取目标轮廓点前一点,并求取所述目标轮廓点前一点的归一化单连通区域面积,将所述目标轮廓点的归一化单连通区域面积与所述目标轮廓点前一点的归一化单连通区域面积相减,得到面积变化率;
(4)、将所述待识别手势形状中被所述预设圆切割出的与所述目标轮廓点具有直接连接关系的弧段的长度与所述预设圆的周长的比值作为所述目标轮廓点的归一化单连通弧长,归一化单连通弧长的取值范围应当在0到1之间;
(5)、取目标轮廓点前一点,并求取所述目标轮廓点前一点的归一化单连通弧长,将所述目标轮廓点的归一化单连通弧长与所述目标轮廓点前一点的归一化单连通弧长相减,得到弧长变化率;
(6)、确定所述待识别手势形状中被所述预设圆截取的与所述目标轮廓点具有直接连接关系的区域的重心与所述目标轮廓点的距离,并将该距离与所述预设半径的比值作为所述目标轮廓点的归一化重心距,归一化重心距的取值范围应当在0到1之间。
其中,需要说明的是,预设半径为与当前层对应的半径,即不同的层对应不同的预设半径。且,对于每个轮廓点,均需要按照上述步骤得到其对应于每层的特征参数,在此不再赘述。
依据上述步骤得到预设圆C1(i)后,手势形状必然有一部分落在该预设圆内,假设图3所示为目标形状,则预设圆与目标形状的示意图则如图4所示。如果目标形状落在预设圆内的部分为一单独区域,则该单独区域即为与目标轮廓点具有直接连接关系的区域,记为Z1(i);如果目标形状落在预设圆内的部分分为若干个互不连通的区域的话,如图4所示的区域A和区域B,那么确定目标轮廓点在其轮廓上的区域为与目标轮廓点具有直接连接关系的区域,记为Z1(i)。具体来说,将预设圆C1(i)中的与目标轮廓点p(i)具有直接连接关系的区域Z1(i)的面积记为则有:
其中,B(Z1(i),x)为一指示函数,定义为
将Z1(i)的面积与预设圆C1(i)面积的比值作为目标轮廓点的特征参数的归一化单连通区域面积s1(i),即:
s1(i)的取值范围应当在0到1之间。
利用上述方法计算所述轮廓点前一点的归一化单连通区域面积s1(i-1),将所述轮廓点的归一化单连通区域面积s1(i)与前一点的归一化单连通区域面积相减,得到面积变化率s1'(i),即
s′1(i)=s1(i)-s1(i-1)
计算与目标轮廓点具有直接连接关系的区域的重心时,具体可以为将该区域中所有像素点的坐标值求取平均数,所得结果即为该区域的重心的坐标值,可以表示为:
其中,w1(i)即为上述区域的重心。
而计算目标轮廓点与重心w1(i)的距离可以表示为:
并将与目标轮廓点的预设圆的半径的比值作为该目标轮廓点特征参数的归一化重心距c1(i),即
c1(i)的取值范围应当在0到1之间。
依据上述步骤得到预设圆后,目标形状的轮廓被预设圆切割后必然会有一段或者多段弧段落在预设圆内,如图5所示。如果目标形状只有一段弧段落在预设圆内,则确定该弧段为与目标轮廓点具有直接连接关系的弧段,如果目标形状有多段弧段落在预设圆内,如图5中的弧段A(Segment A)、弧段B(Segment B)、弧段C(Segment C),则确定目标轮廓点所在的弧段为与目标轮廓点具有直接连接关系的弧段,在图5中即为弧段A(Segment A)。
将预设圆C1(i)内与目标轮廓点p(i)具有直接连接关系的弧段的长度记为并将与预设圆C1(i)周长的比值作为目标轮廓点的特征参数的归一化单连通弧长l1(i),即
其中,l1(i)的取值范围应当在0到1之间。
利用上述方法计算所述轮廓点前一点的归一化单连通弧长l1(i-1),将所述轮廓点的归一化单连通弧长l1(i)与前一点的归一化单连通区域面积相减,得到面积变化率l1'(i),即
l1(i)=l1(i)-l1(i-1)
从而可以通过上述方式得到目标轮廓点及其他全部轮廓点的特征参数,表示为M(i):
M(i)={sk(i),s'k(i),lk(i),l'k(i),ck(i)|k∈[1,m],i∈[1,n]}
上文中,需要说明的是,本发明设计的目标形状均可以为具有闭合轮廓的形状,如图2所示为本发明涉及的目标形状的具体例子。另外,轮廓点的数量为轮廓点上所有点的个数,其具体取值根据实际情况确定,以完整表示手势形状的轮廓特征为准。
在数字图像中,形状的边缘可以由一系列具有坐标信息的轮廓点表示,本实施例中手势形状的轮廓点的集合S可以表示为:
S={p(i)|i∈[1,n]}
其中,n表示轮廓的长度,即轮廓点的个数;p(i)表示轮廓点的序列中的第i个轮廓点,且有:
p(i)={u(i),v(i)}
其中,u(i)、v(i)分别是p(i)的横纵坐标。
需要说明的是,预设BP神经网络为工作人员预先设置的神经网络,是经训练过的BP神经网络,是通过将预设模版库中的模版作为样本经过训练所确定的神经网络结构,预设模版库为工作人员预先设置的模板库,其中的每个模板都具有相应的特征参数,而每个模板的特征参数的计算方法与待识别手势的特征参数的计算方法相同,在此不再赘述。通过将所述待识别手势输入预设BP神经网络,得到输出手势类别,并确定所述输出手势的类别为所述待识别手势的类别。
本实施例中,利用Kinect传感器获取所述待识别手势的形状,但获取待识别手势形状时可以采用工作人员预先确定的任何能够有效实现手势形状获取的方法。
本实施例中,提取手势形状的边缘时可以采用作人员预先确定的任何能够有效实现手势形状边缘提取的方法,具体可以为Canny算子、Laplacian算子等,本实施例中优选Canny算子,以快速有效地获取手势形状的轮廓,采用Canny算子提取所述待识别手势形状的边缘获得一个封闭的轮廓。
上文中,差异阈值可以根据实际需要进行确定,例如差异阈值为10-3,如当前层为2时,每个轮廓点对应于当前层的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距与当前层为3时该轮廓点对应于当前层的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距之间的差异的平均值,即全部轮廓点对应的上述差异的和与轮廓点的个数的比值小于差异阈值,则确定每个轮廓点的层数为2层。另外,平均值指的是每个轮廓点对应的差异的平均值,而任一轮廓点的差异为该轮廓点在不同层对应的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距之间的差异。而在确定任一轮廓点在两个层分别对应的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距之间的差异时,可以是分别计算该轮廓点在两个层分别对应的归一化单连通区域面积的差值,两个层分别对应的面积变化率的差值,两个层分别对应的归一化单连通弧长的差值,两个层分别对应的弧长变化率的差值及两个层分别对应的归一化重心距的差值,进而根据上述五个差值及五个差值的权重计算得到最后的差异,也可以是将每个层对应的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距构成一参数向量,进而计算两个层分别对应的参数向量之间的向量差,得到最后的差异,还可以根据实际需要按照其他方法计算上述差异,均在本发明的保护范围之内。
本实施例中,确定与所述当前层对应的半径为预设半径,包括:
将所述待识别手势形状的等效半径与2的N次方的比值作为所述当前层对应的预设半径,其中,N为所述当前层对应的层数。
具体可以表示为:以p(i)为圆心,以r1为预设半径做圆得到预设圆C1(i),该预设圆是为计算对应轮廓点的特征参数所做的准备工作。
而预设半径r1的具体表示方式可以为:
其中,R为目标形状的等效半径,N为当前层对应的层数。计算第一层对应的预设半径r1时,此公式中N取1;而计算其他层对应的预设半径时,N为对应的层数。
当然,上述预设半径及等效半径的具体计算方法也可以由工作人员根据实际需要进行其他设定,均在本发明的保护范围之内。
本实施例中,确定所述待识别手势形状的等效半径,包括:
计算所述待识别手势形状的面积,并对所述待识别手势形状的面积进行开平方得到所述待识别手势的等效半径。
具体可以表示为:
其中,areaS为手势形状的面积,R为手势形状的等效半径。
本实施例中,利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别,包括:
将所述待识别手势的所有轮廓点的特征参数按序排列组成目标序列;
将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号;
每个输出层神经元的输出信号代表一种手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别即为所述待识别手势的手势类别。
本实施例中,将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号的步骤如下:
将所述目标序列的每一项输入预设BP神经网络的输入层的对应神经元,作为预设BP神经网络的输入层神经元的输入信号,
将预设BP神经网络的输入层神经元的输入信号作为预设BP神经网络的输入层神经元的输出信号,
再将预设BP神经网络的输入层每个神经元的输出信号与预设BP神经网络输入层与第一层隐藏层一个神经元之间对应的权值相乘,作为第一层隐藏层一个神经元的输入信号,再将第一层隐藏层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述第一层隐藏层一个神经元的输出信号,循环上述步骤,直至得到所述第一层隐藏层每个神经元的输出信号;再将所述第一层隐藏层每个神经元的输出信号与所述第一层隐藏层到下一层隐藏层一个神经元之间对应的权值相乘,作为所述下一层隐藏层一个神经元的输入信号,再将所述下一层隐藏层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述下一层隐藏层一个神经元的输出信号,循环上述步骤,直至得到所述下一层隐藏层每个神经元的输出信号;
按上述方法,重复上述隐藏层之间的操作,得到最后一层隐藏层每个神经元的输出信号,将所述最后一层隐藏层每个神经元的输出信号与所述最后一层隐藏层到所述输出层一个神经元之间对应的权值相乘,作为所述输出层一个神经元的输入信号,再将所述输出层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述输出层一个神经元的输出信号,循环上述步骤,直至得到所述输出层每个神经元的输出信号,输出层一个神经元对应一个手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别即为所述待识别手势的手势类别。
具体来说,所述目标序列可以表示A={x1,x2,...,xm},期望输出可以表示为B={y1,y2,...,yn},不失一般性的,可以假设m≥n,则在A输入下当前神经网络的实际输出为yr,即:
其中,l为当前层所在神经网络的层数,L为该神经网络总的层数,f(·)是Sigmoid函数
得到实际输出Y,即:
Y={y1,y2,…,yn}
确定实际输出Y即为期望输出B。
需要说明的是,本发明实施例所提供的一种手势识别方法的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
如图6所示,本实施例还公开了一种手势识别装置,包括:
提取模块,用于获取待识别手势的形状,由所述手势形状边缘提取一个封闭的轮廓,获取该轮廓上所有的轮廓点及每个轮廓点的坐标;
计算模块,用于确定轮廓的层数,并基于每个所述轮廓点的坐标计算每个所述轮廓点对应于每层的归一化单连通区域面积、面积变化率、归一化单连通弧长弧长变化率及归一化重心距,作为该轮廓点的特征参数;
识别模块,用于利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别,并确定所述输出手势的类别为所述待识别手势的类别。
所述提取模块和计算模块相连接,所述计算模块和识别模块相连。
本实施例提供的一种手势识别装置中,提取模块可以包括:
获取单元,用于利用Kinect传感器获得待识别手势的形状;
提取单元,用于采用Canny算子针对手势形状的边缘提取一个封闭的轮廓。
本实施例提供的一种手势识别装置中,计算模块可以包括:
计算单元,用于:确定任一轮廓点为目标轮廓点,以目标轮廓点的坐标为中心,以与当前层对应的半径为预设半径作圆,得到与当前层对应的预设圆;将目标形状中被预设圆截取的,与目标轮廓点具有直接连接关系的区域的面积与预设圆的面积的比值作为目标轮廓点的归一化单连通区域面积;将所述目标轮廓点的归一化单连通区域面积与所述目标轮廓点前一点的归一化单连通区域面积相减,作为目标轮廓点的面积变化率;将目标形状中被预设圆切割出的,与目标轮廓点具有直接连接关系的弧段的长度与预设圆的周长的比值作为目标轮廓点的归一化单连通弧长;将所述目标轮廓点的归一化单连通弧长与所述目标轮廓点前一点的归一化单连通弧长相减,作为目标轮廓点的弧长变化率;确定目标形状中被预设圆截取的,与目标轮廓点具有直接连接关系的区域的重心与目标轮廓点的距离,并将该距离与预设半径的比值作为目标轮廓点的归一化重心距。
本实施例提供的一种手势识别装置中,计算单元可以包括:
半径确定单元,用于将手势形状的等效半径与2的N次方的比值作为当前层对应的预设半径,其中,N为当前层对应的层数。
本发明实施例提供的一种手势识别装置中,半径确定单元可以包括:
半径确定子单元,用于计算手势形状的面积,并对手势形状的面积进行开平方得到目标形状的等效半径。
本发明实施例提供的一种手势识别装置中,识别模块可以包括:
识别单元,用于:将所述待识别手势的所有轮廓点的特征参数按序排列组成目标序列;
将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号;
每个输出层神经元的输出信号代表一种手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别所述待识别手势的手势类别。
本实施例提供的一种手势识别装置中相关部分的说明请参见本发明实施例提供的一种手势识别方法中对应部分的详细说明,在此不再赘述。
另外,本说明书中各个实施例采用的递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同或相似的部分互相参见即可。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种手势识别方法,其特征在于:所述方法包括如下步骤:
S1、获取待识别手势,并由所述待识别手势形状的边缘提取一个封闭的轮廓,获取所述轮廓上的所有轮廓点及每个轮廓点的坐标;
S2、确定当前所有轮廓点所在的轮廓的层数为1,计算当前所有轮廓点对应于当前层的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距,将每个轮廓点的归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距作为该轮廓点的特征参数;
S3、将当前层加1作为当前层,计算当前所有轮廓点对应于当前层的特征参数,然后计算当前所有轮廓点对应于当前层的特征参数与当前所有轮廓点对应于当前层的层数减1的特征参数之间的差异,并判断当前所有轮廓点对应的所述差异的和与所述所有轮廓点的数量的比值是否小于差异阈值,如果是,则确定当前层减1得到的层数为所述轮廓的层数,并执行步骤S5,如果否,则执行步骤S4;
S4、返回步骤S3;
S5、利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别;
其中归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率及归一化重心距获取的步骤包括:
(1)、确定任一轮廓点为目标轮廓点,以所述目标轮廓点的坐标为中心,以与所述当前层对应的半径为预设半径作圆,得到与所述当前层对应的预设圆;
(2)、将所述待识别手势形状中被所述预设圆截取的与所述目标轮廓点具有直接连接关系的区域的面积与所述预设圆的面积的比值作为所述目标轮廓点的归一化单连通区域面积;
(3)、取目标轮廓点前一点,并求取所述目标轮廓点前一点的归一化单连通区域面积,将所述目标轮廓点的归一化单连通区域面积与所述目标轮廓点前一点的归一化单连通区域面积相减,得到面积变化率;
(4)、将所述待识别手势形状中被所述预设圆切割出的与所述目标轮廓点具有直接连接关系的弧段的长度与所述预设圆的周长的比值作为所述目标轮廓点的归一化单连通弧长;
(5)、取目标轮廓点前一点,并求取所述目标轮廓点前一点的归一化单连通弧长,将所述目标轮廓点的归一化单连通弧长与所述目标轮廓点前一点的归一化单连通弧长相减,得到弧长变化率;
(6)、确定所述待识别手势形状中被所述预设圆截取的与所述目标轮廓点具有直接连接关系的区域的重心与所述目标轮廓点的距离,并将该距离与所述预设半径的比值作为所述目标轮廓点的归一化重心距。
2.根据权利要求1所述的手势识别方法,其特征在于:利用Kinect传感器获取所述待识别手势的形状。
3.根据权利要求1所述的手势识别方法,其特征在于:采用Canny算子提取所述待识别手势形状的边缘获得一个封闭的轮廓。
4.根据权利要求1所述的手势识别方法,其特征在于:确定与所述当前层对应的半径为预设半径,包括:
将所述待识别手势形状的等效半径与2的N次方的比值作为所述当前层对应的预设半径,其中,N为所述当前层对应的层数。
5.根据权利要求1所述的手势识别方法,其特征在于:确定所述待识别手势形状的等效半径,包括:
计算所述待识别手势形状的面积,并对所述待识别手势形状的面积进行开平方得到所述待识别手势的等效半径。
6.根据权利要求1所述的手势识别方法,其特征在于:利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别,包括:
将所述待识别手势的所有轮廓点的特征参数按序排列组成目标序列;
将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号;
每个输出层神经元的输出信号代表一种手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别即为所述待识别手势的手势类别。
7.根据权利要求6所述的手势识别方法,其特征在于:将所述目标序列输入预设BP神经网络,得到预设BP神经网络的输出层神经元的输出信号的步骤如下:
将所述目标序列的每一项输入预设BP神经网络的输入层的对应神经元,作为预设BP神经网络的输入层神经元的输入信号,
将预设BP神经网络的输入层神经元的输入信号作为预设BP神经网络的输入层神经元的输出信号,
再将预设BP神经网络的输入层每个神经元的输出信号与预设BP神经网络输入层与第一层隐藏层一个神经元之间对应的权值相乘,作为第一层隐藏层一个神经元的输入信号,再将第一层隐藏层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述第一层隐藏层一个神经元的输出信号,循环上述步骤,直至得到所述第一层隐藏层每个神经元的输出信号;
再将所述第一层隐藏层每个神经元的输出信号与所述第一层隐藏层到下一层隐藏层一个神经元之间对应的权值相乘,作为所述下一层隐藏层一个神经元的输入信号,再将所述下一层隐藏层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述下一层隐藏层一个神经元的输出信号,循环上述步骤,直至得到所述下一层隐藏层每个神经元的输出信号;
按上述方法,重复上述隐藏层之间的操作,得到最后一层隐藏层每个神经元的输出信号,将所述最后一层隐藏层每个神经元的输出信号与所述最后一层隐藏层到所述输出层一个神经元之间对应的权值相乘,作为所述输出层一个神经元的输入信号,再将所述输出层一个神经元的所有输入信号相加并代入Sigmoid函数,得到所述输出层一个神经元的输出信号,循环上述步骤,直至得到所述输出层每个神经元的输出信号,输出层一个神经元对应一个手势类别,所有所述输出层神经元中输出信号中数值最大的一个神经元所对应的手势类别即为所述待识别手势的手势类别。
8.一种手势识别装置,其特征在于:包括:
提取模块,用于获取待识别手势的形状,由所述手势形状边缘提取一个封闭的轮廓,获取该轮廓上所有的轮廓点及每个轮廓点的坐标;
计算模块,用于确定轮廓的层数,并基于每个所述轮廓点的坐标计算每个所述轮廓点对应于每层的归一化单连通区域面积、面积变化率、归一化单连通弧长弧长变化率及归一化重心距,作为该轮廓点的特征参数;
识别模块,用于利用每个轮廓点的特征参数,将所述待识别手势输入预设BP神经网络,得到输出手势类别,并确定所述输出手势类别为所述待识别手势的类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610382507.7A CN106022297A (zh) | 2016-06-01 | 2016-06-01 | 一种手势识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610382507.7A CN106022297A (zh) | 2016-06-01 | 2016-06-01 | 一种手势识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106022297A true CN106022297A (zh) | 2016-10-12 |
Family
ID=57092058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610382507.7A Pending CN106022297A (zh) | 2016-06-01 | 2016-06-01 | 一种手势识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106022297A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203742A (zh) * | 2017-05-03 | 2017-09-26 | 苏州大学 | 一种基于显著特征点提取的手势识别方法及装置 |
CN107506749A (zh) * | 2017-09-12 | 2017-12-22 | 广东技术师范学院 | 一种手语识别方法 |
CN109635706A (zh) * | 2018-12-04 | 2019-04-16 | 武汉灏存科技有限公司 | 基于神经网络的手势识别方法、设备、存储介质及装置 |
CN109919077A (zh) * | 2019-03-04 | 2019-06-21 | 网易(杭州)网络有限公司 | 姿态识别方法、装置、介质和计算设备 |
CN110083300A (zh) * | 2019-04-08 | 2019-08-02 | 南京航空航天大学 | 一种基于距离变化的手势数据提取方法 |
CN110222512A (zh) * | 2019-05-21 | 2019-09-10 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345628A (zh) * | 2013-07-29 | 2013-10-09 | 苏州大学 | 基于分层描述的目标识别和形状检索方法 |
CN104834922A (zh) * | 2015-05-27 | 2015-08-12 | 电子科技大学 | 基于混合神经网络的手势识别方法 |
CN105303192A (zh) * | 2015-09-08 | 2016-02-03 | 苏州大学张家港工业技术研究院 | 一种基于混合描述子的形状匹配方法及系统 |
-
2016
- 2016-06-01 CN CN201610382507.7A patent/CN106022297A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345628A (zh) * | 2013-07-29 | 2013-10-09 | 苏州大学 | 基于分层描述的目标识别和形状检索方法 |
CN104834922A (zh) * | 2015-05-27 | 2015-08-12 | 电子科技大学 | 基于混合神经网络的手势识别方法 |
CN105303192A (zh) * | 2015-09-08 | 2016-02-03 | 苏州大学张家港工业技术研究院 | 一种基于混合描述子的形状匹配方法及系统 |
Non-Patent Citations (2)
Title |
---|
HAITHAM HASAN, S. ABDUL-KAREEM: "Static hand gesture recognition using neural networks", 《 ARTIF INTELL REV》 * |
JIANYU YANG ET AL.: "Invariant multi-scale descriptor for shape representation, matching and retrieval", 《COMPUTER VISION AND IMAGE UNDERSTANDING》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203742A (zh) * | 2017-05-03 | 2017-09-26 | 苏州大学 | 一种基于显著特征点提取的手势识别方法及装置 |
CN107203742B (zh) * | 2017-05-03 | 2020-05-08 | 苏州大学 | 一种基于显著特征点提取的手势识别方法及装置 |
CN107506749A (zh) * | 2017-09-12 | 2017-12-22 | 广东技术师范学院 | 一种手语识别方法 |
CN109635706A (zh) * | 2018-12-04 | 2019-04-16 | 武汉灏存科技有限公司 | 基于神经网络的手势识别方法、设备、存储介质及装置 |
CN109635706B (zh) * | 2018-12-04 | 2020-09-01 | 武汉灏存科技有限公司 | 基于神经网络的手势识别方法、设备、存储介质及装置 |
CN109919077A (zh) * | 2019-03-04 | 2019-06-21 | 网易(杭州)网络有限公司 | 姿态识别方法、装置、介质和计算设备 |
CN110083300A (zh) * | 2019-04-08 | 2019-08-02 | 南京航空航天大学 | 一种基于距离变化的手势数据提取方法 |
CN110083300B (zh) * | 2019-04-08 | 2022-01-11 | 南京航空航天大学 | 一种基于距离变化的手势数据提取方法 |
CN110222512A (zh) * | 2019-05-21 | 2019-09-10 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
CN110222512B (zh) * | 2019-05-21 | 2021-04-20 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106022297A (zh) | 一种手势识别方法及装置 | |
CN104834922B (zh) | 基于混合神经网络的手势识别方法 | |
CN112750140B (zh) | 基于信息挖掘的伪装目标图像分割方法 | |
CN106097393B (zh) | 一种基于多尺度与自适应更新的目标跟踪方法 | |
CN106022227A (zh) | 一种手势识别方法及装置 | |
CN110163258A (zh) | 一种基于语义属性注意力重分配机制的零样本学习方法及系统 | |
CN105243139A (zh) | 一种基于深度学习的三维模型检索方法及其检索装置 | |
CN106354735A (zh) | 一种图像中目标的检索方法和装置 | |
Li et al. | SHREC’14 track: Large scale comprehensive 3D shape retrieval | |
CN109272016A (zh) | 目标检测方法、装置、终端设备和计算机可读存储介质 | |
CN109446889A (zh) | 基于孪生匹配网络的物体追踪方法及装置 | |
Biasotti et al. | SHREC’14 track: Retrieval and classification on textured 3D models | |
JP2009545045A (ja) | パターン分類方法 | |
CN103295014B (zh) | 基于像素位置排列直方图的图像局部特征描述方法 | |
CN103164701B (zh) | 手写体数字识别方法及装置 | |
CN106709997B (zh) | 基于深度神经网络和稀疏自编码器的三维关键点检测方法 | |
Fu et al. | Genetic programming for edge detection: a global approach | |
CN107463865A (zh) | 人脸检测模型训练方法、人脸检测方法及装置 | |
CN111311702B (zh) | 一种基于BlockGAN的图像生成和识别模块及方法 | |
CN110349159A (zh) | 基于权重能量自适应分布的三维形状分割方法及系统 | |
CN104732534B (zh) | 一种图像中显著目标的抠取方法及系统 | |
CN107578448A (zh) | 基于cnn的无标定曲面所包含拼接曲面个数识别方法 | |
Dong et al. | An improved YOLOv5 network for lung nodule detection | |
Wang et al. | Safety Helmet Wearing Detection Model Based on Improved YOLO-M | |
Han et al. | Multi-sample image-based material recognition and formalized sequencing knowledge for operation-level construction progress monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161012 |