结合高度图从无标记单目图像中恢复三维人体姿态的方法技术领域
本发明涉及三维人体姿态恢复方法,尤其涉及一种结合高度图从无标记的单目图
像序列中恢复三维人体姿态的方法。
背景技术
人体三维姿态估计,因其广泛的应用前景,受到很多研究学者的关注。现有的三维
人体姿态估计的方法主要可以分为基于单目相机的方法和基于多视图像序列的方法。目
前,单目的方法正受到业界越来越多的关注。因为虽然多视方法提供了更多的可视数据,进
而能为姿态估计提供更丰富的信息,但是在现实中这些数据并不总是可以获得,特别是在
视频监控以及疗养院等应用中。
从单目图像序列中恢复三维人体姿态是一个固有的病态问题,因为当我们视图从
单目相机获得的单视图像中推导三维姿态的时候,对于同一个二维图像上观测到的投影可
以得到多个三维姿态和相机位置的组合。再加上在真实情况下由于环境因素或遮挡等的影
响,图像的特征(例如人体轮廓,四肢或二维关节点)不能精确地检测到,从而使基于单目图
像恢复出三维人体姿态变得更加具有挑战性。然而,人类观测者却可以通过一只眼睛精确
估计出人体的姿态。大部分情况下,人类也可以轻松的组织起三维空间中的解剖标记进而
预测相机的相对位置。人类之所以可以做到这一点,很可能是因为人的大脑中存储了大量
的三维人体姿态的配置信息,进而可以消除二维到三维的歧义性。因此,可以通过学习运动
捕捉数据库中大量的三维动作数据来获得这样的能力的一个合理的代理。
发明内容
本发明的目的在于针对现有技术的不足,提高一种结合高度图从无标记单目图像
中恢复三维人体姿态的方法。
本发明的目的是通过以下技术方案来实现的:一种结合高度图从无标记单目图像
中恢复三维人体姿态的方法,该方法的步骤如下:
1)使用彩色图像数据集和高度图像数据集训练得到基于深度卷积网络的二维关
节点识别模型;
2)读入彩色视频帧图像序列和相机参数,估算得到每帧彩色图像对应的高度图
像;
3)将步骤2)得到的高度图及其对应的彩色图像输入步骤1)训练得到的基于深度
卷积网络的二维关节点识别模型,识别得到每帧图像中人体的二维关节点坐标;
4)输入步骤3)得到的多帧图像的二维关节点坐标,根据优化模型恢复出每帧图像
中人体的三维姿态。
进一步地,所述的高度图采用以下方式计算得到:
高度图是本发明提出的一种新的人体部位的中间标识。在解剖结构上的,人体各
主要关节点的位置及骨骼的长度和人体的高度存在一个经验比例。因此高度信息包含了骨
架结构各关节点间的空间关系。对于人体轮廓内的每一个像素点,使用Park及其合作者们
在2012年发表的题为《RobustEstimationofHeightofMovingPeopleUsinga
SingleCamera》的论文中提到的高度估计方法进行高度估计,该方法通过把图像平面上的
二维特征(即头点和脚点)反投影到三维场景中来计算人体的高度。高度图中的每一个像素
点的值表示的是该点的高度(即在世界坐标系中相对于地面的高度)。但由于不同的人的身
高不同,为了与人体高度无关,把高度图中的每一个像素的值H(x,y)归一化为相对高度
即:
H ^ ( x , y ) = k · H ( x , y ) h i ]]>
其中x和y是像素坐标,hi表示第i个人的身高。k是一个用来把相对高度图映射到
所需的区间的缩放常量,经验上被设置为255。
进一步地,步骤1)中所述的基于深度卷积网络的二维关节点识别模型基于Chen及
其合作者们在2014年发表的题为《ArticulatedPoseEstimationbyaGraphicalModel
withImageDependentPairwiseRelations》的论文中提到的二维关节点识别模型,论文
为X.ChenandA.L.Yuille,“ArticulatedPoseEstimationbyaGraphicalModelwith
ImageDependentPairwiseRelations”,InNIPS,pages1736–1744,2014。这里对该模型进
行了改进,增加一个新的数据流(即高度图),使其深度卷积网络变成双流结构(原来的结构
只使用RGB图像,现在同时使用RGB图像和估算出的高度图像),并在最后的图模型之前增加
了一个融合层,来融合双流卷积网络的输出。
进一步地,所述步骤1)中基于深度卷积网络的二维关节点识别模型的训练过程
为:
1.1)使用公开数据集”LeedsSportsPoses”(LSP)(彩色图像)和合成的高度图像
数据集对基于深度卷积网络的二维关节点识别模型进行训练,合成的高度图像数据集通过
运动数据驱动人体模型来获得。
1.2)使用真实视频中的RGB图像及其对应的高度图对得到的识别模型进行微调。
进一步地,所述步骤2)中彩色视频帧图像对应的高度图的生成过程如下:
2.1)对输入的彩色视频帧图像进行前景提取,得到每帧图像的前景二值图像。
2.2)读入相机内参、外参和每帧图像的前景二值图像,生成每帧图像对应的高度
图。
进一步地,所述步骤3)中识别得到的二维关节点共有14个,分别是:左/右脚踝、
左/右膝盖、左/右臀部、左/右手腕、左右/肘部、左/右肩膀、颈部和头部。二维关节点的坐标
通过优化一个基于部位的图模型的得分函数F(l,t|I)得到:
F ( l , t | I ) = Σ i ∈ V U ( l i | I ) + Σ ( i , j ) ∈ ϵ R ( l i , l j , t i j , t j i | I ) + ω 0 ]]>
其中l={li|i∈V}是关节点位置的集合,t={tij|(i,j)∈ε}是成对的关系类型,
ω0是一个偏置项。V和ε分别是图模型的顶点和边的集合。U和R通过边缘化训练得到的卷积
网络的联合分布得到,包含部位类型和成对关系类型的混合。卷积网络的输入是一个图像
块,而输出是一个部位(即关节点)落在该图像块的概率。
进一步地,所述步骤4)具体为:
在t时刻三维人体状态可表示为:
X t = [ P t T , V t T ] T ]]>
其中Pt表示t时刻三维人体姿态,Vt表示t时刻的关节点速率。
三维人体状态可以表示成一系列主成分B={b1,…,bk}和一个平均向量μ的线性组
合:
X t = μ + B t * ω t ]]>
{ b i } i ∈ I B t * ∈ B t * ⋐ B ]]>
其中ωt是主成分的系数,是B的一个优化子集。B通过对不同类型的运动数据
进行主成分分析(PCA)得到。
给定一个图像序列的二维关节点坐标对应的三维
姿态可以通过优化如下目标函数得到:
m i n Ω | | p - CA 0 ( M + B * Ω ) | | 2 + α | | D ( M + B * Ω ) | | 2 ]]>
其中m和n分别表示输入的图像序列包含的帧数和三
维关节点的数目;弱透视相机模型为相机投影矩
阵; M = I m ⊗ μ , Ω = [ ω 1 T ... ω m T ] T , A 0 = I m ⊗ [ I n 0 n ] , B * = Σ t = 1 m B t * ; ]]>α用于平
衡反投影误差和时序一致性,
本发明的有益效果是:本发明在二维关节点的识别过程中综合使用彩色图像和高
度图像,使二维关节点的识别准确率得到了提高。另一方面,在从二维关节点恢复出三维人
体姿态的优化模型中加入了时序一致性约束,使恢复出的三维人体姿态更加接近真实人体
姿态。
附图说明
图1是本发明的总体流程图;
图2是基于高度的骨架解剖分解图;
图3(a)-(d)是实施例中二维关节点识别模型训练用的四个不同的合成高度图像;
图4是本发明使用的真实高度图的生成过程;
图5(a)-(c)是实施例使用的三张真实视频图像;
图6(a)-(c)是实施例估算出的真实视频图像对应的高度图;
图7(a)-(c)是实施例只使用彩色图像估算出的二维人体骨架;
图8(a)-(c)是实施例使用彩色加高度图像估算出的二维人体骨架;
图9(a)-(c)是实施例恢复出的三维人体姿态。
具体实施方式
本发明的核心是在二维关节点识别的过程中增加高度信息(即使用高度图),然后
在根据二维关节点恢复出三维姿态的过程中增加了时序一致性约束。
以下利用一实施例,来描述具体流程的实施方式,步骤如下(见图1):
1)使用彩色图像数据集和高度图像数据集训练得到基于深度卷积网络的二维关
节点识别模型;给定一个图像序列其中w和h分别是图像的宽度
和高度,d是通道数目。二维关节点识别的目标就是利用RGB图像和估算出的高度图像来计
算出每帧图像上二维关节点的位置。二维关节点的识别使用的模型基于Chen及其合作者们
在2014年发表的题为《ArticulatedPoseEstimationbyaGraphicalModelwith
ImageDependentPairwiseRelations》的论文中提到的二维关节点识别模型,论文为
X.ChenandA.L.Yuille,“ArticulatedPoseEstimationbyaGraphicalModelwith
ImageDependentPairwiseRelations”,InNIPS,pages1736–1744,2014。这里对该模型
进行了改进(见图1),增加一个新的数据流(即高度图),使其深度卷积网络变成双流结构
(原来的结构只使用RGB图像,现在同时使用RGB图像和估算出的高度图像)。并在最后的图
模型之前增加了一个融合层,来融合双流卷积网络的输出。二维关节点识别模型的训练过
程为:
1.1)使用公开数据集”LeedsSportsPoses”(LSP)(彩色图像)和合成的高度图像
数据集对基于深度卷积网络的二维关节点识别模型进行训练。LSP数据集是Johnson及其合
作者们在2010年发表的题为《ClusteredPoseandNonlinearAppearanceModelsfor
HumanPoseEstimation》的论文中公布的数据集,论文为S.JohnsonandM.Everingham,
“ClusteredPoseandNonlinearAppearanceModelsforHumanPoseEstimation”,In
BMVC,pages1–11,2010。合成高度数据通过使用CMU及自行采集的动作数据驱动9个模型来
获得,包括高度图(见图3)及预定义的14个关节点的二维和三维的位置,合成高度图像大约
有18万张。
1.2)同时使用真实视频中的RGB图像及其对应的高度图对得到的卷积网络进行微
调。这里挑选了真实视频中10个人的走路和跑步的共3811帧数据,对其二维关节点的位置
进行了手工的标注,并估算出每帧图像对应的高度图像。
2)读入真实视频帧图像序列(见图5)和相机参数,估算得到每帧图像对应的高度
图像(见图6)。具体过程为:
2.1)对输入的视频帧图像进行前景提取,得到每帧图像的前景二值图像。
2.2)读入相机内参、外参和每帧图像的前景二值图像,根据上述的高度图的生成
方法,计算得到每帧图像对应的高度图。高度图采用以下方式计算得到(见图4):
高度图是本发明提出的一种新的人体部位的中间标识。在解剖结构上的,人体各
主要关节点的位置及骨骼的长度和人体的高度存在一个经验比例(如图2所示)。因此高度
信息包含了骨架结构各关节点间的空间关系。对于人体轮廓内的每一个像素点,使用Park
及其合作者们在2012年发表的题为《RobustEstimationofHeightofMovingPeople
UsingaSingleCamera》的论文中提到的高度估计方法进行高度估计,该方法通过把图像
平面上的二维特征(即头点和脚点)反投影到三维场景中来计算人体的高度。高度图中的每
一个像素点的值表示的是该点的高度(即在世界坐标系中相对于地面的高度)。但由于不同
的人的身高不同,为了与人体高度无关,把高度图中的每一个像素的值H(x,y)归一化为相
对高度即:
H ^ ( x , y ) = k · H ( x , y ) h i ]]>
其中x和y是像素坐标,hi表示第i个人的身高。k是一个用来把相对高度图映射到
所需的区间的缩放常量,经验上被设置为255。
3)输入真实视频图像及估算得到的高度图,使用训练得到的二维关节点识别模型
进行识别,得到每帧图像中人体的14个二维关节点坐标,按顺序连接对应的二维关节点得
到的二维人体骨架(见图8)。这里输入的真实视频图像没有出现在训练数据中。
在实施例中还对只使用彩色图像的二维关节点识别模型在真实视频图像上进行
测试(即Chen及其合作者们在2014年发表的题为《ArticulatedPoseEstimationbya
GraphicalModelwithImageDependentPairwiseRelations》的论文中提到的二维关
节点识别模型),部分测试结果如图7)。根据对比结果可以看出加入高度信息后,二维关节
点的识别准确率得到了提高。
4)输入步骤3)得到的多帧图像的二维关节点坐标,根据优化模型恢复出每帧图像
中人体的三维姿态(见图9)。根据二维关节点恢复出三维人体姿态的优化模型基于
Ramakrishna及其合作者们在2012年发表的题为《Reconstructing3DHumanPosefrom2D
ImageLandmarks》的论文中提出的优化模型。这里对该模型进行改进,增加了关节角速率
和时序一致性约束,具体描述如下:
在t时刻三维人体状态可表示为:
X t = [ P t T , V t T ] T ]]>
其中Pt表示t时刻三维人体姿态,Vt表示t时刻的关节点速度。
三维人体状态可以表示成一系列主成分B={b1,…,bk}和一个平均向量μ的线性组
合:
X t = μ + B t * ω t ]]>
{ b i } i ∈ I B t * ∈ B t * ⋐ B ]]>
其中ωt是主成分的系数,是B的一个优化子集。B通过对不同类型的运动进行主
成分分析(PCA)得到。
给定一个图像序列的二维关节点坐标对应的三维姿态
可以通过优化如下目标函数得到:
m i n Ω | | p - CA 0 ( M + B * Ω ) | | 2 + α | | D ( M + B * Ω ) | | 2 ]]>
其中m和n分别表示输入的图像序列包含的帧数和三维关节
点的数目;弱透视相机模型I为单位矩阵,为克罗内克积,
为相机投影矩阵; M = I m ⊗ μ , Ω = [ ω 1 T ... ω m T ] T , ]]> A 0 = I m ⊗ [ I n 0 n ] , B * = Σ t = 1 m B t * ; ]]>
α用于平衡反投影误差和时序一致性,