CN105210115A - 使用2d图像数据来执行手势识别 - Google Patents

使用2d图像数据来执行手势识别 Download PDF

Info

Publication number
CN105210115A
CN105210115A CN201380076474.8A CN201380076474A CN105210115A CN 105210115 A CN105210115 A CN 105210115A CN 201380076474 A CN201380076474 A CN 201380076474A CN 105210115 A CN105210115 A CN 105210115A
Authority
CN
China
Prior art keywords
pixel
edge
distance
logic
queue
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
Application number
CN201380076474.8A
Other languages
English (en)
Other versions
CN105210115B (zh
Inventor
M·库纳维斯
R·亚瓦特卡
I·肖伊纳斯
C·阿拜德瓦兹克斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105210115A publication Critical patent/CN105210115A/zh
Application granted granted Critical
Publication of CN105210115B publication Critical patent/CN105210115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/267Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
    • 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
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/96Management of image or video recognition tasks
    • 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/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Biomedical Technology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)

Abstract

系统和方法可以用于确定视频信号中的多个像素的皮肤色调分布,并使用皮肤色调分布来对于视频信号执行一个或多个基于区块的手势判断。在一个示例中,视频信号包括二维(2D)图像数据,皮肤色调分布具有大于基于区块的手势判断的执行时间预算的执行时间预算。

Description

使用2D图像数据来执行手势识别
技术领域
各实施例一般涉及手势识别。更具体而言,各实施例涉及使用二维(2D)图像数据的手势识别。
背景技术
手势识别传统上可以使用直接对三维(3D)数据云的像素或点进行操作的算法来执行。这些算法中有许多可以使用当逐个帧为基础使用时计算量大的技术。
附图简述
本领域内技术人员通过阅读下面的说明书和权利要求书并参照附图能清楚知道各实施例的各种优势,在附图中:
图1是根据一实施例的手势判断方法的示例的框图;
图2是根据一实施例的执行手势判断的架构的示例的框图;
图3A是根据一实施例的检测边缘的方法的示例的流程图;
图3B是根据一实施例的边缘检测阈值逻辑的示例的框图;
图3C是根据一实施例的像素的边缘检测邻近区域的示例的框图;
图4是根据一实施例的生成距离图的方法的示例的流程图;
图5A是根据一实施例的标识一组轮廓线像素的方法的示例的流程图;
图5B是根据一实施例的一组轮廓线的示例的图示;
图6A是根据实施例的标识区块的方法的示例的流程图;
图6B是根据一实施例的高斯内核以及检测器的示例的曲线;
图6C是根据一实施例的一组手势以及对应的区块布局的图示;
图6D是根据一实施例的卷积方法的示例的框图;
图6E是根据一实施例的矢量处理方法的示例的框图;
图7A是根据一实施例的标识手势的方法的示例的流程图;
图7B是根据一实施例的与区块集群信息重叠的一组图像的示例的图示;
图7C是根据一实施例的密度图的示例的图示;
图8A是根据一实施例的使用维特比分数来执行基于区块的手势判断的方法的示例的流程图;
图8B是根据一实施例的观察轨迹的示例的框图;
图8C是根据一实施例的值集群化方法的示例的框图;
图8D是根据一实施例的笛卡尔乘积方法的示例的框图;
图9是根据一实施例的处理器的示例的框图;以及
图10是根据一实施例的系统的示例的框图。
具体实施方式
现在转向图1,示出了作出手势判断的方法,其中,由离线模块22和在线模块24处理具有二维(2D)图像数据的视频信号20。可以从图像捕捉设备和/或存储器设备中获取的视频信号20,可包含执行与各种应用程序(诸如,游戏、设备控制(例如,计算机、电视机、灯、音响系统、恒温器)等等)相关联的各种手势的人类对象的图像。在所示示例中,离线模块22确定视频信号20中的多个的像素的皮肤色调分布26,而在线模块24使用基于像素的皮肤色调分布来相对于视频信号20执行一个或多个基于区块的手势判断28。如比较详细地讨论的,区块可以是在两个维度形状类似于高斯分布(例如,离散的内核)的形状的可视结构,其中基于区块的方法可以减轻与基于像素的图像分析相关联的计算复杂性。
此外,皮肤色调分布26还可以具有大于基于区块的手势判断28的执行时间预算的执行时间预算,因为可能不预期皮肤色调从一个帧到另一个帧显著地变化。例如,皮肤色调分布26可以具有大约2-3秒或更多的执行时间预算,而基于区块的手势判断28可以具有执行大致16.66毫秒的执行时间预算,这将支持通常可以用于游戏应用程序中的60帧每秒的帧速率。
图2示出了具有执行手势判断的离线模块22(22a-22c)和在线模块24(24a-24c)的架构的一个示例。一般而言,架构可以被实现为支持利用最小复杂性和处理开销来进行手势的实时识别的手势检测流水线。手势检测流水线可以实现为以存储在某些机器可读的介质中的处理器指令的形式存在的软件实现,指令如果被执行,导致处理器执行手势判断,实现为以包括多个逻辑电路的设备的形式存在的硬件实现,如果向该逻辑电路提供时钟和电力信号,则导致设备执行手势判断,或实现为通过组合硬件和软件实现所产生的实现。类似地,术语“单元”和“逻辑”可以是指软件实现、硬件实现或者组合的硬件/软件实现。
在一个示例中,离线模块22包括边缘检测单元22a,该边缘检测单元22a接收与视频信号的帧相关联的彩色图像,并对多个通道中的每一个的所述彩色图像进行边缘分析。另外,距离单元22b可以标识与边缘分析相关联的边缘图,并反复传播边缘图中的像素之间的最近邻信息,以获得距离图。所示出的离线模块22还包括指尖单元22c,用于基于所述边缘图和所述距离图,标识包围所述彩色图像中的多个指尖的多组轮廓线像素,其中可以基于多组轮廓线像素内的像素的颜色值,确定所述皮肤色调分布。正如所指出的那样,取决于情况,可以以相对慢的速率来确定皮肤色调分布。
在线模块24可以基于皮肤色调分布,从视频信号的输入帧中去除非皮肤像素,并二次采样输入帧(例如,重复地跳过每一维度中的d行或d列,其中,d是可调参数),以获得修改的帧。在一个示例中,在线模块24包括标识修改的帧中的多个区块的特征提取单元24a。姿势单元24b可以将与多个区块相关联的一个或多个姿势与存储在库中的一个或多个姿势匹配,其中临时的识别单元24c可以标识一个或多个姿势的多个观察轨迹,并同时保持多个观察轨迹的分数。临时的识别单元24c也可以使用所述分数来执行基于区块的手势判断。下面比较详细地讨论了手检测流水线的组件。
离线边缘检测
继续参考图2和3A-3C,示出了检测边缘的方法30。所示出的处理框32用于接收与视频信号的帧相关联的彩色图像36,其中可以针对多个通道34中的每一个,对彩色图像36一般性地进行边缘分析。关于这一点,彩色图像36可包括RGB(红/蓝/绿)数据以及Y亮度(Y),彩色红(Cr)和彩色蓝(Cb)数据,其中如果一个像素被确定为通道34中的任何一个中的边缘像素,则该像素可以被视为边缘像素。
更具体而言,在框38,对于多个通道34中的每一个通道,可以确定一组高斯导数。例如,可以使用下面的表达式来获得两个维度中的一阶高斯导数。
g x ( x , y ) = - x 2 πσ 4 · e - x 2 + y 2 2 σ 2 - - - ( 1 )
g y ( x , y ) = - y 2 πσ 4 · e - x 2 + y 2 2 σ 2 - - - ( 2 )
其中,σ是高斯导数的方差参数。所示出的框40在所述高斯导数组和所述彩色图像36中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度。此外,可以将方差参数设置为大于1的值(例如,σ=4),这可以帮助显著去除与粗纹理相关联的边缘像素(例如,去噪声)。在某些手势识别应用程序中,这样的像素可能没有价值。
一旦计算出了梯度幅度和角度,可以为每一个通道定义两个幅度阈值42:高阈值和低阈值。可以通过构建多个通道34中的每一个中的梯度幅度值的单独的直方图,来确定阈值42。因此,直方图44可以允许凭经验地确定阈值42而并非绝对地。在每一通道中,低和高阈值可以被定义为,例如,分别将“最好的”8%和35%的像素与其余像素分离的那些幅度值。最好,我们可以涉及带有最高梯度幅度值的像素。这些阈值百分比可以在相对大的图像组上导出观察。正如所指出的那样,每一通道都可以使用单独的阈值对。可以使用包含多个一阶高斯导数值的矩阵来执行利用高斯导数的卷积,其中,每一一阶高斯导数值都使用公式(1)和(2)来计算,并将其转换为整数形式。转换为整数形式可以通过除法利用矩阵中的最小值来实现。
一旦定义了阈值42,就可以使用低阈值来检测“薄的”边缘像素,可以将它们传递到第二滤波阶段,在那里,剩余的像素与沿着梯度角度出现的局部梯度幅度最大值相关联。从这些薄的边缘像素中,可以将带有高于高阈值的梯度幅度值的像素标记为“厚的”边缘像素,并加载到堆栈中。然后,可以一个一个地从堆栈去除像素,并对它们进行邻近区域检查,该检查判断边缘像素周围的像素的邻近区域是否包括额外的边缘像素。如果近邻是薄的边缘像素,则它可以被标记为厚边缘,并进一步将其添加到堆栈中。当没有更多像素要添加时(例如,堆栈是空的),过程可以结束。
如图3C所示,特定像素“p”周围的像素46的邻近区域可包括与像素p不相邻的像素。另外,在将薄的边缘像素标记为厚边缘像素之前,可以执行关于连接像素p和相邻像素q的线的斜率是否在p或q垂直于梯度的检查。这样的方法可以允许检测更多轮廓线像素,根据传统方法,轮廓线像素可能会被丢弃。在所示示例中,使用5x5邻近区域,但是,也可以使用其他邻近区域大小。
如此,所示出的框48使用低阈值和高阈值来判断每一梯度幅度和相关联的梯度角度是否对应于边缘,其中低阈值和高阈值是通道特定的。框48可以涉及,对于多个通道34中的每一个通道,构建梯度幅度的直方图,并基于直方图,确定低阈值和高阈值。
在一个示例中,边缘检测单元22a包括:盒子逻辑50,用于,对于多个通道36中的每一个通道,确定一组高斯导数;以及卷积逻辑52,用于在所述高斯导数组和所述彩色图像中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度。如已经讨论的,盒子逻辑50还可以将所述高斯导数组的方差参数设置为大于1的值。另外,阈值逻辑54可以使用低阈值和高阈值来判断每一梯度幅度和相关联的梯度角度是否对应于边缘,其中低阈值和高阈值是通道特定的。阈值逻辑54也可以对于多个通道中的每一个通道,构建梯度幅度的直方图,并基于直方图,确定低阈值以及高阈值。所示出的边缘检测单元22a还包括堆栈逻辑56,用于标识一个或多个边缘像素,并判断边缘像素周围的像素46的邻近区域是否包括额外的边缘像素。如已经讨论的,像素46的邻近区域可包括一个或多个与边缘像素不相邻的像素。
因此,此处所描述的边缘检测技术可以准确地标识与色调、亮度,饱和度或其组合的变化相关联的边缘。另外,还可以通过使用自适应阈值来将像素分离为边缘像素以及非边缘像素,增强精度。
离线距离判断
正如所指出的那样,离线模块22也可以具有距离单元22b,用于标识与由边缘检测单元22a执行的边缘分析相关联的边缘图,并反复传播所述边缘图中的像素之间的最近邻信息,以获得距离图。继续参考图2以及4,示出了生成距离图的方法60。距离图可以是与和边缘图相同宽度和高度(即,帧维度)相关联的二维离散信号,该二维离散信号,对于距离图中的每个离散点(即,像素),它保持到边缘图中的最近的边缘像素的距离以及最近的边缘像素的坐标。所示出的处理框62将边缘图中的边缘像素(例如,“界标”)初始化为它们自己的最近的边缘并具有零的边缘距离,其中在框64,可以将已初始化的边缘像素添加到第一队列。框64也可以将第一队列指定为活跃的队列。另外,在框66,可以将边缘图中的非边缘像素初始化为具有未知最近的边缘和无穷大的边缘距离。所示出的框68将第二队列(最初是空的)指定为非活跃队列。
所示出的框70选择活跃的队列中的一个像素,所示出的框72执行关于活跃的队列中的像素的相邻像素和最近的边缘之间的第一距离是否小于或等于相邻像素和相邻像素的当前最近的边缘之间的第二距离的距离判断。如果是,则相邻像素更靠近选定的像素的最近的边缘,所示出的框74将活跃的队列中的像素的状态转移到相邻像素的状态。作为此状态的转移的一部分,相邻像素的状态下的第二距离被替换为第一距离,如由框72确定的。另外,在框76,还可以将相邻像素添加到非活跃队列。如果相邻像素不更靠近选定的像素的最近的边缘,则可以绕过状态转移和相邻像素的添加。
另外,还可以在框78作出关于是否已经检查了选定的像素的所有相邻像素的判断。如果否,则对于选定的像素的其余相邻像素,进行重复距离判断、转移状态,以及将相邻像素添加到非活跃队列。所示出的框80从活跃的队列中删除选定的像素,其中可以在框82作出关于活跃的队列是否包含额外的像素的判断。如果是,则可以对于活跃的队列中的每一个像素,重复所示出的过程。框84可以通过将第一队列指定为非活跃队列,将第二队列指定为活跃的队列,来切换队列指定。如果在框86判断新指定的活跃的队列包含像素,则可以重复所示出的过程,直到活跃的队列是空的。
因此,所示出的方法可以将边缘图中的像素当作向它们的近邻“广播”最近邻信息的节点,当它们从近邻接收到广播时,更新它们自己的状态。此外,还已经判断,由所示出的方法所产生的距离误差每个距离判断不能超出两个像素,且实际误差甚至更小。例如,对六十八个图像的VGA(视频图形阵列)分辨率的测试,在六十八个图像中的五十八个中计算出完全正确的最近的边缘图。对于其余十个图像,307,200中只有一个像素包含不正确的距离值,像素与正确的距离相差的距离只是一个像素。
如此,距离单元22b可包括初始化逻辑88(88a,88b),其具有第一初始化逻辑88a,用于将所述边缘图中的边缘像素初始化为它们自己的最近的边缘并具有零边缘距离,将已初始化的边缘像素添加到第一队列中,并指定所述第一队列为活跃的队列。第二初始化逻辑88b,用于初始化所述边缘图中的非边缘像素为具有未知的最近的边缘和无穷大的边缘距离,并指定第二队列为非活跃队列。另外,比较逻辑可以,对于活跃的队列中的每一个像素,执行关于活跃的队列中的像素的相邻像素和最近的边缘之间的第一距离是否小于或等于相邻像素和相邻像素的当前最近的边缘之间的第二距离的距离判断。
距离单元22b也可以包括广播逻辑92,用于如果第一距离小于或等于第二距离,则将活跃的队列中的像素的状态转移到相邻像素的状态。如果第一距离小于或等于第二距离,则队列逻辑94可以将活跃的队列中的像素从活跃的队列中删除,并将该相邻像素添加到非活跃队列。另外,距离单元22b还可包括迭代逻辑96(96a,96b),其具有第一迭代逻辑96a,用于对于活跃的队列中的像素的每一个相邻像素,重复对比较逻辑90、广播逻辑92和队列逻辑94的第一调用(例如,从活跃的队列中删除选定的像素除外)。第二迭代逻辑96b可以将所述第一队列第一指定为所述非活跃队列,将所述第二队列第二指定为所述活跃的队列,并重复随后的对所述比较逻辑90、所述广播逻辑92、所述队列逻辑94以及所述第一迭代逻辑96a的调用,直到活跃的队列是空的。
离线指尖检测
离线模块22也可以具有指尖单元22c,用于,正如所指出的那样,基于来自边缘检测单元22a的边缘图和来自距离单元22b的距离图,标识包围所述彩色图像中的多个指尖的一组轮廓线像素。继续参考图2,5A和5B,示出了标识一组轮廓线像素的方法100。所示出的框102使用一组手指段曲线来标识对应于多个指尖的多个本地边缘距离最小值,其中多个指尖包括食指指尖、中指指尖、无名指指尖,或小指指尖中的一个或多个。如图5B所示出的,手指段曲线组可包括两个线段(例如,段AZ和FH)和两个椭圆段(例如,段AE和FE)的串联,其中框102执行粗的穷竭搜索,以对于每一个手指,确定边缘图和距离图的最接近地匹配段的串联的区域。然后,可以在框104,使用手指段曲线的组,来标识与每一本地边缘距离最小值以及与四种下列手指类型(小手指、无名指、中指和食指)相关联的轮廓线像素的四个全局边缘距离最小值。如此,框102可以一般性地标识图像中的指尖区域,而框104可以标识哪一个指尖对应于哪一个区域。
如此,指尖单元22c可包括:本地逻辑106,用于使用一组手指段曲线来标识对应于多个指尖的多个本地边缘距离最小值;以及全局逻辑108,用于使用该组手指段曲线来标识与每一本地边缘距离最小值相关联的轮廓线像素的四个全局边缘距离最小值。因此,可以基于通过指尖单元22c来标识的轮廓线像素组内的像素的颜色值,确定皮肤色调分布26(图1)。
在线特征提取
正如所指出的那样,在线模块24可以具有特征提取单元24a,用于标识每一经修改的帧中的多个区块,其中区块可以是在两个维度具有类似于高斯内核的形状的可视结构。继续参考图2和6A-6E,示出了标识区块的方法110,其中,所示出的框112基于皮肤色调分布,从与视频信号相关联的输入帧中删除非皮肤像素。框112也可以二次采样输入帧,以获得多个经修改的帧(例如,图像锥体)。二次采样可以涉及,例如,重复地跳过每一维度中的d行或d列,其中,d是可调参数。
对于剩余的像素中的每一个,可以发生若干个卷积运算,其中每一个卷积运算都可以使用9x9卷积盒子。卷积可以发生在原始帧的灰度级表示或多个经修改的帧的灰度级表示。原始的或经修改的帧的灰度级表示中的非皮肤像素可以与零强度级相关联。可以从Hessian(海赛)迹函数的值(可以在框114确定该值)创建每一卷积盒子。在一个示例中,诸如下面的表达式之类的表达式用于Hessian迹函数。
h ( x , y ) = ( ( x - μ x ) 2 + ( y - μ y ) 2 - 2 σ 2 ) · e - ( x - μ x ) 2 + ( y - μ y ) 2 2 · σ 2 2 π · σ 4 - - - ( 3 )
其中,μxy是卷积盒子的中心,而σ是其对应的高斯内核的方差参数(例如,“比例”)。比例可以等于使用卷积盒子检测到的手区块的半径的三分之一。
对于修改的帧中的每一个像素,所示出的框116在Hessian迹函数和与修改的帧中的像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数。所述非相邻像素组将可以具有最近的整数到所述Hessian迹函数的四分之三方差参数(0.75σ)的间隔。此外,每一卷积盒子的值都可以是浮点,或通过除法利用归一化参数(例如,盒子中的最小的浮点值),归一化为整数值。
如图6B,示出了高斯内核曲线118和检测器曲线120,其中,所示出的检测器曲线120对应于特定区块大小。关于这一点,对于多个方差参数值,可以在框122重复卷积,以获得修改的帧中的像素的多个卷积分数,其中如果检测器曲线120与高斯内核曲线118具有相同平均值和方差(例如,宽度),则最大化卷积分数。在框124,可以标识对应于多个卷积分数中的最高分数的区块。如图6C所示出的,图像中的给定手势可以具有特定区块的布局,这取决于卷积的结果。在所示示例中,“okay”姿势126、张开手掌姿势128、“和平符号”姿势130和“喇叭”姿势132全部都具有不同区块配置。
当执行卷积时,并非所有可能的标度值都需要被考虑。例如,将标度值增大该值的四分之一足以,且仍能实现准确的区块检测(例如,每一参数值都是紧临在前的方差参数值的四分之一增量)。如此,如果使用四个像素的起始标度值,则可以构建涵盖可能存在于图像中的手大小的相对大的组的一组十三标度:4,5,6,7,8,10,12,14,16,20,24,28,32。最高标度值32可以对应于6x32=192像素的手掌直径上限,这在VGA分辨率视频中可能是合适的。添加更多标度值可以允许检测一组扩展的手大小。进一步地,对于预定的标度组,可以预先确定它们的对应的卷积盒子的值,并当在线处理每一帧时,将它们视为常数。
一般而言,可以使用单指令多数据(SIMD)命令来有效率地执行卷积。下面所描述的方法可以被称为SIMD卷积方法。例如,可以将卷积盒子的元素置于相对大的矢量中,逐行地,置于合适的元素位置,考虑在被应用卷积盒子的像素之间存在的间隔。然后,可以将卷积盒子的元素复制多次,以便在相同的大矢量中存在以不同-但是近邻的像素为中心的多个盒子。接下来,可以一个元素一个元素地,通过将包含图像像素值的大矢量乘以包含卷积盒子的大矢量,来执行卷积。此外,还可以通过求由前面的乘法所产生的选择的乘积的总和,来计算卷积结果。
例如,图6D示出了每条线(如图所示,使用了九条线),对于四个卷积盒子中的每一个,每个标度(例如,方差参数),以及每个图像,可以重复一次的卷积方法。在所示示例中,从图像138中读取位于对应的卷积盒子的中心处的一组所感兴趣的像素(PoI)136的像素的四个矢量134,并组合。另外,Hessian矩阵140的每一条线150都还可以根据正在使用的标度,扩大为图像138中的一条线的扩展。在所示示例中,Hessian矩阵140用于32的标度,有十三个不同的Hessian矩阵(每个标度一个)。可以组合扩展的线的多个副本142,以同时计算多个点。
另外,图6E演示了可以对于多条线144中的每一条线执行的矢量乘法,后面跟着矢量加法146。可以将矢量加法146的结果的元素分成多个不同的矢量148,以便执行内加法运算,并获取对应于与PoIs136和正被讨论的标度值(例如,标度32)相关联的四个连续的卷积盒子的结果。
如此,特征提取单元24a可包括确定Hessian迹函数的Hessian迹逻辑154,以及卷积逻辑156,用于对于原始帧中的或多个修改的(例如,二次采样的)帧中的每一个像素,在所述Hessian迹函数和与所述修改的帧中的所述像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数。在一个示例中,卷积逻辑156使用9x9卷积盒子以及一个或多个SIMD命令来执行卷积。正如所指出的那样,所述非相邻像素组将可以具有最近的整数到所述Hessian迹函数的所述方差参数的四分之三的间隔。另外,缩放逻辑158可以对于多个方差参数值,调用所述卷积逻辑,以获得所述修改的帧中的所述像素的多个卷积分数。在一个示例中,所述多个方差参数值中的一个或多个方差参数值是紧临在前的方差参数值的四分之一增量。所示出的特征提取单元24a还包括选择逻辑160,用于标识对应于多个卷积分数中的最高分数的区块。
在线姿势匹配
正如所指出的那样,在线模块24也可以具有姿势单元24b,以使与多个区块相关联的一个或多个姿势与存储在库中的一个或多个姿势匹配。一般而言,姿势单元24b可以创建手掌联合体的“描述符”,并使用那些描述符来进行手跟踪以及手势匹配。手跟踪可以是标识来自连续的视频流/信号的帧中的手掌联合体的位置的过程,而姿势匹配可以是将手轮廓分类为与一个或多个预先定义的手势(例如,竖起大拇指、和平手势等等)相关联的过程。
继续参考图2和7A-7C,示出了标识手势的方法162。所示出的框164用于将多个区块分组为多个集群。可以以一对x-y坐标来一般性地描述每一区块,表示区块的中心的位置、半径和卷积分数。卷积分数可以表示存在于x-y坐标处的帧的图像与二维(2D)高斯内核的形状的接近度。
在一个示例中,区块被分组到k-均值集群,创建了k-均值集群,以便将手区块和与不同的皮肤区域(诸如,例如,脸、臂和肘)相关联的区块分开。一般而言,K均值集群可以尽可能地使重心彼此相隔远一些,并将每一区块与最近的重心相关联,以获得“早期的编组”。当没有区块未决时,可以重新计算k个新重心,作为由早期的编组所产生的集群的“质心”。一旦确定了k个新重心,可以在区块和最近的新重心之间进行新绑定。结果可以是循环,其中,k个重心逐步改变它们的位置,直到不再进行改变。另外,可以根据K均值集群中的大小,对区块进行加权。
例如,可以对作为各种值k,例如,2,...,K,的输入传递的全部区块,执行加权的k-均值,其中,最大的值K是可调参数。在所有迭代中,可以通过执行对输入区块的子集和任意初始值操作的相同加权的K均值集群,获得初始值。此外,当计算下一集群重心时,可以使用某种区块属性来作为权重。例如,可以使用诸如区块半径之类的值作为权重。可以计算集群重心的x坐标,作为集群中的所有区块的中心的多个x坐标的加权总和,其中,将每一x坐标乘以对应的权重,权重可以等于区块半径,并进一步将加权总和除以所有权重的总和。类似地,可以计算集群重心的y坐标,作为集群中的所有区块的中心的多个y坐标的加权总和,其中,将每一y坐标乘以对应的权重,权重可以等于区块半径,并进一步将加权总和除以所有权重的总和。在另一个实施例中,区块权重可以等于区块半径的平方。在再一个实施例中,区块权重可以等于区块半径的立方。另外,对于集群中的每一个,可以作为每一集群的区块的半径和坐标的函数,计算半径和x-y重心坐标对。
另外,可以将集群的属性传递到目标函数,该目标函数返回表征输入帧的最佳数量的集群和最佳集群。在一个示例中,目标函数返回紧凑的(例如,每一集群都包含具有同一集群中的至少一个近邻的区块)和彼此不相交的(例如,不同的集群不包含近邻区块)的所有集群。在另一个从计算角度来看不太密集的示例中,目标函数可以返回k值,在此之后,平均集群半径不会降低到低于特定的阈值(例如,75%)以下。如此,目标函数可以标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。如图7B所示,集群过程可以用于区别图像中的手集群172、臂集群172和脸集群174。
在框166,可以形成密度图,其中框168可以用于使用密度图来标识一个或多个姿势。关于这一点,可以相对于如在K均值集群过程中计算出的集群半径,归一化每一集群中的每一区块的位置和大小。可以进一步按比例放大两个值,以便匹配密度图的大小(例如,宽度和/或高度)。进一步地,对于每一个框和按比例放大的大小,可以选择“0”和“1”值的2D阵列。在此阵列中,等于“1”的元素可以形成大小等于按比例放大的区块大小的填充的圆形形状。然后,可以将阵列乘以权重(例如,区块半径的逆乘以一个常数,以提供朝着在手掌联合体中的不太可能发现的较小的区块的偏差),并在对应于区块的缩放的x-y坐标的位置将其添加到当前密度图。可以进一步归一化并按比例放大密度图的值,以便它们介于零和特定的上限值之间。例如,如果上限值是255,则可以使用字节网格来表示密度图。如此,框166可以相对于集群半径,归一化一个或多个区块,基于所述密度图的大小,放大一个或多个区块,并归一化密度图以获得字节网格。
如图7C所示,密度图可以一般具有对应于手的特定的手指的较高的值区域176(176a-176f)。在所示示例中,拇指区域176a对应于拇指,食指区域176b对应于食指,中间区域176c对应于中指,无名指区域176d对应于无名指,小手指区域176e对应于小手指,而手掌区域176f对应于手掌。
在框168,基于密度图来标识一个或多个姿势一般可以涉及执行一个或多个距离计算。例如,可以计算输入密度图和数据库的姿势描述符之间的距离,其中计算返回M个最佳匹配。在一个示例中,所使用的距离是曼哈顿距离,也叫做“L1”距离。
如此,姿势单元24b可包括:集群逻辑178,用于将多个区块分组为多个集群;描述符逻辑180,用于基于多个集群,形成密度图;以及匹配逻辑182,用于使用密度图来标识一个或多个姿势。集群逻辑178也可以根据区块大小,对所述多个区块进行加权,其中所述多个集群是k-均值集群。在一个示例中,集群逻辑178包括目标函数184来标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。此外,描述符逻辑可以归一化一个或多个区块,放大一个或多个区块,并归一化密度图。另外,匹配逻辑可以执行一个或多个距离计算操作,来标识所述一个或多个姿势。
应该特别指出的是,使用区块的抽象而并非像素可以显著降低手势匹配的复杂性。实际上,在给定应用中,区块的数量可以显著地少于像素的数量(例如,几十个到几百个对比数万)。相应地,可以以相对来说比较高的速率处理此处所描述的区块。
在线临时识别
在线模块24也可以具有临时的识别单元24c,用于对于一个或多个姿势,标识多个观察轨迹,同时维持所述多个观察轨迹的分数,并使用所述分数来执行一个或多个基于区块的手势判断。轨迹可以被定义为隐马尔可夫模型(HMM)的多个状态之间的变换序列,其中,隐马尔可夫模型的状态可以通过多个离散概率值或连续的概率密度函数(通常被建模为高斯混合模型(GMM))与多个观察相关联。一般而言,观察可以是8维判断,包含在x-y-z域中的移动(位置和速度)、手势描述,以及持续时间,如下面的表I所示。
8元组
位置x
位置y
位置z
速度x
速度y
速度z
姿势ID
持续时间
表I
可以根据从手势识别流水线的较早的级返回的手集群的大小,估计Z值。此外,还可以根据在流水线的早期创建的密度图来确定姿势标识符。观察轨迹的分数的同时的维护可以使用通过使用诸如Baum-Welch之类的方法创建的隐马尔可夫模型。隐马尔可夫模型可以任意地将观察分区为流,其中,每一流都可以以区域性或连续的(基于高斯混合模型/GMM的)概率分布函数为特征。
继续参考图2和8A-8D,示出了使用维特比分数来执行基于区块的手势判断的方法186。所示出的框188、190、192、194、196和210可以一般性地在手势系统初始化过程中执行一次。另一方面,所示出的框212可以一个视频帧一个视频帧地执行多次。所示出的框188标识观察状态之间的一组有效变换。可以在手势规范中标识有效变换组,该手势规范指定描述手势移动的松散的范围,而用户输入确定正常的或可接受的手势执行。例如,考虑挥手手势,手势设计人员可以指定两种状态:“向左”状态和“向右”状态。向左状态可包括手掌从左到右的移动,向右状态可包括在相反方向上的移动。在这样的情况下,手势设计人员可以不指定在屏幕中的手掌将被定位的准确的像素位置,因为这样的约束限制性太大。
如此,手势规范可包括一组规范状态(例如,spec_states),规范状态之间的一组有效变换,以及规范状态中的每一个的8个维度中的每一个维度的一组值间隔。因此,规范状态可以反映手势设计人员的手势的状态应该是什么的意图。规范状态可以不是在作出最后的手势判断中所使用的最后的隐马尔可夫模型(HMM)状态,如将参考图6比较详细地讨论的。来自手势规范的状态可以涵盖一个或多个最后的HMM状态。
框190可以标识训练数据中的多个观察序列,其中所示出的框192删除与有效变换组非兼容的一个或多个观察序列。如此,可以使用训练数据适应性系统来检查来自一组训练数据的每一观察序列,为序列中的每一对连续观察,计算可以与这两个观察相关联的有效规范状态组。如果在手势规范中指定与两个值相关联的至少一对有效规范状态作为有效状态变换,则一对连续观察值可以是适应的。如果观察序列中的所有连续观察值的对都是适应的,那么,观察序列可以被视为适应的。如图8B所示,如果如在变换矩阵214中反映的,从“之前”规范状态到“之后”规范状态的至少一个变换是有效的,则一对观测值(例如,04到05)之间的变换可以是有效的。
所示出的框194标识与兼容的观察序列相关联的值的一个或多个集群,其中可以在框196取值的集群的笛卡尔乘积。可以通过K均值集群,执行值的集群的创建。关于这一点,对于每一个数量的k个集群,可以确定集群方案分数,其中最佳k是集群是最远的并且在大小方面类似的那个。图8C演示了可以通过根据下列表达式,计算集群分数,确定集群的最佳数量。
方差=V/Vmax
间隙=A/B
分数=(0.5*Av.方差+0.5*Min方差)*(0.5*Av.间隙+0.5*Min间隙)
如图8D所示出的,可以取一对x轴值198和一对y轴值200之间的笛卡尔乘积,以获得状态202、204、206以及208。在框210,可以使用笛卡尔乘积结果来定义多个HMM状态。从此多个HMM状态,可以从HMM状态组中删除不适应手势规范的状态。除笛卡尔乘积结果之外,HMM状态还可包括手势规范中所包括的而没有在来自训练数据的任何叉积组合中表示的状态。HMM也可以具有概率分布表,这些表在表查询值的规范状态中使用由手势设计人员所指定的较大的区域,被初始化。此外,对于使用高斯混合模型(GMM)的那些状态元件,HMM可以在较早标识的集群中指定的值处以混合物开始。另外,频率计数可以用于计算初始状态可能性以及状态转换可能性。
所示出的框212基于多个HMM状态,确定多个观察轨迹的分数。在一个示例中,分数是表示某个给定观察序列描述真正的手势的似然率的维特比分数。正如所指出的那样,可以通过HMM来对手势进行建模,其中HMM可以与维特比模块的执行相关联。如果不实现时间牵引(例如,由于不知道手势何时开始和结束),则可以同时维持关于多个观察轨迹的分数。更具体而言,维特比分数可以作为时间的函数单调地缩小。相应地,取决于维特比分数如何下降,基于区块的手势判断可以区别正在进行的手势(例如,分数下降处于可接受的范围内)、“删除的”轨迹(例如,分数降低到低于可接受的范围以下)和已完成的手势(例如,分数降低到低于可接受的范围以下,但是,满足了一个或多个手势完成条件)。手势完成条件可包括在HMM系统中到达终结状态,或在最小持续时间内维持“良好”维特比分数。如果HMM系统保持在HMM状态中的可能性高于特定的常数,则这些状态可以被表征为终结状态。
因此,训练数据可以用于开发概率模型,该概率模型捕捉执行诸如上文所讨论的挥手手势之类的手势的最常见的方式。例如,通常将不会有资格作为挥手的从左到右以及反向的某种移动(例如,从左到右以及反向靠近最低,只移动食指)可能会通过训练数据适应性测试,但是,由于在训练数据中可能很少或没有此移动的代表这一事实,不能获取高维特比分数。相应地,不常见的移动可能不会错当作挥手。
如果不实现空间牵引(例如,由于不知道手势何时开始和结束),则可以使用相对大的数据集来捕捉在给定应用程序中可以执行特定的手势的各种方式。例如,不同的用户可以在屏幕的不同部分,利用不同速度,移动他们的手,或以精细不同的方式执行特定的移动(例如,竖起大拇指)。通过使用大训练数据组并通过捕捉这样的不同的量和属性,所示出的方法可以增大成功的识别的似然率。此外,可以使用与手势相关联的各种手位置、姿势和速度来创建多个并且不同的HMM状态。相应地,可以将一个用户的手掌轨迹建模为与另一用户的手掌轨迹分离的状态序列。这样的方法还可以进一步提高精度,而不会遇到空间牵引。由于训练可以离线发生并进行一次,使用较大的数据集不会给在线性能造成负担。
如此,临时的识别单元24c可包括标识一组有效变换的规范逻辑220,以及适应性逻辑222,用于标识训练数据中的多个观察序列,并删除不适应所述有效变换组的一个或多个观察序列。HMM初始化逻辑224可以标识与适应观察序列相关联的值的一个或多个集群,取值的一个或多个集群的笛卡尔乘积,并使用所述笛卡尔乘积来定义多个HMM状态。另外,临时的识别单元24c还可包括维特比逻辑226,该维特比逻辑226基于多个HMM状态,确定多个观察轨迹的分数。在一个示例中,基于所述分数的下降,执行基于区块的手势判断,其中基于区块的手势判断区别正在进行的轨迹、已删除的轨迹以及已完成的轨迹。已完成的轨迹可以与已完成的手势相关联,满足多个手势完成条件。
此处所描述的方法中的一个或多个可在计算设备中实现为一组逻辑指令和/或固件,它们被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、闪存等机器或计算机可读存储介质中,存储在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)的可配置逻辑中,存储在使用诸如例如专用集成电路(ASIC)、互补式金属氧化物半导体(CMOS)的电路技术或晶体管-晶体管逻辑(TTL)技术的固定功能逻辑硬件或其任意组合中。例如,执行方法中示出的操作的计算机程序代码可以一种或多种编程语言的任何组合编写,包括诸如C++等面向对象的编程语言以及诸如“C”编程语言的传统程序性编程语言或类似的编程语言。此外,方法还可以使用上文所提及的电路技术中的任何一种来实现。
图9示出了根据一实施例的处理器核200。处理器核200可以是任何类型的处理器,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器,或执行代码的其他设备的核。虽然在图9中只示出了一个处理器核200,但是,处理元件可以可另选地包括多于图9中所示出的处理器核200。处理器核200可以是单线程的核,或对于至少一个实施例,处理器核200可以是多线程的,它可每个核包括一个以上的硬件线程上下文(或“逻辑处理器”)。
图9还示出了耦合到处理器200的存储器270。存储器270可以是当前已知或以别的方式可用的各种存储器中的任何一种(包括存储器层次结构的各层)。存储器270可包括由处理器200核执行的一个或多个代码213指令,其特征在于,代码213可以实现此处所描述的方法中的一种或多种。存储器270还可以包括与手势检测流水线的块的执行相关联的输入视频帧,状态变量以及常数。处理器核200遵循由代码213指出的程序指令序列。每一指令都可以进入前端部分210,并由一个或多个解码器220处理。解码器220可以以预定义的格式生成诸如固定宽度微操作之类的微操作,作为其输出,或可以生成其他指令、微指令,或反映原始代码指令的控制信号。所示出的前端210还包括寄存器重命名逻辑225以及调度逻辑230,它们一般分配资源并排队对应于转换指令的操作,供执行。
示出了包括具有一组执行单元255-1到255-N的执行逻辑250的处理器200。一些实施例可以包括专用于特定功能或功能组的若干个执行单元。其他实施例可只包括一个执行单元或能够执行特定的功能的一个执行单元。所示出的执行逻辑250执行由代码指令所指定的操作。
在由代码指令所指定的操作的执行完成之后,后端逻辑260引退代码213的指令。在一个实施例中,处理器200允许无序执行,但是,要求指令的按顺序引退。引退逻辑265可以呈现已知的各种形式(例如,重排序缓存等等)。如此,处理器核200在代码213的执行过程中被转换,至少就由解码器所生成的输出、硬件寄存器和由寄存器重命名逻辑225使用的表,以及由执行逻辑250修改的任何寄存器(未示出)而言。
虽然在图9中未示出,但是,处理元件与处理器核200一起可包括芯片上的其他元件。例如,处理元件可包括存储器控制逻辑以及处理器核200。处理元件可包括I/O控制逻辑和/或可包括与存储器控制逻辑集成的I/O控制逻辑。处理元件也可以包括一个或多个高速缓存以及附接的图像传感器。
现在参照图10,所示出的是根据本发明一个实施例的系统1000实施例的框图。图10所示出的是包括第一处理元件1070和第二处理元件1080的多处理器系统1000。尽管示出了两个处理元件1070和1080,但是,可以理解,系统1000的实施例还可以只包括一个这样的处理元件。
系统1000被示为点对点互连系统,其中第一处理元件1070和第二处理元件1080通过点对点互连1050耦合。应该理解,图10中所示出的任何或全部互连都可以实现为多点分支总线,而并非点对点互连。
如图10所示,处理元件1070和1080中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核1074a以及1074b以及处理器核1084a以及1084b)。这样的核1074、1074b、1084a、1084b可以被配置成以类似于上文参考图9所讨论的方式执行指令代码。
每一处理元件1070,1080都可以包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a,1896b可以存储分别被处理器的一个或多个组件(诸如核1,074a、1074b以及1,084a,1084b)使用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可以本地高速缓存存储在存储器1032,1034中的数据,用于被处理器的组件更快的访问。在一个或多个实施例中,共享高速缓存1,896a,1896b可以包括一个或多个中级高速缓存,诸如2级(L2)、3级(L3)、4级(L4),或其他级别的高速缓存,末级高速缓存(LLC)或其组合。
尽管只利用两个处理元件1070、1080来示出,但是,可以理解,本发明的各实施例不仅限于此。在其他实施例中,一个或多个额外的处理元件可以存在于给定处理器中。可另选地,一个或多个处理元件1070,1080可以是除处理器以外的元件,诸如加速器或场可编程门阵列。例如,额外的处理元件可包括与第一处理器1070相同的额外的处理器,与第一处理器1070异构或非对称的额外的处理器,加速器(诸如,例如,图形加速器或数字信号处理(DSP)单元),场可编程门阵列,或任何其他处理元件。就包括架构、微架构、热的,功率消耗特征等等的一系列优点的度量而言,在处理元件1070,1080之间可能会有各种差异。这些差异可能有效地将其本身表现为处理元件1070,1080之间的不对称性和异质性。对于至少一个实施例,各种处理元件1070,1080可以驻留在相同管芯封装中。
第一处理元件1070还可以包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076以及1078。类似地,第二处理元件1080可包括MC1082以及P-P接口1086以及1088。如图10所示,MC1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,它们可以是本地连接到相应的处理器的主存储器的一部分。尽管MC逻辑1072和1082被示为集成到处理元件1070,1080中,但是对于替换的实施例,MC逻辑可以是处理元件1070,1080之外的单独逻辑,而并非集成在其中。
第一处理元件1070以及第二处理元件1080可以分别通过P-P互连1076,1086,耦合到I/O子系统1090。如图10所示,I/O子系统1090包括P-P接口1094以及1098。此外,I/O子系统1090还包括将I/O子系统1090耦合高性能图形引擎1038的接口1092。在一个实施例中,总线1049可以被用来将图形引擎1038耦合到I/O子系统1090。交替地,点对点互连539可以将这些组件耦合。
I/O子系统1090又可以通过接口1096耦合到第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或诸如PCIExpress总线之类的总线,或另一第三代I/O互连总线,虽然各实施例的范围不仅限于此。
如图10所示,各种I/O设备1014(例如,摄像机)可以耦合到第一总线1016,以及将第一总线1018耦合到第二总线1016的总线桥接器1020。在一个实施例中,第二总线1020可以是低管脚数(LPC)总线。在一个实施例中,各种设备可以耦合到第二总线1020,包括,例如,键盘/鼠标1012、网络控制器/通信设备1026(它们又可以与计算机网络进行通信)以及数据存储单元1019,诸如磁盘驱动器或可以包括代码1030的其他大容量存储设备。代码1030可以包括用于执行上文所描述的方法中的一个或多个的实施例的指令。如此,所示出的代码1030可以实现此处所描述的方法中的一个或多个,并可以类似于已经讨论的代码213(图9)。进一步,音频I/O1024可以耦合到第二总线1020,其特征在于,音频I/O1024可以被用来建立耳机连接。
请注意,其他实施例也是可以的。例如,代替图10的点对点体系结构,系统可以实现多点分支总线或另一这样的通信拓朴。此外,还可以使用比图10中所示出的多一些或少一些集成芯片,可另选地分区图10的元件。
额外的注意事项和示例:
示例1可包括识别手势的设备,其具有确定视频信号中的多个像素的皮肤色调分布的离线模块。设备也可以具有离线模块以使用皮肤色调分布来相对于视频信号执行一个或多个基于区块的手势判断。
示例2可包括示例1的设备,其特征在于,所述视频信号包括二维(2D)图像数据。
示例3可包括示例1的设备,其特征在于,所述皮肤色调分布具有大于所述基于区块的手势判断的执行时间预算的执行时间预算。
示例4可包括示例1到3中的任何一个的设备,其特征在于,所述离线模块包括边缘检测单元,用于接收与所述视频信号的帧相关联的彩色图像,并对多个通道中的每一个的所述彩色图像进行边缘分析。
示例5可包括示例4的设备,其特征在于,所述边缘检测单元包括:盒子逻辑,用于对于所述多个通道中的每一个通道,确定一组高斯导数,卷积逻辑,用于在所述一组高斯导数和所述彩色图像中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度,以及,阈值逻辑,用于使用低阈值和高阈值来判断每一梯度幅度以及相关联的梯度角度是否对应于边缘,其中所述低阈值和所述高阈值是通道特定的。
示例6可包括示例5的设备,其特征在于,所述阈值逻辑,对于所述多个通道中的每一个通道,构建梯度幅度的直方图,并基于所述直方图,确定所述低阈值和所述高阈值。
示例7可包括示例5的设备,其特征在于,所述边缘检测单元进一步包括:堆栈逻辑,用于标识一个或多个边缘像素,并判断所述一个或多个边缘像素周围的像素的邻近区域是否包括额外的边缘像素,其中像素的所述邻近区域包括一不与所述一个或多个边缘像素相邻的个或多个像素。
示例8可包括示例5的设备,其特征在于,所述盒子逻辑把所述一组高斯导数的方差参数设置为大于1的值。
示例9可包括示例4的设备,所述离线模块进一步包括距离单元,用于标识与所述边缘分析相关联的边缘图,并反复传播所述边缘图中的像素之间的最近邻信息,以获得距离图。
示例10可包括示例9的设备,其特征在于,距离模块包括:第一初始化逻辑,用于将所述边缘图中的边缘像素初始化为它们自己的最近的边缘并具有零边缘距离,将已初始化的边缘像素添加到第一队列中,并指定所述第一队列为活跃的队列,第二初始化逻辑,用于初始化所述边缘图中的非边缘像素为具有未知的最近的边缘和无穷大的边缘距离,并指定第二队列为非活跃队列,比较逻辑,用于,对于所述活跃队列中的每一个像素,作出关于相邻像素和所述活跃的队列中的所述像素的最近的边缘之间的第一距离是否小于或等于所述相邻像素和所述相邻像素的当前最近的边缘之间的第二距离的距离判断,广播逻辑,用于,如果所述第一距离小于或等于所述第二距离,则将所述活跃的队列中的所述像素的状态转移到所述相邻像素的状态,并在所述相邻像素的所述状态将所述第二距离替换为所述第一距离,队列逻辑,用于,如果所述第一距离小于或等于所述第二距离,则从所述活跃的队列中删除所述活跃的队列中的所述像素,并将所述相邻像素添加到所述非活跃队列,第一迭代逻辑,用于对于所述活跃的队列中的所述像素的每一个相邻像素,重复所述比较逻辑、所述广播逻辑以及所述队列逻辑的第一调用,以及,第二迭代逻辑,用于将所述第一队列第一指定为所述非活跃队列,将所述第二队列第二指定为所述活跃的队列,并重复对所述比较逻辑、所述广播逻辑、所述队列逻辑以及所述第一迭代逻辑的随后调用,直到所述活跃的队列是空的。
示例11可包括示例9的设备,其特征在于,所述离线模块进一步包括指尖单元,用于基于所述边缘图和所述距离图,标识包围所述彩色图像中的多个指尖的一组轮廓线像素。
示例12可包括示例11的设备,其特征在于,所述指尖模块包括:本地逻辑,用于使用一组手指段曲线来标识对应于所述多个指尖的多个本地边缘距离最小值,其中所述多个指尖包括食指指尖、中指指尖、无名指指尖,或小指指尖中的一个或多个,以及,全局逻辑,用于使用所述一组手指段曲线来标识与每一本地边缘距离最小值以及与所述多个指尖中的每一个相关联的轮廓线像素的四个全局边缘距离最小值。
示例13可包括示例12的设备,其特征在于,手指段曲线组将包括两个线段以及两个椭圆段的串联。
示例14可包括示例11的设备,其特征在于,基于轮廓线像素组内的像素的颜色值,确定所述皮肤色调分布。
示例15可包括示例1到3中的任何一个的设备,其特征在于,所述在线模块基于所述皮肤色调分布,从与所述视频信号相关联的输入帧中删除非皮肤像素,并二次采样所述输入帧,以获得多个修改的帧,其中所述在线模块包括特征提取单元,用于标识所述多个修改的帧中的多个区块。
示例16可包括示例15的设备,其特征在于,所述特征提取单元包括:确定Hessian迹函数的迹逻辑,卷积逻辑,用于,对于修改的帧中的每一个像素,在所述Hessian迹函数和与所述修改的帧中的所述像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数,缩放逻辑,用于对于多个方差参数值,调用所述卷积逻辑,以获得所述修改的帧中的所述像素的多个卷积分数,以及,选择逻辑,用于标识对应于所述多个卷积分数中的最高分的区块。
示例17可包括示例16的设备,其特征在于,所述卷积逻辑使用9x9卷积盒来执行所述卷积。
示例18可包括示例16的设备,其特征在于,非相邻像素组将具有最近的整数到所述Hessian迹函数的所述方差参数的四分之三的间隔。
示例19可包括示例16的设备,其特征在于,所述多个方差参数值中的一个或多个方差参数值是前面的方差参数值的四分之一增量。
示例20可包括示例16的设备,其特征在于,所述卷积逻辑使用一个或多个单指令多数据(SIMD)命令以及SIMD卷积方法来执行所述卷积。
示例21可包括示例15的设备,其特征在于,所述在线模块进一步包括姿势单元,用于将与所述多个区块相关联的一个或多个姿势与存储在库中的一个或多个姿势匹配。
示例22可包括示例21的设备,其特征在于,所述姿势单元包括:将所述多个区块分组为多个集群的集群逻辑,基于所述多个集群,形成密度图的描述符逻辑,以及,使用所述密度图来标识所述一个或多个姿势的匹配逻辑。
示例23可包括示例22的设备,其特征在于,所述集群逻辑根据区块大小,对所述多个区块进行加权,其中所述多个集群是k-均值集群。
示例24可包括示例22的设备,其特征在于,所述集群逻辑使用目标函数来标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。
示例25可包括示例22的设备,其特征在于,所述描述符逻辑相对于集群半径,归一化一个或多个区块,基于所述密度图的大小,放大一个或多个所述区块,并归一化所述密度图以获得字节网格。
示例26可包括示例22的设备,其特征在于,所述匹配逻辑将执行一个或多个距离计算操作,来标识所述一个或多个姿势。
示例27可包括示例21的设备,其特征在于,所述在线模块进一步包括临时的识别单元,用于对于所述一个或多个姿势,标识多个观察轨迹,同时维持所述多个观察轨迹的分数,并使用所述分数来执行所述一个或多个基于区块的手势判断。
示例28可包括示例27的设备,其特征在于,所述临时的识别单元包括:标识一组有效变换的规范逻辑,适应性逻辑,用于标识训练数据中的多个观察序列,并删除不适应所述有效变换组的一个或多个观察序列,隐马尔可夫模型(HMM)初始化逻辑,用于标识与适应的观察序列相关联的值的一个或多个集群,取值的所述一个或多个集群的笛卡尔乘积,并使用所述笛卡尔乘积来定义多个HMM状态,以及,维特比逻辑,用于基于所述多个HMM状态,确定所述多个观察轨迹的所述分数,其中所述基于区块的手势判断基于所述分数的下降,区别正在进行的轨迹、已删除的轨迹以及已完成的轨迹。
示例29可包括识别手势的方法。该方法可包括确定视频信号中的多个像素的皮肤色调分布的离线模块,以及,使用所述皮肤色调分布来对于所述视频信号进行一个或多个基于区块的手势判断。
示例30可包括示例29的方法,其特征在于,所述视频信号包括二维(2D)图像数据。
示例31可包括示例29的方法,其特征在于,所述皮肤色调分布具有大于所述基于区块的手势判断的执行时间预算的执行时间预算。
示例32可包括示例29到31中的任何一个的方法,进一步包括,接收与所述视频信号的帧相关联的彩色图像,并对多个通道中的每一个的所述彩色图像进行边缘分析。
示例33可以包括示例32的方法,进一步包括:对于所述多个通道中的每一个通道,确定一组高斯导数,在高斯导数组和所述彩色图像中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度,以及,使用低阈值和高阈值来判断每一梯度幅度以及相关联的梯度角度是否对应于边缘,其中所述低阈值和所述高阈值是通道特定的。
示例34可以包括示例33的方法,进一步包括:对于所述多个通道中的每一个通道,构建梯度幅度的直方图,以及,基于所述直方图,确定所述低阈值以及所述高阈值。
示例35可以包括示例33的方法,进一步包括:标识一个或多个边缘像素,以及,判断所述一个或多个边缘像素周围的像素的邻近区域是否包括额外的边缘像素,其中所述像素的邻近区域包括与所述一个或多个边缘像素非相邻的一个或多个像素。
示例36可包括示例33的方法,进一步包括将高斯导数组的方差参数设置为大于1的值。
示例37可以包括示例32的方法,进一步包括:标识与所述边缘分析相关联的边缘图,以及,反复传播所述边缘图中的像素之间的最近邻信息,以获得距离图。
示例38可以包括示例37的方法,进一步包括:将所述边缘图中的边缘像素初始化为它们自己的最近的边缘并具有零边缘距离,将所述已初始化的边缘像素添加到第一队列中,将所述第一队列指定为活跃的队列,将所述边缘图中的非边缘像素初始化为具有未知的最近的边缘和无穷大的边缘距离,将第二队列指定为非活跃队列,对于所述活跃队列中的每一个像素,作出关于相邻像素和所述活跃的队列中的所述像素的最近的边缘之间的第一距离是否小于或等于所述相邻像素和所述相邻像素的当前最近的边缘之间的第二距离的距离判断,如果所述第一距离小于或等于所述第二距离,则将所述活跃的队列中的所述像素的状态转移到所述相邻像素的状态,在所述相邻像素的所述状态将所述第二距离替换为所述第一距离,从所述活跃的队列中删除所述活跃的队列中的所述像素,如果所述第一距离小于等于所述第二距离,则将所述相邻像素添加到所述非活跃队列中,对于所述活跃的队列中的所述像素的每一个相邻像素,执行所述距离判断、所述状态的所述转移以及所述相邻像素的所述添加的第一重复,将所述第一队列第一指定为所述非活跃队列,将所述第二队列第二指定为所述活跃队列,以及,执行所述第一重复、所述第一指定以及所述第二指定的随后的重复,直到所述活跃的队列是空的。
示例39可以包括示例37的方法,进一步包括:基于所述边缘图和所述距离图,标识包围所述彩色图像中的多个指尖的一组轮廓线像素。
示例40可以包括示例39的方法,进一步包括:使用一组手指段曲线来标识对应于所述多个指尖的多个本地边缘距离最小值,其中所述多个指尖包括食指指尖、中指指尖、无名指指尖,或小指指尖中的一个或多个,以及,使用一组手指段曲线来标识与每一本地边缘距离最小值以及与所述多个指尖中的每一个相关联的轮廓线像素的四个全局边缘距离最小值。
示例41可包括示例40的方法,其中一组手指段曲线包括两个线段以及两个椭圆段的串联。
示例42可包括示例39的方法,其中基于所述一组轮廓线像素内的像素的颜色值,确定所述皮肤色调分布。
示例43可以包括示例29到31中的任何一个的方法,进一步包括:基于所述皮肤色调分布,从与所述视频信号相关联的输入帧中删除非皮肤像素,二次采样所述输入帧,以获得多个修改的帧,以及,标识所述多个修改的帧中的多个区块。
示例44可以包括示例43的方法,进一步包括:确定Hessian迹函数,对于修改的帧中的每一个像素,在所述Hessian迹函数和与所述修改的帧中的所述像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数,对于多个方差参数值,调用所述卷积,以获得所述修改的帧中的所述像素的多个卷积分数,以及,标识对应于所述多个卷积分数中的最高分数的区块。
示例45可包括示例44的方法,进一步包括使用9x9卷积盒来执行所述卷积。
示例46可包括示例44的方法,其特征在于,一组非相邻像素具有最近的整数到所述Hessian迹函数的所述方差参数的四分之三的间隔。
示例47可包括示例44的方法,其特征在于,所述多个方差参数值中的一个或多个方差参数值是前面的方差参数值的四分之一增量。
示例48可包括示例44的方法,进一步包括使用一个或多个单指令多数据(SIMD)命令以及SIMD卷积方法来执行所述卷积。
示例49可包括示例43的方法,进一步包括将与所述多个区块相关联的一个或多个姿势与存储在库中的一个或多个手势匹配。
示例50可以包括示例49的方法,进一步包括:将所述多个区块分组为多个集群,基于所述多个集群,形成密度图,以及,使用所述密度图来标识所述一个或多个姿势。
示例51可包括示例50的方法,进一步包括,根据区块大小,对所述多个区块进行加权,其中所述多个集群将是k-均值集群。
示例52可以包括示例50的方法,进一步包括:使用目标函数来标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。
示例53可以包括示例50的方法,进一步包括:相对于集群半径;归一化一个或多个所述区块,基于所述密度图的大小,放大一个或多个所述区块,以及,归一化所述密度图,以获得字节网格。
示例54可包括示例50的方法,进一步包括执行一个或多个距离计算操作,来标识所述一个或多个姿势。
示例55可以包括示例49的方法,进一步包括:标识所述一个或多个姿势的多个观察轨迹,同时维持所述多个观察轨迹的分数,以及,使用所述分数来执行所述一个或多个基于区块的手势判断。
示例56可以包括示例55的方法,进一步包括:标识一组有效变换,标识训练数据中的多个观察序列,删除不适应一组有效变换的一个或多个观察序列,标识与适应的观察序列相关联的值的一个或多个集群,取值的所述一个或多个集群的笛卡尔乘积,使用所述笛卡尔乘积来定义多个隐马尔可夫模型(HMM)状态,以及,基于所述多个HMM状态,确定所述多个观察轨迹的所述分数,其中所述基于区块的手势判断将基于所述分数的下降,区别正在进行的轨迹、已删除的轨迹以及已完成的轨迹。
示例57可包括具有一组指令的至少一个计算机可读存储介质,所述指令,如果由计算设备执行,则导致计算设备执行示例29到56中的任何一个的方法。
示例58可包括识别手势的设备,具有用于执行示例29到56中的任何一个的方法的装置。
因此,此处所描述的技术可以为提高精度,离线使用像素,为提高效率,在线使用高斯区块,来进行计算。另外,还可以使用迭代最近点匹配的变体,其中,诸如线以及椭圆段之类的曲线只有包围指尖。此外,特征提取还可以是区块检测状态的序列,其中,被选择的区块不仅是局部尺度空间最大值,而且还是通过前一阶段来标识的像素的子集中的全部最大值。另外,还可以使用密度图,从区块创建手势描述符,这可以将手势分类过程缩小到计算矢量之间的若干个距离。
各个实施例可利用硬件部件、软件部件或两者的组合来实现。硬件部件的示例可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用接口(API)、指令集、计算代码、计算机代码、代码片段、计算机代码片段、字、值、符号或它们的任意组合。判断一个实施例是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据率、输出数据率、存储器资源、数据总线速度,及其他设计或性能约束。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表征性指令来实现,该指令表示处理器中的各种逻辑,该指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施,以加载到实际制造逻辑或处理器的制造机器中。
各实施例适用于与各种类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括,但不仅限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等等。另外,在一些附图中,信号导线是用线表示的。一些线可以不同以表示更具构成性的信号路径,具有数字标号以表示构成性信号路径的数目,和/或在一端或多端具有箭头以表示主要信息流向。然而,这不应当被解释成限制。相反,这些新增的细节可结合一个或多个示例性实施例使用以利于电路的更容易理解。任何表示的信号线,不管是否具有附加信息,可实际上包括沿多个方向行进并可用任何适宜类型的信号机制实现的一个或多个信号,所述信号方案例如是用差分线对、光纤线和/或单端线实现的数字或模拟线。
已给出示例尺寸/模型/值/范围,尽管各实施例不仅限于此。随着制造技术(例如光刻法)随时间的成熟,可望可以制造出更小尺寸的设备。另外,为了解说和说明的简单,与IC芯片公知的功率/接地连接和其它组件可在附图中示出也可不示出,并且这样做也是为了不使各实施例的某些方面变得晦涩。进一步地,可以以框图形式示出布局,以便避免使各实施例变得模糊,还鉴于相对于这样的框图布局的实现的细节高度依赖于将在其内实现实施例的平台这一事实,即,这样的细节应该在精通本技术的人员学识范围内。尽管阐述了具体细节(例如,电路)以便描述示例实施例,但是,对本领域技术人员显而易见的是,各实施例可以在没有这些具体细节,或利用这些具体细节的变化来实施。说明书因此应当被视为解说性的而非限定性的。
一些实施例可以,例如,使用机器或有形的计算机可读取的介质或制品来实现,所述介质或制品可以存储指令或一组指令,如果由机器执行,可以导致机器执行根据各实施例的方法和/或操作。这样的机器可以包括,例如,任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等等,并可以使用硬件和/或软件的任何合适的组合来实现。指令可包括任何合适类型的代码,如源代码、已编译的代码、已解释的代码、可执行代码、静态代码、动态代码、加密代码等等,使用任何合适的高级别的、低级别的、面向对象的、可视的、已编译的和/或解释性编程语言来实现。
除非特别声明,应该理解,诸如“处理”、“计算”、“运算”、“确定”等等之类的术语是指计算机或计算系统,或类似的电子计算设备的动作和/或进程,所述计算系统或类似的电子计算设备操纵和/或转换表示为计算系统的寄存器和/或存储器内的物理(如,电子)量的数据,将这些数据转换为类似地表示为计算系统存储器或寄存器或其他这样的信息存储器、传输或显示设备内的物理量的其他数据。这些实施例不限于这种背景。
术语“耦合的”在本文中可用来指示所研究的组件之间的任何类型关系(直接或间接),并可适用于电气连接、机械连接、流体连接、光连接、电磁连接、电机连接或其它连接。另外,术语“第一”、“第二”等等此处只用于便于讨论,没有特定时间的或按时间顺序的意义,除非另有陈述。
本领域内技术人员从前面的说明可以理解,各实施例的广泛技术可以多种形式来实现。因此,尽管已结合其特例描述了各实施例,然而各实施例的真实范围不受此限,因为本领域内技术人员在研究附图、说明书和下面的权利要求书之后很容易理解其它的修正形式。

Claims (84)

1.一种识别手势的设备,包括:
确定视频信号中的多个像素的皮肤色调分布的离线模块;以及
使用所述皮肤色调分布来对于所述视频信号进行一个或多个基于区块的手势判断的在线模块。
2.如权利要求1所述的设备,其特征在于,所述视频信号包括二维(2D)图像数据。
3.如权利要求1所述的设备,其特征在于,所述皮肤色调分布具有大于所述基于区块的手势判断的执行时间预算的执行时间预算。
4.如权利要求1到3中任一权利要求所述的设备,其特征在于,所述离线模块包括边缘检测单元,用于接收与所述视频信号的帧相关联的彩色图像,并对多个通道中的每一个的所述彩色图像进行边缘分析。
5.如权利要求4所述的设备,其特征在于,所述边缘检测单元包括:
盒子逻辑,用于对于所述多个通道中的每一个通道,确定一组高斯导数;
卷积逻辑,用于在所述一组高斯导数和所述彩色图像中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度;以及
阈值逻辑,用于使用低阈值和高阈值来判断每一梯度幅度以及相关联的梯度角度是否对应于边缘,其中所述低阈值和所述高阈值是通道特定的。
6.如权利要求5所述的设备,其特征在于,所述阈值逻辑,对于所述多个通道中的每一个通道,构建梯度幅度的直方图,并基于所述直方图,确定所述低阈值和所述高阈值。
7.如权利要求5所述的设备,其特征在于,所述边缘检测单元进一步包括堆栈逻辑,用于标识一个或多个边缘像素,并判断所述一个或多个边缘像素周围的像素的邻近区域是否包括额外的边缘像素,其中像素的所述邻近区域包括不与所述一个或多个边缘像素相邻的一个或多个像素。
8.如权利要求5所述的设备,其特征在于,所述盒子逻辑把所述一组高斯导数的方差参数设置为大于1的值。
9.如权利要求4所述的设备,其特征在于,所述离线模块进一步包括距离单元,用于标识与所述边缘分析相关联的边缘图,并反复传播所述边缘图中的像素之间的最近邻信息,以获得距离图。
10.如权利要求9所述的设备,其特征在于,所述距离模块包括:
第一初始化逻辑,用于将所述边缘图中的边缘像素初始化为它们自己的最近的边缘并具有零边缘距离,将已初始化的边缘像素添加到第一队列中,并指定所述第一队列为活跃的队列;
第二初始化逻辑,用于将所述边缘图中的非边缘像素初始化为具有未知的最近的边缘和无穷大的边缘距离,并指定第二队列为非活跃队列;
比较逻辑,用于,对于所述活跃队列中的每一个像素,作出关于相邻像素和所述活跃的队列中的所述像素的最近的边缘之间的第一距离是否小于或等于所述相邻像素和所述相邻像素的当前最近的边缘之间的第二距离的距离判断;
广播逻辑,用于,如果所述第一距离小于或等于所述第二距离,则将所述活跃的队列中的所述像素的状态转移到所述相邻像素的状态,并在所述相邻像素的所述状态将所述第二距离替换为所述第一距离;
队列逻辑,用于,如果所述第一距离小于或等于所述第二距离,则从所述活跃的队列中删除所述活跃的队列中的所述像素,并将所述相邻像素添加到所述非活跃队列;
第一迭代逻辑,用于对于所述活跃的队列中的所述像素的每一个相邻像素,重复所述比较逻辑、所述广播逻辑以及所述队列逻辑的第一调用;以及
第二迭代逻辑,用于将所述第一队列第一指定为所述非活跃队列,将所述第二队列第二指定为所述活跃的队列,并重复对所述比较逻辑、所述广播逻辑、所述队列逻辑以及所述第一迭代逻辑的随后调用,直到所述活跃的队列是空的。
11.如权利要求9所述的设备,其特征在于,所述离线模块进一步包括指尖单元,用于基于所述边缘图和所述距离图,标识包围所述彩色图像中的多个指尖的一组轮廓线像素。
12.如权利要求11所述的设备,其特征在于,所述指尖模块包括:
本地逻辑,用于使用一组手指段曲线来标识对应于所述多个指尖的多个本地边缘距离最小值,其中所述多个指尖包括食指指尖、中指指尖、无名指指尖,或小指指尖中的一个或多个;以及
全局逻辑,用于使用所述一组手指段曲线来标识与每一本地边缘距离最小值以及与所述多个指尖中的每一个相关联的轮廓线像素的四个全局边缘距离最小值。
13.如权利要求12所述的设备,其特征在于,所述一组手指段曲线包括两个线段以及两个椭圆段的串联。
14.如权利要求11所述的设备,其特征在于,基于所述一组轮廓线像素内的像素的颜色值,确定所述皮肤色调分布。
15.如权利要求1到3中任一权利要求所述的设备,其特征在于,所述在线模块基于所述皮肤色调分布,从与所述视频信号相关联的输入帧中删除非皮肤像素,并二次采样所述输入帧,以获得多个修改的帧,其中所述在线模块包括特征提取单元,用于标识所述多个修改的帧中的多个区块。
16.如权利要求15所述的设备,其特征在于,所述特征提取单元包括:
确定Hessian迹函数的迹逻辑;
卷积逻辑,用于,对于修改的帧中的每一个像素,在所述Hessian迹函数和与所述修改的帧中的所述像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数;
缩放逻辑,用于对于多个方差参数值,调用所述卷积逻辑,以获得所述修改的帧中的所述像素的多个卷积分数;以及
选择逻辑,用于标识对应于所述多个卷积分数中的最高分的区块。
17.如权利要求16所述的设备,其特征在于,所述卷积逻辑使用9x9卷积盒来执行所述卷积。
18.如权利要求16所述的设备,其特征在于,所述一组非相邻像素具有最近的整数到所述Hessian迹函数的所述方差参数的四分之三的间隔。
19.如权利要求16所述的设备,其特征在于,所述多个方差参数值中的一个或多个方差参数值是前面的方差参数值的四分之一增量。
20.如权利要求16所述的设备,其特征在于,所述卷积逻辑使用一个或多个单指令多数据(SIMD)命令以及SIMD卷积方法来执行所述卷积。
21.如权利要求15所述的设备,其特征在于,所述在线模块进一步包括姿势单元,用于将与所述多个区块相关联的一个或多个姿势与存储在库中的一个或多个姿势匹配。
22.如权利要求21所述的设备,其特征在于,所述姿势单元包括:
将所述多个区块分组为多个集群的集群逻辑;
基于所述多个集群,形成密度图的描述符逻辑;以及
使用所述密度图来标识所述一个或多个姿势的匹配逻辑。
23.如权利要求22所述的设备,其特征在于,所述集群逻辑根据区块大小,对所述多个区块进行加权,其中所述多个集群是k-均值集群。
24.如权利要求22所述的设备,其特征在于,所述集群逻辑使用目标函数来标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。
25.如权利要求22所述的设备,其特征在于,所述描述符逻辑相对于集群半径,归一化一个或多个区块,基于所述密度图的大小,放大一个或多个所述区块,并归一化所述密度图以获得字节网格。
26.如权利要求22所述的设备,其特征在于,所述匹配逻辑执行一个或多个距离计算操作,来标识所述一个或多个姿势。
27.如权利要求21所述的设备,其特征在于,所述在线模块进一步包括临时的识别单元,用于对于所述一个或多个姿势,标识多个观察轨迹,同时维持所述多个观察轨迹的分数,并使用所述分数来执行所述一个或多个基于区块的手势判断。
28.如权利要求27所述的设备,其特征在于,所述临时的识别单元包括:
标识一组有效变换的规范逻辑;
适应性逻辑,用于标识训练数据中的多个观察序列,并删除不适应所述一组有效变换的一个或多个观察序列;
隐马尔可夫模型(HMM)初始化逻辑,用于标识与适应的观察序列相关联的值的一个或多个集群,取值的所述一个或多个集群的笛卡尔乘积,并使用所述笛卡尔乘积来定义多个HMM状态;以及
维特比逻辑,用于基于所述多个HMM状态,确定所述多个观察轨迹的所述分数,其中所述基于区块的手势判断基于所述分数的下降,区别正在进行的轨迹、已删除的轨迹以及已完成的轨迹。
29.一种识别手势的方法,包括:
确定视频信号中的多个像素的皮肤色调分布;以及
使用所述皮肤色调分布来对于所述视频信号进行一个或多个基于区块的手势判断。
30.如权利要求29所述的方法,其特征在于,所述视频信号将包括二维(2D)图像数据。
31.如权利要求29所述的方法,其特征在于,所述皮肤色调分布具有大于所述基于区块的手势判断的执行时间预算的执行时间预算。
32.如权利要求29到31中任一权利要求所述的方法,进一步包括:
接收与所述视频信号的帧相关联的彩色图像;以及
对于多个通道中的每一个,对所述彩色图像执行边缘分析。
33.如权利要求32所述的方法,进一步包括:
对于所述多个通道中的每一个通道,确定一组高斯导数;
在所述一组高斯导数和所述彩色图像中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度;以及
使用低阈值和高阈值来判断每一梯度幅度以及相关联的梯度角度是否对应于边缘,其中所述低阈值和所述高阈值是通道特定的。
34.如权利要求33所述的方法,进一步包括:
对于所述多个通道中的每一个通道,构建梯度幅度的直方图;以及
基于所述直方图,确定所述低阈值以及所述高阈值。
35.如权利要求33所述的方法,进一步包括:
标识一个或多个边缘像素;以及
判断所述一个或多个边缘像素周围的像素的邻近区域是否包括额外的边缘像素,其中所述像素的邻近区域包括与所述一个或多个边缘像素非相邻的一个或多个像素。
36.如权利要求33所述的方法,其特征在于,进一步包括将所述一组高斯导数的方差参数设置为大于1的值。
37.如权利要求32所述的方法,进一步包括:
标识与所述边缘分析相关联的边缘图;以及
反复传播所述边缘图中的像素之间的最近邻信息,以获得距离图。
38.如权利要求37所述的方法,进一步包括:
将所述边缘图中的边缘像素初始化为它们自己的最近的边缘并具有零边缘距离;
将所述已初始化的边缘像素添加到第一队列中;
将所述第一队列指定为活跃的队列;
将所述边缘图中的非边缘像素初始化为具有未知的最近的边缘和无穷大的边缘距离;
将第二队列指定为非活跃队列;
对于所述活跃队列中的每一个像素,作出关于相邻像素和所述活跃的队列中的所述像素的最近的边缘之间的第一距离是否小于或等于所述相邻像素和所述相邻像素的当前最近的边缘之间的第二距离的距离判断;
如果所述第一距离小于或等于所述第二距离,则将所述活跃的队列中的所述像素的状态转移到所述相邻像素的状态;
在所述相邻像素的所述状态将所述第二距离替换为所述第一距离;
从所述活跃的队列中删除所述活跃的队列中的所述像素;
如果所述第一距离小于等于所述第二距离,则将所述相邻像素添加到所述非活跃队列中;
对于所述活跃的队列中的所述像素的每一个相邻像素,执行所述距离判断、所述状态的所述转移以及所述相邻像素的所述添加的第一重复;
将所述第一队列第一指定为所述非活跃队列;
将所述第二队列第二指定为所述活跃队列;以及
执行所述第一重复、所述第一指定以及所述第二指定的随后的重复,直到所述活跃的队列是空的。
39.如权利要求37所述的方法,进一步包括基于所述边缘图和所述距离图,标识包围所述彩色图像中的多个指尖的一组轮廓线像素。
40.如权利要求39所述的方法,进一步包括:
使用一组手指段曲线来标识对应于所述多个指尖的多个本地边缘距离最小值,其中所述多个指尖包括食指指尖、中指指尖、无名指指尖或小指指尖中的一个或多个;以及
使用所述一组手指段曲线来标识与每一本地边缘距离最小值以及与所述多个指尖中的每一个相关联的轮廓线像素的四个全局边缘距离最小值。
41.如权利要求40所述的方法,其特征在于,所述一组手指段曲线包括两个线段以及两个椭圆段的串联。
42.如权利要求39所述的方法,其特征在于,基于所述一组轮廓线像素内的像素的颜色值,确定所述皮肤色调分布。
43.如权利要求29到31中任一权利要求所述的方法,进一步包括:
基于所述皮肤色调分布,从与所述视频信号相关联的输入帧中删除非皮肤像素;
二次采样所述输入帧,以获得多个修改的帧;以及
标识所述多个修改的帧中的多个区块。
44.如权利要求43所述的方法,进一步包括:
确定Hessian迹函数;
对于修改的帧中的每一个像素,在所述Hessian迹函数和与所述修改的帧中的所述像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数;
对于多个方差参数值,调用所述卷积,以获得所述修改的帧中的所述像素的多个卷积分数;以及
标识对应于所述多个卷积分数中的最高分数的区块。
45.如权利要求44所述的方法,进一步包括使用9x9卷积盒来执行所述卷积。
46.如权利要求44所述的方法,其特征在于,所述一组非相邻像素具有最近的整数到所述Hessian迹函数的所述方差参数的四分之三的间隔。
47.如权利要求44所述的方法,其特征在于,所述多个方差参数值中的一个或多个方差参数值是前面的方差参数值的四分之一增量。
48.如权利要求44所述的方法,进一步包括使用一个或多个单指令多数据(SIMD)命令以及SIMD卷积方法来执行所述卷积。
49.如权利要求43所述的方法,进一步包括将与所述多个区块相关联的一个或多个姿势与存储在库中的一个或多个手势匹配。
50.如权利要求49所述的方法,进一步包括:
将所述多个区块分组为多个集群;
基于所述多个集群,形成密度图;以及
使用所述密度图来标识所述一个或多个姿势。
51.如权利要求50所述的方法,进一步包括,根据区块大小,对所述多个区块进行加权,其中所述多个集群将是k-均值集群。
52.如权利要求50所述的方法,进一步包括使用目标函数来标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。
53.如权利要求50所述的方法,进一步包括:
相对于集群半径,归一化一个或多个所述区块;
基于所述密度图的大小,放大一个或多个所述区块;以及
归一化所述密度图,以获得字节网格。
54.如权利要求50所述的方法,进一步包括执行一个或多个距离计算操作,来标识所述一个或多个姿势。
55.如权利要求49所述的方法,进一步包括:
标识所述一个或多个姿势的多个观察轨迹;
同时维持所述多个观察轨迹的分数;以及
使用所述分数来执行所述一个或多个基于区块的手势判断。
56.如权利要求55所述的方法,进一步包括:
标识一组有效变换;
标识训练数据中的多个观察序列;
删除不适应所述一组有效变换的一个或多个观察序列;
标识与适应的观察序列相关联的值的一个或多个集群;
取值的所述一个或多个集群的笛卡尔乘积;
使用所述笛卡尔乘积来定义多个隐马尔可夫模型(HMM)状态;以及
基于所述多个HMM状态,确定所述多个观察轨迹的所述分数,其中所述基于区块的手势判断将基于所述分数的下降,区别正在进行的轨迹、已删除的轨迹以及已完成的轨迹。
57.包含一组指令的至少一个计算机可读存储介质,所述指令在由计算设备执行时,导致所述计算设备:
确定视频信号中的多个像素的皮肤色调分布;以及
使用所述皮肤色调分布来对于所述视频信号进行一个或多个基于区块的手势判断。
58.如权利要求57所述的至少一个计算机可读存储介质,其特征在于,所述视频信号包括二维(2D)图像数据。
59.如权利要求57所述的至少一个计算机可读存储介质,其特征在于,所述皮肤色调分布具有大于所述基于区块的手势判断的执行时间预算的执行时间预算。
60.如权利要求57到59中任一权利要求所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
接收与所述视频信号的帧相关联的彩色图像;以及
对于多个通道中的每一个,对所述彩色图像执行边缘分析。
61.如权利要求60所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
对于所述多个通道中的每一个通道,确定一组高斯导数;
在所述一组高斯导数和所述彩色图像中的每一个像素之间执行卷积,以每个通道地为所述彩色图像中的每一个像素获得梯度幅度和梯度角度;以及
使用低阈值和高阈值来判断每一梯度幅度以及相关联的梯度角度是否对应于边缘,其中所述低阈值和所述高阈值是通道特定的。
62.如权利要求61所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
对于所述多个通道中的每一个通道,构建梯度幅度的直方图;以及
基于所述直方图,确定所述低阈值以及所述高阈值。
63.如权利要求61所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
标识一个或多个边缘像素;以及
判断所述一个或多个边缘像素周围的像素的邻近区域是否包括额外的边缘像素,其中所述像素的邻近区域包括与所述一个或多个边缘像素非相邻的一个或多个像素。
64.如权利要求61所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备将所述一组高斯导数的方差参数设置为大于1的值。
65.如权利要求60所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
标识与所述边缘分析相关联的边缘图;以及
反复传播所述边缘图中的像素之间的最近邻信息,以获得距离图。
66.如权利要求65所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
将所述边缘图中的边缘像素初始化为它们自己的最近的边缘并具有零边缘距离;
将所述已初始化的边缘像素添加到第一队列中;
将所述第一队列指定为活跃的队列;
对于所述活跃队列中的每一个像素,作出关于相邻像素和所述活跃的队列中的所述像素的最近的边缘之间的第一距离是否小于或等于所述相邻像素和所述相邻像素的当前最近的边缘之间的第二距离的距离判断;
如果所述第一距离小于或等于所述第二距离,则将所述活跃的队列中的所述像素的状态转移到所述相邻像素的状态;
在所述相邻像素的所述状态将所述第二距离替换为所述第一距离;
从所述活跃的队列中删除所述活跃的队列中的所述像素;
如果所述第一距离小于或等于所述第二距离,则将所述相邻像素添加到所述非活跃队列中;
对于所述活跃的队列中的所述像素的每一个相邻像素,执行所述距离判断、所述状态的所述转移以及所述相邻像素的所述添加的第一重复;
将所述第一队列第一指定为所述非活跃队列;
将所述第二队列第二指定为所述活跃队列;以及
执行所述第一重复、所述第一指定以及所述第二指定的随后的重复,直到所述活跃的队列是空的。
67.如权利要求65所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备基于所述边缘图和所述距离图,标识包围所述彩色图像中的多个指尖的一组轮廓线像素。
68.如权利要求67所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
使用一组手指段曲线来标识对应于所述多个指尖的多个本地边缘距离最小值,其中所述多个指尖将包括食指指尖、中指指尖、无名指指尖,或小指指尖中的一个或多个;以及
使用所述一组手指段曲线来标识与每一本地边缘距离最小值以及与所述多个指尖中的每一个相关联的轮廓线像素的四个全局边缘距离最小值。
69.如权利要求68所述的至少一个计算机可读存储介质,其特征在于,所述一组手指段曲线包括两个线段以及两个椭圆段的串联。
70.如权利要求67所述的至少一个计算机可读存储介质,其特征在于,将基于所述一组轮廓线像素内的像素的颜色值,确定所述皮肤色调分布。
71.如权利要求57到59中任一权利要求所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
基于所述皮肤色调分布,从与所述视频信号相关联的输入帧中删除非皮肤像素;
二次采样所述输入帧,以获得多个修改的帧;以及
标识所述多个修改的帧中的多个区块。
72.如权利要求71所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算机:
确定Hessian迹函数;
对于修改的帧中的每一个像素,在所述Hessian迹函数和与所述修改的帧中的所述像素相关联的一组非相邻像素之间执行卷积,以获得卷积分数;
对于多个方差参数值,调用所述卷积,以获得所述修改的帧中的所述像素的多个卷积分数;以及
标识对应于所述多个卷积分数中的最高分的区块。
73.如权利要求72所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备使用9x9卷积盒来执行所述卷积。
74.如权利要求72所述的至少一个计算机可读存储介质,其特征在于,所述一组非相邻像素具有最近的整数到所述Hessian迹函数的所述方差参数的四分之三的间隔。
75.如权利要求72所述的至少一个计算机可读存储介质,其特征在于,所述多个方差参数值中的一个或多个方差参数值将是前面的方差参数值的四分之一增量。
76.如权利要求72所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备使用一个或多个单指令多数据(SIMD)命令以及SIMD卷积方法来执行所述卷积。
77.如权利要求71所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备将与所述多个区块相关联的一个或多个手势与存储在库中的一个或多个手势匹配。
78.如权利要求77所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
将所述多个区块分组为多个集群;
基于所述多个集群,形成密度图;以及
使用所述密度图来标识所述一个或多个姿势。
79.如权利要求78所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备根据区块大小来加权所述多个区块,其中所述多个集群是k-均值集群。
80.如权利要求78所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,则导致计算设备使用目标函数来标识满足紧凑性条件、不相交性条件或大小阈值条件中的一个或多个的集群。
81.如权利要求78所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
相对于集群半径,归一化一个或多个所述区块;
基于所述密度图的大小,放大一个或多个所述块;以及
归一化所述密度图,以获得字节网格。
82.如权利要求78所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备执行一个或多个距离计算操作,来标识所述一个或多个姿势。
83.如权利要求77所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
标识所述一个或多个姿势的多个观察轨迹;
同时维持所述多个观察轨迹的分数;以及
使用所述分数来执行所述一个或多个基于区块的手势判断。
84.如权利要求83所述的至少一个计算机可读存储介质,其特征在于,所述指令,如果被执行,导致计算设备:
标识一组有效变换;
标识训练数据中的多个观察序列;
删除不适应所述一组有效变换的一个或多个观察序列;
标识与适应的观察序列相关联的值的一个或多个集群;
取值的所述一个或多个集群的笛卡尔乘积;
使用所述笛卡尔乘积来定义多个隐马尔可夫模型(HMM)状态;以及
基于所述多个HMM状态,确定所述多个观察轨迹的所述分数,其中所述基于区块的手势判断基于所述分数的下降,区别正在进行的轨迹、已删除的轨迹以及已完成的轨迹。
CN201380076474.8A 2013-06-10 2013-06-10 使用2d图像数据来执行手势识别 Active CN105210115B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/044885 WO2014200454A1 (en) 2013-06-10 2013-06-10 Performing hand gesture recognition using 2d image data

Publications (2)

Publication Number Publication Date
CN105210115A true CN105210115A (zh) 2015-12-30
CN105210115B CN105210115B (zh) 2020-10-30

Family

ID=52022595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076474.8A Active CN105210115B (zh) 2013-06-10 2013-06-10 使用2d图像数据来执行手势识别

Country Status (3)

Country Link
US (1) US9390320B2 (zh)
CN (1) CN105210115B (zh)
WO (1) WO2014200454A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280489A (zh) * 2018-02-12 2018-07-13 中国银行股份有限公司 一种样本数据生成方法及装置
CN108882172A (zh) * 2018-06-22 2018-11-23 电子科技大学 一种基于hmm模型的室内移动轨迹数据的预测方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488662B1 (ko) * 2014-07-31 2015-02-04 스타십벤딩머신 주식회사 Nui 장치를 통하여 사용자와 상호작용하는 인터페이스 제공방법 및 제공장치
JP6606181B2 (ja) * 2014-11-06 2019-11-13 ジェンテックス コーポレイション 視程検出のためのシステムおよび方法
US9575566B2 (en) 2014-12-15 2017-02-21 Intel Corporation Technologies for robust two-dimensional gesture recognition
US9547881B2 (en) * 2015-01-29 2017-01-17 Qualcomm Incorporated Systems and methods for calculating a feature descriptor
US9536136B2 (en) 2015-03-24 2017-01-03 Intel Corporation Multi-layer skin detection and fused hand pose matching
US9558389B2 (en) 2015-03-24 2017-01-31 Intel Corporation Reliable fingertip and palm detection
US10599920B2 (en) 2017-02-01 2020-03-24 Epilog Imaging Systems Automated digital magnifier system with hand gesture controls
CN107678551B (zh) * 2017-10-19 2021-12-28 京东方科技集团股份有限公司 手势识别方法和装置、电子设备
CN108038452B (zh) * 2017-12-15 2020-11-03 厦门瑞为信息技术有限公司 一种基于局部图像增强的家电手势快速检测识别方法
US10877568B2 (en) * 2018-12-19 2020-12-29 Arizona Board Of Regents On Behalf Of Arizona State University Three-dimensional in-the-air finger motion based user login framework for gesture interface
US11418863B2 (en) 2020-06-25 2022-08-16 Damian A Lynch Combination shower rod and entertainment system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0849697A1 (en) * 1996-12-20 1998-06-24 Hitachi Europe Limited A hand gesture recognition system and method
US6094508A (en) * 1997-12-08 2000-07-25 Intel Corporation Perceptual thresholding for gradient-based local edge detection
US20120093360A1 (en) * 2010-10-19 2012-04-19 Anbumani Subramanian Hand gesture recognition
CN102982557A (zh) * 2012-11-06 2013-03-20 桂林电子科技大学 基于深度相机的空间手势姿态指令处理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845007A (en) 1996-01-02 1998-12-01 Cognex Corporation Machine vision method and apparatus for edge-based image histogram analysis
US7095401B2 (en) * 2000-11-02 2006-08-22 Siemens Corporate Research, Inc. System and method for gesture interface
KR101581954B1 (ko) * 2009-06-25 2015-12-31 삼성전자주식회사 실시간으로 피사체의 손을 검출하기 위한 장치 및 방법
US8787663B2 (en) * 2010-03-01 2014-07-22 Primesense Ltd. Tracking body parts by combined color image and depth processing
IL204436A (en) * 2010-03-11 2016-03-31 Deutsche Telekom Ag A system and method for remote control of online TV by waving hands
US8817087B2 (en) * 2010-11-01 2014-08-26 Robert Bosch Gmbh Robust video-based handwriting and gesture recognition for in-car applications
US20140068526A1 (en) * 2012-02-04 2014-03-06 Three Bots Ltd Method and apparatus for user interaction
US8705853B2 (en) * 2012-04-20 2014-04-22 Apple Inc. Detecting skin tone

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0849697A1 (en) * 1996-12-20 1998-06-24 Hitachi Europe Limited A hand gesture recognition system and method
US6094508A (en) * 1997-12-08 2000-07-25 Intel Corporation Perceptual thresholding for gradient-based local edge detection
US20120093360A1 (en) * 2010-10-19 2012-04-19 Anbumani Subramanian Hand gesture recognition
CN102982557A (zh) * 2012-11-06 2013-03-20 桂林电子科技大学 基于深度相机的空间手势姿态指令处理方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
刘荣 等: "一种基于视觉模型的彩色图像边缘检测算法", 《第八届全国信号与信息处理联合学术会议》 *
张树忠 等: "基于Canny理论的彩色图像边缘检测", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
李婷婷: "用于视觉导航的道路检测与跟踪技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
胡耀武 等: "一种有效的彩色边缘检测算法研究", 《浙江理工大学学报》 *
赵小川: "《现代数字图像处理技术提高及应用案例详解(MATLAB 版)》", 30 April 2012, 北京航空航天大学出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280489A (zh) * 2018-02-12 2018-07-13 中国银行股份有限公司 一种样本数据生成方法及装置
CN108882172A (zh) * 2018-06-22 2018-11-23 电子科技大学 一种基于hmm模型的室内移动轨迹数据的预测方法
CN108882172B (zh) * 2018-06-22 2020-10-23 电子科技大学 一种基于hmm模型的室内移动轨迹数据的预测方法

Also Published As

Publication number Publication date
US20150193656A1 (en) 2015-07-09
CN105210115B (zh) 2020-10-30
US9390320B2 (en) 2016-07-12
WO2014200454A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
CN105210115A (zh) 使用2d图像数据来执行手势识别
US11574097B2 (en) Deep learning based identification of difficult to test nodes
Chen et al. Multi-modal fusion network with multi-scale multi-path and cross-modal interactions for RGB-D salient object detection
Wu et al. 3d shapenets: A deep representation for volumetric shapes
US20200151288A1 (en) Deep Learning Testability Analysis with Graph Convolutional Networks
CN105912990A (zh) 人脸检测的方法及装置
JP7037478B2 (ja) 分類のための強制的なスパース性
CN109559300A (zh) 图像处理方法、电子设备及计算机可读存储介质
CN111414953B (zh) 点云分类方法和装置
CN111723786A (zh) 一种基于单模型预测的安全帽佩戴检测方法及装置
Kandhway et al. Spatial context cross entropy function based multilevel image segmentation using multi-verse optimizer
Song et al. Learning hybrid semantic affinity for point cloud segmentation
WO2019108371A1 (en) Training neural networks to detect similar three-dimensional objects using fuzzy identification
CN104995664A (zh) 实时的连续交互学习及检测
Sane et al. A survey of seed placement and streamline selection techniques
Thomas et al. Detecting symmetry in scalar fields using augmented extremum graphs
CN110490203A (zh) 图像分割方法及装置、电子设备和计算机可读存储介质
KR102152120B1 (ko) 기계학습 모델을 이용하여 n개의 프레임에 기초하여 대상의 감정인식을 수행하는 감정인식 시스템, 방법, 및 컴퓨터-판독가능매체
Li et al. A PCB electronic components detection network design based on effective receptive field size and anchor size matching
Liu et al. Refinedbox: Refining for fewer and high-quality object proposals
Li et al. Findnet: Can you find me? boundary-and-texture enhancement network for camouflaged object detection
Sheremet et al. Diagnosis of lung disease based on medical images using artificial neural networks
Wang et al. Explainable multitask Shapley explanation networks for real-time polyp diagnosis in videos
Luo et al. Skp: Semantic 3d keypoint detection for category-level robotic manipulation
Tripathi et al. Explainable Machine Learning Models and Architectures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant