资讯详情

一种基于区域生长和机器学习的手部分割方法与流程

本发明涉及一种基于区域生长和机器学习的图像处理方法。

背景技术:

随着AR随着交互的不断发展,手势识别已成为未来人工智能的重要组成部分。有效稳定的手部分割算法可以为手势识别提供准确的数据输入。深度图提供的三维位置信息作为手势识别的输入数据之一,为手势的三维恢复提供了良好的依据。如何从深度图中分割完整的手部数据是手势识别的基础。与传统相比RGB由于特征有限,图像、深度图的手部检测和分割难以有效完成。传统的深度图手部分割算法都是按照距离(深度)阈值过滤出手部区域,例如只提取深度值(300mm~600mm)作为手部区域,该方法完全依赖于手相对于传感器的位置,抗干扰能力较弱,当手后有其他物体(如手腕、手臂等)时,会产生严重的干扰。手臂区域通常需要分类。

现有的手部分割方法,实现步骤一般包括:(1)获取场景的深度图;(2)根据深度图逐像素计算特征向量,一般通过窗口计算;(3)根据训练分类器对手臂、手和手腕的深度图数据进行分类。为了训练分类器,需要提前测量分类器的结构样本和样本特征向量。

然而,上述现有方法完全取决于手的位置和多分类的准确性,存在以下缺陷:(1)抗干扰能力弱;(如手附近有其他干扰物);(2)除负样本(手腕、手臂等)外,至少需要3~4臂等)本生产和数量要求高;(3)深度图噪声保留;(4)计算复杂性高,时间长。

技术实现要素:

为了解决上述现有技术的缺陷,本发明提出了基于深度和手尺寸约束的区域生长手部分割方法。

在本发明的第一个方面,提出了以下步骤:

步骤S110:收集场景深度图,确定深度图的有效范围;

步骤S120:根据深度值对有效范围内的像素进行排序;

步骤S130:从排序像素中选择种子点并开始生长;

步骤S140:判断生长区的面积。如果面积太小,重新选择种子点并返回步骤S130重新进行区域增长。如果面积满足要求,则进入步骤S150;

步骤S150:按照生长区域的像素索引过滤深度图,生成只含生长区域的生长区域的深度图;

步骤S160:对步骤S150获得的生长区域的深度图实时进行分类,以确定所述生长区域的是否为手部区域;

步骤S170:从手部区域的深度图中提取纹理并计算轮廓,从纹理为初始值,轮廓点为数据源mean-shift算法搜索最佳手掌位置。

在本发明的第二个方面,提出了手部分类器的训练方法,包括以下步骤:

步骤S210:根据S110~S150步收集大量生长区域的深度图作为训练数据集;

步骤S220:人工标记训练数据集label;

步骤S230:提取所有训练数据集的特征,将这些特征组合成特征向量矩阵;

步骤S240:使用特征向量矩阵和人工标记label训练二分类器。

本发明利用手部结构的先验知识,降低了后续分类的复杂性,大大提高了手部分割和检测的准确性和效率。

附图说明

图1是本发明提出的手部分割方法的流程图。

图2是本发明提出的区域生长八邻域示意图。

图3是本发明提出的16个区域生长示意图。

图4是本发明提出的手部分类器训练方法的流程图。

图5是本发明提取的手部区域分割图像。

图6是本发明提取的非手部区域分割图像。

具体实施方法

结合附图和具体实施例,进一步说明本发明的方法原理和功能特点,但不作为本发明的限制。

如图1所示,本发明提出的手部分割方法包括以下步骤。

步骤S110:收集场景深度图,确定深度图的有效范围。

场景的深度图可以通过带有深度信息的相机获得,如通过双目相机拍摄场景的左右眼图像来计算视差,然后获得深度图,或通过单目相机和距离传感器获得场景的深度图。然后根据设定的最近和最远阈值过滤深度图数据:

其中Depthh在过滤后的深度图中点h的深度值,d为原始深度图中点h的深度值,mind最近的深度阈值,maxd深度的最远阈值。mind和maxd用户可以提前设置或指定用户接口。

mind和maxd也可以根据历史手部分割识别的结果来确定。在实施模式中,根据前手部分割识别结果确定手部区域对应的最大深度和最小深度,并在最大深度的基础上添加适当的裕度maxd,在上述最小深度的基础上,减去适当的裕度mind,充分利用前手部分割的结果数据,缩小深度图的有效范围,进而减少后续处理量,提高分割速度。在另一种实施方式中,根据历史手部分割识别的结果,确定手部区域的最大深度和最小深度maxd和mind,这样可以充分利用历史手部分割的结果,在缩小深度图有效范围的同时,保证深度图有效范围的完整性。

步骤S120:根据深度值对有效范围内的像素进行排序,第三视角与第一视角相反。排序结果保留了像素值和像素索引,第三视角从近到远,第一视角从远到近。

步骤S130:从排序像素中选择种子点并开始生长,生长邻域可选择八邻域(图2)或十六邻域(图3)。图3中显示的16个邻域是在图2中的八个邻域的基础上增加外圈的四角邻域和外圈四边的中点邻域。域扩展到24个领域可以保证区域生长的连续性,同时减少计算量,防止场景深度图因缺陷不连续而导致的区域生长中断。

生长需要满足以下三个约束:

1)待定点与当前生长点的深度差小于阈值1

其中Dcandidate表示待定点的深度,Dgrow表示当前迭代生长点的深度,Thred1表示阈值1。

2)待定点与种子点的深度差小于阈值2

其中Dcandidate表示待定点的深度,Dseed表示种子点的深度,Thred2表示阈值2。

3)待定点与种子点的三维距离小于阈值3

其中Pcandidate表示待定点三维坐标,Pseed表示种子点三维坐标,Thred3表示阈值3,运算符||·||表示三维距离计算。

同时满足3个约束条件Condition1、Condition2和Condition3时,将待定点像素索引记录为生长点,否则将待定点像素索引记录为非生长点。当所有生长点的生长区域不再需要指定时,生长停止。

步骤S140:判断生长区的面积。如果面积太小,重新选择种子点并返回步骤S130重新进行区域增长。如果面积满足要求,则进入步骤S150。

步骤S150:按照生长区域的像素索引过滤深度图,生成只含生长区域的生长区域的深度图。

步骤S160:对步骤S150获得的生长区深度图实时分类,确定生长区是否为手部区域。

步骤S170:从手部区域的深度图中提取纹理并计算轮廓,从纹理为初始值,轮廓点为数据源mean-shift算法搜索最佳手掌位置。

因此,本发明将区域生长方法引入手部分割技术,利用手部结构的先验知识通过区域生长获得手部分割区域,然后通过分类器进行二次分类,确定手部分割区域是否正确。与传统的手纯依靠分类器的手部分割方法相比,由于分类器不需要准确分类手部区域,只需要判断通过区域生长获得的手部分割区域是否了后续分类器的复杂性,可以大大提高手部分割和检测的准确性和效率。

如图4所示,本发明还提出了一种手部分类器训练方法,包括以下步骤。

步骤S210:根据S110~S采集大量生长区域的深度图作为训练数据集。

步骤S220:人工标记训练数据集label,手部标记为1,否则标记为0。如图5所示手深图标记为1,如图6所示的非手深图标记为0。

步骤S230:提取所有训练数据集的特征,将这些特征组合成特征向量矩阵PCA等待计算。所选特征可包括但不限于以下方法:

特征一:PCA计算特征值及其组合形式。

特点二:轮廓面积、凸包面积和包围盒面积。

特征3:轮廓长度。

步骤S240:利用获得的特征向量矩阵和人工标记的所述label训练二分类器。可以使用分类器Adaboost或SVM等。

以上手分类器的训练方法,由于分类器只需要做两个分类,判断是手还是非手,所以分类器的特征向量可以相对简单,大大简化了分类器的复杂性,也大大提高了手分类器的训练速度。

上述实施例只表达了本发明的几种实施方法,其描述更具体、更详细,但不能理解为本发明专利范围的限制。应当指出,对于本领域的普通技术人员,也可以在不脱离本发明概念的情况下进行若干变形和改进,属于本发明的保护范围。因此,本发明专利的保护范围以权利要求为准。

标签: s110传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台