基于3D深度视觉的人体姿态估计算法

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自|新机器视觉


人体姿态估计是当前计算机视觉领域的热点研究问题。对人体骨架关节点进行准确提取并构建人体骨架模型,为进一步的人体姿态识别、实时交互游戏等应用提供了基础。但是传统的基于RGB图像的方法容易受到光照、阴影、复杂背景的影响,准确度不高并且算法复杂。利用深度图像技术可以有效地解决上述问题,利用深度信息可以快速地进行背景分割,抗干扰性能好,算法效率高。

本文主要研究基于深度图像的人体关节定位算法。算法对深度图像素点周围区域的深度进行格点化采样以提取其深度特征,再使用随机森林分类器进行像素点分类,对同一类别的点使用Mean Shift算法聚类出中心点,以该中心点作为关节点位置。该算法可对人体全身关节点进行定位。

局域深度特征提取

本文中采用如图1所示的局域深度采样特征。其中蓝色点表示图像I中给定的像素x,以该像素为中心生成一个5*5的格点矩阵,红色的格点表示要进行深度采样的点。

图1 局域深度采样示意图

随机森林分类器

分类器是对样本进行分类的算法的统称,在机器学习中有许多种分类器可供我们选择使用,包括逻辑回归、朴素贝叶斯、支持向量机(SVM)、决策树、随机森林、神经网络等算法。综合考虑分类的精度与效率,本课题中采用的是随机森林分类器。

随机森林分类器是由多棵决策树组合而成的分类器,如图2所示。决策树的结构类似二叉树,由分裂结点和叶结点构成。每一个分裂结点包含一个特征与阈值,像素x从根部开始,根据特征与阈值划分进入左子树还是右子树,这样不断地分裂直到叶结点。在每棵树的叶结点能够得到该像素对于各个身体部件的概率分布,将各棵树得到的结果相加,得到最终的概率分布,拥有最高概率的一类作为最终的分类结果。

随机森林将多棵决策树合并在一起,准确度相较于单棵决策树有较大提升,并且多棵决策树可以并行训练,提高了训练效率。

图2随机森林分类器

训练完随机森林分类器后,我们利用其对像素点进行分类,判断其属于身体的哪个部位。对于图像中的每个像素,使用分类器对其分类后得到分类的结果,以及预测结果的概率。我们只选取图像中预测概率高于80%的点,这样就能得到密度不同的分类点。越靠近关节点位置,预测概率越高,点的密度越大,远离关节点位置的密度则小。

关节点位置估计

在得到像素点分类后,我们使用Mean Shift聚类算法得到属于同一部位像素点的中心,作为关节位置。

Mean Shift算法一般为一个迭代过程,先计算感兴趣区域内的偏移均值,移动区域中心到计算出的质心处,然后以此处作为新的起点,继续移动。在迭代过程中,不断向密度更大的地方偏移,直到移动到这类像素点密度最高的中心位置而停止。此时这个位置最能代表这一类点,我们将其作为该部位的关节点位置。分别对所有类别的点都运行一遍此算法后,我们就能得到全身关节点的位置。

但是由于分类结果并不一定准确,聚类出的结果可能与真实关节点的位置有所偏移,这时我们可以采用人体骨架长度比例约束条件,来矫正一部分偏移较大的关节点,对预测结果进行优化。

流程介绍

训练流程:对一幅深度图,取关节附近的点作为训练集,对这些点提取深度特征,再训练随机森林分类器

图3训练流程示意图

测试流程:深度图背景分割得到人体区域图像,使用随机森林分类器对人体的像素点进行分类,选取预测概率大于设定阈值的点,则得到疏密不同的各关节部位像素点,越接近关节点位置,像素点越密,再使用Mean shift算法进行聚类,得到关节点位置

图3测试流程示意图

运行效果

图4为关节定位算法的运行效果,(a)为NTU数据集中关节点的标准位置;(b)是算法对同一张深度图中关节点的定位结果;(c)为自制的Kinect测试集上的运行效果;(d)为采用公司研制的TOF相机模块拍摄的深度图的运行效果。可以直观地看出定位效果较为良好。TOF相机的分辨率为320*240,因此相同距离下人体在画面中所占比例更大。

 

(a) (b)

 

(c) (d)

图4 算法运行效果示例

(a)NTU测试集真值,25关节 (b)NTU测试集 (c)自制测试集 (d)TOF相机拍摄图像

 End 

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于openpose的人体姿态估计算法是一种新型的通过计算机视觉技术,利用深度学习的方法来检测人类身体姿态的技术。openpose算法主要基于卷积神经网络,通过对人体进行端到端的检测和识别,精确地提取出人体的关键节点,以达到精准估计人体姿态的目的。 该算法使用了一个称为“多尺度卷积神经网络”的深度学习模型,双臂、双腿、脊柱、头等身体的关键节点可以在三维空间中进行跟踪和预测,从而实现高精度的人体姿态估计。关键节点的位置可以被表示为一个全局的三维关键点矩阵,同时还使用了一组类似于线性回归的模型,来处理和分析这些关键点之间的复杂空间情况和人体姿态。 基于openpose的人体姿态估计算法,不仅可以应用于人体姿态的识别和分析,还可以被广泛应用于虚拟现实、影视特效、游戏开发、医学影像、人机交互、体育运动等领域。该算法的优点是在相对小的数据集的基础上进行训练,能够很好地处理的人体姿态的多变性和复杂性,被认为是未来计算机视觉领域的重要技术之一。 ### 回答2: 基于openpose的人体姿态估计算法是一种用于从图像或视频中准确估计人类姿势的算法。该算法的核心思想是基于深度学习和计算机视觉技术,通过对人体骨骼关节进行检测和跟踪,实现对人体姿态的估计。 该算法首先通过图像或视频帧的输入,使用深度学习模型提取特征信息。深度学习模型通常是由大规模训练集训练而来的,并具有较强的泛化能力。这些特征信息可用于定位人体关节点,例如头部、手臂、腿部等。然后,通过关节的组合和连接,可以得到完整的人体骨骼结构。 在算法的实现过程中,还需要解决一些挑战。例如,对于遮挡、低对比度等情况,该算法需要具备一定的鲁棒性,能够从复杂的背景中准确提取人体的姿态信息。此外,算法的速度也是一项重要考量,以实现实时的人体姿态估计。 基于openpose的人体姿态估计算法已经在姿势分析、运动捕捉、动作识别等领域展示了广泛应用的潜力。在人机交互、健康监测、体育训练等方面,该算法可以提供实时、准确的姿态信息,为各种应用场景带来更加智能、高效的解决方案。 总的来说,基于openpose的人体姿态估计算法利用深度学习和计算机视觉的技术,实现了对人体姿态的准确估计。它具备广泛的应用潜力,有望在多个领域带来新的突破和创新。 ### 回答3: 基于openpose的人体姿态估计算法是一种基于计算机视觉技术的人体姿态分析方法。这个算法利用深度学习和机器学习的方法,通过对图像或视频进行分析,检测人体关键点位置,从而实现对人体姿态的估计和跟踪。 openpose的算法基于卷积神经网络(CNN),它经过大量的训练数据集,能够识别和定位人体的各个关键点,包括头部、手臂、腿部等等。这个算法能够在不同角度、不同尺度、不同光照条件下对姿态进行准确的估计。 基于openpose的人体姿态估计算法具有以下特点: 1. 高效快速:openpose的算法使用GPU并行计算,能够实时处理高分辨率图像或视频流,具有较快的速度和高效的性能。 2. 鲁棒性强:算法具有较强的鲁棒性,能够处理复杂场景下的人体姿态估计,如多人姿态识别、遮挡、动作快速变化等情况。 3. 准确性高:通过深度学习技术的训练,openpose的算法能够极大地提高准确性,对人体关键点的检测和定位能够达到较高的精度。 基于openpose的人体姿态估计算法在许多领域应用广泛,如体育训练、健康医疗、虚拟现实等。它可以实时监测和分析人体的动作,为用户提供更加智能和个性化的服务。随着深度学习和计算机视觉的不断发展,基于openpose的人体姿态估计算法将会在未来发挥更加重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值