多层皮肤检测和融合手势匹配的制作方法

文档序号:13080337阅读:168来源:国知局
多层皮肤检测和融合手势匹配的制作方法与工艺

优先权申请

本申请要求2015年3月24日提交的美国申请序列号14/667,340的优先权权益,所述美国申请通过引用以其文结合在此。



背景技术:

用于手势识别和手势检测的基于图像的解决方案逐年变得更加复杂。当前解决方案包括使用全局颜色模型来检测皮肤。这种解决方案的问题可能包括较高错误率。用于检测手势的其他解决方案使用经训练的回归模型。经训练的回归模型的缺点是耗费大量资源、需要时间或难以训练模型。仍其他方式包括使用皮肤信息来直接检测手势。这种方式可能不对所有肤色有效并且可能需要大量资源或时间。



技术实现要素:

本文中所描述的这种系统包括用于基于(但不限于)单个二维相机来增强手势识别系统的质量的一组技术。技术可以包括与改进的背景减除技术相组合的新颖皮肤检测方法,所述背景减除技术有助于比现有技术更准确地检测图像中的皮肤区域。第二,改进的聚类(clustering)技术有助于将皮肤区域彼此分离,由此将手掌的皮肤像素与其他皮肤像素(比如,脸部或人体躯干的皮肤像素)隔离。第三,融合姿势匹配技术采用两种不同的技术(所述技术为基于区域的匹配(例如,使用k最近邻(knn))和基于轮廓的匹配(例如,使用支持向量机(svm)))以便使皮肤簇与手势相关联,由此提高检测率并将假阳性率减小至几乎为零。在许多环境中,本文中所使用的技术导致更好的手跟踪质量和识别率。系统可以跟踪和检测的姿势的数量是可配置的。当对执行本文中所描述的技术的指令进行运行时,改进了计算机系统的运行。改进的运行包括增大处理速度、减少资源使用以及以下详述的其他改进。

在示例中,用户可以在开始系统操作之前向系统注册。用户注册是姿势匹配过程,其中,用户举起他的/她的手,并且皮肤像素被标识。这些皮肤像素被用作种子值以便计算多个肤色模型。这些颜色模型进一步由皮肤检测技术在在线实时模式下使用。在示例中,相机可以保持静态或半静态。例如,可以忍受细小移动,但是广泛的摇拍或变焦可能是非期望的。背景减除技术可以进一步删减可能与皮肤混淆的背景像素。本文中所描述的技术具有跟踪图像中的任何位置中的手(不论所示出的手势如何)并且还在不采用特定于被检测姿势的启发式技术的情况下检测更宽姿势集合的能力。

在示例中,以下描述的技术可以展现出非常小的假阳性率。对于整体系统可靠性来说,这很重要。这主要是由于对基于姿势的不同方面来执行分类的两种不同的姿势匹配技术的融合。这些方面是姿势中的皮肤像素的覆盖区域和姿势的轮廓。由于这些原因,系统很少对背景和其他手势移动作出错误反应。这些技术的另一个优点是,它们允许检测宽得多的姿势集合。可能在不对每个姿势使用定制启发法的情况下发生这种情况。在与取决于3d数据的可用性的其他解决方案进行比较时,可以避免源自使用3d相机的潜在功率问题。

附图说明

在不一定按比例绘制的附图中,相同标号可以描述不同视图中的类似部件。具有不同字母后缀的相同标号可以表示类似部件的不同实例。附图总体上通过示例的方式而不是通过限制的方式展示了本文档中所讨论的各个实施例。

图1总体上展示了流程图,所述流程图示出了根据一些实施例的用于皮肤检测的技术。

图2总体上展示了简图,所述简图示出了根据一些实施例的所检测到的皮肤像素。

图3总体上展示了流程图,所述流程图示出了根据一些实施例的用于颜色模型更新的技术。

图4a总体上展示了流程图,所述流程图示出了根据一些实施例的用于皮肤过滤的技术。

图4b总体上展示了根据一些实施例的与图4a中的技术中的操作相对应的颜色椭圆表示。

图5a至图5j总体上展示了简图,所述简图示出了根据一些实施例的肤色建模。

图6总体上展示了流程图,所述流程图示出了根据一些实施例的用于通过持久性存储器进行背景减除的技术。

图7总体上展示了简图,所述简图示出了根据一些实施例的皮肤检测的渐进示例。

图8总体上展示了流程图,所述流程图示出了根据一些实施例的用于姿势匹配的技术。

图9总体上展示了简图,所述简图示出了根据一些实施例的斑点特征状态表示。

图10总体上展示了简图,所述简图示出了根据一些实施例的特征簇状态表示。

图11和图12总体上展示了流程图,所述流程图示出了根据一些实施例的用于特征聚类的技术。

图13总体上展示了根据一些实施例的用于比特网格和散列流生成以便进行基于区域的匹配的系统。

图14a至图14d总体上展示了简图,所述简图示出了根据一些实施例的斑点网格生成以便进行基于区域的匹配。

图15总体上展示了根据一些实施例的用于基于轮廓的匹配的技术的简图。

图16a和图16b总体上展示了简图,所述简图示出了根据一些实施例的用于基于轮廓的匹配的操作的结果。

图17总体上展示了流程图,所述流程图示出了根据一些实施例的用于融合姿势匹配的技术。

图18总体上展示了简图,所述简图示出了根据一些实施例的用于检测手势的操作的结果。

图19总体上展示了流程图,所述流程图示出了根据一些实施例的用于皮肤检测和融合手势匹配的技术。

图20总体上展示了示意图,所述示意图示出了根据一些实施例的皮肤检测和融合手势匹配系统。

图21总体上展示了根据一些实施例的机器的框图的示例,可以在所述机器上执行本文中所讨论的技术(例如,方法)中的任何一项或多项。

具体实施方式

皮肤检测可以基于许多设计原则。一个原则是,通过同时使用多个亮度不变的颜色模型来实现成功的皮肤过滤,其中,颜色模型由单独的基于弱颜色的分类器使用。通过将许多弱颜色分类器堆在一起,可以设计更好地逼近理想皮肤检测器的性能的更强颜色分类器。通过使用亮度不变的颜色模型,可以允许对光变化的某个容忍程度,同时仍移除尽可能多的背景像素。

引导皮肤检测器设计的第二原则可以包括:周期性地从匹配姿势的皮肤像素中的之前模型中计算或更新的颜色模型。这种方式可能更简单、更可靠并且不像其他选项那样限制。因为相比于通常在逐帧的基础上发生的直方图反向投影或动态运动模型更新,这种方式可能较不频繁地(例如,在秒或分时间尺度内)发生,所以这种方式可能在计算上更简单。在另一个示例中,因为周期性地确定颜色模型可以使用来自经标识的姿势的与通过反向投影的直方图来确定的像素相反的所有皮肤像素,所以其可能比直方图反向投影更可靠。在又另一个示例中,因为动态运动建模可能基于关于肤色变化的假设(所述假设可能不真实),所以其可能不像将动态运动模型用于肤色分布那样限制或在数学上复杂。

皮肤检测器设计的第三原则可以包括:将皮肤检测与背景减除算法组合以便进一步移除一些背景像素。以此方式来移除的背景像素是展示了与皮肤的‘真实’颜色重叠的背景像素,比如,与皮肤像素具有完全相同的红色绿色蓝色(rgb)值的背景像素。在示例中,背景减除算法分别使用高斯混合模型来对每个像素的rgb分布进行建模。这种rgb分布可以随着时间习得。像素的rgb值的快速变化指示移动并且因此有助于将像素分类为前景。在某个限制范围之内不断发生观察到的rgb值变化的像素被分类为背景。在示例中,可以添加持久性存储器机构,所述持久性存储器机构可能允许回顾像素的背景状态(即使这种像素被移动对象阻挡)。例如,即使前景中的移动暂时覆盖背景像素,也可能在不采用背景学习的情况下发生这种移动。

在示例中,可以使用聚类算法来将来自皮肤像素的特征聚集到一起。斑点特征可以包括手势上类似高斯内核的可视结构。出于许多原因,将斑点特征(而不是像素)用于描述符生成和姿势匹配可能是优选的。第一,斑点特征在数量上少于像素,并且可以更快速地对它们进行处理。第二,相比于像素,斑点特征可以用于更可靠地重构手剪影,从而补偿姿势中的皮肤孔或缺失像素。第三,斑点特征可以用于标识和删减主要由与皮肤的背景冲突产生的弱簇。

聚类可能有助于分别对来自分开的不透明区域的皮肤像素的特征进行分组。这种分离有助于将手的特征与脸部或其他皮肤区域的特征分离并且有助于生成描述符以便进行手势匹配。在通过单独的阶段来限定簇数量k和初始簇质心的情况下,可以使用鲁棒k均值变体。在示例中,来自皮肤检测阶段的皮肤掩模可能经受许多形态学运算和连通域标记过程。所产生的连通域的数量是最优k,并且连通域的质心是k均值算法的起始质心。在另一个示例中,贪婪层级聚类阶段可以确定满足接近度标准的邻近斑点特征孤岛。所产生的孤岛的数量是最优k,并且孤岛质心是k均值算法的起始质心。

在确定特征簇之后,可以对簇进行进一步处理以便进行描述符生成和姿势匹配。在示例中,两种不同的姿势匹配技术可以独立地运行以便使将假阳性检测为手势的概率最小化。这两种姿势匹配技术中的第一种姿势匹配技术基于从皮肤掩模和簇的斑点特征中生成比特网格描述符以及然后将这些描述符与存储在数据库中的许多不同手势的多个预先生成的描述符进行比较。在示例中,使用汉明距离度量和k最近邻(knn)技术来执行比较。在此示例中,这种姿势匹配技术可以被称为基于区域的匹配。这两种姿势匹配技术中的第二种姿势匹配技术可以包括从簇区域的轮廓中生成傅里叶描述符以及然后在经训练的支持向量机(svm)的帮助下将这些描述符分类为与手势相关联。在另一个示例中,这种姿势匹配技术可以被称为基于轮廓的匹配。使用投票方案来将基于区域的匹配和基于轮廓的匹配的结果融合到一起。

在示例中,可以使用多个椭圆区域来近似估计颜色模型的皮肤轨迹,其中,皮肤轨迹可以包括颜色空间中与皮肤区域相关联的点。因为检测点是否处于椭圆区域之内的代价并不非常高,所以基于多个椭圆区域的颜色轨迹可能比单个椭圆更准确并且比使用任意形状来描述的轨迹更有效。

在示例中,为了便于观看(例如,白场上的黑点),可以颠倒各个图中的各个简图。具体地,为了便于观看,可以颠倒或变更来自图2、图5a至图5d、图7、图14a至图14d、图15、图16a、图16b和图18的简图200、500a至500k、700、1400a至1400d、1500、1600a、1600b和1800的方面。

图1总体上展示了流程图,所述流程图示出了根据一些实施例的用于皮肤检测的技术100。技术100可以包括从图像中确定作为皮肤像素的像素并且从图像中确定不是皮肤像素的像素。例如,图像的输入帧102可能经受多层皮肤过滤器104以便将皮肤像素与背景像素分离。多层皮肤过滤器104无法在作为皮肤的一部分的像素与具有与皮肤像素完全相同的颜色的背景像素之间进行区分。为了解决这个问题,技术100包括通过持久性存储器108实施背景减除,所述背景减除可以进一步将前景中的皮肤像素与静态背景中的像素分离。通过持久性存储器108进行的背景减除可以使用静态相机。技术100可以包括在操作110处继续姿势匹配技术,以下关于图8而进一步描述了姿势匹配技术。在示例中,技术100可以包括首先使用多层皮肤过滤器104以及其次通过持久性存储器108进行背景减除。在另一个示例中,可以颠倒顺序。

在示例中,理想皮肤过滤器可以包括成功地标识图像中的所有皮肤像素。通过理想皮肤过滤器未移除的像素可以包括背景中具有与皮肤像素完全相同的rgb颜色值的那些像素。具有与皮肤像素完全相同的rgb颜色值的背景像素可以被称为真实颜色重叠。在图2中示出了真实颜色重叠的示例。图2总体上展示了简图200a至200d,所述简图示出了根据一些实施例的所检测到的皮肤像素。在许多图像中,真实颜色重叠很少并且通常是孤立的(如简图200d所示出的),或者可能邻近如简图200a中的手。经由标识和删减小皮肤簇的机构,可以容易地将这种颜色重叠与更大的不透明皮肤区域区分。在一些情况下,如简图200b和200c所示出的,真实颜色重叠可能很大,从而在背景中形成有可能干扰姿势匹配过程的不透明区域。

可以使用除了过滤器之外对颜色信息进行操作的进一步分割机构来辅助对视频帧中的真实颜色重叠进行过滤。使用滤色器和将颜色和运动信息组合的过滤器可以包括更强的手分割系统,所述手分隔系统可以隔离手和其他皮肤区域,同时移除真实颜色重叠。以下描述了解决真实颜色重叠的存在的多层皮肤过滤器和背景减除系统的细节。

图3总体上展示了流程图,所述流程图示出了根据一些实施例的用于颜色模型更新的技术300。在示例中,多层皮肤过滤器将使用周期性地从种子值中计算的多个针对皮肤的颜色模型。在示例中,可以使用参数化皮肤检测。例如,可以从作为皮肤像素的种子值中计算肤色模型。

周期性颜色模型更新过程可以包括计算可以成功预测用户的皮肤在有限时间段内的色度性质的肤色分布。颜色模型更新过程可以允许在不中断皮肤检测的质量的情况下发生快速亮度变化(例如,将手移动进出暗区)。为了处理皮肤色度的长期变化,系统可以周期性地重新计算针对皮肤的颜色模型。所使用的周期可以为大约几秒到几分钟。为了有效地处理快速亮度变化,系统使用亮度不变的颜色模型。在将色度分量与亮度分量分离的颜色空间中限定亮度不变的颜色模型。示例包括‘色调-饱和度-值’(hsv)颜色空间和‘y亮度-红色色度-蓝色色度’(ycrcb)空间。hsv允许从颜色描述符中排除值(v)分量。类似地,ycrcb允许从颜色描述符中排除y亮度分量。

在示例中,在用户注册阶段期间,姿势匹配过程可以标识手势301并且从此手势中提取皮肤像素。这些皮肤像素可以被称为种子值(例如,种子值提取302)。这可以是一次性操作,其允许所述技术将用于进行皮肤检测的颜色模型初始化或者可以重复所述操作。所提取的种子值可能经受颜色空间转换304,并且所产生的值可以用于计算多个颜色模型306。这些颜色模型可能对当前时间段有效。以此方式来计算的颜色模型用于皮肤检测操作308,所述皮肤检测操作有助于执行基于颜色的手跟踪(例如,周期性手势选择312)和手势匹配310。在所述时期结束时,所选手势或手簇用于下一个种子值提取操作。以此方式来提取的种子值进一步用于更新所述技术的颜色模型。所计算的新模型可以在下一个时间段内代替之前的模型。进一步重复所述过程。在种子值提取302期间,可以排除所检测到的姿势的轮廓周围的一些像素被用作种子。例如,可以排除所述像素被用作种子以便补偿对手势轮廓的检测中的某个可能错误。

在示例中,使用期望最大化(em)技术来执行颜色模型计算。在另一个示例中,可以使用如在线k均值聚类等替代性方法。期望最大化将概率密度函数建模为高斯函数线性组合(被称为高斯混合)。这种模型可以被称为高斯混合模型(gmm)。对于输入值(例如,种子)集合,em计算混合参数,所述混合参数导致将这些种子值的可能性最大化的密度函数。在方程1中示出了em使用的概率密度函数。

方程1

其中,是维度d的输入向量,并且θ是所述技术使用的高斯混合模型。例如,如果使用了色度-饱和度(hs)或红色色度-蓝色色度(crcb)颜色空间,则d=2。高斯混合模型θ进一步包括许多高斯混合g,其中,第i个高斯混合与gmm系数ci、均值向量和协方差矩阵∑i相关联。gmm系数ci、均值向量和协方差矩阵∑i(1≤i≤g)是模型θ的参数。

em技术可以对高斯混合模型的参数作出初始猜测。em的收敛速度取决于初始猜测有多好。一旦作出初始猜测,所述技术就将种子值考虑在内而更新模型的参数。第一,将第i个gmm系数更新为值所述值是由方程1的密度表征的事件由于第i个混合为真而为真的概率。此概率是种子值的平均值:

方程2

第二,将第i个混合的均值向量更新为值所述值等于由方程1的密度表征的系统的平均输出值,其中,仅第i个混合为真。所述均值取自种子值

方程3

接下来,将第i个混合的协方差矩阵更新为值所述值等于由方程1的密度表征的系统的输出的平均协方差矩阵,其中,仅第i个混合为真。协方差矩阵被计算为种子值的平均值:

方程4

如果针对种子值而计算的似然函数的改进小于阈值,则em技术可能结束。为了加速em的收敛,可以使用用于初始化的启发式技术。在示例中,可以从在每个维度下计算的种子值的平均和标准偏差参数中限定初始em均值向量和协方差矩阵。这种技术可以指示作为用于指示哪些模型参数是良好猜测(对于em的初始化)的最佳值的种子值的统计性质。

在示例中,对于某个奇数q,混合的数量可以设置为值n=qd。在示例中,q可以等于3并且d可以等于2,并且因此n可以等于9个混合。数量q可以反应来自每个维度的多少值被选择用于构建模型θ的初始均值向量。gmm系数被全部初始化为1/n。θ的初始均值向量是从平均值和标准偏差值(1≤j≤d)中构建的,所述平均值和标准偏差值是从d个维度内的种子值中计算的。在示例中,对于某些指数j和k,p、δσj和由方程5限定:

其中,1≤j≤d,-p≤k≤p

方程5

θ的初始均值向量是采取指数为j的维度中的每个维度下的值的所有可能组合的那些向量,其中,指数k的范围在如方程5中的-p与p之间。因为指数k可以取q个不同的值,所以最多存在与混合一样多的qd个均值向量。

…,

方程6

在示例中,方程5和6可以包括模型θ的从以在每个维度下计算的均值为中心并且与所述均值的区别至多为每个维度的标准偏差的等距值中限定的初始均值向量。在另一个示例中,最大差值可以为每个维度的标准偏差乘以比例因子。

以类似方式从每个维度的标准偏差值中初始化θ的第i个混合的协方差矩阵∑i:

方程7

在另一个示例中,可以使用在线k均值聚类技术来代替em。在线k均值聚类可以对种子值使用更简单的聚类操作来权衡限定高斯分布的效率的准确性。对于种子值,作出种子是否为现有值簇的一部分的决定。这种决定基于种子与簇中心之间的距离。如果种子是簇的一部分,则将种子添加到簇中,并且使用低通过滤机构来更新簇中心和标准差:

方程8

其中,是输入种子值,并且p是低通过滤参数。如果种子不是簇的一部分,则创建种子处于其中心的新簇,并且将标准偏差设置为固定值。所产生的从方程8中计算的簇以及种子值确定了最终模型的高斯混合。所产生的混合与簇一样多。混合的均值向量为簇中心,并且混合的协方差矩阵是从簇的标准偏差参数中确定的。

方程8可能不需要存储与簇相关联的种子值,因此为术语‘在线k均值’。在另一个示例中,在存储簇的种子值的情况下,可以使用这种技术的变体。在这种情况下,可以更准确地将簇的中心计算为存储值的簇的质心。这些包括每次添加的种子值。此外,如相比于使用方程8,对所产生的簇的元素进行的主成分分析可能有助于更好地确定混合的协方差矩阵。

在示例中,在颜色模型更新之间,皮肤色调的色度性质可能不变,但亮度性质可能变化。在示例中,为了预料皮肤亮度的突然改变,可以使用将亮度分量从颜色描述中排除的颜色空间,比如,二维crcb和hs空间。

二维空间(如crcb和hs)可以充当将例如2563=16,777,216个值的大得多的颜色空间映射到具有更小数量的颜色(例如,2562=65536个颜色)的集合上的颜色散列函数。使用这种映射可能引起皮肤与背景之间的颜色冲突。其数量可能远大于帧中存在的真实颜色重叠。为了避免这种颜色冲突,可以应用皮肤过滤器的分层架构。

图4a总体上展示了流程图,所述流程图示出了根据一些实施例的用于皮肤过滤的技术400。技术400可以包括确定或接收在每个层上过滤的输入帧402,其中,每个层可以使用不同的亮度不变的颜色空间。技术400可以包括对于所有i一直到指定数量n,以重复或迭代过程在颜色空间ni中使用颜色模型mi来进行过滤404,包括在颜色空间nn中使用颜色模型mn来进行过滤406。技术400可以包括确定皮肤掩模408。图4b总体上展示了根据一些实施例的与图4a中的技术中的操作相对应的颜色椭圆表示(例如,410和412)。例如,在颜色空间ni中使用颜色模型mi来进行过滤404可以与颜色椭圆表示410相对应,并且在颜色空间nn中使用颜色模型mn来进行过滤406可以与颜色椭圆表示412相对应。多层架构使用的颜色空间可以是独立的,比如,使用crcb和hs。在示例中,独立颜色空间可以包括对在一个颜色空间中的颜色表示的知识排除对同一颜色在另一个空间中的表示的知识。在层中,像素被分类为皮肤像素和非皮肤像素。在示例中,对于将被分类为皮肤的像素,必须通过过滤器的每个层将像素分类为皮肤。相反,如果在所述架构的层中的至少一个层中,像素未被分类为皮肤,则所述像素可能不是皮肤像素。

可以使颜色模型与概率密度函数(比如,以上在方程1中给出的函数)相关联。在示例中,可以通过将皮肤概率高于阈值的那些颜色分类为皮肤来检测皮肤。在逐像素的基础上应用方程1在计算上可能是昂贵的。因为典型皮肤轨迹的形状是任意的,所以使用关于肤色的轨迹的信息可能是不实际的。在示例中,针对皮肤的高斯混合模型可由多个高斯混合组成。

在示例中,可以使模型的高斯混合与单独的椭圆区域相关联。在另一个示例中,可以近似估计颜色模型的具有来自所述模型的高斯混合的所有椭圆区域的并集的皮肤轨迹。因为如果概率密度由单个高斯函数表征,则具有高于阈值的概率的所有点的轨迹是椭圆的内部,所以使用椭圆区域来表示高斯混合是自然选择。另外,因为检查点是否处于椭圆的内部之内可以包括少量的乘法、加法和减法运算,所以其在计算上可能是简单的。这种运算适合于硬件加速。例如,使用如以上所描述的技术等技术可以改善对执行所述技术的指令进行运行的计算机系统的运行。

对例如椭圆的使用可以包括使用颜色空间维度二。如果颜色空间维度高于二,则可以使用椭圆体或椭圆的其他更高维度类似物。在示例中,可以使用对二维颜色空间的使用。在示例中,混合的均值向量可以包括在另一个示例中,混合的逆协方差矩阵1/2·∑-1的元素可以包括:

方程9

对于这些值,可以比如通过使用以下方程10至17的运算来确定与混合相关联的椭圆区域的长短半径ra、rb和旋转以及概率阈值t。在示例中,概率阈值t可以从与混合相关联的gmm系数中导出。

c←-ln(t)

方程10

方程11

方程12

方程13

方程14

方程15

方程16

如果rba1≥rb1,则ra←ra1,rb←rb1

否则,ra←ra2,rb←rb2

方程17

可以作为以上所讨论的周期性颜色模型更新过程的一部分而执行这些计算。在逐帧的基础上执行的皮肤过滤过程可以比如通过使用以下方程18至20的运算来检查输入颜色向量是否处于以[μx:μy]为中心的与半径ra、rb和旋转相关联的椭圆区域之内:

方程18

方程19

方程20

如果d≤0,则[x:y]处于椭圆之内,否则,不处于椭圆之内。

方程21

图5a至图5j总体上展示了简图(例如,502a至502e以及504a至504e),所述简图示出了根据一些实施例的肤色建模。使用椭圆表示,如果在所述架构的每个层中,像素颜色处于至少一个椭圆区域之内,则技术可以将像素分类为皮肤。在简图502a至502e以及504a至504e中示出了使用高斯混合的椭圆表示来在crcb空间中进行过滤的示例。简图502a至502e包括与gmm模型的混合相关联的皮肤轨迹。简图504a至504e分别示出了简图502a至502e的相关联皮肤像素。例如,简图502a至502d示出了混合一至四的crcb轨迹,并且简图504a至504d示出了混合一至四的皮肤像素。在示例中,简图502e示出了所使用的所有混合的crcb轨迹,并且简图504e示出了所有混合的皮肤像素。所有混合的椭圆区域的并集可能导致准确的手分割。例如,简图502e包括简图502a至502d的组合,并且简图504e包括简图504a至504d的组合。在另一个示例中,可以使用少于四个或多于四个crcb轨迹混合或混合的皮肤像素。例如,相比四个混合,五个混合可能导致更准确的手分割,但是可能耗费更长时间;并且相比四个混合,三个混合可能导致更不准确的手分割,但是可以被更快处理。

在另一个示例中,为了实施多层架构,可以将查找表用于层的颜色表示。例如,对于二维空间,表大小可以限制为65,536个条目。条目可以包含指示相应颜色表示是否为皮肤的单个比特。这种技术适用于椭圆区域或任意皮肤轨迹。使用查找表的潜在缺点是,当被多个处理单元并行访问时,查找表可能变成热点。在示例中,相比检查点是否处于椭圆内的逻辑,将查找表复制到软件中可能成本更高。

图6总体上展示了流程图,所述流程图示出了根据一些实施例的用于通过持久性存储器进行背景减除的技术600。在示例中,可以为像素位置选择像素值602,并且可以对存储像素位置的背景混合的持久性存储器库进行搜索604。在示例中,图像中的每个像素位置包括持久性存储器。技术600可以包括判定新像素是否处于背景混合的区域之内606。如果像素处于区域之内(例如,是),则可以将像素分类为背景像素608,并且可以不执行任何进一步处理。如果像素不处于背景混合的区域之内(例如,否),则可以针对像素位置而运行默认背景减除技术610。混合动作可以包括移除持久性存储器库中的混合或代替所述混合。技术600可以包括判定像素是否为背景像素612。如果像素被分类为背景(例如,是),则可以将其相关联混合插入持久性存储器库中614。在另一个示例中,可以使用更简单的基于定时器的技术。基于定时器的技术可以维持两个计数器:针对混合的自活跃起时间(time-since-active)和自不活跃起时间(time-since-inactive)计数器。基于定时器的技术可以基于为这两个计数器指定的阈值来决定像素的状态以及混合动作。在示例中,如果混合在指定时间段内活跃(例如,自活跃起时间定时器超过第一阈值,则混合被考虑为t1),则混合被考虑为背景。在另一个示例中,如果自活跃起时间定时器超过第二阈值t2(例如,t2>t1),则可以将混合置于持久性存储器库中。在又另一个示例,如果自不活跃起时间定时器超过第三阈值t3(例如,t3>t1),则可以将自活跃起时间定时器重置为零。

在示例中,背景减除系统可以将在多层皮肤过滤器执行其处理之后保持在背景中的重叠像素移除。在示例中,可以使用持久性存储器机构来增强标准背景减除技术以便更好地处理暂时阻挡的背景区域。

背景减除技术在三维rgb空间中使用高斯混合模型来对图像中的像素的颜色表示进行建模。这些技术背后的主题思想是,如果在许多帧内的像素位置中出现的颜色值处于有限范围之内,则可以将静态背景与特定像素位置处的前景区分。在像素位置处观察到的静态背景值的变化由于相机噪声的存在而是有限的。可以将在前景中通常存在运动考虑在内而将前景与背景区分。如果像素颜色出现在混合之内的次数很小或低于阈值,则像素被分类为前景。这是对可能存在于像素位置中的对象已经在足够长时间内不固定(以便使像素位置与静态背景相关联)的指示。在示例中,在背景减除中,相机可以是静态的。

在示例中,背景减除可能是灵活的并且对相机和光变化快速作出反应。背景减除可以包括迅速忘记过去的前景区域或像素以便不破坏对移动对象进行限定。可以使用背景减除技术来单独地对图像中的每个像素进行建模。背景减除技术可以包括两种类型的混合,比如,活跃混合和存储在持久性存储器中的持久性背景混合。背景减除技术可包括使用gmm模型来更新匹配混合并且可以分别确定哪些像素颜色包括在静态背景中以及哪些像素处于前景掩模中。背景减除技术可以包括使用具有绝对值而不是权重的定时器。背景减除技术可以包括将像素分类为背景以及将分类信息存储在持久性存储器中。然后,在某个时间段内,可以将像素考虑为背景,而无需对所述像素重新运行背景减除技术。定时器可以测量如以上所描述的自活跃测量起的时间以及自不活跃测量起的时间。在运行附加分类操作之前,背景减除技术可以首先搜索持久性存储器。当像素处于持久性存储器中时,那可以停止针对所述像素的过程。如果像素不处于持久性存储器中,则可以根据以上所描述的背景减除技术来对像素进行分类。

技术可以包括判定像素是否处于持久性存储器库中。如果像素处于持久性存储器库中,则其是背景像素并且可以被分类为(或保持被分类)为背景像素。如果像素不处于持久性存储器中,则可以运行基于定时器的过程以便判定像素是否为背景像素。如果像素不是背景像素,则不应将像素分类为背景像素。如果像素是背景像素,则应当将像素置于持久性存储器中。

图7总体上展示了简图700,所述简图示出了根据一些实施例的皮肤检测的渐进示例(例如,702、704、706和708)。在示例中,将使用模板匹配过程来标识的指纹轮廓线的内部像素用作种子值来在crcb和hs空间中计算两个颜色模型。如在简图700中所示出的,多层皮肤过滤器首先移除crcb空间中的背景像素(例如,从示例702到示例704)。由于颜色冲突,可能留下许多背景像素。在hs空间中进行的第二过滤(例如,如示例706中所示出的)进一步移除背景像素,留下例如在比如桌子表面中的一些不透明区域以及天花板的一部分。在示例中,通过背景减除系统完全移除这些区域,留下手掌区域和用户的脸部的一部分(如示例708中所示出的)。在此示例中,重要的是,首先通过多层皮肤过滤器来移除前景的非皮肤部分(所述部分是用户的衬衫)。因为衬衫是有可能移动的前景的一部分,所以稍后将难以通过背景减除阶段来将其移除。可以通过或者多层皮肤过滤器或者背景相减阶段来移除所有其他非皮肤像素。

图8总体上展示了流程图,所述流程图示出了根据一些实施例的用于姿势匹配的技术800。姿势匹配技术800判定来自皮肤区域的任何特征簇是否表示有意义的手势。姿势匹配技术800可以包括斑点特征提取802和斑点特征聚类804。可以将特征簇馈送到并行运行的两个分量中。这两个分量执行不同的姿势匹配功能。技术800可以包括基于区域的匹配806,所述基于区域的匹配从簇中创建比特网格或斑点网格姿势描述符,并且将这些描述符与存储在库中的多个姿势描述符进行比较。可以使用k最近邻(knn)技术来执行比较。技术800可以包括基于轮廓的匹配808,所述基于轮廓的匹配创建输入簇的皮肤区域轮廓的快速傅里叶变换(fft)描述符,并且使用经训练的支持向量机(svm)来将这些描述符分类为与手势相关联。可以融合这两种匹配技术806和808的结果,并且所述技术可以包括输出所检测到的手势810。技术800可以是作为图1中如以上所描述的技术100的继续的操作110。

在示例中,特征提取过程对通过皮肤检测器产生的掩模进行分析并检测兴趣点。掩模可以是包含皮肤像素的灰度或颜色值以及非皮肤的零的皮肤掩模或者元素等于一(对于皮肤像素)和零(对于非皮肤)的二元掩模。

斑点特征可以包括手势上不同位置中且具有不同大小的类似高斯内核的可视结构。为了提取这些特征,可以在输入掩模与针对各种标度值而限定的黑塞矩阵的迹之间执行卷积操作。除了黑塞迹之外,可以使用在计算上相当的检测器。将斑点特征(而不是像素)用于描述符生成和姿势匹配是优选的。斑点特征在数量上可能少于像素,并且因此可以更快地对其进行处理。第二,相比于像素,斑点特征可以用于更可靠地重构手剪影,从而补偿姿势中的皮肤孔或缺失像素。第三,斑点特征可以用于标识和删减主要由与皮肤的背景冲突产生的弱簇。

图9总体上展示了简图900,所述简图示出了根据一些实施例的斑点特征状态表示。在示例中,斑点特征由一对质心坐标(x,y)、半径值r和卷积分数s表征。半径值r是与(x,y)处的斑点相关联的高斯内核的标准偏差。卷积分数s是反应所检测到的斑点与高斯内核的形状多么接近的度量。一旦执行了聚类,斑点特征就与特征id相关联。

有效比特可以指示斑点特征进一步用于生成手势描述符的过程。如果比特无效,则可以丢弃斑点。有效比特可以跟踪斑点是否仍有效并且可以包括在进一步处理中。如以下所讨论的,多个处理后操作可以将斑点标记为无效。比特可以继续用于确认斑点的有效性或无效性。

在示例中,斑点特征坐标由以下操作产生:以固定间隔周期性地对输入皮肤掩模进行子采样。在示例中,间隔等于4个像素。在另一个示例中,可以使用如非极大值抑制等替代性方法。在选择特征坐标之后,可以通过在所选位置处执行卷积来发生尺度空间搜索。在特征提取过程结束时,根据斑点特征的卷积分数而对斑点特征进行分类,并且从所产生的特征列表中删减卷积分数低于阈值的斑点特征。

斑点特征的定义是通用的并且涵盖其他特征的定义。如果未指定半径信息和卷积分数,则所产生的斑点特征仅仅是点并且可以被称为点特征。如以下所解释的,在姿势匹配系统的某些部分中使用点特征而不是斑点特征。可以以许多方式来实现对点特征的导出,例如,或者通过以固定间隔对皮肤掩模进行子采样或者通过忽略已经导出的斑点特征的半径和卷积分数信息。在后一种情况下,点特征是退化类型的斑点特征。如果子采样间隔进一步减小至零,则点特征减小为像素。在这方面,在概念上,也可以将图像像素或点特征视为退化类型的斑点特征。

图10总体上展示了简图1000,所述简图示出了根据一些实施例的特征簇状态表示。在示例中,在完成特征提取之后,斑点特征被分组成簇。因为由皮肤检测器返回的掩模可能包含多于一个非透明皮肤区域,所以聚类可能是有益的。例如,在图像中可能存在多个面部或多只手。簇的状态可以包括簇标识(id)值、关于簇中心的x和y坐标的信息、关于包括在簇中的特征的信息或关于簇形状的信息。簇形状信息进一步包括形状的长轴和短轴的长度(例如,宽度、高度)以及形状的取向。簇id是将簇与其他簇进行区分的值。可以将簇中心计算为簇中的特征集合的质心或如果使用形态聚类,则计算为与簇相关联的连通域的质心。可以就特征的数量和在由聚类技术返回的分类列表中的起始特征而言对特征集合进行描述。在这种状态描述中,一旦聚类完成,同一簇的特征就可以在所返回的列表中彼此相邻。主成分分析(pca)、图像矩或类似技术可以确定簇的旋转以及簇形状的大小(即,宽度、高度)。如果使用pca,则通过所返回的特征向量和特征值对来计算这些值。最终,可以将启发式技术用于以下所描述的簇后处理阶段以便帮助更好地估计簇的宽度和高度。

在示例中,在完成聚类之后,簇用于构建姿势描述符,所述姿势描述符由姿势匹配系统分类为有效静态手势。可以应用各种聚类技术。这些技术可以以某个合理的计算开销为代价而正确地确定簇数量k和起始簇中心。在示例中,技术基于使用形态学运算和连通域标记,其可以被称为‘形态学聚类’。另一个示例基于层级聚类技术的变体。

图11和图12总体上展示了流程图,所述流程图示出了根据一些实施例的用于特征聚类的技术(例如,1100和1200)。

在示例中,技术1100可以包括将由皮肤检测器返回的皮肤掩模用作输入,应用阈值过程以便获得相关二进制图像(例如,二进制化1102)。技术1100可以包括用于移除噪声并且用于封闭可能在掩模的连通域中存在的小间隙的一系列形态学运算1104。在示例中,形态学运算1104可以包括第一膨胀操作,随后是第二开操作,随后是第三闭操作。形态学运算1104所使用的核可以是各种大小的二乘方核。例如,在示例中,大小为10x10、3x3和5x5的二乘方核可以分别用于膨胀操作、开操作和闭操作。在形态学运算1104之后,技术1100可以包括用于检测图像中存在的连通域的连通域标记1106。对于连通域,使用图像矩来计算质心。所产生的连通域的数量是随后的k均值操作1110所使用的簇数量k。在示例中,来自在此阶段所计算(在操作1108处)的连通域的质心由k均值聚类操作1110用作初始簇中心。连通域标记1106可能导致鲁棒的聚类方案,从而使得可以在不重复的情况下使用一次k均值迭代。技术1100可以输出特征簇。

在示例中,技术1200可以包括层级聚类的变体,所述变体可以被称为贪婪层级聚类,其中,特征迭代地合并且簇增长。在示例中,技术1200可以包括一次对单个特征组发生的合并操作。技术1200可以导致更快的实施方式。可以对多个层级聚类层级重复技术1200,其中,在每个层级中,合并操作创建临时特征组,所述特征组被称为‘孤岛’。在单个孤岛与输入特征之间一次一个孤岛地发生第一层次下的合并操作。在之前层次下形成的孤岛之间发生其他层次下的合并操作。层次与因子值相关联。因子值由接近度标准用于判定两个特征或孤岛是否足够靠近以便合并到同一组。层次的因子大于之前层次的因子。例如,三个层次可以分别与等于0.5、1.0和1.5的因子值一起使用。

在示例中,技术1200包括选择特征并将其添加到新的空孤岛1202中。例如,孤岛初始化可以包括对孤岛进行初始化以便变成随后合并操作的焦点。在示例中,此孤岛可以被称为焦点孤岛。技术1200可以包括将满足接近度标准的特征选入孤岛中1204。例如,特征可以是具有最大斑点半径的特征。技术1200可以包括判定是否存在可以添加到孤岛1206中的剩余特征;并且若是,则重复操作1202。若否,则可以使用新特征来迭代技术1200以便创建新孤岛。例如,从还未被考虑在内的特征当中选择特征并将其用于随后的合并操作。所选孤岛可以是具有最大数量的特征的孤岛。技术1200可以包括对计算最大孤岛上的质心1210以及k均值聚类1212。

在示例中,在操作1204中选择特征包括检查特征或孤岛列表以及在所述列表的元素与焦点孤岛之间执行合并操作。在示例中,线性地遍历特征或孤岛。在另一个示例中,可以根据某个标准(比如,斑点半径、孤岛大小或特征的卷积分数)来对列表进行分类。可以在重复决策框之前发生分类。随着对特征或孤岛进行遍历,作出关于焦点孤岛和列表中未被访问的元素的合并决策。为了作出合并决策,所述技术应用基于簇增长距离度量的特征接近度标准。簇增长距离度量使用斑点半径信息来判定两个特征是否足够靠近以便合并到同一孤岛。在示例中,可以使用以像素坐标(x1,y1)和(x2,y2)为中心的两个特征,并且特征的斑点半径可以是r1和r2。如果以下不等式成立,则可以根据簇增长距离度量将特征考虑为靠近:

d(x1,y1,x2,y2)<(r1+r2)·f

方程22

其中,d(x1,y1,x2,y2)是(x1,y1)与(x2,y2)之间的距离,并且f是执行合并的层次下的因子值。距离d(x1,y1,x2,y2)可以被计算为(x1,y1)与(x2,y2)之间的欧几里得距离、曼哈顿距离或马氏距离。使用簇增长距离度量,簇被逐渐定义为随着孤岛合并在一起而增长的斑点特征组。如果存在满足具有输入特征的方程22的孤岛中的至少一个特征,则执行孤岛与特征之间的合并。如果存在至少一个特征对(一个特征来自满足方程22的孤岛),则执行两个孤岛之间的合并。

在示例中,技术1200包括判定是否存在在执行第一和第二框(操作1206)时未被考虑在内的任何特征或孤岛。如果不存在任何这种特征或孤岛,或者如果在最后一次特征选择时未作出任何合并决定,则技术1200可以确定层次完成。在另一个示例中,技术1200可以以新焦点孤岛继续。

当任何孤岛对中的特征不满足方程22的接近度标准时,层次完成。在层次完成后,技术继续到下一个层次。下一个层次的输入是来自上一个层次的孤岛。可以使用不同的因子值来对下一个层次重复技术1200。如果在层次下未执行任何合并操作,则不执行任何随后层次。在过程结束时,选择了最大孤岛,并且使用图像矩来计算了其质心。选择可以基于大小阈值。

因子值控制簇之间的合并操作的质量以及最小接近度以便导致有意义的可视实体。因子值可以用于找出彼此分离但还包含接近的特征的良好定义的簇。因子值是用于控制簇之间的距离并且还用于确保最近簇总是首先被合并在一起的手段。迭代过程有助于阻止不相邻但本应被合并以便导致更有意义的可视实体的簇。

可以将从层级聚类过程中计算1210的质心用作单个迭代k均值操作1212中的初始簇中心。这种操作1212可以将输入特征与最近质心相关联。在示例中,可以使用对数百个图像的训练来导出层次、因子值和大小阈值的数量。可以根据性能要求和操作条件而进一步调整这种参数。与形态学聚类相比时,层级聚类可以对如与图像像素相反的特征进行操作。根据所使用的处理器架构或加速器,层级聚类可能比形态学聚类更快或更慢。相比层级聚类技术的块,形态学聚类使用更单指令流多数据流(simd)友好的操作(例如,开、闭、膨胀)。在另一个示例中,层级聚类对更小数量的元素进行操作。使用形态学和层级聚类两者允许在不同硬件系统中激活最适当的技术。

在示例中,在确定簇之后,执行多项后处理操作。后处理操作包括形状分析、簇过滤、手-前臂分割和边界分析。可以通过确定形状的长轴和短轴的取向和长度来完成形状分析。可以使用pca、图像矩和其他技术来完成这种分析。如果使用pca,则使用椭圆来近似估计簇的形状。在这种情况下,pca返回椭圆的长轴和短轴的方向和大小。通过特征向量和特征值对来表示这些值。与椭圆的长轴和短轴相关联的特征向量是簇形状的主成分。形状分析导致对簇形状的尺寸和取向的计算。这种信息被存储为如在图10中所示出的簇的状态的一部分。

接下来,可以按簇的面积和特征数量对簇进行过滤。过滤操作用于消除具有低有效手势返回概率的任何簇。可以从特征数量和斑点半径值中估计簇面积或者可以使用图像矩来计算簇面积。凭经验确定过滤操作的阈值。用于面积过滤操作的阈值取决于输入图像的分辨率、视场以及与相机的操作距离。可以通过实验来确定用于待有效的簇的特征的数量。此数量基于这样一种事实:存在可以用于从簇中适当构建描述符(例如,如以下所讨论的比特网格、斑点网格或傅里叶描述符)的最小尺度不变数量的特征。在示例中,可以使用从vga分辨率的视频帧中计算的5000个像素的面积阈值以及300个特征的特征数量阈值。过滤操作可以一起作为簇后处理阶段的一部分而执行或者可以与聚类技术的其他阶段交织。例如,可以在完成作为形态学聚类的一部分的连通域标记过程之后执行基于面积的过滤。在同一实施方式中,可以在簇计算之后并且在形状分析之前执行基于特征数量的过滤。

形状分析返回的簇尺寸可以用于检测手腕可能在哪里的手-前臂分割过程。在示例中,为了减小姿势表示的变化性,用于姿势匹配的库中的元素可以包括不包含前臂成分或包含很小百分比的前臂。例如,检测手腕以及消除可能不是手的一部分的特征增大了正确姿势匹配的可能性。

可以应用对簇的特征的边界分析,并且可以消除超出通过簇形状的轴来确定的边界的任何特征。因为这些异常值可能破坏对姿势描述符的生成,所以移除所述异常值是有用的。在示例中,边界分析可以基于特征与质心的距离来对所述特征进行分类。可替代地,可以基于特征与簇形状的长轴或短轴的距离来对所述特征进行分类。边界分析遍历经分类的特征列表,直到其遇到大于阈值的距离跳跃。可以将具有大于阈值的距离增量的特征作为异常值而删减掉。此外,还将进一步远离异常值特征的特征考虑为异常值。此过程更新对先前的形状分析返回的簇尺寸的估计。此过程还可以发生在手-前臂分割之前。还可以使用像卡尔曼过滤器的预测过滤器来在整个帧内跟踪簇中心。卡尔曼过滤器可以用于更好地估计整个帧内的簇质心位置,由此避免由于噪声而引起的任何抖动。聚类过程可以在图像中创建兴趣区域,所述兴趣区域被传递到姿势匹配阶段以便被分类为潜在手势。

图13总体上展示了根据一些实施例的用于比特网格1304和散列流1306生成以便进行基于区域的匹配的系统1300。比特网格1304描述符可以从点特征1302中构建。为了构建比特网格1304,以将输入图像中的正方形区域置于所计算的簇的中心周围。此区域映射到大小为nxn的正方形比特网格上。在示例中,与簇相关联的点特征映射到比特网格1304的元素上。输入图像中的正方形的尺寸等于簇的宽度和高度之间的最大值。还可以旋转输入图像中的正方形区域。以上所描述的簇后处理阶段确定簇形状的取向和尺寸,并且所述取向和尺寸用于将点特征的坐标线性地映射到比特网格1304中。可由线性映射阶段使用簇形状性质来将簇旋转考虑在内。如果多个特征落入比特网格中的同一位置中,则所述位置中的值仍为1。

映射可以包括将(xc,yc)用作簇的中心的坐标,并且将(x,y)用作簇中的点特征的坐标,将d用作比特网格的大小,将w用作簇的宽度,并且将h用作簇的高度。可以使用以下方程23来将点特征(x,y)映射到比特网格1304中的元素(xs,ys)上。在方程23中,例如,如果未旋转簇形状,则计算元素的列和行指数(xs,ys)。

方程23

如果旋转了簇形状,则随后可以进行经修改的映射过程,所述映射过程涉及形状分析返回的旋转值θ:

xr←(x-xc)·cosθ+(y-yc)·sinθ,

yr←-(x-xc)·sinθ+(y-yc)·cosθ,

方程24

比特网格中与点特征相对应的位置通过取值1来标记。所有其他位置取值0。在示例中,可以应用附加操作,其中,除了使用等于1的值来标记经映射的位置之外,可以应用使用某个固定大小mxm的核来进行的膨胀操作。在示例中,m的指定值可以包括3。因为经映射的像素周围的mxm矩形区域中的所有元素被标记为1,所以膨胀操作可能有助于更好地从点特征中限定手剪影。在这方面,膨胀操作可能有助于填充由于缺少所检测到的特征而可能在手势中存在的孔。在示例中,随后可以进行可选操作,比如,附加形态学运算和对连通域的过滤。例如,可以采用使用3x3二乘方核和使用比特网格中的最大连通域的过滤操作的闭操作。

对簇形状的尺寸和取向的检测以及对点特征的线性映射可能有助于保留手势的纵横比。还可以将对纵横比的一些改变应用于长轴大小以便允许姿势恰好拟合到比特网格中。在示例中,为了一致性,可以对由knn技术所使用的姿势库进行这种变化。

可以使用各种比特网格大小(例如,16、32、128或256)。当使用更大的比特网格时,检测性能提高。在示例中,为了捕获姿势的结构(比如,展开手掌姿势中的手指之间的空间),网格可能很大。如果使用很小的网格,则这些结构性质可能变得丢失。将手势映射到固定大小比特网格上的过程使过程转换和尺度不变。此外,如果已经检测到簇形状的旋转,则可以创建比特网格,从而使得如方程24所支持的,手势的长轴与网格的垂直大小对准。

在示例中,在计算了比特网格1304之后,可以将比特网格转换成散列流1306。可以通过将压缩函数应用于比特网格1304来确定散列流1306。压缩比特网格1304可能有助于将基于比特网格的姿势匹配系统的性能调整为某个硬件架构的存储器和计算要求。为了进行压缩,可以将比特网格1304考虑为由例如大小为1x1的子块组成。在另一个示例中,如果在128x128网格中使用2x2子块,则系统可能包括4096个子块。为了计算经压缩的散列流1306,将子块映射到散列流1306中的单个比特上。可以将此比特计算为比特网格中落入子块中的所有元素的逻辑或(or)。在另一个示例中,可以使用不同函数来进行计算。

对更小网格的使用可能导致姿势的对于分类重要的结构元素的丢失。在另一个示例中,相比更小的网格,比特网格1304后处理操作(比如,形态学运算)更好地适用于更大的网格。对更低分辨率比特网格的形态学运算可能导致更粗糙的表象手势剪影。例如,更低分辨率比特网格中的3x3膨胀可能映射到更高分辨率比特网格中的6x6膨胀上。这可能导致描述符质量的显著损失,从而影响姿势匹配准确性。

在在线阶段中,可以将表示为比特网格1304或散列流1306的姿势描述符与预先计算且经标记的描述符的库进行比较。通过运行同一过程、存储所产生的描述符以及将描述符标记为与手势相关联来离线地计算姿势库。库的大小可能影响检测准确性。库中的姿势变体越多,检测率越好。匹配过程使用汉明距离度量。比特网格1304有效、紧凑且具有低等待时间,并且因为所使用的存储设备针对散列流1306,所以其存储器占用很小。这允许导致更好归纳的更大库。

图14a至图14d总体上展示了简图(例如,1400a至1400d),所述简图示出了根据一些实施例的斑点网格生成以便进行基于区域的匹配。比特网格的替代性方式是使用斑点网格。斑点网格可能遭受皮肤图像中的噪声(所述噪声可能以异常值特征的形式存在),而斑点网格可能遭受更少噪声。这是由于斑点特征是从承载姿势的更多结构信息的圆形实体中构建的。在比特网格中,噪声的影响可能与具有不同于存储在描述符中的姿势的输入姿势的影响相同。在比特网格中,如果散列流中的比特与库描述符中的比特具有失配,则这种失配可能以相同方式影响所计算的距离值,而不论失配的位置如何。斑点网格被设计成用于解决这种问题。因为斑点网格捕获姿势的附加结构信息并且可以补偿特别是在挑战性环境中的特征位置抖动,所以斑点网格可以增加鲁棒性。

在示例中,通过将圆形网格重叠在字节网格上来产生斑点网格。圆形网格与所检测到的斑点特征相对应。以累积的方式进行映射。对斑点网格描述符的生成充分利用斑点特征的半径参数。斑点特征映射到具有从斑点半径值与固定大小的比特网格中的多个元素之间的线性映射中产生的半径的填充圆上。这些填充圆在彼此叠加时形成潜在手剪影。因为圆被填充,所以原始掩模中的任何皮肤间隙也被填充,并且未使用任何进一步形态学运算。构建并比较斑点网格可以使用更多计算或更大存储器占用以便存储和访问斑点网格库。例如,斑点网格中的元素可以使用如与单个比特相反的一个或多个存储字节。在图14a至图14d中的简图1400a至1400d中示出了所生成的斑点网格的示例。

将簇形状的尺寸和取向考虑在内,可以使对斑点网格的计算旋转和尺度不变,就像对比特网格的计算一样。在示例中,比特网格元素可以处于0到255的范围内。在另一个示例中,斑点网格元素可以取0或1的值。在又另一个示例中,最终网格可能源自簇的斑点特征的圆形网格之间的逻辑或。一旦构建了斑点网格,就可以将其元素按比例缩放到范围[0,255]内。然后,通过使用汉明距离度量、欧几里得距离度量或曼哈顿距离度量来将斑点网格与预先计算的斑点网格库进行比较从而对斑点网格进行分类。

在示例中,为了向基于区域的匹配添加鲁棒性,使用了k最近邻(knn)技术。姿势库通常包含手势的许多变体的描述符。如果输入描述符是从有效静态手势中生成的,则姿势匹配阶段可以在最佳匹配结果列表中返回同一姿势的一个或多个描述符。使用knn技术允许从描述符列表中搜索k最佳匹配结果并且基于这些k结果的值来作出关于所检测到的手势的决策。在示例中,如果多于一半的k最佳匹配属于同一手势,则检测到有效静态手势。在另一个示例中,如果多于三分之二的k最佳匹配属于同一手势,则检测到有效静态手势。

图15总体上展示了根据一些实施例的用于基于轮廓的匹配的技术1500的简图。用于对对象进行检测和分类的另一种技术是基于轮廓的匹配。为了从特征中提取对象的轮廓的坐标,可以使用技术1500。首先使用与以上针对基于区域的匹配而描述的过程类似的过程来将点特征1502映射到nxn比特网格中。在示例中,技术1500可以包括技术1300的所有操作,除了散列流压缩阶段之外。在技术1500中,可以应用形态学运算和非线性操作(比如,中值过滤器)来消除噪声。还可以使用连通域标记技术来标识不同分量、按面积对其进行分类并且保留最大分量。还可以对二进制nxn网格进行过滤以便保留其最大对象1504。然后,应用边界跟踪操作1506以便提取表示对象的轮廓的(x,y)坐标的一维阵列。然后,对(x,y)坐标的一维阵列进行子采样,直到特定长度(例如,256个点)。

可以提取轮廓的傅里叶描述符1508。存在用于提取傅里叶描述符的各种方法。在示例中,可以通过将坐标对考虑为形式x+j·y的复数(其中,j是虚数单位)来将一维傅里叶变换应用于(x,y)坐标阵列。将傅里叶变换应用于这种复数序列生成另一个复数序列。在示例中,傅里叶变换的输入序列可以包括将in称为输入序列并将on称为输出序列。在示例中,技术1500可以包括如以下所描述的截短系数1510。

对on进行逆傅里叶变换,可以在不丢失信息的情况下重新生成输入序列in。在另一个示例中,如果保留on中的第一n个系数并且将剩余系数设置为零,则对所述序列进行逆变换的过程可能导致原始形状的近似值。在图16a和图16b中示出了这些近似值。图16a和图16b总体上展示了简图(1600a和1600b),所述简图示出了根据一些实施例的用于基于轮廓的匹配的操作的结果。图16a和图16b展示了所保留的系数的数量取值4、8、16和32的示例。如图16a和图16b中所示出的,保留8个系数可以有效地捕获对象的轮廓。在进行一些删减之后留下的系数构成进一步用于所述过程的特征向量。傅里叶描述符的优点在于,它们允许通过使用小大小的描述符来捕获大量姿势变化。

接下来,应用线性变换的规律,可以获得对于转换、缩放和边界跟踪的起点而言不变的描述符。通过排除所产生的描述符中的dc系数(系数0)来实现对变换而言的不变性。通过将所有系数除以dc系数来获得对缩放而言的不变性。可以通过在傅里叶描述符中使用系数的幅度来获得对边界跟踪技术的起点而言的不变性。

在示例中,为了将特征向量分类为与姿势相关联,可以使用经训练的支持向量机(svm)。svm是机器学习二进制分类器,所述机器学习二进制分类器能够通过计算具有最大间隔的线性类别分离器来实现良好分类和归纳结果。在svm中,使用核投影步骤来将非线性数据映射到线性空间上,在分类之前发生所述步骤。通过作为优化步骤的一部分的实验来发现核的参数。因为svm是二进制分类器,所以其可以用作基于一对一投票步骤的多类别分类系统的组件。聚合投票方案用于限定获胜类别。这是用于从二进制分类器中实现多类别分类的标准方法。例如,对于具有7个不同姿势的数据库,可以使用1+2+...+6=21个不同的一对一svm分类器。svm分类器可以顺序地或并行地运行,并且例如分类器的结果用于对获胜类别进行投票。然后,具有最大票数的类别被确定为最终获胜类别。

图17总体上展示了流程图,所述流程图示出了根据一些实施例的用于融合姿势匹配的技术1700。对于对手势进行正确分类,基于区域和轮廓的匹配可能很重要。在示例中,为了利用两种技术的特性,可以采用简单的融合阶段,其中,使用投票方案来组合两种技术的结果。例如,技术1700可以接收簇1702并且生成候选手势区域1704和候选手势轮廓1710的特征向量。技术1700可以从姿势库1706接收姿势并将那些姿势与候选手势区域的特征向量进行匹配1708。技术1700可以接收经训练的模型1712并将所述模型与候选手势轮廓的特征向量进行匹配1714。技术1700可以融合并输出候选手势区域匹配和候选手势轮廓匹配1716。在示例中,为了减小假阳性率,可以应用简单规则。例如,如果区域和轮廓结果相匹配,则静态手势有效。例如,如果基于区域的匹配系统和基于轮廓的匹配系统两者检测到静态手势,则检测到静态手势。这可能导致假阳性率的实验上可证实减小连同真阳性检测率的增大。

图18总体上展示了简图1800,所述简图示出了根据一些实施例的用于检测手势的操作的结果。图18示出了用于检测‘指责’手势的技术的各种结果。在第一行中,第一列是输入帧。第一行中的第二列是皮肤过滤器的结果。第三列是使用面部检测过程的头部移除过程的结果。第四窗口是背景减除系统的结果。在第一行中的第五列中示出了与检测到的簇相关联的比特网格和傅里叶描述符。

在第二行中,第一列示出了所检测到的斑点特征。第二列示出了与所检测到的斑点特征相关联的点特征。第二行中的第三列示出了被标识为形态学聚类阶段的一部分的连通域。在第五列中示出了所产生的簇。第二行中的第五列保留为空。在第三行中,前两个列分别示出了基于区域的匹配过程和基于轮廓的匹配过程的结果。在第三列中示出了融合阶段的结果,并且第三行中的最后两列保留为空。

图19总体上展示了流程图,所述流程图示出了根据一些实施例的用于皮肤检测和融合手势匹配的技术1900。技术1900可以包括用于对图像中的手进行皮肤检测和姿势确认的方法,所述方法包括:用于使用多层皮肤过滤器来检测图像中的皮肤像素的操作1902。在示例中,操作1902可以包括在用户注册阶段选择种子值。操作1902可以包括在定时器到期之后使用更新皮肤像素来代替种子值。在示例中,检测皮肤像素集合包括:使用期望最大化来检测皮肤像素集合,所述期望最大化包括作为高斯函数线性组合的概率密度函数或作为多个椭圆区域的并集的皮肤轨迹。在另一个示例中,检测皮肤像素集合包括:在多个层上从所述多个像素中过滤出非皮肤像素,并且其中,层包括唯一的亮度不变颜色空间。在又另一个示例中,如果在所述多个层中的任何层中未过滤出所述多个像素中的像素,则所述像素处于皮肤像素集合中。

技术1900可以包括用于将皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合的操作1904。技术1900可以包括用于将关于背景皮肤像素集合的信息存储在持久性存储器中的操作1906以及用于从前景皮肤像素集合中确定特征集合的操作1908。操作1906可以包括:将皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合,包括使用通过持久性存储器进行的基于定时器的背景减除过程。操作1908可以包括:其中,特征集合中的特征包括坐标、半径值和卷积分数。

技术1900可以包括用于对来自特征集合的特征进行聚类以便创建手势描述符集合的操作1910。操作1910可以包括使用k均值聚类、连通域标记或层级聚类来创建手势描述符集合。在另一个示例中,操作1908包括通过迭代地向孤岛添加特征来对特征进行聚类。

在示例中,技术1900包括用于确定与手势描述符集合相匹配的候选手势区域描述符集合和候选手势轮廓描述符集合的操作1912。在示例中,操作1912包括通过以下方式来确定候选手势区域描述符集合:生成描述符;将描述符转换成散列流;以及通过将预定值与散列流进行比较来确定候选手势区域描述符集合。在示例中,描述符可以包括比特网格描述符或斑点网格描述符。在另一个示例中,操作1912包括通过以下方式来确定候选手势轮廓描述符集合:跟踪手势描述符集合中的手势描述符周围的边界;提取边界的边界描述符;将傅里叶变换应用于边界描述符;以及使用经训练的支持向量机和经傅里叶变换的边界描述符来确定候选手势轮廓描述符集合。

在示例中,技术1900包括用于使用候选手势区域描述符集合和候选手势轮廓描述符集合来检测有效手势的操作1914。操作1914可以包括在定时器到期之后选择更新皮肤像素值。在示例中,操作1914包括:仅在候选手势区域描述符集合和候选手势轮廓描述符集合两者指示所检测到的手势时检测有效手势。

图20总体上展示了示意图,所述示意图使出了根据一些实施例的皮肤检测和融合手势匹配系统2002。皮肤检测和融合手势匹配系统2002可以包括皮肤检测模块2004,所述皮肤检测模块用于:使用多层皮肤过滤器来检测图像中的皮肤像素;将皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合;并且将关于背景皮肤像素集合的信息存储在持久性存储器中。皮肤检测和融合手势匹配系统2002可以包括姿势确定模块2006,所述姿势确定模块用于:从前景皮肤像素集合中确定特征集合;对来自特征集合的特征进行聚类以便创建手势描述符集合;使用手势描述符集合来确定与手势描述符集合相匹配的候选手势区域描述符集合和候选手势轮廓描述符集合;并且使用候选手势区域描述符集合和候选手势轮廓描述符集合来检测有效手势。

在示例中,皮肤检测模块2004可以使用种子值。可以在用户注册阶段期间选择种子值。在示例中,皮肤检测模块2004可以使用来自有效手势的更新皮肤像素值来代替种子值。可以在定时器到期之后选择更新皮肤像素值。皮肤检测模块2004可以使用期望最大化,所述期望最大化包括作为高斯函数线性组合的概率密度函数和作为多个椭圆区域的并集的皮肤轨迹。在另一个示例中,皮肤检测模块2004可以在多个层上从所述多个像素中过滤出非皮肤像素,其中,层包括唯一的亮度不变颜色空间。在示例中,如果在所述多个层中的任何层中,像素未被过滤出,则所述像素处于皮肤像素集合中。在另一个示例中,皮肤检测模块2004可以使用通过持久性存储器进行的基于定时器的背景减除过程来将皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合。

在示例中,姿势确定模块2006可以使用k均值聚类、连通域标记或层级聚类来创建手势描述符集合。在另一个示例中,特征集合中的特征包括坐标、半径值和卷积分数。在又另一个示例中,姿势确定模块2006可以迭代地向孤岛添加特征。姿势确定模块2006可以通过以下方式来确定候选手势区域描述符集合:生成描述符;将描述符转换成散列流;以及通过将预定值与散列流进行比较来确定候选手势区域描述符集合。在示例中,描述符包括比特网格描述符或斑点网格描述符。姿势确定模块2006可以跟踪手势描述符集合中的手势描述符周围的边界;提取边界的边界描述符;将傅里叶变换应用于边界描述符;并且使用经训练的支持向量机和经傅里叶变换的边界描述符来确定候选手势轮廓描述符集合。在示例中,姿势确定模块2006可以检测有效手势,姿势确定模块用于在候选手势区域描述符集合和候选手势轮廓描述符集合两者指示有效手势时检测有效手势。

图21总体上展示了根据一些实施例的机器2100的框图的示例,可以在所述机器上执行本文中所描述的技术(例如,方法)中的任何一项或多项。在替代性实施例中,机器2100可以作为独立设备来操作或可以连接(例如,联网至)至其他机器。在联网部署中,机器2100在服务器-客户端网络环境中可以以服务器机器、客户端机器或两者的身份进行操作。在示例中,机器2100可以充当对等(p2p)(或其他分布式)网络环境中的对等机器。机器2100可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、web电器、网络路由器、交换机或桥、或能够执行指定要由所述机器采取的动作的(顺序或以其他方式)指令的任何机器。进一步地,虽然仅展示了单个机器,但术语“机器”还应视为包括机器的任何集合,所述机器单独地或联合地执行指令集合(或多个集合)以便执行本文中所讨论的方法中的任何一种或多种方法,比如,云计算、作为服务的软件(saas)、其他计算机簇配置。

如本文中所描述的示例可以包括逻辑或许多组件、模块或机构,或可以对它们进行操作。模块是能够在操作时执行指定操作的有形实体(例如,硬件)。模块包括硬件。在示例中,硬件可以被特定地配置成用于执行特定操作(例如,硬接线)。在示例中,硬件可以包括可配置执行单元(例如,晶体管、电路等)和包含指令的计算机可读介质,其中,所述指令将执行单元配置成用于在操作时执行特定操作。可以在执行单元或加载机构的指导下发生配置。因此,在设备进行操作时,执行单元通信地耦合至计算机可读介质。在此示例中,执行单元可以是具有多于一个模块的构件。例如,在操作中,执行单元可由第一组指令配置成用于在一个时间点实施第一模块,并且由第二组指令重新配置成用于实施第二模块。

机器(例如,计算机系统)2100可以包括硬件处理器2102(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核或其任何组合)、主存储器2104和静态存储器2106,所述组件的一些或全部组件可以经由互连链路(例如,总线)2108彼此通信。机器2100可以进一步包括显示单元2110、字母数字输入设备2112(例如,键盘)和用户接口(ui)导航设备2114(例如,鼠标)。在示例中,显示单元2110、字母数字输入设备2112和ui导航设备2114可以是触摸屏显示器。机器2100可以另外包括存储设备(例如,驱动单元)2116、信号生成设备2118(例如,扬声器)、网络接口设备2120以及一个或多个传感器2121,比如,全球定位系统(gps)传感器、指南针、加速度计或其他传感器。机器2100可以包括输出控制器2128(比如,串行(例如,通用串行总线(usb))、并行或其他有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以便通信或控制一个或多个外围设备(例如,打印机、读卡器等)。

存储设备2116可包括非瞬态机器可读介质2122,其上存储有一个或多个数据结构或指令集合2124(例如,软件),所述一个或多个数据结构或指令集合实施本文中所描述的技术或功能中的一项或多项或者由其利用。指令2124还可以全部或至少部分地驻留在主存储器2104内、在静态存储器2106内或在由机器2100对其的执行期间驻留在硬件处理器2102内。在示例中,硬件处理器2102、主存储器2104、静态存储器2106或存储设备2116的一个或任何组合可以构成机器可读介质。

虽然机器可读介质2122被展示为单个介质,但是术语“机器可读介质”可以包括被配置成用于存储所述一个或多个指令2124的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联高速缓存和服务器)。

术语“机器可读介质”可以包括能够存储、编码或承载用于由机器2100执行的指令、且使机器2100执行本公开的技术中的任何一种或多种的任何介质、或能够存储、编码、或承载由这种指令使用或与这种指令相关联的数据结构的任何介质。非限制性机器可读介质示例可以包括固态存储器以及光介质和磁介质。在示例中,大容量机器可读介质包括带有具有不变(例如,静止)质量的多个粒子的机器可读介质。相应地,大容量机器可读介质不是瞬态传播信号。大容量机器可读介质的特定示例可以包括:非易失性存储器,比如,半导体存储器设备(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和闪存设备;磁盘,比如,内部硬盘和可移动盘;磁光盘;以及cd-rom和dvd-rom盘。

可以进一步利用多个传输协议(例如,帧中继、互联网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传输协议(http)等)中的任何一种协议、经由网络接口设备2120、使用传输介质、通过通信网络2126来传输或接收指令2124。示例通信网络可以包括:局域网(lan)、广域网(wan)、分组数据网络(例如,互联网)、移动电话网络(例如,蜂窝网络)、普通老式电话(pots)网络以及无线数据网络(例如,被称为的电气与电子工程师协会(ieee)802.11标准家族、被称为的ieee802.16标准家族)、ieee802.15.4标准家族、对等(p2p)网络等等。在示例中,网络接口设备2120可以包括一个或多个物理插孔(例如,以太网、同轴、或电话插孔)或一个或多个天线以便连接至通信网络2126。在示例中,网络接口设备2120可以包括多个天线以便使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一种技术来进行无线通信。术语“传输介质”应视为包括能够存储、编码或承载由机器2100执行的指令的任何无形介质,并且包括数字或模拟通信信号或者用于促进这种软件的通信的其他无形介质。

各种说明和示例

这些非限制性示例中的每个非限制性示例可以自成体系,或者可以按各种排列或组合与其他示例中的一个或多个示例组合。

示例1包括由一种用于检测图像中的有效手势的系统实施的主题,所述系统包括:皮肤检测模块,所述皮肤检测模块用于:使用多层皮肤过滤器来检测所述图像中的皮肤像素;将所述皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合;并且将关于所述背景皮肤像素集合的信息存储在持久性存储器中;以及姿势确定模块,所述姿势确定模块用于:从所述前景皮肤像素集合中确定特征集合;对来自所述特征集合的特征进行聚类以便创建手势描述符集合;使用所述手势描述符集合来确定与所述手势描述符集合相匹配的候选手势区域描述符集合和候选手势轮廓描述符集合;并且使用所述候选手势区域描述符集合和所述候选手势轮廓描述符集合来检测所述有效手势。

在示例2中,如示例1所述的主题可以可选地包括:其中,为了检测所述皮肤像素集合,所述皮肤检测模块用于使用种子值。

在示例3中,如示例1至2之一或其任何组合所述的主题可以可选地包括:其中,所述种子值是在用户注册阶段期间选择的。

在示例4中,如示例1至3之一或其任何组合所述的主题可以可选地包括:其中,所述皮肤检测模块用于使用来自所述有效手势的更新皮肤像素值来代替所述种子值。

在示例5中,如示例1至4之一或其任何组合所述的主题可以可选地包括:其中,所述更新皮肤像素值是在定时器到期之后选择的。

在示例6中,如示例1至5之一或其任何组合所述的主题可以可选地包括:其中,为了检测所述皮肤像素集合,所述皮肤检测模块用于使用期望最大化,所述期望最大化包括作为高斯函数线性组合的概率密度函数以及作为多个椭圆区域的并集的皮肤轨迹。

在示例7中,如示例1至6之一或其任何组合所述的主题可以可选地包括:其中,为了检测所述皮肤像素集合,所述皮肤检测模块用于在多个层上从所述多个像素中过滤出非皮肤像素,其中,所述多个层中的每个层包括唯一的亮度不变颜色空间。

在示例8中,如示例1至7之一或其任何组合所述的主题可以可选地包括:其中,如果在所述多个层中的任何层中未过滤出所述多个像素中的像素,则所述像素处于所述皮肤像素集合中。

在示例9中,如示例1至8之一或其任何组合所述的主题可以可选地包括:其中,所述皮肤检测模块用于使用通过所述持久性存储器进行的基于定时器的背景减除过程来将所述皮肤像素分类成所述前景皮肤像素集合和所述背景皮肤像素集合。

在示例10中,如示例1至9之一或其任何组合所述的主题可以可选地包括:其中,所述特征集合中的特征包括坐标、半径值和卷积分数中的至少一项。

在示例11中,如示例1至10之一或其任何组合所述的主题可以可选地包括:其中,为了创建所述手势描述符集合,所述姿势确定模块用于使用k均值聚类。

在示例12中,如示例1至11之一或其任何组合所述的主题可以可选地包括:其中,为了创建所述手势描述符集合,所述姿势确定模块用于使用形态学运算或连通域标记。

在示例13中,如示例1至12之一或其任何组合所述的主题可以可选地包括:其中,为了创建所述手势描述符集合,所述姿势确定模块用于使用贪婪层级聚类。

在示例14中,如示例1至13之一或其任何组合所述的主题可以可选地包括:其中,为了对特征进行聚类,所述姿势确定模块用于迭代地向孤岛添加特征。

在示例15中,如示例1至14之一或其任何组合所述的主题可以可选地包括:其中,为了确定所述候选手势区域描述符集合,所述姿势确定模块用于:生成描述符;将所述描述符转换成散列流;并且通过将预定值与所述散列流进行比较来确定所述候选手势区域描述符集合。

在示例16中,如示例1至15之一或其任何组合所述的主题可以可选地包括:其中,所述描述符包括比特网格描述符或斑点网格描述符。

在示例17中,如示例1至16之一或其任何组合所述的主题可以可选地包括:其中,为了确定所述候选手势轮廓描述符集合,所述姿势确定模块用于:跟踪所述手势描述符集合中的手势描述符周围的边界;提取所述边界的边界描述符;将傅里叶变换应用于所述边界描述符;并且使用经训练的支持向量机和经傅里叶变换的边界描述符来确定所述候选手势轮廓描述符集合。

在示例18中,如示例1至17之一或其任何组合所述的主题可以可选地包括:其中,为了检测所述有效手势,所述姿势确定模块用于在所述候选手势区域描述符集合和所述候选手势轮廓描述符集合两者指示所述有效手势时检测所述有效手势。

示例19包括由一种用于对图像中的手进行皮肤检测和姿势确定的方法,所述方法包括:使用多层皮肤过滤器来检测所述图像中的皮肤像素;将所述皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合;将关于所述背景皮肤像素集合的信息存储在持久性存储器中;从所述前景皮肤像素集合中确定特征集合;对来自所述特征集合的特征进行聚类以便创建手势描述符集合;确定与所述手势描述符集合相匹配的候选手势区域描述符集合和候选手势轮廓描述符集合;以及使用所述候选手势区域描述符集合和所述候选手势轮廓描述符集合来检测有效手势。

在示例20中,如示例19所述的主题可以可选地包括:其中,检测所述皮肤像素集合包括使用种子值来检测所述皮肤像素集合。

在示例21中,如示例19至20之一或其任何组合所述的主题可以可选地包括:进一步包括:在用户注册阶段期间选择所述种子值。

在示例22中,如示例19至21之一或其任何组合所述的主题可以可选地包括:进一步包括:使用来自所述有效手势的更新皮肤像素值来代替所述种子值。

在示例23中,如示例19至22之一或其任何组合所述的主题可以可选地包括:进一步包括:在定时器到期之后选择所述更新皮肤像素值。

在示例24中,如示例19至23之一或其任何组合所述的主题可以可选地包括:其中,检测所述皮肤像素集合包括使用期望最大化来检测所述皮肤像素集合,所述期望最大化包括作为高斯函数线性组合的概率密度函数以及作为多个椭圆区域的并集的皮肤轨迹。

在示例25中,如示例19至24之一或其任何组合所述的主题可以可选地包括:其中,检测所述皮肤像素集合包括在多个层上从所述多个像素中过滤出非皮肤像素,并且其中,所述多个层中的每个层包括唯一的亮度不变颜色空间。

在示例26中,如示例19至25之一或其任何组合所述的主题可以可选地包括:其中,如果在所述多个层中的任何层中未过滤出所述多个像素中的像素,则所述像素处于所述皮肤像素集合中。

在示例27中,如示例19至26之一或其任何组合所述的主题可以可选地包括:其中,将所述皮肤像素分类成所述前景皮肤像素集合和所述背景皮肤像素集合包括使用通过所述持久性存储器进行的基于定时器的背景减除过程。

在示例28中,如示例19至27之一或其任何组合所述的主题可以可选地包括:其中,所述特征集合中的特征包括坐标、半径值和卷积分数中的至少一项。

在示例29中,如示例19至28之一或其任何组合所述的主题可以可选地包括:其中,创建所述手势描述符集合包括使用k均值聚类。

在示例30中,如示例19至29之一或其任何组合所述的主题可以可选地包括:其中,创建所述手势描述符集合包括使用形态学运算或连通域标记。

在示例31中,如示例19至30之一或其任何组合所述的主题可以可选地包括:其中,创建所述手势描述符集合包括使用贪婪层级聚类。

在示例32中,如示例19至31之一或其任何组合所述的主题可以可选地包括:其中,对特征进行聚类包括迭代地向孤岛添加特征。

在示例33中,如示例19至32之一或其任何组合所述的主题可以可选地包括:其中,确定所述候选手势区域描述符集合包括:生成描述符;将所述描述符转换成散列流;以及通过将预定值与所述散列流进行比较来确定所述候选手势区域描述符集合。

在示例34中,如示例19至33之一或其任何组合所述的主题可以可选地包括:其中,所述描述符包括比特网格描述符或斑点网格描述符。

在示例35中,如示例19至34之一或其任何组合所述的主题可以可选地包括:其中,确定所述候选手势轮廓描述符集合包括:跟踪所述手势描述符集合中的手势描述符周围的边界;提取所述边界的边界描述符;将傅里叶变换应用于所述边界描述符;以及使用经训练的支持向量机和经傅里叶变换的边界描述符来确定所述候选手势轮廓描述符集合。

在示例36中,如示例19至35之一或其任何组合所述的主题可以可选地包括:其中,检测所述有效手势包括:在所述候选手势区域描述符集合和所述候选手势轮廓描述符集合两者指示所述所检测到的手势时检测所述有效手势。

示例37包括至少一种包括用于接收信息的指令的机器可读介质,所述指令当由机器执行时使所述机器执行如示例19至36所述的方法中的任何方法。

示例38包括一种设备,所述设备包括用于执行如示例19至36所述的方法中的任何方法的装置。

示例39包括由一种设备实施的主题,所述设备包括:用于使用多层皮肤过滤器来检测所述图像中的皮肤像素的装置;用于将所述皮肤像素分类成前景皮肤像素集合和背景皮肤像素集合的装置;用于将关于所述背景皮肤像素集合的信息存储在持久性存储器中的装置;用于从所述前景皮肤像素集合中确定特征集合的装置;用于对来自所述特征集合的特征进行聚类以便创建手势描述符集合的装置;用于确定与所述手势描述符集合相匹配的候选手势区域描述符集合和候选手势轮廓描述符集合的装置;以及用于使用所述候选手势区域描述符集合和所述候选手势轮廓描述符集合来检测有效手势的装置。

在示例40中,如示例39所述的主题可以可选地包括:其中,用于检测所述皮肤像素集合的所述装置包括用于使用种子值来检测所述皮肤像素集合的装置。

在示例41中,如示例39至40之一或其任何组合所述的主题可以可选地包括:进一步包括:用于在用户注册阶段期间选择所述种子值的装置。

在示例42中,如示例39至41之一或其任何组合所述的主题可以可选地包括:进一步包括:用于使用来自所述有效手势的更新皮肤像素值来代替所述种子值的装置。

在示例43中,如示例39至42之一或其任何组合所述的主题可以可选地包括:进一步包括:用于在定时器到期之后选择所述更新皮肤像素值的装置。

在示例44中,如示例39至43之一或其任何组合所述的主题可以可选地包括:其中,用于检测所述皮肤像素集合的所述装置包括用于使用期望最大化来检测所述皮肤像素集合的装置,所述期望最大化包括作为高斯函数线性组合的概率密度函数以及作为多个椭圆区域的并集的皮肤轨迹。

在示例45中,如示例39至44之一或其任何组合所述的主题可以可选地包括:其中,用于检测所述皮肤像素集合的所述装置包括用于在多个层上从所述多个像素中过滤出非皮肤像素的装置,并且其中,所述多个层中的每个层包括唯一的亮度不变颜色空间。

在示例46中,如示例39至45之一或其任何组合所述的主题可以可选地包括:其中,如果在所述多个层中的任何层中未过滤出所述多个像素中的像素,则所述像素处于所述皮肤像素集合中。

在示例47中,如示例39至46之一或其任何组合所述的主题可以可选地包括:其中,用于将所述皮肤像素分类成所述前景皮肤像素集合和所述背景皮肤像素集合的所述装置包括用于使用通过所述持久性存储器进行的基于定时器的背景减除过程的装置。

在示例48中,如示例39至47之一或其任何组合所述的主题可以可选地包括:其中,所述特征集合中的特征包括坐标、半径值和卷积分数中的至少一项。

在示例49中,如示例39至48之一或其任何组合所述的主题可以可选地包括:其中,用于创建所述手势描述符集合的所述装置包括用于使用k均值聚类的装置。

在示例50中,如示例39至49之一或其任何组合所述的主题可以可选地包括:其中,用于创建所述手势描述符集合的所述装置包括用于使用形态学运算或连通域标记的装置。

在示例51中,如示例39至50之一或其任何组合所述的主题可以可选地包括:其中,用于创建所述手势描述符集合的所述装置包括用于使用贪婪层级聚类的装置。

在示例52中,如示例39至51之一或其任何组合所述的主题可以可选地包括:其中,用于对特征进行聚类的所述装置包括用于迭代地向孤岛添加特征的装置。

在示例53中,如示例39至52之一或其任何组合所述的主题可以可选地包括:其中,用于确定所述候选手势区域描述符集合的所述装置包括:用于生成描述符的装置;用于将所述描述符转换成散列流的装置;以及用于通过将预定值与所述散列流进行比较来确定所述候选手势区域描述符集合的装置。

在示例54中,如示例39至53之一或其任何组合所述的主题可以可选地包括:其中,所述描述符包括比特网格描述符或斑点网格描述符。

在示例55中,如示例39至54之一或其任何组合所述的主题可以可选地包括:其中,用于确定所述候选手势轮廓描述符集合的所述装置包括:用于跟踪所述手势描述符集合中的手势描述符周围的边界的装置;用于提取所述边界的边界描述符的装置;用于将傅里叶变换应用于所述边界描述符的装置;以及用于使用经训练的支持向量机和经傅里叶变换的边界描述符来确定所述候选手势轮廓描述符集合的装置。

在示例56中,如示例39至55之一或其任何组合所述的主题可以可选地包括:其中,用于检测所述有效手势的所述装置包括:用于在所述候选手势区域描述符集合和所述候选手势轮廓描述符集合两者指示所述所检测到的手势时检测所述有效手势的装置。

以上具体实施方式包括对附图的参考,所述附图形成具体实施方式的一部分。附图通过展示的方式示出了特定实施例。这些实施例在本文中也被称为“示例”。这种示例可以包括除所示出或所描述的要素之外的要素。然而,诸位发明人还设想了其中仅提供所示出或所描述的那些要素的示例。另外,诸位发明人还设想了或者相对于特定示例(或其一个或多个方面)或者相对于本文中所示出或所描述的其他示例(或其一个或多个方面),使用所示出或所描述的那些要素(或其一个或多个方面)的任何组合或排列的示例。

如果本文档和任何通过引用如此结合的文档之间的用法不一致,以本文档中的用法为准。

在本文档中,如在专利文档中普遍的,术语“一个”或“一种”用于包括一个或多于一个,与“至少一个”或者“一个或多个”的任何其他实例或用法无关。在本文档中,除非另外指示,术语“或者”用于指非排他的或,从而使得“a或b”包括“a而不是b”、“b而不是a”以及“a和b”。在此文档中,术语“包括(including)”和“其中(inwhich)”用作对应术语“包括(comprising)”和“其中(wherein)”的通俗英文等价词。而且,在以下权利要求书中,术语“包括(including)”和“包括(comprising)”是开放式的,也就是说,包括除了在某个权利要求项中的这种术语之后列出的要素之外的要素的系统、设备、物品、成分、配方或过程仍被视为落入所述权利要求项的范围内。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标号,并且不旨在对它们的对象施加数值要求。

本文中所描述的方法示例可以至少部分地由机器或者计算机实施。一些示例可以包括使用可操作用于将电子设备配置用于执行如以上示例中所描述的方法的指令来进行编码的计算机可读介质或者机器可读介质。这种方法的实施方式可以包括代码,比如,微代码、汇编语言代码、较高级语言代码等。这种代码可以包括用于执行各种方法的计算机可读指令。所述代码可以形成计算机程序产品的部分。进一步地,在示例中,可以比如在执行期间或者在其他时间将代码有形地存储在一个或多个易失性、非瞬态或非易失性计算机可读介质上。这些有形计算机可读介质的示例可以包括但不限于硬盘、可移动磁盘、可移动光盘(例如,致密盘和数字视盘)、磁带盒、存储器卡或棒、随机存取存储器(ram)、只读存储器(rom)等。

以上说明旨在是说明性的,而非限制性的。例如,以上所描述的示例(或其一个或多个方面)可彼此结合使用。可以使用其他实施例,比如,由本领域的技术人员在审阅以上说明时使用。提供了摘要以便遵守37c.f.r.§1.72(b)从而允许读者快速确定本技术公开的性质。基于其将不被用于解释或者限制权利要求书的范围或者含义的理解提交摘要。而且,在以上具体实施方式中,可以将各种特征组合在一起以便简化本公开。这不应解释为规定未要求保护的公开特征对于任何权利要求项是必需的。相反,发明性主题可在于比特定的公开实施例的所有特征要少的特征。因此,以下权利要求书由此作为示例或实施例结合到具体实施方式中,每项权利要求作为单独的实施例而独立存在,并且设想了这种实施例可以以各种组合或排列彼此组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1