该发明专利技术公开了一种基于栈式自编码的头部姿态估计方法,该发明专利技术属于计算机视觉技术领域。主要思想是提出利用栈式自编码器,建立头部深度图像和姿态之间的非线性映射关系。本发明专利技术首先采集大量头部深度图像作为训练样本,同时提取梯度方向直方图特征,然后记录对应的头部姿态。之后,设计栈式自编码器,在训练样本和标定姿态数据上,利用梯度下降法学习栈式自编码器的各层参数。最后,对于待估计姿态的头部图像,提取梯度方向直方图特征,根据上述已学习的栈式自编码器估计头部姿态。与传统的头部姿态估计方法相比,该方法能够模拟输入特征到头部姿态的复杂映射关系,有效的克服了浅层模型估计准确性不高的问题。
A self encoding head pose estimation method based on stack
The invention discloses a self encoding head pose estimation method based on the stack, the invention belongs to the technical field of computer vision. The main idea is put forward using the stack from the encoder, the nonlinear mapping between a head depth image and attitude. The invention collects a large number of head depth images as training samples, and extracts the histogram feature of the gradient direction, and then records the corresponding head posture. After the design of stack from encoder in the training sample and calibration of attitude data, parameters of each layer by using the gradient descent method to learn from the encoder stack. Finally, to estimate the head pose image extraction, histogram of gradient, according to the above study has stacked the auto encoder head pose estimation. Compared with the traditional head pose estimation method, the proposed method can simulate the complex mapping relationship between input features and head pose, and effectively overcome the problem that the estimation accuracy of the shallow model is not high.
【技术实现步骤摘要】
本专利技术属于计算机视觉
,涉及图像中的头部姿态估计问题。
技术介绍
头部姿态估计(如图1)是指根据头部的数字图像,利用机器学习和计算机视觉的方法准确快速地估计该图像中对应头部的偏转角度,也称为头部姿态。它是近年来计算机视觉和机器学习领域研究的热门问题,在人机交互、安全驾驶和关注度分析等方面都有非常广泛的应用。例如:在人机交互领域,头部的偏转角度可以用于控制电脑或机器显示的方向和位置;在安全驾驶领域,头部姿态可用于辅助视线估计,从而提示驾驶员正确的视线方向。近年来,头部姿态估计在流形学习和子空间理论发展的基础上,有了进一步的发展。现有头部姿态估计方法可以分为三个大的类别:1.基于容貌的方法,2.基于分类的方法和3.基于回归的方法。基于容貌的头部姿态估计方法的基本原理是将输入的头部图像与数据库中已有的图像进行一一比对,并将找到的最相似的图像所对应的角度作为待估计图像的头部姿态(即角度)。该类方法最大的缺陷在于其只能输出离散的头部偏转角度,并且由于需要与所有已有图像进行依次比对,运算量巨大。参见文献:D.J.Beymer,FaceRecognitionunderVaryingPose,IEEEConferenceonComputerVisionandPatternRecognition,pp.756-761,1994和J.Sherrah,S.Gong,andE.J.Ong,FaceDistributionsinSimilaritySpaceunderVaryingHeadposeImageandVisionComputing,vol.19,no.12,pp.807-819,2001。基于分类的头部姿态估计方法是指根据输入图像的特征和对应头部偏转角度训练分类器,并利用学习好的分类器区分待估计图像头部偏转角度所属的类别,从而确定头部姿态的大致范围。该类方法中常用的分类器包括支持向量机(SupportVectorMachine,SVM),线性判决分析(LinearDiscriminativeAnalysis,LDA),核线性判决分析(KernelLinearDiscriminativeAnalysis,KLDA),这类方法的主要缺点是无法估计输出连续的头部姿态,参见文献:J.Huang,X.Shao,andH.Wechsler,FacePoseDiscriminationusingSupportVectorMachines(SVM),InternationalConferenceonPatternRecognition,pp.154-156,1998。基于回归的头部姿态估计方法是目前最常用的估计方法,该方法的基本原理是利用已有图像特征和对应的头部角度建立映射函数,并利用映射函数估计待处理图像对应的头部姿态。该类方法解决了前述两种方法无法估计输出连续姿态的问题,同时减少了运算复杂度,参见文献G.Fanelli,J.Gall,andL.VanGool,RealTimeHeadPoseEstimationwithRandomRegressionForests,IEEEConferenceonComputerVisionandPatternRecognition,2011,pp.617-624和文献H.Ji,R.Liu,F.Su,Z.Su,andY.Tian,ConvexRegularizedSparseRegressionforHeadPoseEstimation,IEEEInternationalConferenceonImageProcessing,pp.3617-3620,2011。
技术实现思路
本专利技术的任务是提供了一种基于栈式自编码的头部姿态估计方法。该方法以深度图像作为输入图像;并利用栈式自编码寻找深度图像和对应头部姿态之间的映射关系。通过上述建模方式,可以准确的找到深度图像和头部姿态之间的复杂映射关系,既提高了头部姿态估计的准确性,又保证了估计的效率。为了方便地描述本
技术实现思路
,首先对一些术语进行定义。定义1:头部姿态。在三维空间中头部旋转的角度通常由一个向量表示,该向量由三个元素构成,第一个元素为俯仰角,第二个元素为偏航角,第三个元素为旋转角。定义2:俯仰角。在图2(b)所示的x-y-z坐标系中,俯仰角是指以x轴为中心旋转的角度θ。定义3:偏航角。在图2(a)所示的x-y-z坐标系中,偏航角是指以z轴为中心旋转的角度φ。定义4:旋转角。在图2(c)所示的x-y-z坐标系中,旋转角是指以z′为中心旋转的角度Ψ。定义5:梯度方向直方图特征。利用像素强度梯度或边缘的方向分布描述一幅图像中的物体的表象和形状的视觉特征提取方法。其实现方法先将图像分成小的叫做方格单元的连通区域;然后采集方格单元中各像素点的梯度方向或边缘方向直方图;最后把这些直方图组合起来就可以构成特征描述子。为了提高精确度,还可以把这些局部直方图在图像的更大的区间(block)中进行对比度归一化(contrast-normalized),此方法通过先计算各直方图在这个区间(block)中的密度,然后根据这个密度值对区间中的各个方格单元做归一化。通过该归一化能对光照变化和阴影有更强的鲁棒性。定义6:反向传播算法。是一种监督学习算法,常被用来训练多层神经网络。一般包含两个阶段:(1)前向传播阶段将训练输入送入网络以获得激励响应;(2)反向传播阶段将激励响应同训练输入对应的目标输出求差,从而获得隐层和输出层的响应误差。定义7:梯度下降法。是一种无约束的优化方法,在求解目标函数最小值时,找到梯度方向,并沿着梯度反方向搜索,直到达到局部最小值的方法。按照本专利技术的一种基于栈式自编码的头部姿态估计方法,包括以下步骤:步骤1:采集N幅包含不同姿态的头部深度图像,并根据采集每幅图像时摄像头的位置,记录N幅图像各自对应的头部俯仰、偏航和旋转角度,得到头部姿态向量的第1维表示俯仰角,第2维表示倾斜角,第3维表示旋转角,下标n表示第n幅图像;步骤2:检测步骤1采集到图像的头部区域,并提取该头部区域的梯度方向直方图特征,组成梯度方向直方图特征向量步骤3:对步骤2中得到梯度方向直方图特征向量在每一维进行数值归一化,将数值范围压缩到[0,1]区间,将姿态的范围归一化到[0,1]区间;所述步骤3的具体方法为:将数值范围压缩到[0,1]区间,具体做法为:对于第n个样本,其第i维的数据归一化公式为所有样本第i维上的最小值,为所有样本第i维上最大值;将姿态的范围归一化到[0,1]区间,具体做法为:其中表示第n个样本的标定姿态第j维的分量,ynj表示该维归一化后的数值;步骤4:构建栈式自编码器(如图3)对应的映射函数,设输入为其中s1表示特征的维数,本专利使用的栈式自编码共有5层;第1层为输入层,输入层的输入为梯度方向直方图特征向量,第1层节点的个数为梯度方向直方图特征向量的维数,第2-4层为隐单元层,第5层为输出层;任意一层l的任意一个节点单元用符号表示,上标(l)表示第l层,其计算公式为:表示连接神经网络第l层的所有sl个单元和第l+1层的第i个单元之间的参数;具体讲,表示连接第l层的第j个单元和第l+1层第i个单元之间的参数,为与第l+1层的隐单元i相关的偏差项,s本文档来自技高网...
【技术保护点】
一种基于栈式自编码的头部姿态估计方法,包括以下步骤:步骤1:采集N幅包含不同姿态的头部深度图像,并根据采集每幅图像时摄像头的位置,记录N幅图像各自对应的头部俯仰、偏航和旋转角度,得到头部姿态向量的第1维表示俯仰角,第2维表示倾斜角,第3维表示旋转角,下标n表示第n幅图像;步骤2:检测步骤1采集到图像的头部区域,并提取该头部区域的梯度方向直方图特征,组成梯度方向直方图特征向量步骤3:对步骤2中得到梯度方向直方图特征向量在每一维进行数值归一化,将数值范围压缩到[0,1]区间,将姿态的范围归一化到[0,1]区间;所述步骤3的具体方法为:将数值范围压缩到[0,1]区间,具体做法为:对于第n个样本,其第i维的数据归一化公式xni=x~ni-min(x~ni,n=1,...,N)max(x~ni,n=1,...,N)-min(x~ni,n=1,...,N)]]>为所有样本第i维上的最小值,为所有样本第i维上最大值;将姿态的范围归一化到[0,1]区间,具体做法为:ynj=y~nj+180360]]>其中表示第n个样本的标定姿态第j维的分量,ynj表示该维归一化后的数值;步骤4:构建栈式自编码器对应的映射函数,设输入为其中s1表示特征的维数,本专利使用的栈式自编码共有5层;第1层为输入层,输入层的输入为梯度方向直方图特征向量,第1层节点的个数为梯度方向直方图特征向量的维数,第2‑4层为隐单元层,第5层为输出层;任意一层l的任意一个节点单元用符号表示,上标(l)表示第l层,其计算公式为:ai(l+1)=σ(wi1(l)a1(l)+wi2(l)a2(l)...+wisl(l)asl(l)+bi(l)),i=1,...,sl+1]]>表示连接神经网络第l层的所有sl个单元和第l+1层的第i个单元之间的参数;具体讲,表示连接第l层的第j个单元和第l+1层第i个单元之间的参数,为与第l+1层的隐单元i相关的偏差项,sl+1为第l+1层隐单元的数目;σ(·)为S形函数,其表达式为若定义则上式也可以表示为:ai(l+1)=σ(zi(l+1)),i=1,...,sl+1]]>改栈式自编码器的输出层有3个单元,用符号表示,用以表示估计头部姿态的俯仰角、倾斜角和旋转角;整个栈式自编码模型用函数hw,b(x)表示当输入为x时的估计头部姿态,即:步骤5:当输入为x时,假设对应的标定姿态为y,栈式自编码对姿态估计值和标定姿态之间的误差为:同时,为了表示输出层每一个单元对误差贡献的大小定义误差项δi(5)=∂∂zi(5)12||y-hw,b(x)||2=-(yi-ai(5))σ′(zi(5))]]>表示的导数,利用后向传播算法,计算l=2,3,4层时每一个节点j对应的误差项;δj(l)=(Σk=1sl+1wjk(l)δk(l+1))σ′(zj(l))]]>最后得到下面两个估计误差关于和的偏导数:∂∂wij(l)12||y-hw,b(x)||2=ai(l)δj(l+1)]]>∂∂bi(l)12||y-hw,b(x)||2=δi(l+1)]]>步骤6:利用步骤4中的栈式自编码模型,将步骤3中归一化的梯度方向直方图特征xn作为栈式自编码的输入,对应的标定头部姿态值为[y1,...,yN],建立栈式自编码的优化目标函数:J(w,b)=1NΣn=1N12||y-hw,b(xn)||22+λ2||w||22]]>其中和λ约束项的强度;步骤7:求解目标函数J(w,b)关于参数和的偏导数∂J(w,b)∂wij(l)=1NΣn=1Nanj(l)δni(l+1)+λwij(l)]]>∂J(w,b)∂bi(l)=1NΣn=1Nδni(l+1)]]>其中和表示当输入为xn时对应的第l层的第j个单元的输出和第l+1层第i个单元对应的误差项;最后得到目标函数J(w,b)关于参数向量w,b的梯度和步骤8:为了求得最佳的栈式自编码参数w和b,我们需要先初始化参数,再利用梯度下降法进行优化,具体包含下面两个步骤:(a)w和b初始化;首先随机初始化w和b,w表示为(w(1),...,w(4))T,其中w(l)表示第l层的参数;b表示为(b(1),...,b(4))T,之后逐层修正第1、2、3层的参数;当修正第1层参数时,利用梯度下降法优化参数w(1)和b(1),利用第1层网络重构原始输入特征,并使重构误差最小;当修正第2层参数时,利用梯度下降法优化参数w(2)和b(2),把第1层...
【技术特征摘要】
1.一种基于栈式自编码的头部姿态估计方法,包括以下步骤:步骤1:采集N幅包含不同姿态的头部深度图像,并根据采集每幅图像时摄像头的位置,记录N幅图像各自对应的头部俯仰、偏航和旋转角度,得到头部姿态向量的第1维表示俯仰角,第2维表示倾斜角,第3维表示旋转角,下标n表示第n幅图像;步骤2:检测步骤1采集到图像的头部区域,并提取该头部区域的梯度方向直方图特征,组成梯度方向直方图特征向量步骤3:对步骤2中得到梯度方向直方图特征向量在每一维进行数值归一化,将数值范围压缩到[0,1]区间,将姿态的范围归一化到[0,1]区间;所述步骤3的具体方法为:将数值范围压缩到[0,1]区间,具体做法为:对于第n个样本,其第i维的数据归一化公式xni=x~ni-min(x~ni,n=1,...,N)max(x~ni,n=1,...,N)-min(x~ni,n=1,...,N)]]>为所有样本第i维上的最小值,为所有样本第i维上最大值;将姿态的范围归一化到[0,1]区间,具体做法为:ynj=y~nj+180360]]>其中表示第n个样本的标定姿态第j维的分量,ynj表示该维归一化后的数值;步骤4:构建栈式自编码器对应的映射函数,设输入为其中s1表示特征的维数,本专利使用的栈式自编码共有5层;第1层为输入层,输入层的输入为梯度方向直方图特征向量,第1层节点的个数为梯度方向直方图特征向量的维数,第2-4层为隐单元层,第5层为输出层;任意一层l的任意一个节点单元用符号表示,上标(l)表示第l层,其计算公式为:ai(l+1)=σ(wi1(l)a1(l)+wi2(l)a2(l)...+wisl(l)asl(l)+bi(l)),i=1,...,sl+1]]>表示连接神经网络第l层的所有sl个单元和第l+1层的第i个单元之间的参数;具体讲,表示连接第l层的第j个单元和第l+1层第i个单元之间的参数,为与第l+1层的隐单元i相关的偏差项,sl+1为第l+1层隐单元的数目;σ(·)为S形函数,其表达式为若定义则上式也可以表示为:ai(l+1)=σ(zi(l+1)),i=1,...,sl+1]]>改栈式自编码器的输出层有3个单元,用符号表示,用以表示估计头部姿态的俯仰角、倾斜角和旋转角;整个栈式自编码模型用函数hw,b(x)表示当输入为x时的估计头部姿态,即:步骤5:当输入为x时,假设对应的标定姿态为y,栈式自编码对姿态估计值和标定姿态之间的误差为:同时,为了表示输出层每一个单元对误差贡献的大小定义误差项δi(5)=∂∂zi(5)12||y-hw,b(x)||2=-(yi-ai(5))σ′(zi(5))]]>表示的导数,利用后向传播算法,计算l=2,3,4层时每一个节点j对应的误差项;δj(l)=(Σk=1sl+1wjk(l)δk(l+1))σ′(zj(l))]]>最后得到下面两个估计误差关于和的偏导数:∂∂wij(l)12||y-hw,b(x)||2=ai(l)δj(l+1)]]>∂∂bi(l)12||y-hw,b(x)||2=δi(l+1)]]>步骤6:利用步骤4中的栈式自编码模型,将步骤3中归一化的梯度方向直方图特征xn作为栈式自编码的输入,对应的标定头部姿态值为[y1,...,yN],建立栈式...
【专利技术属性】
技术研发人员:潘力立,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。