基于单幅图片恢复人体三维形貌的研究
2012-06-07林雪英
林雪英,徐 晓,刘 希
(1.华南理工大学理学院,广东 广州 510640;2.华南理工大学广州汽车学院,广东 广州 510640)
视频由单幅图片构成,探讨从单幅图片恢复三维形貌对从二维视频恢复2.5维信息有实际意义。而从人类视觉能就单幅图片恢复2.5维信息的特点来看,研究单幅图片的恢复也具有重要的学术价值。
本文探讨从单幅图片恢复人体三维形貌,是指对单幅图像进行分析处理,得到人体表面0°~180°的三维信息,是一种实用的三维人体恢复技术,在生物学、医学及人类科学[1]、多媒体、人机工程、视频会议、3D游戏开发等领域有广泛的应用[2]。
本文利用明暗恢复形状(Shape From Shading,SFS)[3]方法从单幅图片中恢复人体三维形貌[4]。其核心思想是利用二维图像中留下的三维线索——灰度信息,在光源坐标系下计算与每个像素点对应的表面法向矢量信息,通过坐标旋转到图像坐标系中,得到图像中的人体的三维尺寸。这种方法不受光源限制、便于现场操作、最大限度的节省硬件资源,测量速度快、成本低,且易于实现系统间的信息集成。将人体知识加入到人体图像中光源的预测中,利用人体四肢可以近似为圆柱体这个特点进行粗略的光源预测,并将预测的光源用于恢复人体表面三维形貌。以此为基础进行了实验,实验表明此方法在一定情况下是有效的。
1 SFS方法
SFS方法早在1970年由麻省理工学院的Horn等人首次提出来,他们将反射图的概念引入照度方程中,假定物体表面为朗伯体表面[5],建立了物体表面方向和图像亮度之间的函数关系,求解该函数模型即可获取物体表面坐标的高度值。
朗伯体表面模型如图1。以摄像机坐标系为参照系,将物体表面高度值表示为z(x,y),物体表面材质的反射率为ρ。规定物体表面法矢可由物体表面各点的法向量n(n1,n2,n3)的反方向矢量(p,q,-1)表示,其中,(p,q)为表面梯度。深度是摄像机到表面点的相对距离,同时也可以看作是相对于XOY平面的表面高度(表面法矢是与物体表面切平面垂直的向量方向,表面梯度是深度在x和y方向的变化量)。假设观察者方向的视线与像平面XOY平面垂直相交,光源到达物体表面一点(x,y)的强度为I(x,y),光源向量为(ps,qs,-1),光在观察方向反射的强度为E(x,y),则由朗伯定理得模型方程如下[6]
从式(1)可以理解,所谓SFS,即要恢复Z(x,y),则需通过E(x,y)求取 p,q,然后通过光滑性约束来求取Z(x,y)。求解问题需要确定两类参数,一是光源相关参数,一类是跟被观察物结构和反射属性相关参数。关于光源的预测,一般是利用已知几何形状的物体对不同光源位置具有不同形状阴影的原理,通过分析阴影形状追踪光源位置。
图1 被照物体表面模型
在已知光源的情况下,现实的物体及图像采集系统无法满足理想的朗伯体模型,以及其他信息的不确定性导致的SFS问题的病态,因而需要根据采集图像的特点引入附加条件[6]
式中:I是测量亮度;R是估计反射图亮度;px,py和qx,qy分别表示函数p和q在x和y方向上的偏微分;式(2)为亮度约束;式(3)为光滑性约束;式(4)为可积性约束。求解式(1)时,应使 e1,e2,e3最小。
2 人体图片光源预测
就单幅图片而言,若未加特定摄制条件,其光源方向是未知的,因此需要求取光源的方向。关键就是预测光源入射角与物体表面点的夹角,以确定已知光源的入射方向。
本文三维形貌恢复的对象具有特定的目标——三维人体形貌恢复,可利用人体知识将光源预测问题简化。人体的四肢可以近似为圆柱体,而圆柱体是一种简单特殊的几何形状,光线在圆柱体表面发生反射时会遵循指定的规律,因而可以利用四肢这种几何特殊性对图像中的人体光源方向进行预测。
若去除毛发、衣服等遮挡物后,人体(如图2)的躯干、四肢、颈部可以近似为圆柱体(如图3)。正常情况下,人体四肢表面皮肤的材质和颜色差异不显著,因此可以将人体图片中没有遮挡且弯曲变形程度不大的四肢提取出来,分别拟合成对应的矩形(圆柱体的正面视图为矩形),经过分析得到各个圆柱体的预测光源方向,计算出对应该拟合矩形的光源分量,再将得到的几个光源方向平均值作为预测的整个人体光源方向。
如图4所示,考虑圆柱体上一点M的法向量为(0,cosα,sinα),则若以 -Z 方向为观察方向,根据式(1)得到
图片上M点的亮度为
图4 光源照射下的圆柱体模型
如图5所示,圆柱体的横截面圆的半径为r,N点距离圆柱体最左侧母线的距离为1,N点距该截面圆心O的距离 d 等于 r-l,光源方向为(ns1,ns2,ns3),ns2和 ns3分量构成的面与XOY平面的夹角α为
图5 圆柱体示意图
通过在二维图片上选用一个接近矩形的圆柱体像,估计出d;分析一系列不同r的点的强度,利用式(6),通过最小二乘法估计出相对应的α。根据d,r,α估计值,光源方向的ns2分量估计值为
依此类推,选用不同方向的圆柱体,可以得出ns1分量。依照(ns1,ns2,ns3),假定 ns3为 1,则可倒换出(ps,qs,-1)。若选出的圆柱体并不在图片的竖直或水平方向,则通过坐标倒换也可以推出相关结果。综合人体图片上选用的不同位置的圆柱体而预测出的光源矢量进行平均即得图片的光源矢量的预测。
3 人体图片恢复结果
本文恢复人体三维形状利用的是人体表面灰度信息,衣服、头发等遮挡物会产生错误的信息,因此实验对象必须选择没有衣服等遮挡物的人体,人体模特在外形和颜色等角度都与真实人体比较接近,且没有衣服等遮挡物的干扰,本文选择人体模特图片作为实验对象,恢复的步骤如图6所示[7]。
图6 三维人体形貌恢复的步骤
1)实例一原始图像如图2所示,预测光源方向为(0.53,0,1),恢复的三维模型几个不同角度的截图如图7所示。
图7 实例一复原结果不同角度的截图
恢复结果分析:二维的人体图片的光源并没有进行太多的控制,SFS方法中的光源是单一光源,即无限远的电光源或平行光,而获得的二维的图片中的光源情况较复杂,有主光源、环境光,这样的光源会造成复原结果与真实人体模特的误差。具体分析如表1所示。
表1 实例一恢复结果分析
2)实例二原始图像如图8所示,预测光源方向为(0.19,0,1),恢复的三维模型几个不同角度的截图如图9所示。
恢复结果分析:整体的复原结果还是比较理想。具体分析如表2所示。
表2 实例二恢复结果分析
4 结论与探讨
该三维人体测量方法在实施过程及实际应用中,依然存在不少问题。在提取用于预测光源的人体四肢时,本文采用的办法是手工提取,如何利用带入人体知识的边缘检测法自动提取出无遮挡的四肢,是下一步的工作。另外阴影在图片中是在所难免,人体的姿势千变万化,经常会出现遮挡的部位,但人体始终逃不脱躯干、头部、四肢的结构,下一步将利用光源矢量及各点的深度值计算出阴影区域并对其进行修正,并利用人体知识填充遮挡部位丢失的信息量。
虽然目前基于单幅图像进行人体形貌恢复的精度还不能够达到很高的要求,但此算法模拟人眼的视觉原理,只须单幅图像进行分析处理,便可以快速得到人体表面0°~180°的三维信息,是一种实用的三维人体恢复技术。
[1]GUAN P,FREIFELD O,BLACK M J.A 2D human body model dressed in eigen clothing[C]//Proc.11th European Conf.Computer Vision.Berlin:Springer-Verlag,2010:285-298.
[2]IKIZLER N,CINBIS R G,PEHLIVAN S,et al.Recognizing actions fromstill images[C]//Proc.19th International Conference on Pattern Recognition.Tampa,FL:IEEE Press,2008:1-4.
[3]HORN B K P.Shape from shading:A method for obtaining the shape of a smooth opaque object from one view[D].Boston:Massachusetts Inst.of Technology,1970.
[4]宋丽梅.基于单幅实时测量图像形貌三维恢复的研究[D].天津:天津大学,2004.
[5]BASRI R,JACOBS D.Lambertian reflectance and linear subspaces[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2003,25(2):218-233.
[6]徐东平.基于SFS方法的三维表面重建算法研究[J].计算机与数字工程,2008,36(2):7-9.
[7]阮秋琦.数字图像处理(MATLAB版)[M].北京:电子工业出版社,2005.