1.一种基于深度学习的人体点云骨架提取方法,其特征在于:该方法具体包括以下步骤:
S1:将人体点云模型归一化,使得该模型位于最长边为1的轴向平行包围盒内;
S2:使用PointCNN学习人体点云中每个表面点的特征用于判断该点是否为位于两个人体关节连接部位的歧义点,并将这些歧义点剔除,得到兴趣点云;
S3:重新使用PointCNN学习兴趣点云中的每个表面点的特征,用于人体部位分割以及预测每点到对应关节点的偏移向量,将部位分割结果与偏移向量预测结果结合,从每个表面点得到一个对应关节点位置预测值,得到收缩后的关节点预测值集合;
S4:利用关节点预测值集合中的点密度,剔除低质量预测,然后使用DBSCAN聚类方法,对每个身体部位对应的所有关节点预测坐标聚类,得到该部位关节点的坐标预测值,根据关节点的语义信息,将所有关节点连接为3D人体骨架;
S5:利用人体结构的先验知识,检查并修复骨架中的错误。
2.根据权利要求1所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S1中,人体点云模型P由n个人体表面点组成,每个点仅包含三维坐标x、y、z,根据下列公式将点云数据归一化:rmax=max(xmax-xmin,tmax-ymin,zmax-zmin)
其中,x、y、z为原始点云中每个点的三维坐标,x′、y′、z′为归一化后点云中每个点的三维坐标,xmax和xmin分别表示原始点云中所有点x坐标的最大值和最小值,xcenter表示原始点云轴向平行包围盒的中心点的x坐标。
3.根据权利要求2所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S2中,去除点云中的歧义点:首先以归一化后的人体点云模型作为第一阶段子网络的输入,该子网络使用PointCNN中的χ-conv和χ-deconv操作符习得每个表面点的128维特征 用于判断该点是否是歧义点,即位于两个关节连接部位上的点,将fa输入多层感知机MLP,并使用softmax激活函数,得到每个点为歧义点的概率pa,将pa大于0.5的点标记为歧义点并将剔除,得到感兴趣点云Pi。
4.根据权利要求3所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S3中,以感兴趣点云Pi为第二阶段子网络的输入,该子网络使用PointCNN中的χ-conv和χ-deconv操作符重新习得每个表面点的192维特征 用于人体部位分割,将fc输入多层感知机MLP,并使用softmax激活函数,得到每个点属于每个关节部位的概率pseg,将最大的pseg对应的部位预测为该点所属的关节部位。
5.根据权利要求4所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S3中,以感兴趣点云Pi中每点特征fc输入多层感知机MLP,输出每个表面点到对应关节点的偏移向量预测值 将每个表面点pi沿着偏移向量预测值 收缩,得到一个关节点位置预测值 最终将感兴趣点云Pi转化为关节点预测值集合Jpre。
6.根据权利要求5所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S4中,删除关节点预测值集合Jpre中的低质量预测,具体的方法为:对于Jpre中部位分割结果为l的点构成的点云 计算 中每点的点密度ρi,剔除中密度较小的n个点,得到 ρi为以pi为球心以r为半径的球中点的个数与 中点的总数Nl的比例,ρi的计算公式如下:对于每个身体部位,都执行上述步骤,最终得到高质量关节点集合Jh。
7.根据权利要求6所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S4中,使用DBSCAN聚类方法,从高质量关节点集合Jh得到3D人体骨架,具体为:对于Jh中部位分割结果为l的点构成的点云 使用DBSCAN聚类方法对 进行聚类,如果将点云聚成一簇,则直接取该簇的质心作为l部位的关节点预测值;当聚簇数大于1时,取点最多的簇的质心作为l部位的关节点预测值,其余簇的质心作为候选关节点保存到l部位的候选点列表中;将各部位的关节点预测值连接起来,得到3D人体骨架。
8.根据权利要求7所述的一种基于深度学习的人体点云骨架提取方法,其特征在于:所述步骤S5中,根据人体结构的先验知识,增加两个额外的约束条件来检查和修正错误骨架中的错误;这两个约束为:(1)对称肢体长度相同;
(2)肢体长度应该在合适的范围内;
由中轴关节向四肢延伸,依次检查四肢是否存在误差;对于上半身,从胸部关节开始检测;如果从胸关节到左、右肩关节长度相同,且长度在正常范围内,则认为左、右肩关节是正确的;否则,认为是错误的;当检测到错误时,对应候选点列表中选择一个满足两个约束条件的点作为该部位关节点;如果有多个点满足约束条件,则选择使得对称肢体长度最接近的候选点作为关节点;如果没有候选点满足条件,则继续从对称关节点的候选点中寻找合适的点。