首页> 中国专利> 一种基于深度卷积神经网络的人体姿势识别方法

一种基于深度卷积神经网络的人体姿势识别方法

摘要

该发明公开了一种基于深度卷积神经网络的人体姿势识别方法,属于模式识别与信息处理技术领域,涉及计算机视觉方面的行为识别任务,尤其涉及基于深度卷积神经网络的人体姿势估计系统的研究与实现方案。该神经网络具有的独立输出层和独立损失函数是为人体关节定位而设计的。ILPN由一个输入层,7个隐含层,2个独立的输出层组成。其中第1~6个隐含层是卷积层,用于特征提取,第7个隐含层(fc7)是全连接层。输出层由两个独立的部分组成:fc8-x和fc8-y。其中fc8-x用于预测关节的x坐标,fc8-y用于预测关节的y坐标。在模型训练时,这两个输出都会有一个独立的softmax损失函数来指导模型的学习。从而具有训练简单迅速,计算量小,准确度高的优点。

著录项

  • 公开/公告号CN105069413A

    专利类型发明专利

  • 公开/公告日2015-11-18

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201510444505.1

  • 发明设计人 董乐;张宁;

    申请日2015-07-27

  • 分类号G06K9/00(20060101);

  • 代理机构51203 电子科技大学专利中心;

  • 代理人张杨

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-12-18 12:16:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-06

    授权

    授权

  • 2015-12-16

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20150727

    实质审查的生效

  • 2015-11-18

    公开

    公开

说明书

技术领域

本发明属于模式识别与信息处理技术领域,涉及计算机视觉方面的行为识别任务,尤其涉 及基于深度卷积神经网络的人体姿势估计系统的研究与实现方案。

背景技术

人体姿势估计是指在图像中定位人体关节或人体各部分位置的过程。它是计算机视觉中的 一个关键问题,是基于图像的行为识别的基础技术。人体姿势估计可被用于视觉监控系统,人 体分割,机器人控制,体感游戏等领域。人体姿势估计的难点在于:身体关节点小,不易检测; 身体自身遮挡严重,外貌变化大,面内和面外旋转(in-planeandout-planerotations)造成视觉 变化大。姿势估计的主流方法都是基于图结构模型(PS,PictorialStructuresModel)的。图结 构模型是一个通用物体结构表达模型。在图结构模型下,一个物体(或人)的结构被表示为一 个一元项和一个二元项的和,其中,一元项表示人体单独的一个部分,二元项表示两个(或多 个)部分之间的空间关系。一元项和二元项的和构成一个能量函数,最小化这个能量函数可以 得到一个最优的结构表达。基于图结构的人体姿势估计方法的流程为:

1.人体每个单独部分的表示。通常的方法是在人体的特定部分提取图像特征来训练可以 表示该部分的模板。在训练好模板以后,以重叠的滑动窗口(overlappingslidingwindows)去 扫描图片,检测出许多可能的位置;

2.人体各个部分的空间关系的表示。人体各部分空间约束可以是多方面的,例如,各个 部分同时出现的概率,在同一直线上的概率以及角度关系,距离约束等等。空间约束构成了图 结构模型的二元项;

3.人体姿势推理。由于人体姿势复杂多样,人体各部分之间存在多种空间约束。如果对 人体各个部分都施加约束,最终会形成一个图。这个图的点(node)表示人体的各个部分(即 一元项),边(edge)表示人体各个部分的约束(即二元项)。优化这样一个问题会耗费大量时 间,甚至使问题不可计算。为了高效的推理出人体姿势,通常会将各个部分之间的约束简化为 两个相邻部分的空间约束,即图结构简化为树形结构。

传统方法有两个局限性。首先,人工设计的图像特征具有局限性,例如,有的特征适合表示具 有清晰纹理的物体,有的特征适合表示具有清晰轮廓的物体。设计一种适合人体姿势估计的特 征需要大量的经验和研究。除此之外,空间模型也具有局限性。传统的人体姿势估计方法为了 计算效率,通常需要假设人体姿势构成树形结构。这种假设显然会限制其模型的表达能力,例 如,在有人体存在自身遮挡的情况下,人体姿势通常并不是树形的,而是有环图。在树形结构 的假设下,人体姿势估计的准确度和使用范围都被限制了。

深度学习技术的逐渐成熟,为人体姿势估计提供了新的工具。基于深度学习的方法可以分 为两类:一类是利用深度卷积神经网络来学习图像特征,以代替传统的人工设计的特征;另一 类是利用深度卷积神经网络的非线性映射做非线性推理,以突破树形结构的限制。但现有的基 于深度学习的方法主要有以下缺陷:

1.大多数方法只是简单地将AlexNet直接应用到姿势估计中。而AlexNet最初是为图像 分类任务而设计的;

2.大多数方法将人体关节定位问题阐述为回归问题,这样的阐述虽然简单,但却让深度 网络的训练变得困难;

3.有的方法通过训练基于卷积神经网络的检测器(ConvolutionalPartDetector)来检测人 体部分的位置。这种方法具有较好的准确度,但由于其需要使用滑窗进行检测,它的效率并不 高;

为了解决这些问题,本方法为姿势估计阐述为分类问题,并设计了一个针对姿势估计的深 度网络:ILPN(IndependentLossesPoseNet)来进行关节定位。在FLICdataset上的结果表明, 我们的方法取得了当前最高的准确率。在Buffydataset上的跨数据集泛化能力(cross-dataset generalization)测试取得了具有竞争力的结果。值得一提的是,我们的模型训练和测试都是在 廉价设备(Dual-CoreCPU+NVGTX750)上进行的。

发明内容

本发明的目的在于提出一种快速准确地估计出RGB图像中人体姿势的方法,由此,为基 于图像的行为识别提供良好的基础。

为了克服传统姿势估计方法由于人工设计图像特征和空间模型导致姿势估计准确度上的 不足,本发明研究了如何在保证姿势估计速度的前提下,获得更高的姿势准确率。本发明设计 了一个名为ILPN(IndependentLossesPoseNet)的模型。该模型具有的独立输出层和独立损失 函数是为人体关节定位而设计的。ILPN由一个输入层,7个隐含层,2个独立的输出层组成。 其中第1~6个隐含层(conv1~conv6)是卷积层(convolutionallayer),用于特征提取,第7个 隐含层(fc7)是全连接层(fully-connectedlayer)。输出层由两个独立的部分组成:fc8-x和fc8-y。 其中fc8-x用于预测关节的x坐标,fc8-y用于预测关节的y坐标。在模型训练时,这两个输出 都会有一个独立的softmax损失函数来指导模型的学习。

一种基于深度卷积神经网络的人体姿势识别方法,该方法包括:

步骤1:获得训练图像并对图像进行预处理:首先对训练图像进行数据扩展,再对扩展后 的图像进行灰度处理;

步骤2:使用步骤1获得的训练样本训练人体姿势的神经网络;

步骤2.1:对图像依次进行卷积处理,MaxPooling处理,局部响应归一化处理,为神经网 络的第一层;

步骤2.2:对步骤2.1的结果依次进行卷积处理,局部响应归一化处理,为神经网络的第 二层;

步骤2.3:对步骤2.2的结果依次进行4次卷积处理,为神经网络的第四~六层;步骤2.4: 将第六层以全连接的方式获得第七层;

步骤2.5:将第七层以全连接的方式获得输出层:输出层被分为两个独立的部分,每个部 分都额外与一个独立的损失函数相连接,分别计算模型预测的x和y坐标的误差,即在后向传 播时,两个损失函数独立计算后向传播的梯度,输出层两个独立的部分也独立计算后向传播的 梯度;当这两部分的梯度都计算完成后,第七层对这两部分的梯度求和并计算自己的梯度;通 过计算输出层两个独立部分的最强响应神经元,获得一个人体关节的坐标。

步骤2.6:依次使用训练图像多次重复步骤2.1~步骤2.6的方法训练神经网络,直到模型 的损失收敛,即损失降到一定程度后不再降低,获得可准确定位人体关节的神经网络;

步骤2.7:通过步骤2.1~步骤2.6,对每个关节训练一个深度神经网络来获得多个不同关节 的坐标,这些坐标最终构成一个完整的人体姿势;

步骤3:利用获得测试图像,利用步骤2训练得到的人体姿势估计神经网络来估计测试图 像中的人体姿势;最后,通过查找步骤1中获得的坐标映射表,将统一尺度下的人体姿势映射 回原图像尺度下。

进一步的,所述步骤1中对训练图像的数据扩展包括:对图像RGB通道及其标注同时进 行多次中心旋转,水平平移,水平翻转以及将图像尺寸伸缩到统一大小。

本发明具有以下优点:

将关节定位问题建模为坐标分类问题,而不是回归问题。这极大地降低了模型的训练难度。 因为坐标分类问题将模型的输出约束到图片坐标空间之内,而回归问题的输出是整个实数空间。 同时,两个独立的输出层以及独立的损失函数在模型训练是可以避免相互干扰。模型不会因为 fc8-x的错误输出而惩罚fc8-y,反之亦然。最后,因为fc8-x和fc8-y预测的是同一个关节坐标 的不同维度,所以他们可以共享该关节的视觉特征,即共享conv1~conv6所提取的特征。

1.从姿势估计的准确度考虑,本发明利用深度卷积神经网络强大的学习能力学习对人体 姿势估计有效的图像特征,避免了人工设计的图像特征的局限性;

2.从方法的适用范围考虑,本发明利用深度神经网络对图像特征进行非线性映射来获得 人体姿势,本发明避免了人工设计空间模型的局限性;

3.从模型训练效率和系统运行效率考虑,本发明的深度卷积神经网络的输出层经过特殊 设计,具有易训练,准确度高的特点。通过合理控制深度卷积神经网络的规模。使系统在运行 时节省了空间和时间开销。

附图说明

图1是本发明所述的系统框架。

图2是本发明所述的深度卷积神经网络结构。

图3是本发明所提取的人体姿势特征。

具体实施方式

为解决上述问题,本发明提出的基于深度卷积神经网络的人体姿势估计系统具体实施步骤 如下:

步骤一:预处理。数据增强对于深度卷积神经网络的训练有至关重要的作用。在模型训练 阶段,本发明针对姿势估计问题,采用的数据增强方法是:通过旋转、平移、尺度变换等方式, 对训练样本进行增强,迫使模型学习到的具有旋转、平移、尺度变换具有鲁棒性的特征。同时, 这些操作也为模型训练提供了大量伪造样本。在模型运行阶段,只需要对输入图片进行缩放, 使之适应深度卷积神经网络的输入层大小,并且记录缩放前后像素坐标的对应关系,保存为映 射表,以备后处理使用。

步骤二:人体姿势图像特征的提取。人体姿势的特征学习是通过多层卷积神经网络从大量 训练样本中学习得到的。在模型运行阶段,模型从图像中提取特征。本发明使用6个卷积层来 提取图像特征。并且为了减小模型的复杂度,在第一层卷积层后使用了一个MaxPooling操作。 为了提高模型的推广性,在MaxPooling和第二层卷积层后都进行了局部响应归一化操作。具 体的网络结构为:

(1)输入层大小为220*220*3,即输入图片为长宽均为220个像素的RGB图像,我们将图像存储 在数据库中;

(2)第一层隐含层是卷积层+MaxPooling+局部响应归一化(LocalResponseNormalization)的 模式,.已有大量实验证明这是一种较好的图像特征提取模式:

011=Conv(X220×220×3,K10×10×3,s=2,n=96)(公式1)

021=MaxPool(011,K4×4,s=2)(公式2)

031=LRN(021,α=10-4,β=0.75,κ=2,m=5)(公式3)

其中,X是第一个隐含层的输入,即RGB图像;分别是第一个隐含层中卷积层 的输出,MaxPooling的输出,以及局部响应归一化的输出;K是卷积核(Kernel),它由多个 神经元(neuron)组成;s是卷积核在x和y方向上移动的步长;n是卷积核的个数;α,β,κ,m 是LRN的参数,利用相邻m个卷积核进行归一化:

bx,yi=ax,yi(κ+α·Σj=max(0,i-n/2)min(N-1,i+n/2)ax,yj)β

(3)第二层隐含层是卷积层+局部响应归一化的模式:

012=Conv(031,K6×6×2,s=2,n=256)(公式4)

022=LRN(012,α=10-4,β=0.75,κ=2,m=5)(公式5)

虽然MaxPooling可以降低模型的复杂度,但是会损失像素精度。而对于姿势估计而言, 关节定位的精度是主要需求之一,所以我们只在第一层隐含层使用MaxPooling。

(4)第三层隐含层:

03=Conv(022,K6×6×96,s=1,n=256)(公式6)

(5)第四层隐含层:

O4=Conv(O3,K5×5×256,s=1,n=384)(公式7)

(6)第五层隐含层;

O5=Conv(O4,K7×7×384,s=1,n=256)(公式8) (7)第六层是卷积层,卷积核大小为7*7,FeatureMap个数为256,步长为1。

O6=Conv(O5,K7×7×256,s=1,n=256)(公式9)

步骤三:人体姿势图像特征到人体姿势的映射。本发明通过两个全连接层实现非线性变换。 映射的输入是步骤二生成的256个FeatureMap,它们以全连接的方式连接到第七层(全连接 层),第七层再以全连接的方式连接到第八层(输出层)。输出层被分隔为两个独立的部分,分 别表示图像的两个坐标。在训练的时候,这两个独立的部分分别设置一个softmax损失函数来 指导模型的学习。具体的网络结构为:

(8)第七层是全连接层,神经元个数为1024个:

oi7=Σj=17×7×256ReLU(wj7·oj6+bj7)

其中,是全连接层的第j个神经元,和是全连接层的第j个神经元与第六层隐含层 的连接参数;ReLU是受限的线性单元(RectifiedLinearUnits),其计算公式如下:

ReLU(z)=zifz>00otherwise

ReLU的使用使神经网络的训练时间极大的缩短,并且对过拟合起到一定的抑制作用。

(9)输出层是全连接层,神经元个数为440个,输出层后连接损失层,损失层只用于训练神经网络;

损失层是两个softmaxloss,第一个softmaxloss连接到输出层的前220个神经元(fc8-x), 第二个softmaxloss链接到输出层的后220个神经元(fc8-y)。fc8-x的每个神经元表示图像坐 标系下一个像素的x坐标,fc8-y的每个神经元表示图像坐标系下一个像素的y坐标。通过fc8-x 和fc8-y神经元的响应可以唯一确定一个图像坐标系下的一个像素点:

(x^i,y^i)=(arg>max(ox),argmax(oy))

其中,是模型预测的第i个关节的坐标,ox和oy分别是fc8-x和fc8-y的输出向量, argmax()用于计算最大值所在的位置。

由于使用了两个独立的输出层和独立的损失函数,在使用后向传播算法(BackPropagation) 时,第七层必须等待fc8-x和fc8-y的梯度都计算完成以后才开始计算自己后向传播的梯度。 fc8-x和fc8-y第n个神经元的计算公式为:

1oss(o,k)on=pk(o)-δnk

其中,

δnk=1n=k0nk

其中,o为fc8-x或fc8-y的输出,n为神经元编号,k为真值(groundtruth)神经元的编 号,loss()是softmax函数

步骤四:在模型运行阶段,将步骤三输出的关节坐标通过步骤一记录的映射表,还原到预 处理之前的图像坐标下。最终,多个关节坐标的组合构成一个完整的人体姿势。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号