赞
踩
1,人体3D关节点介绍
传统的人体关节点3D重建技术主要有基于多视几何的3D重建技术、利用深度摄像机深度图估计关节点的技术、深度学习方法。
基于多视几何的3D重建技术,需要在不同视角部署多台摄像机、拍摄环境具有一 定要求、拍摄目标需要穿戴特制衣服和marker点 ,成本高、便捷性差。
利用深度摄像机深度图估计关节点的技术,因为深度图只有一个通道,颜色、纹 理等细节缺乏,导致估计得到的关节点位置精度不够高。
基于深度学习技术的人体2D关节点估计精度较高,但没有3D信息。基于深度学习 技术的人体3D关节点估计存在精度不高的问题。
2,本文方法
人体3D关节点重建,包括2D人体关键点估计方法、2D关节点转3D关节点方法、3D关节序列平滑三部分内容。
2D人体关节点估计方法:
深度摄像机彩色数据流转化为bgr三通道图像,并调用openpose人体2D关键点检 测模型输出图像中的人体2D关键点。参考Openpose.
2D关节点转3D关节点方法:
1)深度摄像机实时数据流:彩色数据流color、深度数据流depth、人体轮廓区域数据流mask。其中depth与mask数据同步绑定输出,mask上非零点是人体部分。 color与depth以30fps同步输出,但两者是同一深度摄像机不同传感器异步采集,时钟做的同步,再加上其他算法的算法复杂度和人体运动过快等影响,拍摄过程中偶尔 会出现color与depth数据不同步的问题。
2)基于彩色数据流color,估计得到图像中2D人体关节点序列
其中x为图像横坐标,y为图像纵坐标,p为关节点的置信度。
3)读取depth上2D关节点序列每个点上的深度值d,如果深度值d在正常范围
[minBoundDepy, maxBoundDepth], 则认为该点的深度值有效,其中正常范围是在拍摄时设定人距离摄像机的一个范围。如果存在某点pt的深度值d在正常范围以外,则 在该点的邻域内查找距离最近的mask非零点,如果存在这样的非零点,则该非零点在depth上对应的深度值d’为2D点pt的深度值。
4)基于摄像机视角、焦距、各点的深度值,将图像2D坐标转到3D世界坐标: depth视角对color视角对齐后,水平视角hfov(弧度单位),垂直视角vfov(弧度单位),图像size是xres、yres(像素单位)图像中心坐标(像素单位)cx = (xres-1)*0.5, cy=(yres-1)*0.5,水平焦距fx=cx/(hfov/2.0), 垂直焦距fy=cy/tan(vfov/2.0)。已知点pt图像 坐标为(col, row),深度为d(毫米单位),则pt点的3D世界坐标(米单位)为:
5)三维空间中,某点存在身体部位遮挡. 但在二维图像中,基于自己数据集重新训练的openpose, 可以精确预测所有2D关节点。此时,该点呗遮挡,3D关节点不可知,2D关节点可知,摄像机内参K可知. 以摄像机坐标系为世界坐标系,光心O世界坐标(0,0,0)', 2D点m在成像平面上的齐次坐标(u,v,1)',则2D点m的世界坐标为((u-u0)dx, (v-v0)dy, f)', 其中u0,v0,dx,dy,f为摄像机内参参数。光心O、图像点m两点,基于世界坐标连成的3d直线L。那么2d点m对应的3d点M,一定在3d直线L上。3d点M若位于某关节J上(关节J还存在另一3d关节点N,关节J可能不止一个,相应的邻近3d关节点N可能不止一个)。获取前面帧的N、MN长度,当前帧M在L上,这一步只考虑当前帧N已知,则可计算出M.
6) 若仍有当前帧3D点未知,则通过前面帧进行预测。
3D关节序列平滑方法:
2D人体关节点转3D世界坐标后,轨迹不足够光滑。 基于卡尔曼滤波器对对主干3D关节点序列进行平滑处理。人体主干脖子-左肩-左髋-右髋 -右肩-脖子认为是一个刚体,刚体在三维空间中有三维旋转平移不变性。刚体变换有对应的6个参数ax,ay,az, tx,ty,tz分别对应三个方向的欧拉角和三个方向的位移,一个3D关 节点A[xa,ya,za]刚体变换后得到[xb,yb,zb]:
该步对主干3D关节点做卡尔曼预测,达到了3D关节点序列平滑的目的
3,实时视频结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。