CN109299743A - 手势识别方法及装置、终端 - Google Patents
手势识别方法及装置、终端 Download PDFInfo
- Publication number
- CN109299743A CN109299743A CN201811215144.3A CN201811215144A CN109299743A CN 109299743 A CN109299743 A CN 109299743A CN 201811215144 A CN201811215144 A CN 201811215144A CN 109299743 A CN109299743 A CN 109299743A
- Authority
- CN
- China
- Prior art keywords
- hand
- pixel
- gesture
- row
- region
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/752—Contour matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local 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
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
-
- 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/117—Biometrics derived from hands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种手势识别方法及装置、终端,属于图像处理技术领域。所述方法包括:获取摄像设备采集的手部初始图像;对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像;获取所述二值化图像中的手部轮廓数据,所述手部轮廓数据用于与数据库中的手势数据进行比对,以确定所述手部轮廓数据所表征的手势含义,所述数据库中包含至少一组手势数据与手势含义的对应关系。本发明提供的手势识别方法复杂度较低,提高了手势识别的可靠性。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种手势识别方法及装置、终端。
背景技术
随着计算机视觉技术的快速发展,人机交互的方式渐渐由接触式交互转换为非接触式交互。目前常见的非接触式交互包括语音交互和图像交互。手势作为一种自然而直观的交互模式,对手势识别的研究成为了图像交互领域的研究热点。手势分为动态手势和静态手势,动态手势一般用于反映手的运动轨迹,静态手势一般用于通过手型传递一定的手势含义。
目前通常采用基于几何特征或神经网络的手势识别算法进行手势识别。由于手势识别算法的复杂度较高,因此在获取手部图像后,需要在中央处理器(Central ProcessingUnit,CPU)中运行手势识别算法,一方面增加了CPU的负载和功耗,另一方面,由于CPU通过串行的方式处理数据,获取的手部图像需存储在队列中,当手部图像的采集帧率较高且手部识别算法的复杂度较高时,可能出现CPU无法实时处理手部图像而导致满队列后丢帧的情况,手势识别的精度较低。因此,目前手势识别的可靠性较低。
发明内容
本发明实施例提供了一种手势识别方法及装置、终端,可以解决相关技术中手势识别的可靠性较低的问题。所述技术方案如下:
第一方面,提供了一种手势识别方法,应用于手势识别装置,所述方法包括:
获取摄像设备采集的手部初始图像;
对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像;
获取所述二值化图像中的手部轮廓数据,所述手部轮廓数据用于与数据库中的手势数据进行比对,以确定所述手部轮廓数据所表征的手势含义,所述数据库中包含至少一组手势数据与手势含义的对应关系。
可选的,所述获取所述二值化图像中的手部轮廓数据,包括:
获取所述二值化图像中的至少一个目标连通区域;
计算每个所述目标连通区域内包含的像素点的数量;
将包含的像素点的数量最多的目标连通区域确定为手部区域;
将所述手部区域的边缘的所有像素点的位置信息作为所述手部轮廓数据。
可选的,所述获取所述二值化图像中的至少一个目标连通区域,包括:
获取所述二值化图像中每行像素点的行连通区域;
基于邻域搜索算法,对所述行连通区域进行区域合并,得到所述至少一个目标连通区域。
可选的,所述手势识别装置为集成电路,所述基于邻域搜索算法,对所述行连通区域进行区域合并,包括:
在所述集成电路的线缓冲区存储第i行像素点的灰度值,i≥1;
执行行连通区域合并流程,所述行连通区域合并流程包括:
在获取第i+1行像素点的灰度值后,基于所述第i行像素点的灰度值以及所述第i+1行像素点的灰度值,采用8邻域搜索算法,对所述第i行像素点的行连通区域与所述第i+1行像素点的行连通区域进行区域合并;
当所述i小于所述二值化图像中像素点的行数时,采用所述第i+1行像素点的灰度值更新所述线缓冲区中所述第i行像素点的灰度值,更新i=i+1,并重复执行所述行连通区域合并流程,直至所述i不小于所述二值化图像中像素点的行数,将区域合并得到的所有连通区域作为所述至少一个目标连通区域。
可选的,所述对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像,包括:
对所述手部初始图像进行灰度化处理,得到手部灰度图像;
对所述手部灰度图像进行滤波处理;
对经过所述滤波处理的手部灰度图像进行二值化处理,得到所述二值化图像。
可选的,所述对经过所述滤波处理的手部灰度图像进行二值化处理,包括:
将经过所述滤波处理的手部灰度图像中的每个像素点的灰度值与指定灰度阈值进行比较;
当所述像素点的灰度值与所述指定灰度阈值的大小关系满足指定条件时,确定所述像素点的灰度值为第一数值;
当所述像素点的灰度值与所述指定灰度阈值的大小关系不满足所述指定条件时,确定所述像素点的灰度值为第二数值,所述第二数值与所述第一数值不同。
可选的,在所述对经过所述滤波处理的手部灰度图像进行二值化处理,得到所述二值化图像之后,所述方法还包括:
对所述二值化图像进行边缘平滑处理。
第二方面,提供了一种手势识别装置,所述装置包括:
第一获取模块,用于获取摄像设备采集的手部初始图像;
图像预处理模块,用于对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像;
第二获取模块,用于获取所述二值化图像中的手部轮廓数据,所述手部轮廓数据用于与数据库中的手势数据进行比对,以确定所述手部轮廓数据所表征的手势含义,所述数据库中包含至少一组手势数据与手势含义的对应关系。
可选的,所述第二获取模块,包括:
获取子模块,用于获取所述二值化图像中的至少一个目标连通区域;
计算子模块,用于计算每个所述目标连通区域内包含的像素点的数量;
第一确定子模块,用于将包含的像素点的数量最多的目标连通区域确定为手部区域;
第二确定子模块,用于将所述手部区域的边缘的所有像素点的位置信息作为所述手部轮廓数据。
可选的,所述获取子模块,用于:
获取所述二值化图像中每行像素点的行连通区域;
基于邻域搜索算法,对所述行连通区域进行区域合并,得到所述至少一个目标连通区域。
可选的,所述手势识别装置为集成电路,所述获取子模块,用于:
在所述集成电路的线缓冲区存储第i行像素点的灰度值,i≥1;
执行行连通区域合并流程,所述行连通区域合并流程包括:
在获取第i+1行像素点的灰度值后,基于所述第i行像素点的灰度值以及所述第i+1行像素点的灰度值,采用8邻域搜索算法,对所述第i行像素点的行连通区域与所述第i+1行像素点的行连通区域进行区域合并;
当所述i小于所述二值化图像中像素点的行数时,采用所述第i+1行像素点的灰度值更新所述线缓冲区中所述第i行像素点的灰度值,更新i=i+1,并重复执行所述行连通区域合并流程,直至所述i不小于所述二值化图像中像素点的行数,将区域合并得到的所有连通区域作为所述至少一个目标连通区域。
可选的,所述图像预处理模块,包括:
灰度处理子模块,用于对所述手部初始图像进行灰度化处理,得到手部灰度图像;
滤波处理子模块,用于对所述手部灰度图像进行滤波处理;
二值化处理子模块,用于对经过所述滤波处理的手部灰度图像进行二值化处理,得到所述二值化图像;
边缘平滑处理子模块,用于对所述二值化图像进行边缘平滑处理;
其中,所述对经过所述滤波处理的手部灰度图像进行二值化处理的过程包括:
将经过所述滤波处理的手部灰度图像中的每个像素点的灰度值与指定灰度阈值进行比较,
当所述像素点的灰度值与所述指定灰度阈值的大小关系满足指定条件时,确定所述像素点的灰度值为第一数值,
当所述像素点的灰度值与所述指定灰度阈值的大小关系不满足所述指定条件时,确定所述像素点的灰度值为第二数值,所述第二数值与所述第一数值不同。
第三方面,提供了一种手势识别装置,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序,实现如第一方面任一所述的手势识别方法。
第四方面,提供了一种终端,包括摄像设备、中央处理器和如第三方面所述的手势识别装置,所述手势识别装置为集成电路,所述处理器为现场可编程门阵列FPGA芯片;
所述摄像设备用于采集手部初始图像;
所述手势识别装置用于对所述手部初始图像进行手势识别处理,并向所述中央处理器传输所述手势识别处理得到的手势识别数据。
第五方面,提供了一种计算机可读存储介质,当所述存储介质中的程序由处理器执行时,能够执行如第一方面任一所述的手势识别方法。
本发明实施例提供的技术方案带来的有益效果包括:
在获取摄像设备采集的手部初始图像后,对手部初始图像进行图像预处理,以得到二值化图像,并获取二值化图像中的手部轮廓数据。在手势识别过程中,基于手部轮廓数据确定手势含义。本发明实施例提供的手势识别方法与相关技术中的手势识别算法相比复杂度较低,在降低手势识别装置的负载和功耗的同时,可以提高手势识别装置对手部图像的处理速度,进而提高手势识别的可靠性。
附图说明
图1是本发明实施例提供的一种手势识别方法的流程图;
图2是本发明实施例提供的另一种手势识别方法的流程图;
图3是本发明实施例提供的一种图像预处理的方法流程图;
图4是本发明实施例提供的一种获取手部轮廓数据的方法流程图;
图5是本发明实施例提供的一种线缓冲区中缓存的二值数据的示意图;
图6是本发明实施例提供的另一种线缓冲区中缓存的二值数据的示意图;
图7是本发明实施例提供的两行像素点的灰度值的示意图;
图8是本发明实施例提供的一种手势识别装置的结构示意图;
图9是本发明实施例提供的一种第二获取模块的结构示意图;
图10是本发明实施例提供的一种图像预处理模块的结构示意图;
图11是本发明实施例提供的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种手势识别方法的流程图,应用于手势识别装置,如图1所示,该方法包括:
步骤101、获取摄像设备采集的手部初始图像。
步骤102、对手部初始图像进行图像预处理,得到该手部初始图像对应的二值化图像。
步骤103、获取二值化图像中的手部轮廓数据,该手部轮廓数据用于与数据库中的手势数据进行比对,以确定手部轮廓数据所表征的手势含义,该数据库中包含至少一组手势数据与手势含义的对应关系。
需要说明的是,本发明实施例提供的手势识别装置可以是CPU,也可以是集成电路,该集成电路可以是专用集成电路(Application Specific Integrated Circuit,ASIC)。
综上所述,本发明实施例提供的手势识别方法,在获取摄像设备采集的手部初始图像后,对手部初始图像进行图像预处理,以得到二值化图像,并获取二值化图像中的手部轮廓数据。在手势识别过程中,基于手部轮廓数据确定手势含义。本发明实施例提供的手势识别方法与相关技术中的手势识别算法相比复杂度较低,在降低手势识别装置的负载和功耗的同时,可以提高手势识别装置对手部图像的处理速度,进而提高手势识别的可靠性。
图2是本发明实施例提供的另一种手势识别方法的流程图,应用于手势识别装置,如图2所示,该方法包括:
步骤201、获取摄像设备采集的手部初始图像。
可选的,摄像设备可以将采集到的手部初始图像的RGB图像数据(彩色图像数据)传输至手势识别装置。手部初始图像指对手部进行拍摄得到的图像。
在本发明实施例中,当手势识别装置为集成电路时,摄像设备可以将采集到的手部初始图像的图像数据传输至现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片。
步骤202、对手部初始图像进行图像预处理,得到该手部初始图像对应的二值化图像。
可选的,对手部初始图像进行图像预处理,得到手部初始图像对应的二值化图像的过程,如图3所示,可以包括:
步骤2021、对手部初始图像进行灰度化处理,得到手部灰度图像。
可选的,可以对手部初始图像进行灰度化处理,使得生成的手部灰度图像中像素点处于0至255灰阶,减小图像的数据量。本发明实施例对灰度化处理过程中所采用的灰度转换算法的算法类型不做限定。
步骤2022、对手部灰度图像进行滤波处理。
可选的,可以对手部灰度图像进行高斯滤波处理,以去除手部灰度图像中的高斯噪声。在本发明实施例中,可以采用离散化窗口滑窗卷积的方式实现高斯滤波。例如可以采用3*3滤波核(也可称为卷积核)遍历整帧手部灰度图像,以去除手部灰度图像中的噪点。示例的,3*3滤波核的模板可以表示如下:
1 | 2 | 1 |
2 | 4 | 2 |
1 | 2 | 1 |
其中,滤波核中的系数可根据实际需求进行调整,上述系数仅用于示例性说明。
示例的,当上述手势识别装置为集成电路时,在对手部灰度图像进行滤波处理的过程中,可以在集成电路的随机存储器(random access memory,RAM)中缓存两行像素数据,例如该两行像素数据为第m行和第m+1行像素点的灰度值,并采用上述3*3滤波核对该两行像素数据进行滤波处理;在完成对该两行像素数据的滤波处理后,将RAM中的像素数据更新为第m+1行和第m+2行像素点的灰度值,并继续对RAM中的像素数据进行滤波处理,直至遍历完整个手部灰度图像。其中,m为正整数。需要说明的是,在对手部灰度图像进行滤波处理的过程中,仅需在RAM中存储两行像素数据,资源占用量较小,所需耗费的硬件成本较低。
步骤2023、对经过滤波处理的手部灰度图像进行二值化处理,得到二值化图像。
可选的,上述步骤2023的实现过程包括:
将经过滤波处理的手部灰度图像中的每个像素点的灰度值与指定灰度阈值进行比较;当像素点的灰度值与指定灰度阈值的大小关系满足指定条件时,确定像素点的灰度值为第一数值;当像素点的灰度值与指定灰度阈值的大小关系不满足指定条件时,确定像素点的灰度值为第二数值,第二数值与第一数值不同。
示例的,当像素点的灰度值大于指定灰度阈值时,则确定该像素点的灰度值为第一数值,例如可以缓存该像素点的灰度值为0;当像素点的灰度值小于或等于指定灰度阈值时,则确定该像素点的灰度值为第二数值,例如可以缓存该像素点的灰度值为1。或者,当像素点的灰度值小于指定灰度阈值时,则确定该像素点的灰度值为第一数值,例如可以缓存该像素点的灰度值为0;当像素点的灰度值大于或等于指定灰度阈值时,则确定该像素点的灰度值为第二数值,例如可以缓存该像素点的灰度值为1。又或者,当像素点的灰度值处于指定灰度阈值范围内时,则确定该像素点的灰度值为第一数值,例如可以缓存该像素点的灰度值为0;当像素点的灰度值不处于指定灰度阈值范围内时,则确定该像素点的灰度值为第二数值,例如可以缓存该像素点的灰度值为1。本发明实施例对像素点的灰度值的阈值分割条件不做限定,上述指定灰度阈值可以为固定阈值,也可以为自适应阈值,本发明实施例对此不做限定。
需要说明的是,对手部灰度图像进行二值化处理(也可称为阈值分割处理),可以将像素点的灰阶从256转换为2,也即是将数据量从8比特减小为1比特,极大程度上降低了手部图像的数据量,进而减小了后续图像处理的复杂度。
可选的,对经过滤波处理的手部灰度图像进行二值化处理之后,可提取手部图像中的手部色斑图,例如灰度值为1的像素点可认为是手部的像素点。
步骤2024、对二值化图像进行边缘平滑处理。
可选的,可以对二值化图像进行边界腐蚀操作、边界膨胀操作、开运算和/或闭运算,以实现对二值化图像的边缘平滑,本发明实施例对边缘平滑处理算法的类型不做限定。
在本发明实施例中,在获取手部初始图像后,可先对手部初始图像进行裁剪,以减小手部图像的数据量。例如,可以对手部初始图像的边缘进行裁剪,裁剪区域可根据摄像设备的相机参数以及标定参数确定,即该裁剪区域为固定裁剪区域;或者,裁剪区域也可以根据对手部初始图像的识别结果确定,即该裁剪区域为动态裁剪区域,本发明实施例对此不做限定。当手势识别装置为集成电路时,可通过FPGA对手部初始图像进行裁剪。
步骤203、获取二值化图像中的手部轮廓数据。
可选的,上述步骤203的实现过程,如图4所示,包括:
步骤2031、获取二值化图像中的至少一个目标连通区域。
可选的,可以获取二值化图像中每行像素点的行连通区域;基于邻域搜索算法,对行连通区域进行区域合并,得到至少一个目标连通区域。
在本发明实施例中,当手势识别装置为集成电路,则基于邻域搜索算法,对行连通区域进行区域合并的过程,包括:
S311、在集成电路的线缓冲区存储第i行像素点的灰度值,i≥1。
其中,像素点的灰度值为二值数据。示例的,当在第i行像素点中搜索到灰度值为1的像素点时,确定检测到某个连通区域,将连续的灰度值为1的像素点的坐标存储在RAM中;若存在不连续的灰度值为1的像素点,则将不连续的灰度值为1的像素点的坐标存储在不同RAM中。图5和图6分别是本发明实施例提供的一种线缓冲区(linebuffer)中缓存的二值数据的示意图,如图5所示,第i行像素点中存在一个行连通区域,则可以将该行连通区域中像素点的坐标存储在某个RAM;如图6所示,第i行像素点中存在两个行连通区域,则可以将一个行连通区域中像素点的坐标存储在RAM1中,将另一个行连通区域中像素点的坐标存储在RAM2中。
S312、执行行连通区域合并流程。
其中,行连通区域合并流程包括:
在获取第i+1行像素点的灰度值后,基于第i行像素点的灰度值以及第i+1行像素点的灰度值,采用8邻域搜索算法,对第i行像素点的行连通区域与第i+1行像素点的行连通区域进行区域合并。
可选的,在本发明实施例中,可采用K邻域搜索算法对行连通区域进行区域合并,除上述8邻域搜索算法以外,也可采用4邻域搜索算法对第i行像素点的行连通区域与第i+1行像素点的行连通区域进行区域合并,本发明实施例对此不做限定。当采用8邻域搜索算法时,在获取第i+1行像素点的灰度值后,扫描第i+1行像素点中灰度值为1的像素点,检测该灰度值为1的像素点的左上方、上方或右上方是否存在灰阶值为1的像素点,若该灰度值为1的像素点的左上方、上方或右上方的像素点中至少一个像素点的灰阶值为1,则表明该位于i+1行的像素点所在的行连通区域可与第i行像素点的行连通区域进行区域合并。
示例的,图7是本发明实施例提供的两行像素点的灰度值的示意图,如图7所示,第i行像素点存在两个行连通区域,第一个行连通区域A中的像素点的坐标存储在RAM1中,第二个行连通区域B中的像素点的坐标存储在RAM2中,第i+1行像素点存在一个行连通区域C,该行连通区域C中的像素点的坐标存储在RAM3中。由于第i+1行中存在像素点a,该像素点a的前一像素点和右上像素点的灰度值均为1,因此行连通区域C能够和行连通区域A以及行连通区域B进行区域合并,相应的,可以将RAM2和RAM3中像素点的坐标移动至RAM1中,并清空RAM2和RAM3。
S313、当i小于二值化图像中像素点的行数时,采用第i+1行像素点的灰度值更新线缓冲区中第i行像素点的灰度值,更新i=i+1,并重复执行行连通区域合并流程,直至i不小于二值化图像中像素点的行数,将区域合并得到的所有连通区域作为上述至少一个目标连通区域。
需要说明的是,采用上述行连通区域合并流程遍历整个二值化图像后,能够得到至少一个由行连通区域进行区域合并后得到的连通区域,可以将该连通区域作为目标连通区域。
步骤2032、计算每个目标连通区域内包含的像素点的数量。
可选的,由于每个目标连通区域中像素点的坐标存储在对应的RAM中,可通过对多个RAM中像素点的坐标个数分别进行计数,以得到每个目标连通区域内包含的像素点的数量。
步骤2033、将包含的像素点的数量最多的目标连通区域确定为手部区域。
需要说明的是,在摄像设备采集的手部图像中,一般手部所占的图像面积较大,因此可以将包含的像素点的数量最多的目标连通区域确定为手部区域。
步骤2034、将手部区域的边缘的所有像素点的位置信息作为手部轮廓数据。
可选的,可以将手部区域的边缘的所有像素点的坐标作为手部轮廓数据。基于该手部轮廓数据能够还原手势。
需要说明的是,本发明实施例采用手部轮廓数据进行手势识别,无需存储整帧手部图像,降低了存储资源占用的同时,提高了手势识别的效率。
步骤204、将手部轮廓数据与数据库中的手势数据进行比对,得到手部轮廓数据所表征的手势含义。
其中,数据库中包含至少一组手势数据与手势含义的对应关系。该对应关系中的手势数据可以是静态手势对应的数据(以下简称为静态手势数据),也可以是动态手势对应的数据(以下简称为动态手势数据,可以由多组静态手势数据组合得到)。动态手势数据对应的手势含义可以包括滑动手势和点击手势等。
可选的,当手势识别装置用于识别静态手势时,在获取手部轮廓数据后,基于手部轮廓数据重构出手部图像中的手势,将该手势与数据库中的静态手势数据(可以是手势的拓扑结构)进行比对,以确定手势含义。当手势识别装置用于识别动态手势时,在获取多张连续手部图像对应的多个手部轮廓数据后,对多个手部轮廓数据进行数据整合,得到多个连续手势,将该多个连续手势与数据库中的动态手势数据(可以包括多个手势的拓扑结构)进行比对,以确定手势含义。本发明实施例对上述过程的实现方式不做限定。
可选的,当手势识别装置为集成电路时,在执行完上述步骤204后,集成电路将手势含义的对应数据发送至CPU,由CPU根据该手势含义控制终端执行相应的操作,在本发明实施例中,当手势识别装置为集成电路时,也可以不执行上述步骤204,集成电路可以在得到手部轮廓数据后,将该手部轮廓数据发送至CPU,由CPU执行手势含义确定步骤。
需要说明的是,由于本发明实施例提供的手势识别过程较为简单,该手势识别过程的执行时间可小于1毫秒,因此可在摄像设备的采集帧间隔时间段(即VBlanking区间,也可称为消隐区)内完成手势识别,无需缓存手部图像,实现了对手部图像的实时手势识别,进而与相关技术相比,提高了手势识别的精度。由于该手势识别方法所占用的存储资源以及逻辑资源较少,因此便于集成到集成电路中,当上述手势识别装置为集成电路时,上述步骤201至步骤204均可由FPGA执行。
需要说明的是,本发明实施例提供的手势识别方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供的手势识别方法,在获取摄像设备采集的手部初始图像后,对手部初始图像进行图像预处理,以得到二值化图像,并获取二值化图像中的手部轮廓数据。在手势识别过程中,基于手部轮廓数据确定手势含义。本发明实施例提供的手势识别方法与相关技术中的手势识别算法相比复杂度较低,在降低手势识别装置的负载和功耗的同时,可以提高手势识别装置对手部图像的处理速度,进而提高手势识别的可靠性。当手势识别装置为集成电路时,无需缓存摄像设备采集的手部初始图像,只需采用RAM作为存储单元即可完成手势识别,与相关技术相比,降低了手势识别所占用的存储资源。另外,本发明实施例提供的手势识别方法,可在摄像设备的采集帧间隔时间段内完成手势识别,实现了对手部图像的实时手势识别,可以避免出现丢帧的情况,进而可以提高手势识别的精度。
图8是本发明实施例提供的一种手势识别装置的结构示意图,如图8所示,该装置30包括:
第一获取模块301,用于获取摄像设备采集的手部初始图像。
图像预处理模块302,用于对手部初始图像进行图像预处理,得到手部初始图像对应的二值化图像。
第二获取模块303,用于获取二值化图像中的手部轮廓数据,手部轮廓数据用于与数据库中的手势数据进行比对,以确定手部轮廓数据所表征的手势含义,数据库中包含至少一组手势数据与手势含义的对应关系。
综上所述,本发明实施例提供的手势识别装置,在通过第一获取模块获取摄像设备采集的手部初始图像后,通过图像预处理模块对手部初始图像进行图像预处理,以得到二值化图像,并通过第二获取模块获取二值化图像中的手部轮廓数据。在手势识别过程中,基于手部轮廓数据确定手势含义。本发明实施例提供的手势识别方法与相关技术中的手势识别算法相比复杂度较低,在降低手势识别装置的负载和功耗的同时,可以提高手势识别装置对手部图像的处理速度,进而提高手势识别的可靠性。
可选的,如图9所示,第二获取模块303,包括:
获取子模块3031,用于获取二值化图像中的至少一个目标连通区域;
计算子模块3032,用于计算每个目标连通区域内包含的像素点的数量;
第一确定子模块3033,用于将包含的像素点的数量最多的目标连通区域确定为手部区域;
第二确定子模块3034,用于将手部区域的边缘的所有像素点的位置信息作为手部轮廓数据。
可选的,获取子模块,用于:
获取二值化图像中每行像素点的行连通区域;
基于邻域搜索算法,对行连通区域进行区域合并,得到至少一个目标连通区域。
可选的,手势识别装置为集成电路,获取子模块,用于:
在集成电路的线缓冲区存储第i行像素点的灰度值,i≥1;
执行行连通区域合并流程,行连通区域合并流程包括:
在获取第i+1行像素点的灰度值后,基于第i行像素点的灰度值以及第i+1行像素点的灰度值,采用8邻域搜索算法,对第i行像素点的行连通区域与第i+1行像素点的行连通区域进行区域合并;
当i小于二值化图像中像素点的行数时,采用第i+1行像素点的灰度值更新线缓冲区中第i行像素点的灰度值,更新i=i+1,并重复执行行连通区域合并流程,直至i不小于二值化图像中像素点的行数,将区域合并得到的所有连通区域作为至少一个目标连通区域。
可选的,如图10所示,图像预处理模块302,包括:
灰度处理子模块3021,用于对手部初始图像进行灰度化处理,得到手部灰度图像;
滤波处理子模块3022,用于对手部灰度图像进行滤波处理;
二值化处理子模块3023,用于对经过滤波处理的手部灰度图像进行二值化处理,得到二值化图像;
边缘平滑处理子模块3024,用于对二值化图像进行边缘平滑处理;
其中,对经过滤波处理的手部灰度图像进行二值化处理的过程包括:
将经过滤波处理的手部灰度图像中的每个像素点的灰度值与指定灰度阈值进行比较,
当像素点的灰度值与指定灰度阈值的大小关系满足指定条件时,确定像素点的灰度值为第一数值,
当像素点的灰度值与指定灰度阈值的大小关系不满足指定条件时,确定像素点的灰度值为第二数值,第二数值与第一数值不同。
综上所述,本发明实施例提供的手势识别装置,在通过第一获取模块获取摄像设备采集的手部初始图像后,通过图像预处理模块对手部初始图像进行图像预处理,以得到二值化图像,并通过第二获取模块获取二值化图像中的手部轮廓数据。在手势识别过程中,基于手部轮廓数据确定手势含义。本发明实施例提供的手势识别方法与相关技术中的手势识别算法相比复杂度较低,在降低手势识别装置的负载和功耗的同时,可以提高手势识别装置对手部图像的处理速度,进而提高手势识别的可靠性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种手势识别装置,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序,实现如方法侧实施例所述的手势识别方法。
图11是本发明实施例提供的一种终端的结构示意图,如图11所示,该终端包括摄像设备00、中央处理器01和手势识别装置02,该手势识别装置为集成电路,包括存储器021和处理器022,处理器为FPGA芯片,存储器可以是RAM,该FPGA芯片能够执行计算机程序以实现如方法侧实施例所述的手势识别方法。
摄像设备00用于采集手部初始图像;
手势识别装置02用于对手部初始图像进行手势识别处理,并向中央处理器01传输手势识别处理得到的手势识别数据。其中,手势识别数据可以是手势含义或手部轮廓数据。
可选的,上述终端可以是虚拟现实(Virtual Reality,VR)显示设备、智能家居设备、移动通信设备、医疗设备及其他领域的设备,本发明实施例对该终端的类型不做限定。
本发明实施例提供了一种计算机可读存储介质,当所述存储介质中的程序由处理器执行时,能够执行如方法侧实施例所述的手势识别方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的可选实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种手势识别方法,其特征在于,应用于手势识别装置,所述方法包括:
获取摄像设备采集的手部初始图像;
对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像;
获取所述二值化图像中的手部轮廓数据,所述手部轮廓数据用于与数据库中的手势数据进行比对,以确定所述手部轮廓数据所表征的手势含义,所述数据库中包含至少一组手势数据与手势含义的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述获取所述二值化图像中的手部轮廓数据,包括:
获取所述二值化图像中的至少一个目标连通区域;
计算每个所述目标连通区域内包含的像素点的数量;
将包含的像素点的数量最多的目标连通区域确定为手部区域;
将所述手部区域的边缘的所有像素点的位置信息作为所述手部轮廓数据。
3.根据权利要求2所述的方法,其特征在于,所述获取所述二值化图像中的至少一个目标连通区域,包括:
获取所述二值化图像中每行像素点的行连通区域;
基于邻域搜索算法,对所述行连通区域进行区域合并,得到所述至少一个目标连通区域。
4.根据权利要求3所述的方法,其特征在于,所述手势识别装置为集成电路,所述基于邻域搜索算法,对所述行连通区域进行区域合并,包括:
在所述集成电路的线缓冲区存储第i行像素点的灰度值,i≥1;
执行行连通区域合并流程,所述行连通区域合并流程包括:
在获取第i+1行像素点的灰度值后,基于所述第i行像素点的灰度值以及所述第i+1行像素点的灰度值,采用8邻域搜索算法,对所述第i行像素点的行连通区域与所述第i+1行像素点的行连通区域进行区域合并;
当所述i小于所述二值化图像中像素点的行数时,采用所述第i+1行像素点的灰度值更新所述线缓冲区中所述第i行像素点的灰度值,更新i=i+1,并重复执行所述行连通区域合并流程,直至所述i不小于所述二值化图像中像素点的行数,将区域合并得到的所有连通区域作为所述至少一个目标连通区域。
5.根据权利要求1至4任一所述的方法,其特征在于,所述对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像,包括:
对所述手部初始图像进行灰度化处理,得到手部灰度图像;
对所述手部灰度图像进行滤波处理;
对经过所述滤波处理的手部灰度图像进行二值化处理,得到所述二值化图像。
6.根据权利要求5所述的方法,其特征在于,所述对经过所述滤波处理的手部灰度图像进行二值化处理,包括:
将经过所述滤波处理的手部灰度图像中的每个像素点的灰度值与指定灰度阈值进行比较;
当所述像素点的灰度值与所述指定灰度阈值的大小关系满足指定条件时,确定所述像素点的灰度值为第一数值;
当所述像素点的灰度值与所述指定灰度阈值的大小关系不满足所述指定条件时,确定所述像素点的灰度值为第二数值,所述第二数值与所述第一数值不同。
7.根据权利要求5所述的方法,其特征在于,在所述对经过所述滤波处理的手部灰度图像进行二值化处理,得到所述二值化图像之后,所述方法还包括:
对所述二值化图像进行边缘平滑处理。
8.一种手势识别装置,其特征在于,所述装置包括:
第一获取模块,用于获取摄像设备采集的手部初始图像;
图像预处理模块,用于对所述手部初始图像进行图像预处理,得到所述手部初始图像对应的二值化图像;
第二获取模块,用于获取所述二值化图像中的手部轮廓数据,所述手部轮廓数据用于与数据库中的手势数据进行比对,以确定所述手部轮廓数据所表征的手势含义,所述数据库中包含至少一组手势数据与手势含义的对应关系。
9.根据权利要求8所述的装置,其特征在于,所述第二获取模块,包括:
获取子模块,用于获取所述二值化图像中的至少一个目标连通区域;
计算子模块,用于计算每个所述目标连通区域内包含的像素点的数量;
第一确定子模块,用于将包含的像素点的数量最多的目标连通区域确定为手部区域;
第二确定子模块,用于将所述手部区域的边缘的所有像素点的位置信息作为所述手部轮廓数据。
10.根据权利要求9所述的装置,其特征在于,所述获取子模块,用于:
获取所述二值化图像中每行像素点的行连通区域;
基于邻域搜索算法,对所述行连通区域进行区域合并,得到所述至少一个目标连通区域。
11.根据权利要求10所述的装置,其特征在于,所述手势识别装置为集成电路,所述获取子模块,用于:
在所述集成电路的线缓冲区存储第i行像素点的灰度值,i≥1;
执行行连通区域合并流程,所述行连通区域合并流程包括:
在获取第i+1行像素点的灰度值后,基于所述第i行像素点的灰度值以及所述第i+1行像素点的灰度值,采用8邻域搜索算法,对所述第i行像素点的行连通区域与所述第i+1行像素点的行连通区域进行区域合并;
当所述i小于所述二值化图像中像素点的行数时,采用所述第i+1行像素点的灰度值更新所述线缓冲区中所述第i行像素点的灰度值,更新i=i+1,并重复执行所述行连通区域合并流程,直至所述i不小于所述二值化图像中像素点的行数,将区域合并得到的所有连通区域作为所述至少一个目标连通区域。
12.根据权利要求8至11任一所述的装置,其特征在于,所述图像预处理模块,包括:
灰度处理子模块,用于对所述手部初始图像进行灰度化处理,得到手部灰度图像;
滤波处理子模块,用于对所述手部灰度图像进行滤波处理;
二值化处理子模块,用于对经过所述滤波处理的手部灰度图像进行二值化处理,得到所述二值化图像;
边缘平滑处理子模块,用于对所述二值化图像进行边缘平滑处理;
其中,所述对经过所述滤波处理的手部灰度图像进行二值化处理的过程包括:
将经过所述滤波处理的手部灰度图像中的每个像素点的灰度值与指定灰度阈值进行比较,
当所述像素点的灰度值与所述指定灰度阈值的大小关系满足指定条件时,确定所述像素点的灰度值为第一数值,
当所述像素点的灰度值与所述指定灰度阈值的大小关系不满足所述指定条件时,确定所述像素点的灰度值为第二数值,所述第二数值与所述第一数值不同。
13.一种手势识别装置,其特征在于,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序,实现如权利要求1至7任一所述的手势识别方法。
14.一种终端,其特征在于,包括摄像设备、中央处理器和如权利要求13所述的手势识别装置,所述手势识别装置为集成电路,所述处理器为现场可编程门阵列FPGA芯片;
所述摄像设备用于采集手部初始图像;
所述手势识别装置用于对所述手部初始图像进行手势识别处理,并向所述中央处理器传输所述手势识别处理得到的手势识别数据。
15.一种计算机可读存储介质,其特征在于,当所述存储介质中的程序由处理器执行时,能够执行权利要求1至7任一所述的手势识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215144.3A CN109299743B (zh) | 2018-10-18 | 2018-10-18 | 手势识别方法及装置、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215144.3A CN109299743B (zh) | 2018-10-18 | 2018-10-18 | 手势识别方法及装置、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109299743A true CN109299743A (zh) | 2019-02-01 |
CN109299743B CN109299743B (zh) | 2021-08-10 |
Family
ID=65158241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811215144.3A Active CN109299743B (zh) | 2018-10-18 | 2018-10-18 | 手势识别方法及装置、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299743B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287891A (zh) * | 2019-06-26 | 2019-09-27 | 北京字节跳动网络技术有限公司 | 基于人体关键点的手势控制方法、装置及电子设备 |
CN111309149A (zh) * | 2020-02-21 | 2020-06-19 | 河北科技大学 | 一种手势识别方法及手势识别装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853071A (zh) * | 2010-05-13 | 2010-10-06 | 重庆大学 | 基于视觉的手势识别方法及系统 |
CN102509091A (zh) * | 2011-11-29 | 2012-06-20 | 北京航空航天大学 | 一种飞机尾号识别方法 |
CN103890782A (zh) * | 2011-10-18 | 2014-06-25 | 诺基亚公司 | 用于手势识别的方法和设备 |
US20160078289A1 (en) * | 2014-09-16 | 2016-03-17 | Foundation for Research and Technology - Hellas (FORTH) (acting through its Institute of Computer | Gesture Recognition Apparatuses, Methods and Systems for Human-Machine Interaction |
CN105678682A (zh) * | 2016-01-08 | 2016-06-15 | 西安交通大学 | 一种基于fpga的二值图像连通区域信息快速获取系统及方法 |
CN105760828A (zh) * | 2016-02-04 | 2016-07-13 | 山东大学 | 一种基于视觉的静态手势识别方法 |
CN106326860A (zh) * | 2016-08-23 | 2017-01-11 | 武汉闪图科技有限公司 | 基于视觉的手势识别方法 |
CN106503619A (zh) * | 2016-09-23 | 2017-03-15 | 南京理工大学 | 基于bp神经网络的手势识别方法 |
CN107145871A (zh) * | 2017-05-10 | 2017-09-08 | 深圳众厉电力科技有限公司 | 一种可手势操作的智能家居控制系统 |
JP2017224162A (ja) * | 2016-06-15 | 2017-12-21 | 株式会社東海理化電機製作所 | ジェスチャ判定装置 |
CN107678551A (zh) * | 2017-10-19 | 2018-02-09 | 京东方科技集团股份有限公司 | 手势识别方法和装置、电子设备 |
CN107742102A (zh) * | 2017-10-13 | 2018-02-27 | 北京华捷艾米科技有限公司 | 一种基于深度传感器的手势识别方法 |
CN107924300A (zh) * | 2015-08-13 | 2018-04-17 | 微软技术许可有限责任公司 | 使用缓冲器和存储器的数据重排序 |
-
2018
- 2018-10-18 CN CN201811215144.3A patent/CN109299743B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853071A (zh) * | 2010-05-13 | 2010-10-06 | 重庆大学 | 基于视觉的手势识别方法及系统 |
CN103890782A (zh) * | 2011-10-18 | 2014-06-25 | 诺基亚公司 | 用于手势识别的方法和设备 |
CN102509091A (zh) * | 2011-11-29 | 2012-06-20 | 北京航空航天大学 | 一种飞机尾号识别方法 |
US20160078289A1 (en) * | 2014-09-16 | 2016-03-17 | Foundation for Research and Technology - Hellas (FORTH) (acting through its Institute of Computer | Gesture Recognition Apparatuses, Methods and Systems for Human-Machine Interaction |
CN107924300A (zh) * | 2015-08-13 | 2018-04-17 | 微软技术许可有限责任公司 | 使用缓冲器和存储器的数据重排序 |
CN105678682A (zh) * | 2016-01-08 | 2016-06-15 | 西安交通大学 | 一种基于fpga的二值图像连通区域信息快速获取系统及方法 |
CN105760828A (zh) * | 2016-02-04 | 2016-07-13 | 山东大学 | 一种基于视觉的静态手势识别方法 |
JP2017224162A (ja) * | 2016-06-15 | 2017-12-21 | 株式会社東海理化電機製作所 | ジェスチャ判定装置 |
CN106326860A (zh) * | 2016-08-23 | 2017-01-11 | 武汉闪图科技有限公司 | 基于视觉的手势识别方法 |
CN106503619A (zh) * | 2016-09-23 | 2017-03-15 | 南京理工大学 | 基于bp神经网络的手势识别方法 |
CN107145871A (zh) * | 2017-05-10 | 2017-09-08 | 深圳众厉电力科技有限公司 | 一种可手势操作的智能家居控制系统 |
CN107742102A (zh) * | 2017-10-13 | 2018-02-27 | 北京华捷艾米科技有限公司 | 一种基于深度传感器的手势识别方法 |
CN107678551A (zh) * | 2017-10-19 | 2018-02-09 | 京东方科技集团股份有限公司 | 手势识别方法和装置、电子设备 |
Non-Patent Citations (3)
Title |
---|
TI CHIANG 等: "3D Depth Information Based 2D Low-Complexity Hand Posture and Gesture Recognition Design for Human Computer Interactions", 《2018 3RD INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATION SYSTEMS(ICCCS)》 * |
唐文杰: "基于FPGA的动态手势识别系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
庞海波: "基于时间序列手势轮廓模型的动态手势识别", 《华南理工大学学报(自然科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287891A (zh) * | 2019-06-26 | 2019-09-27 | 北京字节跳动网络技术有限公司 | 基于人体关键点的手势控制方法、装置及电子设备 |
CN111309149A (zh) * | 2020-02-21 | 2020-06-19 | 河北科技大学 | 一种手势识别方法及手势识别装置 |
CN111309149B (zh) * | 2020-02-21 | 2022-08-19 | 河北科技大学 | 一种手势识别方法及手势识别装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109299743B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107229904B (zh) | 一种基于深度学习的目标检测与识别方法 | |
CN111428731B (zh) | 基于机器视觉的多类目标识别定位方法、装置和设备 | |
CN109829448B (zh) | 人脸识别方法、装置及存储介质 | |
CN109118473B (zh) | 基于神经网络的角点检测方法、存储介质与图像处理系统 | |
CN109919039B (zh) | 一种基于手掌和手指特征的静态手势识别方法 | |
WO2022252642A1 (zh) | 基于视频图像的行为姿态检测方法、装置、设备及介质 | |
CN109409210B (zh) | 一种基于ssd框架的人脸检测方法及系统 | |
CN106203326B (zh) | 一种图像处理方法、装置及移动终端 | |
CN112507918B (zh) | 一种手势识别方法 | |
CN110390681B (zh) | 一种基于深度相机的深度图物体轮廓快速提取方法及装置 | |
CN109492636B (zh) | 基于自适应感受野深度学习的目标检测方法 | |
CN112883824A (zh) | 一种用于智能采血的手指静脉特征识别装置及其识别方法 | |
CN111833369A (zh) | 一种矾花图像处理方法、系统、介质及电子设备 | |
CN113254491A (zh) | 一种信息推荐的方法、装置、计算机设备及存储介质 | |
CN109343701A (zh) | 一种基于动态手势识别的智能人机交互方法 | |
CN109299743A (zh) | 手势识别方法及装置、终端 | |
CN113034497A (zh) | 一种基于视觉的保温杯焊缝定位检测方法及系统 | |
CN113487610A (zh) | 疱疹图像识别方法、装置、计算机设备和存储介质 | |
Jin et al. | Defect identification of adhesive structure based on DCGAN and YOLOv5 | |
CN110147792B (zh) | 基于内存优化的药品包装字符高速检测系统及方法 | |
CN110007764B (zh) | 一种手势骨架识别方法、装置、系统及存储介质 | |
CN111898454A (zh) | 权重二值化神经网络与迁移学习人眼状态检测方法及设备 | |
Le et al. | Smart Elevator Cotrol System Based on Human Hand Gesture Recognition | |
CN111815658B (zh) | 一种图像识别方法及装置 | |
CN115131384A (zh) | 基于边缘保持的仿生机器人3d打印方法、装置及介质 |
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 |