本发明涉及图像处理领域,具体涉及一种基于卷积神经网络与sparse的三维人体姿态估计方法。
背景技术:
从2012年alexnet开始,深度学习开始快速发展,从最早的图片分类问题,到后来的检测,分割问题。在2014年,第一次成功引入了cnn来解决单人姿态估计的问题。因为当时的时代背景,整体网络结构比较简单,同时也沿用了传统骨架的思路。首先是通过滑动窗口算法,来对每个图中小块进行分类,找到相应的人体关键点。因为直接使用滑动窗口算法而缺少很多背景信息,所以会有很多坏点的出现。所以在线性通信模型上面加上了一个post-processing后期处理的步骤,主要是希望能抑制部分坏点,具体实现方式是模拟一个空间位置的模型。所以从这个工作来看,有一定的传统姿态估计方法的惯性,改进的地方是把原来的传统的图像特征表示改成了深度学习的网络,同时把空间位置关系当成是后处理来做处理。总体性能在当时已经略微超过了传统的姿态估计方法。2014年的另外一个重要的进展是引入了mpii的数据集。此前的大部分论文都是基于flic以及lsp来做评估的,但是在深度学习时代,数据量还是相对偏少(k级别)。mpii把数据量级提升到w级别,同时因为数据是互联网采集,而且是针对人物动作来做筛选的,所以无论从难度还是多样性角度来讲,都比原来的数据集有比较好的提升。一直到2016年,随着深度学习的爆发,单人姿态估计问题的解决再一次有了进展。但是目前国内外的研究还存在速度不够快、准确率不够高,未考虑摄像机参数等问题。
技术实现要素:
本发明提出一种基于卷积神经网络与sparse的三维人体姿态估计方法,主要特点是用硬肢体长度比约束来补充稀疏基表示,来减少不正确的姿势并且通过输出一幅图像的k个3d姿态候选再选择最佳的3d姿态同时用sparse算法来优化模型,大大减少了模型训练的时间。
其方法包括以下步骤:
一种基于卷积神经网络与sparse的三维人体姿态估计方法,包括以下步骤:
步骤一:采用hourglass网络训练数据集,其网络的输入为一组包含人体姿势图像的数据集,输出为n个关节位置组成的2d姿态的估计值x∈r2n,其中r2n为一个2行n列的矩阵;
步骤二:构建肢体约束矩阵ci;
步骤三:通过已知的弱相机投影矩阵m以及步骤一得出的2d姿态估计x和步骤二得到的肢体约束矩阵;构造拉格朗日方程作为整体函数、同时初始化迭代次数k=0;
步骤四:根据拉格朗日函数的构造,对各变量进行更新求解;
步骤五:循环迭代步骤四求解过程,直到整体函数取到最小值k或趋于一个最小值k,之后继续更新形式参数α、形式参数β、及常数μ,整体函数的值不会改变,若符合以上判定条件,则跳出循环,否则继续执行循环。
进一步,所述步骤二中,构建肢体约束矩阵ci具体包括:
设关节选择矩阵kj=[0,...,i,...,0],r3x3n为一个3行3n列的矩阵,kj∈r3×3n,其中第j块为3×3的单位矩阵,其余块为0,所以我们可以得到肢体约束矩阵
进一步,所述步骤三中,构造拉格朗日方程作为整体函数、同时初始化迭代次数k=0的具体过程称包括:
s.t.γ=x-m(bα μ),α=β
其中,l1为,α为形式参数,β为形式参数,x为2d姿态的估计值,x∈r2n,y为三维姿态,y∈r3n,||.||2表示2范数,||.||1表示1范数,γ代表着3d姿势重构的过程,b表示一组稀疏基,即b={b1,b2,...,bn},yi为第i个姿势,
进一步,所述步骤四中,根据拉格朗日函数的构造,对各变量进行更新求解的具体过程包括:
step1,通过对拉格朗日函数求的γ偏导数,并令其为0,计算可得:
其中,γk 1为γ的第k 1次取值,ηk为η的第k次取值,αk为α的第k次取值,λ1k为λ1的第k次取值;
step2,通过对拉格朗日函数求的β偏导数,并令其为0,计算可得:
其中,βk 1为β的第k 1次取值,θ为0.1,λ2k为λ2的第k次取值;
step3,通过对拉格朗日函数求的α偏导数,并令其为0,计算可得:
s.t.ztωz=0,i=1,....,m
其中,αk 1为α的第k 1次取值,z为一个矩阵,zt为z的转置矩阵,w为一个矩阵,ω为一个矩阵;
其中,αt为转置矩阵,mt为转置矩阵,bt为转置矩阵,cit为转置矩阵,μt为转置矩阵,d为一个矩阵;
step4,λ1可以通过优化求解如下公式得出:
step5,λ2可以通过优化求解如下公式得出:
step5,η可以通过优化求解如下公式得出:
ηk 1=min(ηk·ρ,ηmax),ηk 1为转置矩阵,ρ>1且ηmax为常量。
进一步,所述步骤五中,跳出循环则代表已经找出三维姿态估计的最优解y∈r3n,r3n为一个3行n列的矩阵,代表着3d姿势。
本发明的有益效果为:
目前,国内外的研究中,在单人姿态估计方面还存在速度不够快、准确率不够高,未考虑摄像机参数等问题。本发明提出一种基于卷积神经网络与sparse的三维人体姿态估计方法,主要特点是用硬肢体长度比约束来补充稀疏基表示,来减少不正确的姿势并且通过输出一幅图像的k个3d姿态候选再选择最佳的3d姿态同时用sparse算法来优化模型,大大减少了模型训练的时间。同时,本发明通过稀疏的基础组合来表示3d姿态;通过增加肢体长度约束来加强模型准确度;通过最小化2d姿态和3d姿态之间的l1范数测量误差来估计3d姿态;通过输出一幅图像的k个3d姿态候选再选择最佳的3d姿态。本发明的优点在于在在静态图像中可以估计出更好的3d姿态。
附图说明
图1为本发明的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图1,对本发明作进一步地详细说明。
如图1所示,本发明提出了一种基于卷积神经网络与sparse的三维人体姿态估计方法,其方法包括以下步骤:
步骤一:采用hourglass网络训练数据集。其网络的输入为一组包含人体姿势图像的数据集,输出为n个关节位置组成的2d姿态的估计值x∈r2n
步骤二:构建肢体约束矩阵ci。设关节选择矩阵kj=[0,...,i,...,0],kj∈r3×3n,其中第j块为3×3的单位矩阵,其余块为0。所以我们可以得到肢体约束矩阵
步骤三:通过已知的弱相机投影矩阵m以及步骤二得出的2d姿态估计x和步骤三得到的肢体约束矩阵,可以构造的拉格朗日方程如下,同时初始化迭代次数k=0:
s.t.γ=x-m(bα μ),α=β
其中x∈r2n,y∈r3n,||.||2表示2范数,||.||1表示1范数,γ代表着3d姿势重构的过程。b表示一组稀疏基,即b={b1,b2,...,bn},
步骤四:根据拉格朗日函数的构造,对各变量进行更新求解:
step1,通过对拉格朗日函数求的γ偏导数,并令其为0,计算可得:
step2,通过对拉格朗日函数求的β偏导数,并令其为0,计算可得:
step3,通过对拉格朗日函数求的α偏导数,并令其为0,计算可得:
s.t.ztωz=0,i=1,....,m
其中z=[αt1]t,
step4,λ1可以通过优化求解如下公式得出:
step5,λ2可以通过优化求解如下公式得出:
step5,η可以通过优化求解如下公式得出:
ηk 1=min(ηk·ρ,ηmax),ρ>1且ηmax为常量
步骤五:循环迭代步骤四求解过程,直到整体误差函数小于要求值。若符合以上判定条件,则跳出循环;否则继续执行循环。当循环退出,则代表已经找出最优解三维姿态y∈r3n。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。