CN106326860A - 基于视觉的手势识别方法 - Google Patents

基于视觉的手势识别方法 Download PDF

Info

Publication number
CN106326860A
CN106326860A CN201610711131.XA CN201610711131A CN106326860A CN 106326860 A CN106326860 A CN 106326860A CN 201610711131 A CN201610711131 A CN 201610711131A CN 106326860 A CN106326860 A CN 106326860A
Authority
CN
China
Prior art keywords
point
hand
palm
gesture
edge
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
Application number
CN201610711131.XA
Other languages
English (en)
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.)
BRIGHTVISION TECHNOLOGY Co Ltd
Original Assignee
BRIGHTVISION 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 BRIGHTVISION TECHNOLOGY Co Ltd filed Critical BRIGHTVISION TECHNOLOGY Co Ltd
Priority to CN201610711131.XA priority Critical patent/CN106326860A/zh
Publication of CN106326860A publication Critical patent/CN106326860A/zh
Pending legal-status Critical Current

Links

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
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering

Abstract

本发明公开了一种基于视觉的手势识别方法,包括以下步骤:步骤1、通过Kinect传感器摄取视频流,并获得深度图像数据和骨骼数据;步骤2、用中值滤波方法对获得的深度图像数据进行预处理;步骤3、根据深度图像数据和骨骼数据对手部区域进行提取,得到手部区域二值图;步骤4、通过边缘检测二值化手部区域二值图的边缘图像,并提取手掌轮廓信息;步骤5、根据手部区域二值图进行手心重置;步骤6、根据手掌轮廓信息求出凸包顶点和外接圆;步骤7、根据手心重置以及求出的凸包顶点和外接圆,运用分类决策树和手势库中预设的多种手势进行匹配,识别手势。

Description

基于视觉的手势识别方法
技术领域
本发明涉及图像处理领域,尤其涉及一种基于视觉的深度图形数据获取和处理的手势识别方法。
背景技术
传随着计算机的高速发展,人机交互模式也不断发生着变化。现实生活经验可得,人与人在交互过程中,肢体语言也非常重要,使用手来实现人机交互,比起使用键盘,鼠标等媒介而言,更加自然流畅,这也是近期触屏手机逐步成为主流的原因之一。
而使用手来实现人机交互,其原理就是机器对手的解释,如手的形状,手的空间位置,手的姿态,手的空间位置等。而识别的方法有很多,有的是利用的配套设备,如加速度传感器等,而我今天要讲的一种识别方法是基于视觉的手势识别。
基于视觉,也就是不利用相对复杂的配套设备,使用摄像头来捕获关于手的图像,并通过算法分析,从图中抽出关于手的信息。常见的包括单目识别系统,双目识别系统以及多目识别。顾名思义,单目也就是只是用一个摄像头,而双目使用两个(相当于人的双眼,通过这个可以提取出手的深度信息,获得手的空间位置),多目也就是多摄像头协作。
基于视觉的手势识别方法普遍使用网络摄像头作为图像的提取设备,但是极易受到光照变化的影响和类肤色的干扰,识别效果到不到预期的效果,随着高科技产品Kinect深度摄像头的出现,人机交互模式又出现了新的发展方向,但是在借助Kinect的基础上怎样很好的实现手势识别已经成为探索的热点。
发明内容
本发明的目的,在于借助Kinect有效实现手势识别。
本发明为实现上述目标所采用的技术方案是:
提供基于视觉的手势识别方法,包括以下步骤:
步骤1、通过Kinect传感器摄取视频流,并获得深度图像数据和骨骼数据;
步骤2、用中值滤波方法对获得的深度图像数据进行预处理;
步骤3、根据深度图像数据和骨骼数据对手部区域进行提取,得到手部区域二值图;
步骤4、通过边缘检测二值化手部区域二值图的边缘图像,并提取手掌轮廓信息;
步骤5、根据手部区域二值图进行手心重置;
步骤6、根据手掌轮廓信息求出凸包顶点和外接圆;
步骤7、根据手心重置以及求出的凸包顶点和外接圆,运用分类决策树和手势库中预设的多种手势进行匹配,识别手势。
本发明所述的方法中,步骤S2具体包括以下步骤:
步骤2.1、先确定一个像素点p(i,j)为中心的邻域窗口w;
步骤2.2、把11×11邻域窗口w中所有像素的灰度值从小到大排列,并选择中间值作为中心像素点p(i,j)的灰度新值,窗口移动时就能够通过中值滤波对图像进行平滑处理;中值滤波的基本公式是:
f(i,j)=median{f(r,s)|f(f,s)∈Nf(i,j)}
其中f(r,s)表示邻域窗口w内任意像素点的灰度值,Nf(i,j)表示f(i,j)的实心邻域。
本发明所述的方法中,步骤S3中手部区域提取的步骤包括:
步骤3.1、根据追踪到的手心和关节点坐标位置;
步骤3.2、创建一个包含手部信息的矩形包围盒;
步骤3.3、在矩形包围盒内以手心关节点位置开始向邻域逐个遍历像素直到个数为空,得到手部区域二值图。
本发明所述的方法中,步骤3.1中追踪手心和关节点位置的步骤是:
步骤3.1a、在NITE库中Hand tracker类提供了手势检测和手部位置跟踪功能,调用算法对手势进行检测;
步骤3.1b、在对手势进行检测之后调用Hand tracker类的startHandTracking()函数对手部进行追踪。
本发明所述的方法中,步骤3.2中创建一个包含手部信息的矩形围盒的步骤是:
步骤3.2a、获得手心Z坐标深度值;
步骤3.2b、根据如下公式建立包围盒子
Width(W(z))=Heigth(W(z))=2*min{max{80-0.2*(Z-640),60},80}其中W(z)为所获取的包围盒。
本发明所述的方法中,步骤3.3中获取手部区域二值图的步骤是:
步骤3.3a、根据手心Z坐标深度值对深度图像进行分割,
其中,handmask是一个8位的单通道图像,手部候选区域的像素值为255,其它区域为0,式子中的阀值设定为100mm;
步骤3.3b、将手心点投影到2D空间根据手的大小做一次二维分割,算法如下:
步骤3.3c、对handmask所有闭合区域的面积进行统计,设置成人手掌的面积阀值,剔除掉小于该阀值的连通区域,最终获得较准确的手掌区域。
本发明所述的方法中,步骤4中,边缘检测的步骤具体包括:
步骤4.1、使用Hysteris阀值对边缘像素进行判断,对于每个候选单元,如果则标记为边缘像素,幅度边缘
▿ i , j = f x 2 ( i , j ) + f y 2 ( i , j ) ;
步骤4.2、如果剩下的候选边缘在3×3的邻域范围内,那么至少还存在着一个邻像素为边缘像素,则把它标记为边缘;
步骤4.3、重复步骤4.2,直到所有的边缘像素都被标记,剩下的则被标记为非边缘像素;
步骤4.4、得到二值化的边缘图像;
步骤4.5、对非连续的边缘进行修补和过滤得到手掌轮廓;
步骤4.6、基于OpenCV的cvFindContours函数提取手部轮廓。
本发明所述的方法中,步骤5中手心重置的步骤具体包括:
步骤5.1、利用细化方法中的距离变换对二值化的边缘图像进行分析;
步骤5.2、OpenCV选择棋盘距离l(r)=r原理的处理函数进行图像处理。
本发明所述的方法中,步骤6中,求凸包顶点的步骤具体包括:
步骤6.1、寻找所有边缘点中Y坐标值最小的点,如果最小Y坐标值不止一个,则在这几个点中选取X坐标值最小的点,并将此点设为基准点P;
步骤6.2、把所有的边缘点与基准点P连接起来,同时计算所有连线和X坐标之间的夹角,按照夹角的大小排序,将所有边缘点依次编号为P[0],P[1]…P[n],其中n为整数;
步骤6.3、假设存在着一条虚拟路径从P[0]点依次连接到P[n]点,则判断前一点到后一点的方向是向左转还是向右转;如果是向右转,则前一点不属于凸包集;如果向左转,则判定前一点为凸包点,并把它加入堆栈;以此算法处理所有的边缘点,最后堆栈中得到凸包集;
步骤6.4、对数据进行细检测筛选更为精确的指尖点;把第一个凸包P1,第二个凸包P3作为结束点,而P1和P3之间的缺陷点P2作为深度点,则起始点和结束点都有可能是指尖点;假设(P2,P1),(P2,P3)的向量分别为V1和V2,通过计算V1,V2之间的夹角和它们的长度之和,如果V1,V2的夹角小于90°,并且两个向量的长度之和大于100mm,则起始点和结束点就可判定为指尖点;
步骤6.5,运用算法算出外接圆;
其中,步骤6.3中,对于向左转或是向右转的判别使用的是向量叉乘法,假设三个连续的点分别是P0(x0,y0),P1(x1,y1),P2(x2,y2),形成一个夹角向量为((P0,P1),(P0,P2)),向量叉乘的计算如式表示:
d=(P0,P1)×(P0,P2)=(x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)
如果d>0,则(P0,P1),(P0,P2)为右转;如果d<0,则为左转;如果d=0,则为直线。
本发明所述的方法中,所述步骤7中,手势识别的步骤是:
步骤7.1、利用算法计算手势特征,包括有效凸缺陷数DCD、有效凸缺陷特征夹角DCDA、轮廓与其外接圆面积比CCR和凸包有效外接圆顶点数CD-VC这4个特征参数;
步骤7.2、建立分类决策树,根据DCD参数对不同手势第一次加以区分,对于DCD参数相同的手势再通过DCDA参数进行区分,若依然无法区别则利用CCR参数区分,最后使用CD-VC为参数加以区分。
本发明产生的有益效果是:本发明通过Kinect传感器获得深度图像数据和骨骼数据,对图像进行处理后,提取手部数据,再运用分类决策树和手势库中预设的多种手势进行匹配,从而有效识别手势。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图;
图2是本发明实施例手部提取流程图;
图3是本发明实施例手部提取前后对比图;
图4a是本发明实施例手掌轮廓的凸包顶点图;
图4b是本发明实施例手掌轮廓的外接圆;
图5是本发明实施例指尖点的检测和筛选;
图6是本发明实施例手势决策树示意图;
图7是本发明实施例手势库中的九种手势图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例基于视觉的手势识别方法,如图1所示,具体包括以下步骤:
步骤1,通过Kinect传感器摄取视频流,用OpenCV的功能获得深度数据和骨骼数据。OpenCV(Open Source Computer Vision Library)是一个基于BSD许可(开源)发行的跨平台计算机视觉库。
步骤2,用中值滤波方法对获得的深度图像进行预处理。
步骤3,根据深度数据和骨骼数据对手部区域进行提取得到手部区域二值图,如图2所示。
步骤4,根据边缘检测再把图像化为二值化的边缘图像提取手掌轮廓,如图3所示。
步骤5,根据二值图进行手心重置。
步骤6,根据手掌轮廓信息求出凸包顶点和外接圆,如图4a和图4b所示。
步骤7,运用分类决策树(如图6所示)和手势库中的九种手势(如图7 所示)进行匹配,从而识别手势。
如上所述的步骤1中,Kinect传感器的使用和图像预处理的步骤是:
步骤1.1,针对不同的用途,微软公司先后推出了两款Kinect传感器,Kinect forXbox 360传感器的有效追踪范围是1.2m至3.5m;而Kinect for Windows由于支持近景模式,可有效追踪0.4m至3.5m。本专利选择Kinect for Windows和PC机连接。
步骤1.2,通过应用程序开始遍历设备状态。
步骤1.3,初始化深度数据流,本专利初始化为640×480分辨率,每秒30桢。
步骤1.4,通过应用程序开始捕获深度数据和骨骼数据。
如上所述步骤2中,中值滤波处理图像的步骤是:
步骤2.1,先确定一个像素点p(i,j)为中心的邻域窗口w。
步骤2.2,继而把11×11邻域窗口w中所有像素的灰度值从小到大排列,并选择中间值作为中心像素点p(i,j)的灰度新值,窗口移动时就能够通过中值滤波对图像进行平滑处理。
步骤2.3,本算法所依据的中值滤波的基本公式是:
f(i,j)=median{f(r,s)|f(f,s)∈Nf(i,j)}
其中f(r,s)表示邻域窗口w内任意像素点的灰度值,Nf(i,j)表示f(i,j)的实心邻域。
如上所述步骤3中,手部区域提取的步骤是:
步骤3.1,根据追踪到的手心和关节点坐标位置。
步骤3.2,创建一个包含手部信息的矩形包围盒。
步骤3.3,然后在这个矩形包围盒内以手心关节点位置开始向邻域逐个遍 历像素直到个数为空,得到手部区域二值图。
如上所述步骤3.1中,追踪手心和关节点位置的步骤是:
步骤3.1a,在NITE库中Hand tracker类提供了手势检测和手部位置跟踪功能,调用算法对手势进行检测。
步骤3.1b,在对手势进行检测之后调用Hand tracker类的startHandTracking()函数对手部进行追踪。
如上所述步骤3.2中,创建一个包含手部信息的矩形围盒的步骤是:
步骤3.2a,获得手心Z坐标深度值。
步骤3.2b,根据如下公式建立包围盒子
Width(W(z))=Heigth(W(z))=2*min{max{80-0.2*(Z-640),60},80}其中W(z)为所获取的包围盒。
如上所述步骤3.3中,获取手部区域二值图的步骤是:
步骤3.3a,根据手心的Z坐标深度值对深度图像进行分割,
其中,handmask是一个8位的单通道图像,手部候选区域(即手部区域二值图)的像素值为255,其它区域为0,式子中的阀值设定为100mm。
步骤3.3b,再将手心点投影到2D空间根据手的大小做一次二维分割,算法如下:
步骤3.3c,对handmask所有闭合区域的面积进行统计,设置成人手掌的面积阀值200mm,剔除掉小于该阀值的连通区域,最终获得较准确地手掌区域。
如上所述步骤4中,边缘检测的步骤是:
步骤4.1,使用Hysteris阀值对边缘像素进行判断,对于每个候选单元, 如果则标记为边缘像素,幅度边缘
&dtri; i , j = f x 2 ( i , j ) + f y 2 ( i , j ) .
步骤4.2,如果剩下的候选边缘在3×3的邻域范围内,那么至少还存在着一个邻像素为边缘像素,则把它标记为边缘。
步骤4.3,重复第二步操作,直到所有的边缘像素都被标记,剩下的则被标记为非边缘像素。
步骤4.4,经过上面步骤,就把图像变为了二值化的边缘图像。
步骤4.5,对非连续的边缘进行修补和过滤就得到手掌轮廓。
步骤4.6,基于OpenCV的cvFindContours函数提取手部轮廓。
如上所述步骤5中,手心重置的步骤是:
步骤5.1,利用细化方法中的距离变换对二值化的边缘图像进行分析。
步骤5.2,OpenCV选择棋盘距离l(r)=r原理的处理函数进行图像处理。
如上所述步骤6中,求凸包顶点的步骤是:
步骤6.1,寻找所有边缘点中Y坐标值最小的点,如果最小Y坐标值不止一个时,就在这几个点中选取X坐标值最小的点,并将此点设为基准点P。
步骤6.2,把所有的边缘点与基准点P连接起来,同时计算所有连线和X坐标之间的夹角,按照夹角的大小排序,将所有边缘点依次编号为P[0],P[1]…P[n]。
步骤6.3,假设存在着一条虚拟路径从P[0]点依次连接到P[n]点,我们需要判断前一点到后一点的方向是向左转还是向右转。如果是向右转,则意味着前一点不属于凸包集;如果向左转,我们就判定前一点为凸包点,并把它加入堆栈。以此算法处理所有的边缘点,最后堆栈中得到凸包集。
步骤6.4,对数据进行细检测筛选更为精确的指尖点。把第一个凸包P1, 第二个凸包P3作为结束点,而P1和P3之间的缺陷点P2作为深度点。起始点和结束点都有可能是指尖点。假设(P2,P1),(P2,P3)的向量分别为V1和V2,通过计算V1,V2之间的夹角和它们的长度之和,如果V1,V2的夹角小于90°,并且两个向量的长度之和大于100mm,那么起始点和结束点就可判定为指尖点(如图5所示)。
步骤6.5,运用算法算出外接圆。
如上所述步骤6.3中,对于向左转或是向右转的判别使用的是向量叉乘法,假设三个连续的点分别是P0(x0,y0),P1(x1,y1),P2(x2,y2),形成一个夹角向量为((P0,P1),(P0,P2)),向量叉乘的计算如式表示:
d=(P0,P1)×(P0,P2)=(x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)
如果d>0,则(P0,P1),(P0,P2)为右转;如果d<0,则为左转;如果d=0,则为直线。
如上所述步骤7中,手势识别的步骤是:
步骤7.1,利用算法计算手势特征,调用Opencv中有效凸缺陷数(DCD)方法、有效凸缺陷特征夹角(DCDA)方法、轮廓与其外接圆面积比(CCR)方法和凸包有效外接圆顶点数(CD-VC)4个方法来计算并获取参数。
步骤7.2,建立分类决策树(如图6所示),其识别流程所示,根据DCD参数对不同手势第一次加以区分,对于DCD参数相同的手势再通过DCDA参数进行区分,若依然无法区别则利用CCR参数区分,最后使用CD-VC为参数加以区分。
具体识别流程,当DCD为0时判断CCR的值,CCR大于0.55表明为手势2,当CCR小于0.35时为手势4,当大于0.35并小于0.55为手势3;
当DCD=1时,判断DCDA的角度,DCDA小于90并且CCR大于等于0.45时 为手势3,CCR小于0.45时为手势5,当DCDA大于等于90并且CDVC等于2则为手势7,CDVC不等于2则为手势4;
当DCD等于4时为手势1;
当DCD等于2,DCDA小于90为手势6,DCDA大于等于90为手势5;
当DCD等于3,DCDA小于90为手势8,DCDA大于90为手势9。
为了做到用户友好,手势识别应不受手势旋转角度以及手势区域远近的影响,由于本算法使用DCD、CCR参数为比值,这使得本发明方法具有良好的自适应性;DCDA与CDVC参数本身既具有缩放以及旋转不变性。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种基于视觉的手势识别方法,其特征在于,包括以下步骤:
步骤1、通过Kinect传感器摄取视频流,并获得深度图像数据和骨骼数据;
步骤2、用中值滤波方法对获得的深度图像数据进行预处理;
步骤3、根据深度图像数据和骨骼数据对手部区域进行提取,得到手部区域二值图;
步骤4、通过边缘检测二值化手部区域二值图的边缘图像,并提取手掌轮廓信息;
步骤5、根据手部区域二值图进行手心重置;
步骤6、根据手掌轮廓信息求出凸包顶点和外接圆;
步骤7、根据手心重置以及求出的凸包顶点和外接圆,运用分类决策树和手势库中预设的多种手势进行匹配,识别手势。
2.根据权利要求1所述的方法,其特征在于,步骤S2具体包括以下步骤:
步骤2.1、先确定一个像素点p(i,j)为中心的邻域窗口w;
步骤2.2、把11×11邻域窗口w中所有像素的灰度值从小到大排列,并选择中间值作为中心像素点p(i,j)的灰度新值,窗口移动时就能够通过中值滤波对图像进行平滑处理;中值滤波的基本公式是:
f(i,j)=median{f(r,s)|f(f,s)∈Nf(i,j)}
其中f(r,s)表示邻域窗口w内任意像素点的灰度值,Nf(i,j)表示f(i,j)的实心邻域。
3.根据权利要求1所述的方法,其特征在于,步骤S3中手部区域提取的步骤包括:
步骤3.1、根据追踪到的手心和关节点坐标位置;
步骤3.2、创建一个包含手部信息的矩形包围盒;
步骤3.3、在矩形包围盒内以手心关节点位置开始向邻域逐个遍历像素直到个数为空,得到手部区域二值图。
4.根据权利要求3所述的方法,其特征在于,步骤3.1中追踪手心和关节点位置的步骤是:
步骤3.1a、在NITE库中Hand tracker类提供了手势检测和手部位置跟踪功能,调用算法对手势进行检测;
步骤3.1b、在对手势进行检测之后调用Hand tracker类的startHandTracking()函数对手部进行追踪。
5.根据权利要求3所述的方法,其特征在于,步骤3.2中创建一个包含手部信息的矩形围盒的步骤是:
步骤3.2a、获得手心Z坐标深度值;
步骤3.2b、根据如下公式建立包围盒子
Width(W(z))=Heigth(W(z))=2*min{max{80-0.2*(Z-640),60},80}其中W(z)为所获取的包围盒。
6.根据权利要求3所述的方法,其特征在于,步骤3.3中获取手部区域二值图的步骤是:
步骤3.3a、根据手心Z坐标深度值对深度图像进行分割,
其中,handmask是一个8位的单通道图像,手部候选区域的像素值为255,其它区域为0,式子中的阀值设定为100mm;
步骤3.3b、将手心点投影到2D空间根据手的大小做一次二维分割,算法如下:
步骤3.3c、对handmask所有闭合区域的面积进行统计,设置成人手掌的面积阀值,剔除掉小于该阀值的连通区域,最终获得较准确的手掌区域。
7.根据权利要求1所述的方法,其特征在于,步骤4中,边缘检测的步骤具体包括:
步骤4.1、使用Hysteris阀值对边缘像素进行判断,对于每个候选单元,如果则标记为边缘像素,幅度边缘
&dtri; i , j = f x 2 ( i , j ) + f y 2 ( i , j ) ;
步骤4.2、如果剩下的候选边缘在3×3的邻域范围内,那么至少还存在着一个邻像素为边缘像素,则把它标记为边缘;
步骤4.3、重复步骤4.2,直到所有的边缘像素都被标记,剩下的则被标记为非边缘像素;
步骤4.4、得到二值化的边缘图像;
步骤4.5、对非连续的边缘进行修补和过滤得到手掌轮廓;
步骤4.6、基于OpenCV的cvFindContours函数提取手部轮廓。
8.根据权利要求1所述的方法,其特征在于,步骤5中手心重置的步骤具体包括:
步骤5.1、利用细化方法中的距离变换对二值化的边缘图像进行分析;
步骤5.2、OpenCV选择棋盘距离l(r)=r原理的处理函数进行图像处理。
9.根据权利要求1所述的方法,其特征在于,步骤6中,求凸包顶点的步骤具体包括:
步骤6.1、寻找所有边缘点中Y坐标值最小的点,如果最小Y坐标值不止一个,则在这几个点中选取X坐标值最小的点,并将此点设为基准点P;
步骤6.2、把所有的边缘点与基准点P连接起来,同时计算所有连线和X坐标之间的夹角,按照夹角的大小排序,将所有边缘点依次编号为P[0],P[1]…P[n],其中n为整数;
步骤6.3、假设存在着一条虚拟路径从P[0]点依次连接到P[n]点,则判断前一点到后一点的方向是向左转还是向右转;如果是向右转,则前一点不属于凸包集;如果向左转,则判定前一点为凸包点,并把它加入堆栈;以此算法处理所有的边缘点,最后堆栈中得到凸包集;
步骤6.4、对数据进行细检测筛选更为精确的指尖点;把第一个凸包P1,第二个凸包P3作为结束点,而P1和P3之间的缺陷点P2作为深度点,则起始点和结束点都有可能是指尖点;假设(P2,P1),(P2,P3)的向量分别为V1和V2,通过计算V1,V2之间的夹角和它们的长度之和,如果V1,V2的夹角小于90°,并且两个向量的长度之和大于100mm,则起始点和结束点就可判定为指尖点;
步骤6.5,运用算法算出外接圆;
其中,步骤6.3中,对于向左转或是向右转的判别使用的是向量叉乘法,假设三个连续的点分别是P0(x0,y0),P1(x1,y1),P2(x2,y2),形成一个夹角向量为((P0,P1),(P0,P2)),向量叉乘的计算如式表示:
d=(P0,P1)×(P0,P2)=(x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)
如果d>0,则(P0,P1),(P0,P2)为右转;如果d<0,则为左转;如果d=0,则为直线。
10.根据权利要求1所述的方法,其特征在于,所述步骤7中,手势识别的步骤是:
步骤7.1、利用算法计算手势特征,包括有效凸缺陷数DCD、有效凸缺陷特征夹角DCDA、轮廓与其外接圆面积比CCR和凸包有效外接圆顶点数CD-VC这4个特征参数;
步骤7.2、建立分类决策树,根据DCD参数对不同手势第一次加以区分,对于DCD参数相同的手势再通过DCDA参数进行区分,若依然无法区别则利用CCR参数区分,最后使用CD-VC为参数加以区分。
CN201610711131.XA 2016-08-23 2016-08-23 基于视觉的手势识别方法 Pending CN106326860A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610711131.XA CN106326860A (zh) 2016-08-23 2016-08-23 基于视觉的手势识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610711131.XA CN106326860A (zh) 2016-08-23 2016-08-23 基于视觉的手势识别方法

Publications (1)

Publication Number Publication Date
CN106326860A true CN106326860A (zh) 2017-01-11

Family

ID=57742684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610711131.XA Pending CN106326860A (zh) 2016-08-23 2016-08-23 基于视觉的手势识别方法

Country Status (1)

Country Link
CN (1) CN106326860A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038424A (zh) * 2017-04-20 2017-08-11 华中师范大学 一种手势识别方法
CN107241643A (zh) * 2017-08-03 2017-10-10 沈阳建筑大学 一种多媒体音量调节方法及系统
CN107452006A (zh) * 2017-08-11 2017-12-08 哈尔滨工业大学 基于编码镜头的芯片元件定位方法
CN107622257A (zh) * 2017-10-13 2018-01-23 深圳市未来媒体技术研究院 一种神经网络训练方法及三维手势姿态估计方法
CN107688779A (zh) * 2017-08-18 2018-02-13 北京航空航天大学 一种基于rgbd摄像头深度图像的机器人手势交互方法和装置
CN107883930A (zh) * 2017-10-30 2018-04-06 北京致臻智造科技有限公司 一种显示屏的位姿计算方法及系统
CN109299743A (zh) * 2018-10-18 2019-02-01 京东方科技集团股份有限公司 手势识别方法及装置、终端
CN109934800A (zh) * 2019-01-30 2019-06-25 红云红河烟草(集团)有限责任公司 一种烟包卡纸的定位方法及系统
CN110032270A (zh) * 2018-01-12 2019-07-19 中国科学院沈阳自动化研究所 一种基于手势识别的人机交互方法
CN110046603A (zh) * 2019-04-25 2019-07-23 合肥工业大学 一种中国普乐手语编码的手势动作识别方法
CN110705465A (zh) * 2019-09-30 2020-01-17 哈尔滨理工大学 一种基于图像处理的手型分类方法
CN113039550A (zh) * 2018-10-10 2021-06-25 深圳市道通智能航空技术股份有限公司 手势识别方法、vr视角控制方法以及vr系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853071A (zh) * 2010-05-13 2010-10-06 重庆大学 基于视觉的手势识别方法及系统
CN102236412A (zh) * 2010-04-30 2011-11-09 宏碁股份有限公司 三维手势识别系统以及基于视觉的手势识别方法
CN102402680A (zh) * 2010-09-13 2012-04-04 株式会社理光 人机交互系统中手部、指示点定位方法和手势确定方法
CN103714322A (zh) * 2013-12-26 2014-04-09 四川虹欧显示器件有限公司 一种实时手势识别方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236412A (zh) * 2010-04-30 2011-11-09 宏碁股份有限公司 三维手势识别系统以及基于视觉的手势识别方法
CN101853071A (zh) * 2010-05-13 2010-10-06 重庆大学 基于视觉的手势识别方法及系统
CN102402680A (zh) * 2010-09-13 2012-04-04 株式会社理光 人机交互系统中手部、指示点定位方法和手势确定方法
CN103714322A (zh) * 2013-12-26 2014-04-09 四川虹欧显示器件有限公司 一种实时手势识别方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孟上 等;: "《一种基于深度图像的手势识别算法》", 《数字通信》 *
李长龙: "《基于Kinect深度图像的手势识别研究》", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038424A (zh) * 2017-04-20 2017-08-11 华中师范大学 一种手势识别方法
CN107241643A (zh) * 2017-08-03 2017-10-10 沈阳建筑大学 一种多媒体音量调节方法及系统
CN107452006A (zh) * 2017-08-11 2017-12-08 哈尔滨工业大学 基于编码镜头的芯片元件定位方法
CN107688779A (zh) * 2017-08-18 2018-02-13 北京航空航天大学 一种基于rgbd摄像头深度图像的机器人手势交互方法和装置
CN107622257A (zh) * 2017-10-13 2018-01-23 深圳市未来媒体技术研究院 一种神经网络训练方法及三维手势姿态估计方法
CN107883930A (zh) * 2017-10-30 2018-04-06 北京致臻智造科技有限公司 一种显示屏的位姿计算方法及系统
CN107883930B (zh) * 2017-10-30 2020-11-13 北京致臻智造科技有限公司 一种显示屏的位姿计算方法及系统
CN110032270B (zh) * 2018-01-12 2020-05-08 中国科学院沈阳自动化研究所 一种基于手势识别的人机交互方法
CN110032270A (zh) * 2018-01-12 2019-07-19 中国科学院沈阳自动化研究所 一种基于手势识别的人机交互方法
CN113039550A (zh) * 2018-10-10 2021-06-25 深圳市道通智能航空技术股份有限公司 手势识别方法、vr视角控制方法以及vr系统
CN109299743A (zh) * 2018-10-18 2019-02-01 京东方科技集团股份有限公司 手势识别方法及装置、终端
CN109934800A (zh) * 2019-01-30 2019-06-25 红云红河烟草(集团)有限责任公司 一种烟包卡纸的定位方法及系统
CN110046603A (zh) * 2019-04-25 2019-07-23 合肥工业大学 一种中国普乐手语编码的手势动作识别方法
CN110705465A (zh) * 2019-09-30 2020-01-17 哈尔滨理工大学 一种基于图像处理的手型分类方法
CN110705465B (zh) * 2019-09-30 2021-05-18 哈尔滨理工大学 一种基于图像处理的手型分类方法

Similar Documents

Publication Publication Date Title
CN106326860A (zh) 基于视觉的手势识别方法
JP6079832B2 (ja) ヒューマンコンピュータインタラクションシステム、手と手指示点位置決め方法、及び手指のジェスチャ決定方法
CN107038424B (zh) 一种手势识别方法
CN107871124B (zh) 一种基于深度神经网络的遥感图像目标检测方法
CN103941866B (zh) 一种基于Kinect深度图像的三维手势识别方法
CN104834922B (zh) 基于混合神经网络的手势识别方法
EP2339507B1 (en) Head detection and localisation method
US8787663B2 (en) Tracking body parts by combined color image and depth processing
CN104978012B (zh) 一种指向交互方法、装置及系统
Oprisescu et al. Automatic static hand gesture recognition using tof cameras
CN108304819B (zh) 姿态识别系统及方法、存储介质
CN105046206B (zh) 基于视频中运动先验信息的行人检测方法及装置
CN103984928A (zh) 基于景深图像的手指手势识别方法
JPH10214346A (ja) ハンドジェスチャ認識システムおよび方法
Krejov et al. Multi-touchless: Real-time fingertip detection and tracking using geodesic maxima
Schmidt et al. Kernel particle filter for real-time 3d body tracking in monocular color images
CN103105924B (zh) 人机交互方法和装置
CN106709518A (zh) 基于Android平台的盲道识别系统
CN106200971A (zh) 基于手势识别的人机交互系统装置及操作方法
Al Ayubi et al. The prototype of hand gesture recognition for elderly people to control connected home devices
KR101967858B1 (ko) 3d 깊이 이미지 기반 객체 분리 장치 및 그 방법
CN108268125A (zh) 一种基于计算机视觉的运动手势检测及跟踪方法
Elakkiya et al. Intelligent system for human computer interface using hand gesture recognition
CN108108648A (zh) 一种新型的手势识别系统装置及方法
Yang et al. Method for building recognition from FLIR images

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170111

WD01 Invention patent application deemed withdrawn after publication