基于整体-星型模型的人体姿态估计

2019-01-24 09:01石祥滨乔建忠
小型微型计算机系统 2018年12期
关键词:方位姿态部位

代 钦,石祥滨,乔建忠,刘 芳,

1(沈阳工程学院 信息学院,沈阳 110136)2(东北大学 计算机学院,沈阳 110819)3(沈阳航空航天大学 计算机学院,沈阳 110136)

1 引 言

人体结构用于描述人体各个部位的关联关系,组织局部的部位构成全局的人体,是姿态估计问题中一个主要的研究内容.姿态估计中的人体结构主要包括树型模型和星型模型等[1].树型结构可以比较直观地表示人体各个部位的关联关系,并且易于使用动态规划方法推理部位信息.因此大多数姿态估计方法采用树型模型对人体结构建模.现有的树型人体结构大多采用单模型表示人体部位.由于人体各个部位灵活度较高,基于单模型的树型人体结构无法描述多样化的人体姿态.此外,树型结构需根据人体各部位的连接关系完成推理,当某一部位出现错误匹配时会将该错误传输到其孩子节点造成累计误差,从而影响其所有子孙节点的的正确识别.

由于人体各个部位分别分布在躯干周围的几处相对稳定的位置(如图2所示),可以使用星型模型[2-4]描述人体部位相对于躯干的分布关系.星型人体结构将各个部位看做独立的局部组件,所有部位拥有相同的根节点.其优点是连接方式单一、推理简单,某一局部部位的错误识别不会被传输至其他节点.但是,单模的星型模型仍然无法描述多样化的人体姿态.姿态多样化主要分为人体整体姿态的多样化和单个部位姿态的多样化.

针对整体姿态的多样化问题,本文首先判断人体躯干的方位,即整体方位,然后利用各个部位相对于整体的方位信息,描述人体部位的分布情况.这样可以利用人的整体结构对局部部位进行修正,降低复杂姿态对部位识别的影响.例如,对于较难识别的倒立的人体,确定整体方向为倒立之后,可以根据人体部位的分布关系增加其他部位被正确识别的概率.针对单个部位姿态的多样化问题,本文通过多模星型模型描述各个部位相对于整体不同方位的姿态.多模星型模型主要用于描述相对于躯干(整体)具有较大灵活度的四肢.例如,举起的手臂与垂下的手臂分别位于躯干的不同位置,使用单一的星型人体结构很难准确检测到手臂.因此,使用多个模型表示人体结构易于捕获处于不同方位的人体部位.此外,由于星型模型无法描述人体部位的相邻连接关系,需要融合树型模型来完成人体结构建模.

本文提出一种结合多模整体模型和多模星型模型的人体姿态估计方法.首先,使用多模整体模型检测人体整体(表示躯干)方位;然后提出一种多模型的星型模型表示具有一定方位偏差的人体部位和整体之间的关系.为了更好地描述相邻部位之间的分布关系,在整体-星型模型中融合树型模型.

2 相关工作

人体结构主要包括星型模型和树型模型.目前大多数姿态估计方法都采用树型模型完成人体结构的建模[5-8].其各个部位以树形结构组织为一个整体,每一部位节点只有唯一的父节点,便于有效地推理.但是树形结构容易受到累计误差的影响,导致人体姿态的整体错误[1].星型模型将各个人体部位视为独立的节点,各个节点之间无直接的几何关系[1].例如,Poselets[9]使用星型模型为人体部位建立各自的表观模型,为了更好地识别特征相似的相邻部位,将其作为一个部位集合完成建模.文献[2-4]提出了利用星型模型(constellation model)的目标识别方法,识别单个整体目标时将其表示为若干局部部件,并使用星型模型结构表示各个部位的关系.该方法主要用于刚体目标的识别,例如汽车,但对于人体局部部位的描述具有一定的局限性.

针对姿态多样性问题,国内外研究者提出了多种基于整体多样化和部位多样化的姿态估计方法.Yang等[7]提出了FMP模型,使用基于多方向的部位检测器完成人体整体姿态的估计.但该模型主要使用了单个部位方向的检测器,未考虑整体方位的影响.Pishchulin等[10]提出使用Poselets描述人体部位集合,并根据人体结构方向的星型先验信息将这些部位集合关联为一个人体.该论文重点考虑了局部的方向,未使用单独的整体方向检测器.Felzenszwalb等[11]提出了DPM(deformable part model)完成了人体检测,首先从低分辨率HOG(histogram of oriented gradient)特征获取人体整体方位,然后在高分辨率HOG特征中完成多个形变部位的搜索.该方法获得较高的行人检测准确率,但所捕获的局部部位的信息不够准确.Toshev等[12]使用深度学习方法,提出DeepPose姿态估计方法,优化了人体部位检测器.通过级联DeepPose回归器完成了对图像的整体推理,获得了当时较好的姿态估计结果.通过对多个姿态估计方法结果分析发现,目前的基于PS模型的方法对于人的头部和躯干的识别结果较准确,而对肢体的识别率较低.Dai等[13]提出一种基于整体方向的姿态估计方法,通过人的头-躯干检测器确定人体方位,进而提高整体的姿态估计效率.但是该方法只考虑了相邻部位的位置关系,未考虑整体方向与各个局部部位的相对分布关系.文献[14]提出的基于abstraction部位的姿态估计方法,通过对称部位的合并将推理过程中的简单循环去除,并且可以通过动态规划有效地找到部位位置的计算.文献[15]提出端对端姿态估计框架,包括DCNNs和DMP(deformable mixture of parts),将领域先验知识加入到框架中,调整了学习过程,不管是循环模型或者树型模型都提高了灵活性.文献[16]提出一种基于个体的卷积神经网络完成姿态估计,使用一种针对遮挡的自我评价模型,通过个性化的外观特征完成人体部位的针对性识别.

为了降低树型人体结构的累积误差,并解决姿态估计受到人体姿态多样化影响的问题,特别是非直立姿态误检率较高的问题,本文提出结合整体模型和星型部位模型的人体姿态估计方法.

3 问题分析

大多数的人体姿态估计方法都采用树型结构模型,根据人体各个部位的物理关联关系将人体表示为一个树型连接刚体结构.例如,PS模型[5]通过描述人体单个部位和相邻两个部位的关系建立人体结构模型,根据以上两项的匹配得分确定最终的姿态结果.该方法对于相对直立的人体姿态获得了较好的结果[7],但是当人体处于非直立状态(特别是倒立)时基于树型结构的方法结果会出现较多错误匹配.主要原因是:首先,树型模型中父节点的误识别直接影响了孩子节点以及其他子孙节点的识别.例如躯干错误会传输至腿部.其次,由于人体整体和部位姿态的多样性,无法使用统一的单模型表示人体结构.例如,非直立人体易被误判为直立状态.在标准数据集和日常图像中存在大量的非直立人体,例如,LSP测试集的1000幅图像中人体躯干倾斜角度分布情况和对应的FMP姿态估计结果,如表1所示.

表1 躯干倾斜角度θ分布和相应的FMP[7]结果
Table 1 Distribution of torso inclination θ and corresponding result of FMP[7]

倾斜角度θ分布/度图像数量/幅FMP结果/%0≤θ≤3080770.430<θ≤6010250.160<θ≤902930.3900<θ≤120216.7120<θ≤150161.9150<θ≤180250.8

由表1可见,人体倾斜角度越大姿态估计准确率越低,因此针对人体整体姿态的多样性,需要充分考虑人的整体方位,建立人体多模整体模型,再根据整体方位计算各个部位的分布位置.准确的整体方位可以通过图像的全局引导,完成各个单个部位的正确识别.

图1给出了FMP(flexible mixture of parts)[7]方法对非直立人体的姿态估计结果,如图1所示,该方法为基于PS的较好方法之一.其中包含了3个非直立的人体图像,FMP方法将以上人的姿态直接误判为直立状态,而导致姿态估计错误.主要原因是未考虑人体整体方向导致部位误匹配,根据树型关联关系搜索部位,继而引起累计误差.

针对树型模型的累计误差问题,可以引入星型模型简化人体结构,减少误差信息的传播.由人体部位分布图2可见,各个部位集中在躯干周围的几处相对稳定的位置,因此可以根据头部和四肢相对于躯干的位置完成星型人体结构的建模.文献[2-4]提出的基于星型模型(constellation model)的物体识别方法,通过星型结构表示单个目标的各个部位之间关系.但是,现有的单模星型模型未充分考虑人体整体和部位姿态的多样性.针对人体部位姿态的多样性,本文需要构建多模星型人体结构,表示各个部位相对于整体的多种方位信息.

图1 FMP[7]姿态估计结果Fig.1 Pose estimation result of FMP[7]

图2给出了人体部位相对于躯干的分布图.根据标准数据集LSP中人体各个部位的位置,以躯干部位作为基准映射出其他部位的分布情况.

图2 人体各个部位的分布Fig.2 Layout of human body parts

综上所述,为了减少部位之间传输信息的累积误差,并表示多样化的人体姿态,本文提出一种结合整体模型和星型模型的人体结构表示部位之间的关系,使用多模型的整体-星型人体结构表示具有多个位置的人体部位.同时,因为人体目标的特殊性,简单地使用星型模型描述各个部位结构特征不利于表示人体相邻部位间的关联性.因此,根据整体模型、星型模型和树型模型共同完成姿态估计.

4 基于整体-星型模型的姿态估计

本文提出一种多模型的整体-星型人体结构完成人体姿态估计.整体流程如图3所示.

训练时分别对训练集中人体整体和K个部位完成T个方向的聚类,从而获得整体模型、部位模型、星型模型和树型模型(包括一致性模型).为了融合星型模型和树型模型完成姿态估计,需要在训练过程中同时使用2个模型完成参数的学习.

在检测阶段,首先通过整体模型获得人的方位,然后分别根据单个部位模型、形变模型、一致模型和星型模型的匹配得分获得姿态估计总体匹配分数,完成优化处理获得最佳姿态.计算方法如公式(1)所示.

S(I,p,t)=R(I,p)+P(I,p)+D(I,p)+C(t)

(1)

其中,S(I,p,t)表示某一姿态的总体得分,R(I,p)为星型模型匹配得分,P(I,p)为单个部位模型匹配得分,D(I,p)为形变模型匹配得分,C(t)为一致性模型匹配得分.整体模型匹配得分计算方法在4.1节给出,星型模型得分R(I,p)在4.2中给出,单个部位模型、形变模型和一致性模型在文献[13]中给出.

图3 基于整体-星型模型的姿态估计Fig.3 Pose estimation with global and constellation model

设I表示测试图像;pi表示第i个部位信息,pi=(x,y,s),分别描述了第i个部位在图像中的x,y坐标值和尺度.第i个部位的方向使用ti表示.其中部位编号i∈{1,…,K},pi∈{1,…,L},ti∈{1,…,T}.

4.1 多模人体整体模型

通过对多个研究的实验结果的总结发现,姿态估计中人的头部和肢体部位的检测率较高,腿部次之,胳膊-手部位的检测率较低.主要原因是,人的四肢具有相当大的自由度,在背景和衣着比较混乱的情况下很难正确检测.为了在后续的部件检测过程中获取更多的先验信息,减少各部件的搜索范围,首先判断图像中人的整体位置和方向.整体模型描述了人体的2D位置和方向,位置由头-肢体窗口确定,方向根据头部和肢体的相对位置确定.因为目前的算法对于头部和肢体的检测准确较高,同时为了提高执行效率,本文只使用头部和肩部建立整体模型,不考虑四肢.图4给出了人体整体模型.

图4 四个方向的人体整体模型图Fig.4 Global body model for 4 orientation

为了描述人体的整体姿态多样性,准确检测人体整体的多个方位,图4给出T=4个不同的整体检测器完成人体检测.多个模型更有利于捕获处于不同状态的人体整体方位.多模整体模型匹配得分计算方法如公式(2)所示.

(2)

人体整体检测过程如下:

Step2.计算测试图像I的各个位置及尺度pG=(xG,yG,sG)的HOG特征φ(I,pG)[17];

Step3.对于图像I的所有位置和尺度pG分别计算第tG个模态整体模型的匹配分数G(I,p),获取候选整体姿态.后续星型模型中需要根据人体整体方位完成各个部位的形变模型匹配得分的计算,因此为了保留正确的人体姿态需根据设定阈值获取若干整体方位.

4.2 多模星型部位模型

星型人体部位模型作为一种人体结构的几何约束关系,表示了各个部位相对于整体的分布配置[18].大多数的人体结构都采用树型模型,主要是因为树型结构较简单且易于推理[11].但是树结构[19,20]只使用了各个部位的相邻关系,未考虑整体分布情况,容易造成误差积累.

针对树型人体模型中出现的误匹配问题,本文提出多模星型部位模型,描述人体各个部位的整体分布信息,如图5所示.

图5 星型部位模型图Fig.5 Constellated part model

星型部位模型给出了所有人体部位相对于根节点(root)的分布关系,根节点为人体整体方位.文献[2-4]中使用的星型模型为每一部位的单一模型且未给出整体方位信息.而本文的星型模型为相对于人体整体模型的ti个不同方位的多模型.这样可以更加有效地捕获具有位置偏差的单个部位,并有效地完成各个部位的约束.该模型主要通过人体整体和单个部位的相对距离关系,计算各个部位的分布匹配得分.具体方法如公式(3)所示.

(3)

ψ(pi-pG)=[dxdx2dydy2]

(4)

多模星型模型计算过程如下:

Step2.计算测试图像I中人体整体方位与各个部位之间的欧氏距离ψ(pi-pG)[11];

Step3.对于图像I的所有位置和尺度p,分别计算第tG个整体模型与所有第i个部位的匹配分数之和R(I,p).

4.3 算法描述

本文首先通过整体模型获得人的整体方位;然后分别根据单个部位模型、树型形变模型和星型模型的匹配得分获得姿态估计总体匹配分数;最终完成优化处理获得最佳姿态.基于整体-星型模型的姿态估计具体算法如下所示.

输出:人体各个部位模型匹配得分P(I,p)

1 获取测试图像I

2 for each测试图像Ildo

3 for each第ti个类别 do

5 end

6Il←缩小图像I为Il+1,缩放比例为1.2

7 ifIl长或宽<σ(最小图像大小)

8 break

9 end

10 end

12 for each 测试图像Ildo

13 for each 第i个部位do

14 for each第ti个类别 do

17 for each 孩子节点部位

19 end

20 end

21 获得第i个节点的得分S(I,pi,ti)

22 end

23 获得根节点的得分S(I,p,t)

24Il←缩小图像Il为Il+1,缩放比例为1.2

25 ifIl长或宽<σ(σ为阈值)

26 break

27 end

28 end

5 训 练

训练的目的是获得人体模型的参数,即选择一系列的最有识别参数[1].

S(I,z)=β·Φ(I,z)

(5)

s.t.yi(βT·ρ(I,z)+b)≥1-yi·fβ(Ii,zi)

(6)

其中C表示惩罚因子,fβ表示决策函数.通过随机梯度下降法获得最优参数β.

6 推 理

通过调整图像I中的人体部位的位置p以及方向t,使得公式(1)结果最大化.为了准确有效地计算出各个部位的数据,同时融合了星型模型和树型模型完成推理,具体计算方法,如公式(7)所示.

(7)

(8)

mi(tj,pj)计算了节点j在位置pj和方向tj情况下节点i传递到父节点j的得分.保证scorei(I,ti,pi)为当前节点的最大值,当获得根节点的得分最大值时的pi与ti即为最优姿态.

7 实 验

7.1 实验设置

数据集.本文在数据集IP(image parse)[21]和LSP(leeds sport poses)[22]上进行训练和测试,以上两个数据集中图像均为包含整个人的图像.人体正样本分别使用标准数据集IP的100幅图像和LSP的1000幅图像.负样本采用INRIA[17]数据集中不包含人体的图像.将人体部位数量设置为K=26,人体整体和局部部位的方向T=6.

时间效率.实验环境为win7操作系统;i5,3.1G的CPU;matlab代码实现算法.在IP数据集上每幅图像姿态估计平均时间为2秒,在LSP数据集上每幅图像平均时间为1秒.因为在IP数据集中完成了对原始图像的旋转和对称之后进行训练,实际训练图像为1000幅,IP数据集上训练时间约为40小时,LSP数据集上约为30小时.

评价方法.本文采用部位正确比例PCP[23]完成人体姿态估计的量化评价.目前主要有两种评价标准strict PCP和loose PCP[23].本文采用第一种标准完成结果比较.

7.2 IP数据集结果

本文在IP数据集上与其他姿态估计方法完成比较,给出了strict PCP结果如表2所示.

表2 数据集IP上的结果比较(%)
Table 2 Comparison on IP dataset(%)

方法躯干大腿小腿上臂下臂头平均Andriluka等[25]86.366.360.054.635.672.759.2Yang等[7]82.936.063.955.135.477.660.7Pishchulin等[10]82.274.663.754.939.870.762.9Yang等[26]85.974.968.363.442.786.867.1Johnson等[26]87.674.767.167.345.876.867.4Toshev等-80757150--本文方法87.876.672.062.042.084.967.8

从IP数据集的实验结果(表2)可知,本文的躯干和平均结果均超出了其他算法(Toshev等[12]未给出头部和躯干的识别结果).Andriluka等[25]采用基本的PS结构模型,说明本文提出的整体星型分布模型有利于表示处于多个方向的人体整体和部位.Yang等[7]提出的FMP使用部位的方向表示各个部位的姿态多样性.Yang等[26]在其改进的FMP模型获得了较高的姿态估计结果,头部识别率达到86.8%.本文在此基础上额外考虑了整体方位和部位分布,在躯干、腿部和平均结果超出了文献[26].Pishchulin等[10]提出poselet表示人体姿态的中层特征,获得62.9%的结果.Johnson等[26]训练模型时使用额外的10000幅图像,提高了多种人体姿态下的算法健壮性.本文使用约定的100幅图像作为数据集完成模型的训练,仍然在躯干、腿部、头部和平均结果超出了文献[26].说明本文的基于星型模型方法具有较好的健壮性.Toshev等[12]提出DeepPose方法,挖掘人体姿态的多层特征,同时使用LSP原始和扩展[26]两个数据集总共11000幅图像完成了模型训练.本文的训练数据集的100幅图像,均为IP数据集约定的训练图像,因此训练数据量方面明显处于劣势.

图6给出了数据集IP上,本文方法(右图)与FMP[7]方法(左图)的比较结果.

由图6可见,FMP方法将非直立人体姿态误判为正立姿态,而本文的整体-星型模型正确地捕获了人体整体方位和大部分的部位分布位置.主要原因是本文算法的整体模型可以捕获多个方位的人体.但是由于受到遮挡、衣物、光照等噪声的影响,有些局部部位的识别结果不够理想.

7.3 LSP数据集结果

LSP数据集上与其他姿态估计算法的比较结果如表3所示.

由LSP数据集的实验结果(表3)可知,本文的上臂、头部和平均结果均高于其他算法.Pishchulin等[10]的基于poselets的方法通过人体部位的中层特征描述了整体姿态,平均PCP达到60.8%.Yang等[7]的基于FMP的方法,提出局部部位方向的表示方法,获得了较好的躯干部位的识别结果.Eichner等[24]在FMP方法基础之上提出分别对前景和背景一致性的表示方法,提高了FMP识别结果.说明本文的星型模型有利于描述人体部位分布情况.Toshev等[12]的DeepPose方法在该数据集上同样使用了11000幅图像作为训练集(标准训练集为1000幅),获得了较高的识别结果,但本文方法在上臂的识别结果高于该方法.说明本文在该数据集上的训练数据量方面处于劣势,但通过整体模型和星型模型描述人体整体方位和局部部位的分布,较好地捕获了人体各个部位.

图6 数据集IP上与FMP方法的姿态估计结果比较Fig.6 Pose estimation result on IP compared with FMP

由于本文引入星型部位模型表示人体整体部位的分布,对于多样化的人体姿态估计结果优于其他算法.如图7所示,给出了本文(右图)与FMP[7]方法(左图)的比较结果.

图7 数据集LSP上与FMP方法的姿态估计结果比较Fig.7 Pose estimation result on LSP compared with FMP

由图7可见,本文方法与FMP方法结果比较可知,FMP方法将大部分的非直立人体姿态判断为正立姿态,但本文的星型模型正确地捕获了大部分的人体部位分布位置,例如(a),(b),(c),(d),(e).根据准确的整体部位分布信息,获得了较好的局部部位识别结果,例如(a)和(c);部分图像则获得了大多数部位正确的结果,例如(b),(d)和(e).对于部分具有挑战性的人体姿态结果不够理想,例如(f).

8 结 论

针对人体姿态的整体和局部部位多样性问题,本文提出一种结合整体模型和星型模型的人体姿态估计方法,引入多模的整体-星型模型描述人体结构.首先,使用人体整体检测器完成人体整体方位的检测,获取整体姿态多样化的人体方位信息,为后续工作提供准确的整体信息,避免出现人体整体姿态误检导致的误差累计问题;然后,提出一种多模型的星型

表3 数据集LSP上的结果比较(%)
Table 3 Comparison on LSP dataset(%)

方法躯干大腿小腿上臂下臂头平均Pishchulin等[10]84.169.565.652.535.977.160.8Yang等[7]87.575.768.054.233.978.162.9Eichner等[24]86.274.369.356..537.480.164.3Toshev等[12]-77715638--本文87.375.570.958.534.480.764.7

结构表示人体各个部位和整体之间的若干个关系.该模型通过人体整体和单个部位的相对距离关系,计算各个部位的分布匹配得分,可以有效地捕获具有位置偏差的单个部位,完成各个部位相对于整体的约束.最后,为了更好地描述相邻部位之间的分布关系,在整体-星型模型中融合树型模型完成姿态估计.数据集IP和LSP的结果表明,该方法提高了姿态估计准确率,尤其提高在人体姿态多样的情况下的结果.

猜你喜欢
方位姿态部位
每个女孩都有不允许别人触碰的隐私部位
认方位
攀爬的姿态
全新一代宋的新姿态
五个部位冬天尤其要保暖
喜欢什么
Word Fun
另一种姿态
练思维:看图学方位
阅读是最美的姿态