发明名称 融合多视角、多线索二维信息的人脸三维模型的建立方法
摘要 融合多视角、多线索二维信息的人脸三维模型的建立方法属于计算机人脸图像重建技术领域,其特征在于:首先用标定好的上下两台立体摄像机拍摄建模对象的人脸,得到人脸在无表情变化时从正面逐步转到侧面的视频序列;再用全自动的姿态估计算法得到序列中各时刻的精确的姿态参数;接着在模型和姿态二者的初始化之后,根据两类二维线索分别抽取三维信息:一类是基于图象间对应点进行立体重建,另一类是模型投影轮廓与图象轮廓的匹配、修正;最后,根据融合在多视角中提取出的、对应于不同二维线索的三维信息建立人脸模型。它得到的人脸模型有更细致、更精确的形状,并能做MPEG4(运动图像压缩编码组织标准4)兼容的人脸动画。
申请公布号 CN1404016A 申请公布日期 2003.03.19
申请号 CN02146278.X 申请日期 2002.10.18
申请人 清华大学 发明人 徐光祐;张辉
分类号 G06T11/00;G06T15/70 主分类号 G06T11/00
代理机构 代理人
主权项 1.融合多视角、多线索二维信息的人脸三维模型的建立方法,含有二维对应创建人脸模型的方法,其特征在于:它首先用与人脸上、下位置相对应的两台相同且外极线方向基本沿垂直方向的摄像机在人脸无表情变化的情况下拍摄建模对象的人脸从正面逐步转约90度到侧面的视频序列,再用两块相同的采集卡来采集上下两路同步视频并输入计算机中;然后,从人脸的通用模型Face<sub>g</sub>开始,根据获得的建模对象的二维信息逐步进行修改,最终得到特定人的人脸模型Face<sub>s</sub>,其中修改的只是人脸上的三维结点列表P中的三维点坐标,而人脸上的三角形面片列表F保持不变,即只改变模型形状P而模型的拓扑结构F不变;具体而言,它依次含有如下步骤:(1).输入立体视频序列I<sub>L,t</sub>和I<sub>R,t</sub>:L,R对应于两台摄像机,t=1,…,N,表示N帧不同时刻的图像:I则是由像素组成的二维数组,每个像素包括R、G、B三个分量;t=1的时刻对应于人脸正面姿态,通过人的判断手工选择;(2).姿态估计,即求解人头旋转过程中的姿态参数(即刚体变换系数):用下述刚体变换公式表示上述图象序列中人脸的帧间运动:M<sub>t+1</sub>=R<sub>t</sub>M<sub>t</sub>+T<sub>t</sub>,t=1,…,N-1,M<sub>t</sub>、M<sub>t+1</sub>分别表示第t帧、第t+1帧时人脸上任一点在L摄像机坐标系中的坐标;M<sub>t</sub>、M<sub>t+1</sub>是人脸上的同一位置在不同时刻的三维坐标,即是帧间三维对应点;用可靠三维点的运动就可估计姿态参数;{R<sub>t</sub>,T<sub>t</sub>,t=1,…,N-1}是第t帧到第t+1帧姿态参数的旋转和平移分量;姿态估计依次含有如下步骤:(2.1),起始时刻:先进行二维特征的检测和匹配,再通过立体重建得到起始时刻的三维点:首先,设置特征检测帧t0=t,并在I<sub>L,t</sub>图上作二维特征检测,即选择那些局部灰度变化丰富的点即为在跟踪和匹配时可靠程度较高的点作为特征点,其步骤如下:用已有的KLT算法计算I<sub>L,t</sub>图上特征点p(x=i,y=j)处的图像变化程度G(i,j):<maths num="001"><![CDATA[ <math><mrow><mi>G</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>ii</mi><mo>=</mo><mo>-</mo><mi>blockx</mi></mrow><mi>blockx</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>jj</mi><mo>=</mo><mo>-</mo><mi>blocky</mi></mrow><mi>blocky</mi></munderover><mover><mi>g</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>ii</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><msup><mover><mi>g</mi><mo>&RightArrow;</mo></mover><mi>T</mi></msup><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>ii</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths><img file="A0214627800022.GIF" wi="115" he="56" />为待测点p处图像的梯度向量:<maths num="002"><![CDATA[ <math><mrow><mover><mi>g</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mi>gx</mi></mtd><mtd><mi>gy</mi></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>=</mo><msup><mrow><mo>[</mo><mfrac><mrow><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow><mn>2</mn></mfrac><mfrac><mrow><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>2</mn></mfrac><mo>]</mo></mrow><mi>T</mi></msup><mo>,</mo></mrow></math>]]></maths>I(i+1,j)为该点处图像的灰度,余类推;以待测点p为中心的窗口W的尺寸为(2*blockx+1)*(2*blocky+1);然后再用已有的matlab工具包求出G的最小奇异值sing_min,再选择sing_min很大的点p为检测出的特征点;把在t时刻检测出的特征点记为{pL,t(k)},L,t表示图象序号,K(t)是特征点总数,k为其标号,1≤k≤K(t);其次,对同一时刻两个摄像机L,R拍摄同一场景得到的两幅图像即立体图对作二维特征匹配;同一个三维点在不同图像中的投影都为二维点,它们之间互称为二维对应,立体图对间的二维对应称为匹配:对于I<sub>L,t</sub>图中某一点p<sub>L,t</sub>(k)=(x<sub>L,t</sub>(k)y<sub>L,t</sub>(k)<sup>T</sup>,它的匹配点p<sub>R,t</sub>(k)=(x<sub>R,t</sub>(k)y<sub>R,t</sub>(k))<sup>T</sup>应位于一条由p<sub>L,t</sub>(k)决定的直线上,在这个一维空间中,选择使一个局部窗口W内总灰度差异最小的点作为p<sub>L,t</sub>(k)的匹配点p<sub>R,t</sub>(k),总灰度差异的表达式:<maths num="003"><![CDATA[ <math><mrow><mi>Diff</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>ii</mi><mo>=</mo><mo>-</mo><mi>blockx</mi></mrow><mi>blockx</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>jj</mi><mo>=</mo><mo>-</mo><mi>blocky</mi></mrow><mi>blocky</mi></munderover><mrow><mo>(</mo><msub><mi>I</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mo>(</mo><msub><mi>x</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>ii</mi><mo>,</mo><msub><mi>y</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>I</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>ii</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><msup><mo>)</mo><mn>2</mn></msup></mrow></math>]]></maths>(i,j)是直线<img file="A0214627800032.GIF" wi="243" he="77" />F上的任一点;记时刻t的匹配结果为{p<sub>R,t</sub>(k)},总数目为K(t)个,每点都与p<sub>L,t</sub>(k)相对应,在下述公式表示的直线上搜索,使Diff(i,j)最小的位置:<maths num="004"><![CDATA[ <math><mrow><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mi>F</mi><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mn>0</mn></mrow></math>]]></maths>,其中:<maths num="005"><![CDATA[ <math><mrow><mi>F</mi><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mi>L</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mi>OL</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>f</mi><mi>L</mi></msub></mtd><mtd><msub><mi>v</mi><mi>OL</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mi>T</mi></mrow></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><msub><mi>T</mi><mrow><mi>c</mi><mo>,</mo><mi>z</mi></mrow></msub></mtd><mtd><msub><mi>T</mi><mrow><mi>c</mi><mo>,</mo><mi>y</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>T</mi><mrow><mi>c</mi><mo>,</mo><mi>z</mi></mrow></msub></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><msub><mi>T</mi><mrow><mi>c</mi><mo>,</mo><mi>x</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>-</mo><msub><mi>T</mi><mrow><mi>c</mi><mo>,</mo><mi>y</mi></mrow></msub></mtd><mtd><msub><mi>T</mi><mrow><mi>c</mi><mo>,</mo><mi>x</mi></mrow></msub></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><msub><mi>R</mi><mi>c</mi></msub><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mi>R</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mi>OR</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>f</mi><mi>R</mi></msub></mtd><mtd><msub><mi>v</mi><mi>OR</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup></mrow></math>]]></maths>,f<sub>L</sub>,f<sub>R</sub>,u<sub>OL</sub>,v<sub>OL</sub>,u<sub>OR</sub>,v<sub>OR</sub>为摄像机内参数,已知量;R<sub>c</sub>,T<sub>c</sub>=[T<sub>c,x</sub>T<sub>c,y</sub>T<sub>c,z</sub>]<sup>T</sup>分别为旋转和平移分量,属摄像机外参数,已知量;再次,在获得同一时刻立体图对间的匹配结果p<sub>L,t</sub>和p<sub>R,t</sub>后,通过立体重建得到用摄像机坐标系表示的三维点M<sub>m,t</sub>,m为摄像机L或R,M<sub>m,t</sub>为t时刻三维点在m摄像机坐标系中的坐标;根据两摄像机的配置关系式:M<sub>L</sub>=R<sub>c</sub>M<sub>R</sub>+T<sub>c</sub>,M<sub>L</sub>、M<sub>R</sub>分别是同一点在这两个摄像机坐标系中的坐标;以及摄像机透视投影公式:<maths num="006"><![CDATA[ <math><mrow><msub><mi>s</mi><mi>m</mi></msub><msubsup><mi>A</mi><mi>m</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>m</mi><mo>,</mo><mi>t</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>M</mi><mrow><mi>m</mi><mo>,</mo><mi>t</mi></mrow></msub></mrow></math>]]></maths>,s<sub>m</sub>(即s<sub>L</sub>或s<sub>R</sub>)是待定的比例因子(由稍后的公式求出),得到三维点在摄像机L、R中的坐标M<sub>L,t</sub>和M<sub>R,t</sub>:<maths num="007"><![CDATA[ <math><mrow><msub><mi>M</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>(</mo><msub><mi>s</mi><mi>L</mi></msub><msubsup><mi>A</mi><mi>L</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><msub><mi>s</mi><mi>R</mi></msub><msub><mi>R</mi><mi>c</mi></msub><msubsup><mi>A</mi><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><msub><mi>T</mi><mi>c</mi></msub><mo>)</mo><mo>;</mo></mrow></math>]]></maths><maths num="008"><![CDATA[ <math><mrow><msub><mi>A</mi><mi>L</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mi>L</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mi>OL</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>f</mi><mi>L</mi></msub></mtd><mtd><msub><mi>v</mi><mi>OL</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="009"><![CDATA[ <math><mrow><msub><mi>A</mi><mi>R</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mi>R</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mi>OR</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>f</mi><mi>R</mi></msub></mtd><mtd><msub><mi>v</mi><mi>OR</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths><maths num="010"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>S</mi><mi>L</mi></msub></mtd></mtr><mtr><mtd><msub><mi>S</mi><mi>R</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mrow><mo>(</mo><msup><mi>B</mi><mi>T</mi></msup><mi>B</mi><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msup><mi>B</mi><mi>T</mi></msup><msub><mi>T</mi><mi>c</mi></msub><mo>,</mo></mrow></math>]]></maths>而<maths num="011"><![CDATA[ <math><mrow><msub><mi>B</mi></msub><mo>=</mo><mo>[</mo><msubsup><mi>A</mi><mi>L</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><msub><mi>R</mi><mi>c</mi></msub><msubsup><mi>A</mi><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>:</mo></mrow></math>]]></maths><maths num="012"><![CDATA[ <math><mrow><msub><mi>M</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub><mo>=</mo><msubsup><mi>R</mi><mi>c</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><msub><mi>M</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mo>-</mo><msub><mi>T</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>在姿态估计的余下部分,三维点都用L摄像机坐标系中的坐标来表示,因此省略下标L,即将M<sub>L,t</sub>简记为M<sub>t</sub>;(2.2),后继时刻:对t+1时刻的立体图对用KLT算法进行二维特征跟踪,再同样通过立体重建得到各后继时刻的三维点;跟踪是指同一摄像机拍摄的不同时刻图像间的二维对应:在二维特征跟踪时,设检测的特征点在图像I<sub>m,t</sub>(p)(m为L或R)上,p(x=i,y=j)是任一特征点,则其在图像I<sub>m,t+1</sub>上的跟踪结果为<img file="A0214627800046.GIF" wi="102" he="52" />,其中<maths num="013"><![CDATA[ <math><mrow><mover><mi>d</mi><mo>&OverBar;</mo></mover><mo>=</mo><msup><mi>G</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mover><mi>e</mi><mo>&OverBar;</mo></mover></mrow></math>]]></maths>,G已如上述,而<maths num="014"><![CDATA[ <math><mrow><mover><mi>e</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>ii</mi><mo>=</mo><mo>-</mo><mi>blockx</mi></mrow><mi>blockx</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>jj</mi><mo>=</mo><mo>-</mo><mi>blocky</mi></mrow><mi>blocky</mi></munderover><mover><mi>g</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>ii</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><mo>-</mo><msub><mrow><mo>(</mo><mi>I</mi></mrow><mrow><mi>m</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>ii</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>I</mi><mrow><mi>m</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mi>ii</mi><mo>,</mo><mi>j</mi><mo>+</mo><mi>jj</mi><mo>)</mo></mrow><mo>)</mo></mrow></math>]]></maths>记跟踪得到的特征点为{p<sub>m,t+1</sub>(k)},m表示L或R,t+1为时刻:对于摄像机L为:<maths num="015"><![CDATA[ <math><mrow><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mover><mi>d</mi><mo>&OverBar;</mo></mover><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo><mn>1</mn><mo>&le;</mo><mi>k</mi><mo>&le;</mo><mi>K</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>对于摄像机R为:<maths num="016"><![CDATA[ <math><mrow><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mover><mi>d</mi><mo>&OverBar;</mo></mover><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo><mn>1</mn><mo>&le;</mo><mi>k</mi><mo>&le;</mo><mi>K</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>根据任一对匹配的跟踪点计算三维点{M<sub>t+1</sub>(k)|k=1,…,K(t))}(如前所述,这里省略了下标L);<maths num="017"><![CDATA[ <math><mrow><msub><mi>M</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>(</mo><msub><mi>s</mi><mi>L</mi></msub><msubsup><mi>A</mi><mi>L</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><msub><mi>s</mi><mi>R</mi></msub><msub><mi>R</mi><mi>c</mi></msub><msubsup><mi>A</mi><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>+</mo><msub><mi>T</mi><mi>c</mi></msub><mo>)</mo><mo>;</mo></mrow></math>]]></maths>其中<maths num="018"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>S</mi><mi>L</mi></msub></mtd></mtr><mtr><mtd><msub><mi>S</mi><mi>R</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mrow><mo>(</mo><msup><mi>B</mi><mi>T</mi></msup><mi>B</mi><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msup><mi>B</mi><mi>T</mi></msup><msub><mi>T</mi><mi>c</mi></msub><mo>,</mo></mrow></math>]]></maths><maths num="019"><![CDATA[ <math><mrow><mi>B</mi><mo>=</mo><mo>[</mo><msubsup><mi>A</mi><mi>L</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>L</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><msub><mo>-</mo></msub><msub><mi>R</mi><mi>c</mi></msub><msubsup><mi>A</mi><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>R</mi><mo>,</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>]</mo><mo>:</mo></mrow></math>]]></maths>(2.3),姿态参数初始化:根据两个时刻t和t+1之间的一组三维对应点{M<sub>t</sub>(k))|k=1,…,K(t)}和{M<sub>t+1</sub>(k)|k=1,…,K(t)},和表示可靠性的序列{bReliablek},k=1,…,K(t)从式M<sub>t+1</sub>(k)=R<sub>t</sub>M<sub>t</sub>(k)+T<sub>t</sub>,t=1,…,N-1中用基于最小中值的鲁棒估计算法求解R<sub>t</sub>,T<sub>t</sub>:设:定义并不断更新布尔数组{bReliablek}为可靠度量序列,Yes表示可靠,No表示不可靠,其中取值为Yes的项的标号为{k<sub>s</sub>},s=1,…,Kr(t),Kr(t)是取值为Yes的项的总数,从其中挑出Num_subset个子集,每个子集含有三对三维对应点,即{Set<sub>n</sub>={N<sub>1,n</sub>,N<sub>2,n</sub>,N<sub>3,n</sub>}},n=1,…,Num_subset,1≤N<sub>1,n</sub>,N<sub>2,n</sub>,N<sub>3,n</sub>≤Kr(t),每个三元子集中三维对应点为:<maths num="020"><![CDATA[ <math><mrow><mo>{</mo><msub><mi>M</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>k</mi><msub><mi>N</mi><mrow><mn>1</mn><mo>,</mo><mi>n</mi></mrow></msub></msub><mo>)</mo></mrow><mo>,</mo><msub><mi>M</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>k</mi><msub><mi>N</mi><mrow><mn>2</mn><mo>,</mo><mi>n</mi></mrow></msub></msub><mo>)</mo></mrow><mo>,</mo><msub><mi>M</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>k</mi><msub><mi>N</mi><mrow><mn>3</mn><mo>,</mo><mi>n</mi></mrow></msub></msub><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>和<maths num="021"><![CDATA[ <math><mrow><mo>{</mo><msub><mi>M</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>k</mi><msub><mi>N</mi><mrow><mn>1</mn><mo>,</mo><mi>n</mi></mrow></msub></msub><mo>)</mo></mrow><mo>,</mo><msub><mi>M</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>k</mi><msub><mi>N</mi><mrow><mn>2</mn><mo>,</mo><mi>n</mi></mrow></msub></msub><mo>)</mo></mrow><mo>,</mo><msub><mi>M</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>k</mi><msub><mi>N</mi><mrow><mn>3</mn><mo>,</mo><mi>n</mi></mrow></msub></msub><mo>)</mo></mrow><mo>}</mo></mrow></math>]]></maths>,可简记为{(M<sub>im</sub>,M<sub>im</sub>’)|im=0,1,2},它表示三对不共线的三维对应点,R<sub>t</sub>,T<sub>t</sub>满足M<sub>im</sub>′=R<sub>t</sub>M<sub>im</sub>+T<sub>t</sub>|im=0,1,2;然后从下列公式中求出R和T(略去下标t):<maths num="022"><![CDATA[ <math><mrow><mi>R</mi><mo>=</mo><mi>I</mi><mo>+</mo><mfrac><mrow><mi>sin</mi><mo>|</mo><mo>|</mo><mi>r</mi><mo>|</mo><mo>|</mo></mrow><mrow><mo>|</mo><mo>|</mo><mi>r</mi><mo>|</mo><mo>|</mo></mrow></mfrac><mo>[</mo><mi>r</mi><msub><mo>]</mo><mi>x</mi></msub><mo>+</mo><mfrac><mrow><mn>1</mn><mo>-</mo><mi>cos</mi><mo>|</mo><mo>|</mo><mi>r</mi><mo>|</mo><mo>|</mo></mrow><msup><mrow><mo>|</mo><mo>|</mo><mi>r</mi><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup></mfrac><msubsup><mrow><mo>[</mo><mi>r</mi><mo>]</mo></mrow><mi>x</mi><mn>2</mn></msubsup><mo>,</mo></mrow></math>]]></maths>其中<maths num="023"><![CDATA[ <math><mrow><mi>r</mi><mo>=</mo><mi>&theta;</mi><mo>*</mo><mover><mi>r</mi><mo>^</mo></mover></mrow></math>]]></maths><maths num="024"><![CDATA[ <math><mrow><mo>,</mo><mi>&theta;</mi><mo>=</mo><mi>arccos</mi><mfrac><mrow><mrow><mo>(</mo><mover><mi>r</mi><mo>^</mo></mover><mo>&times;</mo><msub><mi>dir</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><mover><mi>r</mi><mo>^</mo></mover><mo>&times;</mo><msup><msub><mi>dir</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><mrow><mo>(</mo><mover><mi>r</mi><mo>^</mo></mover><mo>&times;</mo><msub><mi>dir</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><mover><mi>r</mi><mo>^</mo></mover><mo>&times;</mo><msup><msub><mi>dir</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="025"><![CDATA[ <math><mrow><mover><mi>r</mi><mo>^</mo></mover><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msup><msub><mi>dir</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>-</mo><msub><mi>dir</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><msup><msub><mi>dir</mi><mn>2</mn></msub><mo>&prime;</mo></msup><mo>-</mo><msub><mi>dir</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow><mrow><mo>|</mo><mo>|</mo><mrow><mo>(</mo><msup><msub><mi>dir</mi><mn>1</mn></msub><mo>&prime;</mo></msup><mo>-</mo><msub><mi>dir</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><msup><msub><mi>dir</mi><mn>2</mn></msub><mo>&prime;</mo></msup><mo>-</mo><msub><mi>dir</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><img file="A0214627800055.GIF" wi="20" he="36" />是旋转的中心轴,称旋转轴,3*1的向量;θ是绕<img file="A0214627800056.GIF" wi="21" he="37" />的旋转角;<maths num="026"><![CDATA[ <math><mrow><msub><mi>dir</mi><mi>im</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>M</mi><mi>im</mi></msub><mo>-</mo><msub><mi>M</mi><mn>0</mn></msub></mrow><mrow><mo>|</mo><mo>|</mo><msub><mi>M</mi><mi>im</mi></msub><mo>-</mo><msub><mi>M</mi><mn>0</mn></msub><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo><mi>im</mi><mo>=</mo><mn>1,2</mn><mo>;</mo></mrow></math>]]></maths><maths num="027"><![CDATA[ <math><mrow><msup><msub><mi>dir</mi><mi>im</mi></msub><mo>&prime;</mo></msup><mo>=</mo><mfrac><mrow><msup><msub><mi>M</mi><mi>im</mi></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>M</mi><mn>0</mn></msub><mo>&prime;</mo></msup></mrow><mrow><mo>|</mo><mo>|</mo><msup><msub><mi>M</mi><mi>im</mi></msub><mo>&prime;</mo></msup><mo>-</mo><msup><msub><mi>M</mi><mn>0</mn></msub><mo>&prime;</mo></msup><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo><mi>im</mi><mo>=</mo><mn>1,2</mn><mo>;</mo></mrow></math>]]></maths>[r]<sub>x</sub>是根据3*1向量r=[r<sub>x</sub>r<sub>y</sub>r<sub>z</sub>]<sup>T</sup>定义的反对称矩阵:<maths num="028"><![CDATA[ <math><mrow><msub><mrow><mo>[</mo><mi>r</mi><mo>]</mo></mrow><mi>x</mi></msub><mo>=</mo><msub><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>r</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mi>z</mi></msub></mtd></mtr></mtable></mfenced><mi>x</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><msub><mi>r</mi><mi>z</mi></msub></mtd><mtd><msub><mi>r</mi><mi>y</mi></msub></mtd></mtr><mtr><mtd><msub><mi>r</mi><mi>z</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><msub><mi>r</mi><mi>x</mi></msub></mtd></mtr><mtr><mtd><mo>-</mo><msub><mi>r</mi><mi>y</mi></msub></mtd><mtd><msub><mi>r</mi><mi>x</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>而<maths num="029"><![CDATA[ <math><mrow><mi>I</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>是单位矩阵;平移分量T由下式估计出:<maths num="030"><![CDATA[ <math><mrow><mi>T</mi><mo>=</mo><mfrac><mn>1</mn><mn>3</mn></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>im</mi><mo>=</mo><mn>0</mn></mrow><mn>2</mn></munderover><mrow><mo>(</mo><msup><msub><mi>M</mi><mi>im</mi></msub><mo>&prime;</mo></msup><mo>-</mo><msub><mi>RM</mi><mi>im</mi></msub><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>对每个子集Set<sub>n</sub>按上述公式估计出姿态参数,记为R<sub>t,n</sub>,T<sub>t,n</sub>;再对所有的可靠三维对应{M<sub>t</sub>(k<sub>s</sub>),M<sub>t+1</sub>(k<sub>s</sub>)},s=1,…,Kr(t)按下式计算对应点M<sub>t</sub>(k<sub>s</sub>),M<sub>t+1</sub>(k<sub>s</sub>)与姿态参数R<sub>t,n</sub>,T<sub>t,n</sub>的符合程度ε<sub>n,s</sub>,该值越小,则两者越符合:ε<sub>n,s</sub>=‖M<sub>t+1</sub>(k<sub>s</sub>)-R<sub>t,n</sub>M<sub>t</sub>(k<sub>s</sub>)-T<sub>t,n</sub>‖<sup>2</sup>;再从集合{R<sub>t,n</sub>,T<sub>t,n</sub>},n=1,…,Num_subset中选取R<sub>t</sub>,T<sub>t</sub>:{R<sub>t</sub>,T<sub>t</sub>}={R<sub>n_m</sub>,T<sub>n_m</sub>},<maths num="031"><![CDATA[ <math><mrow><mi>n</mi><mo>_</mo><mi>m</mi><mo>=</mo><munder><mrow><mi>arg</mi><mi>min</mi></mrow><mi>n</mi></munder><msup><munder><mi>med</mi><mi>s</mi></munder><mi>n</mi></msup><mo>{</mo><msub><mi>&epsiv;</mi><mrow><mi>n</mi><mo>,</mo><mi>s</mi></mrow></msub><mo>|</mo><mi>s</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>&hellip;</mo><mo>,</mo><mi>Kr</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>}</mo><mo>,</mo></mrow></math>]]></maths><img file="A02146278000513.GIF" wi="101" he="66" />表示针对下标s取集合{ε<sub>n,s</sub>|s=1,…,Kr(t))}的中值,它对不同的n构成一个新的数组<maths num="032"><![CDATA[ <math><mrow><mo>{</mo><msup><munder><mi>med</mi><mi>s</mi></munder><mi>n</mi></msup><mo>|</mo><mi>n</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>&hellip;</mo><mo>,</mo><mi>Num</mi><mo>_</mo><mi>subset</mi><mo>}</mo><mo>;</mo></mrow></math>]]></maths>而<img file="A02146278000515.GIF" wi="138" he="73" />则是在这个中值数组中选择取最小值的那个n;(2.4),在t=t+1时刻,设置:是否需要重新调用特征检测和匹配模块的布尔标志量bReDetect;是否需要进行姿态求精的布尔标志量bRefine;(2.5),当t=N时,姿态估计结束;(3).模型初始化和姿态初始化:模型初始化是通用模型特定化方法的初始步骤,它从通用模型Face<sub>g</sub>得到一个初始化模型Face<sub>init</sub>,即对通用模型进行尺度变换,可用下式进行:<maths num="033"><![CDATA[ <math><mrow><msub><mi>M</mi><mi>init</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>s</mi><mi>x</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>s</mi><mi>y</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mi>O</mi></mtd><mtd><mi>O</mi></mtd><mtd><msub><mi>s</mi><mi>z</mi></msub></mtd></mtr></mtable></mfenced><msub><mi>M</mi><mi>g</mi></msub></mrow></math>]]></maths>,M<sub>g</sub>和M<sub>init</sub>分别是Face<sub>g</sub>和Face<sub>init</sub>上的任一组对应点;s<sub>x</sub>是建模对象和Face<sub>g</sub>的两内眼角距离Seg_E长度的比值,s<sub>y</sub>是两眼中心到嘴中心距离Seg_EM长度的比值;s<sub>z</sub>=s<sub>y</sub>;再根据此对Face<sub>g</sub>中所有点按上式变换;姿态初始化是为了获得模型和图象间的对应,即计算从人脸generic坐标系到L摄像机坐标系的刚体变换;即从下式求解R<sub>g,l</sub>,T<sub>g,l</sub>:M<sub>l</sub>=R<sub>g,l</sub>M<sub>init</sub>+T<sub>g,l</sub>,M<sub>l</sub>和M<sub>init</sub>分别是时刻t=1时人脸和Face<sub>init</sub>间的任一组对应点;本发明取上述两个模型在LE(左眼)、RE(右眼)和Mid M(嘴中心)这三个位置处的对应点,按上述<img file="A0214627800062.GIF" wi="20" he="38" />、θ、R、[r]<sub>x</sub>、T各式依次求得R<sub>g,l</sub>和T<sub>g,l</sub>;再按下式从R<sub>t</sub>,T<sub>t</sub>,t=1,…,N-1求出R<sub>g,t</sub>,T<sub>g,t</sub>,t=2,…,N:R<sub>g,t</sub>=R<sub>t-1</sub>R<sub>g,t-1</sub>T<sub>g,t</sub>=R<sub>t-1</sub>*T<sub>g,t-1</sub>+T<sub>t-1</sub>,t=2,…,N;(4).利用三维信息修正人脸模型:(4.1),手工拾取侧面特征点:设:手工标出的侧面特征点为<maths num="034"><![CDATA[ <math><mrow><msubsup><mi>m</mi><mrow><mi>L</mi><mo>,</mo><mi>side</mi></mrow><mi>kk</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>x</mi><mrow><mi>L</mi><mo>,</mo><mi>side</mi></mrow><mi>kk</mi></msubsup></mtd><mtd><msubsup><mi>y</mi><mrow><mi>L</mi><mo>,</mo><mi>side</mi></mrow><mi>kk</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>}</mo><mo>,</mo></mrow></math>]]></maths>kk=1,…,NumSF,NumSF=24为侧面特征点的数目,side表示对应于侧面视图的时刻;(4.2),形状修正A:把Face<sub>init</sub>变形为Face<sub>1</sub>;我们先确定人脸三维结点列表P中一个子集Subset的新位置,再通过一个已知的径向基函数算法来确定P中所有结点的坐标;径向基函数算法如下所述:设要将Face<sub>start</sub>变形为Face<sub>new</sub>,已知一个Subset中的结点在Face<sub>new</sub>中的坐标为{New<sub>1</sub>,…,New<sub>S</sub>},记其在Face<sub>start</sub>中的对应点为{Sta<sub>1</sub>,…,Sta<sub>S</sub>},S为Subset中点的数目;现在对于模型中的任一位置pt,其在Face<sub>new</sub>中的坐标<img file="A0214627800064.GIF" wi="95" he="51" />可由下面的已知公式求出:<maths num="035"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mi>pt</mi><mi>new</mi></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>jRBF</mi><mo>=</mo><mn>1</mn></mrow><mi>S</mi></munderover><msub><mi>C</mi><mi>jRBF</mi></msub><mi>&phi;</mi><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msubsup><mi>M</mi><mi>pt</mi><mi>start</mi></msubsup><mo>-</mo><mi>St</mi><msub><mi>a</mi><mi>jRBF</mi></msub><mo>|</mo><mo>|</mo><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths><img file="A0214627800066.GIF" wi="108" he="55" />是pt点在Face<sub>start</sub>中的坐标,而{C<sub>1</sub>,…,C<sub>S</sub>}可按下面的公式求出<maths num="036"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>C</mi><mn>1</mn><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><munderover><mo>.</mo><mo>.</mo><mo>.</mo></munderover></mtd></mtr><mtr><mtd><msubsup><mi>C</mi><mi>S</mi><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mi>&phi;</mi><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msub><mi>Sta</mi><mn>1</mn></msub><mo>-</mo><mi>St</mi><msub><mi>a</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo><mo>)</mo></mrow></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mi>&phi;</mi><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msub><mi>Sta</mi><mn>1</mn></msub><mo>-</mo><mi>St</mi><msub><mi>a</mi><mi>S</mi></msub><mo>|</mo><mo>|</mo><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><mi>&phi;</mi><mrow><mo>(</mo><mo>|</mo><mo>|</mo><mi>St</mi><msub><mi>a</mi><mi>S</mi></msub><mo>-</mo><mi>St</mi><msub><mi>a</mi><mn>1</mn></msub><mo>|</mo><mo>|</mo><mo>)</mo></mrow></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mi>&phi;</mi><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msub><mi>Sta</mi><mi>S</mi></msub><mo>-</mo><msub><mi>Sta</mi><mi>S</mi></msub><mo>|</mo><mo>|</mo><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>New</mi><mn>1</mn><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><munderover><mo>.</mo><mo>.</mo><mo>.</mo></munderover></mtd></mtr><mtr><mtd><msubsup><mi>New</mi><mi>S</mi><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>;φ是已知的径向基函数;“形状修正A”在利用上面的径向基函数算法时,设置Face<sub>start</sub>=Face<sub>init</sub>,Face<sub>new</sub>=Face<sub>1</sub>,而Subset中的点包括两类:一类是人脸上的左眼内角LE、右眼内角RE、左外嘴唇LM、右外嘴唇RM四个三维显著特征点,由二维显著特征点通过上述立体重建方法得出;另一类是上述24个侧面特征点,它们的三维位置按下面的步骤从手工标出的二维点中获得:设:侧面特征点在人脸generic坐标系中的三维坐标为<maths num="037"><![CDATA[ <math><mrow><mo>{</mo><msubsup><mi>Ms</mi><mi>g</mi><mi>kk</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>Y</mi><mi>g</mi><mi>kk</mi></msubsup></mtd><mtd><msubsup><mi>Z</mi><mi>g</mi><mi>kk</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>}</mo><mo>,</mo></mrow></math>]]></maths>kk=1,…,NumSF;则对于任一kk,有<img file="A0214627800072.GIF" wi="602" he="295" />其中<maths num="038"><![CDATA[ <math><mrow><msub><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi><mo>,</mo><mn>1</mn></mrow><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi><mo>,</mo><mn>2</mn></mrow><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi><mo>,</mo><mn>3</mn></mrow><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="039"><![CDATA[ <math><mrow><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi><mo>,</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi><mo>,</mo><mn>2</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi><mo>,</mo><mn>3</mn></mrow></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>是姿态参数的分量表示,为已知量;可直接用线性方程组的求解方法得到<img file="A0214627800075.GIF" wi="91" he="62" />中的两个未知数<img file="A0214627800076.GIF" wi="59" he="61" />和<img file="A0214627800077.GIF" wi="89" he="61" />(4.3),形状修正B:按前述的径向基函数算法把Face<sub>1</sub>变形为Face<sub>2</sub>;设Face<sub>start</sub>=Face<sub>1</sub>,Face<sub>new</sub>=Face<sub>2</sub>,Subset中除了包括“形状修正A”里已经确定了的点之外,还有一些新添加的点,即从正面姿态下手工标出的人脸轮廓恢复出来的三维点,得到这些三维点的基本方法是把当前人脸模型Face<sub>1</sub>向正面姿态下的图象平面作透视投影并计算三维模型投影结果的二维轮廓点,最后依赖于这些轮廓点和上述图象上的人脸轮廓即闭合多边形的匹配来计算其三维坐标:首先,计算出Face<sub>1</sub>在t=1时刻向手工选择的正面视图的图象平面上的投影轮廓<maths num="040"><![CDATA[ <math><mrow><msub><mi>Cont</mi><mn>1</mn></msub><mo>=</mo><mo>{</mo><msubsup><mi>pt</mi><mn>1</mn><mrow><mi>iC</mi><mn>1</mn></mrow></msubsup><mo>|</mo><mi>iC</mi><mn>1</mn><mo>=</mo><mn>1</mn><mo>,</mo><mo>&hellip;</mo><mo>,</mo><mi>nNum</mi><mn>1</mn><mo>}</mo><mo>,</mo></mrow></math>]]></maths><img file="A0214627800079.GIF" wi="87" he="56" />是模型三维结点列表P中点的标号,<maths num="041"><![CDATA[ <math><mrow><mn>1</mn><mo>&le;</mo><msubsup><mi>pt</mi><mn>1</mn><mrow><mi>iC</mi><mn>1</mn></mrow></msubsup><mo>&le;</mo><mi>nVertex</mi><mo>;</mo></mrow></math>]]></maths>而nNum1是Cont<sub>1</sub>中顶点的数目,它们即形状修正B中向Subset新添加的点;它们是通过判断投影线与模型的交点来选择的,即在某一轮廓点上,投影线与模型不能有其他交点,其算法如下:Face<sub>1</sub>为三维模型,透视投影中心为<maths num="042"><![CDATA[ <math><mrow><mi>Center</mi><mo>=</mo><mo>-</mo><msubsup><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mn>1</mn></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub></mrow></math>]]></maths>已知量,则对模型中所有顶点计算过Center点的投影线和模型的交点,据此判断该顶点是否在投影轮廓上,若M<sub>now</sub>为Face<sub>1</sub>中任一点,Plane<sub>jp</sub>为Face<sub>1</sub>中任一面片构成的平面,计算过Center点和M<sub>now</sub>的直线,即投影线,与Plane<sub>jp</sub>的交点为C<sub>now</sub>;如果对某一面片1≤jp≤nMesh而言,点C<sub>now</sub>在线段CM<sub>now</sub>的内部,则M<sub>now</sub>不在投影轮廓上;否则即为投影轮廓点;再计算Cont<sub>1</sub>中的任一点<img file="A02146278000712.GIF" wi="88" he="56" />在Face<sub>2</sub>的三维坐标:设上述图象上的人脸轮廓是<maths num="043"><![CDATA[ <math><mrow><mrow><mi>Cont</mi><mo>_</mo><msub><mi>img</mi><mn>1</mn></msub></mrow><mo>=</mo><mo>{</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>xCI</mi><mn>1</mn><mi>iCimg</mi></msubsup></mtd><mtd><msubsup><mi>yCI</mi><mn>1</mn><mi>iCimg</mi></msubsup></mtd></mtr></mtable></mfenced><mo>|</mo><mi>iCimg</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>nNumCI</mi><mn>1</mn><mo>}</mo></mrow></math>]]></maths>,它是由二维点列表构成的多边形,nNumCI1是点的数目;则<maths num="044"><![CDATA[ <math><mrow><mi>pti</mi><mo>=</mo><msubsup><mi>pt</mi><mn>1</mn><mrow><mi>iC</mi><mn>1</mn></mrow></msubsup></mrow></math>]]></maths>在Face<sub>2</sub>的三维坐标<img file="A02146278000715.GIF" wi="112" he="56" /><maths num="045"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mn>2</mn><mi>pti</mi></msubsup><mo>=</mo><msubsup><mi>M</mi><mn>1</mn><mi>pti</mi></msubsup><mo>+</mo><msub><mi>t</mi><mi>line</mi></msub><mi>v</mi><mo>;</mo></mrow></math>]]></maths>v=(v<sub>x</sub>v<sub>y</sub>v<sub>z</sub>)<sup>T</sup>=v<sub>pn</sub>×(v<sub>n</sub>×v<sub>pn</sub>);其中,<maths num="046"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mn>1</mn><mi>pti</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>X</mi><mn>1</mn><mi>pti</mi></msubsup></mtd><mtd><msubsup><mi>Y</mi><mn>1</mn><mi>pti</mi></msubsup></mtd><mtd><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>是pti点在Face<sub>1</sub>中的坐标;经<img file="A02146278000718.GIF" wi="87" he="54" />点的投影方向为v<sub>pn</sub>为已知量;v<sub>n</sub>为pti点在Face<sub>g</sub>中的法向;参数t<sub>line</sub>可根据二维直线<maths num="047"><![CDATA[ <math><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mfrac><mrow><msubsup><mi>X</mi><mn>1</mn><mi>pti</mi></msubsup><mo>+</mo><msub><mi>t</mi><mi>line</mi></msub><msub><mi>v</mi><mi>x</mi></msub></mrow><mrow><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup><mo>+</mo><msub><mi>t</mi><mi>line</mi></msub><msub><mi>v</mi><mi>z</mi></msub></mrow></mfrac></mtd><mtd><mfrac><mrow><msubsup><mi>Y</mi><mn>1</mn><mi>pti</mi></msubsup><mo>+</mo><msub><mi>t</mi><mi>line</mi></msub><msub><mi>v</mi><mi>y</mi></msub></mrow><mrow><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup><mo>+</mo><msub><mi>t</mi><mi>line</mi></msub><msub><mi>v</mi><mi>z</mi></msub></mrow></mfrac></mtd></mtr></mtable></mfenced><mi>T</mi></msup></math>]]></maths>与闭合多边形Cont_img<sub>1</sub>的交点求出:设Cont_img<sub>1</sub>中的任一线段为seg=(x<sub>0</sub>+sd<sub>x</sub>y<sub>0</sub>+sd<sub>y</sub>)<sup>T</sup>,0≤s≤1,s为线段参数,其他都是已知量;先按下面的公式计算<maths num="048"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>si</mi></mtd></mtr><mtr><mtd><msub><mi>t</mi><mi>line</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>d</mi><mi>x</mi></msub></mtd><mtd><mo>-</mo><mrow><mo>(</mo><msubsup><mi>X</mi><mn>1</mn><mi>pti</mi></msubsup><mo>-</mo><msub><mi>v</mi><mi>x</mi></msub><mo>*</mo><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup><mo>/</mo><msub><mi>v</mi><mi>z</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>d</mi><mi>y</mi></msub></mtd><mtd><mo>-</mo><mrow><mo>(</mo><msubsup><mi>Y</mi><mn>1</mn><mi>pti</mi></msubsup><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub><mo>*</mo><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup><mo>/</mo><msub><mi>v</mi><mi>z</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mn>0</mn></msub><mo>-</mo><msub><mi>v</mi><mi>x</mi></msub><mo>/</mo><msub><mi>v</mi><mi>z</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mo>-</mo><msub><mi>v</mi><mi>y</mi></msub><mo>/</mo><msub><mi>v</mi><mi>z</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>对所有的seg求出这两个数值si和t<sub>line</sub>;对于很多seg上面的公式无解,即公式里的矩阵不可逆;有解且得到的si满足0≤si≤1的seg有一个或两个,取与点<maths num="049"><![CDATA[ <math><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mfrac><msubsup><mi>X</mi><mn>1</mn><mi>pti</mi></msubsup><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup></mfrac></mtd><mtd><mfrac><msubsup><mi>Y</mi><mn>1</mn><mi>pti</mi></msubsup><msubsup><mi>Z</mi><mn>1</mn><mi>pti</mi></msubsup></mfrac></mtd></mtr></mtable></mfenced><mi>T</mi></msup></math>]]></maths>距离近的那一个seg,它得到的t<sub>line</sub>即为所求;(4.4),形状修正C:按前述的径向基函数算法把Face<sub>2</sub>变形为Face<sub>3</sub>;设Face<sub>start</sub>=Face<sub>2</sub>,Face<sub>new</sub>=Face<sub>3</sub>,Subset中除了包括“形状修正A、B”里已经确定了的点之外,还有一些新添加的点,即从手工标出的正面人脸特征轮廓点:眼睛、鼻孔和嘴的轮廓点恢复出来的三维点:设某特征轮廓点的二维坐标是<maths num="050"><![CDATA[ <math><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>xCF</mi><mn>1</mn><mi>iCF</mi></msubsup></mtd><mtd><msubsup><mi>yCF</mi><mn>1</mn><mi>iCF</mi></msubsup></mtd></mtr></mtable></mfenced></math>]]></maths>,该点在Face<sub>2</sub>中的坐标为<maths num="051"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mn>2</mn><mi>iCF</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>X</mi><mn>2</mn><mi>iCF</mi></msubsup></mtd><mtd><msubsup><mi>Y</mi><mn>2</mn><mi>iCF</mi></msubsup></mtd><mtd><msubsup><mi>Z</mi><mn>2</mn><mi>iCF</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>,设该点的Z坐标已经计算正确,即它在Face<sub>3</sub>中的Z坐标等于<img file="A0214627800086.GIF" wi="79" he="54" />,则它在Face<sub>3</sub>中的坐标为<maths num="052"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mn>3</mn><mi>iCF</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>xCF</mi><mn>1</mn><mi>iCF</mi></msubsup><mo>*</mo><msubsup><mi>Z</mi><mn>2</mn><mi>iCF</mi></msubsup></mtd><mtd><msubsup><mi>yCF</mi><mn>1</mn><mi>iCF</mi></msubsup><mrow><mo>*</mo><msubsup><mi>Z</mi><mn>2</mn><mi>iCF</mi></msubsup></mrow></mtd><mtd><msubsup><mi>Z</mi><mn>2</mn><mi>iCF</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>,即这些特征轮廓点在正面姿态下的投影等于实际图象上的特征点;(4.5),形状修正D:按前述的径向基函数算法把Face<sub>3</sub>变形为Face<sub>4</sub>;设Face<sub>start</sub>=Face<sub>3</sub>,Face<sub>new</sub>=Face<sub>4</sub>,Subset中除了包括“形状修正A、B、C”里已经确定了的点之外,还有一些新添加的点,即从手工标出的中间视图1即使R<sub>g,t</sub>的旋转角最接近25度的时刻t的人脸轮廓中恢复出来的三维点,具体步骤如下:设该视图对应于时刻int1,与形状修正B所述的相同,先算出Face<sub>3</sub>在int1时的投影轮廓<maths num="053"><![CDATA[ <math><mrow><mi>Con</mi><msub><mi>t</mi><mrow><mi>int</mi><mn>1</mn></mrow></msub><mo>=</mo><mo>{</mo><msubsup><mi>pt</mi><mrow><mi>int</mi><mn>1</mn></mrow><mrow><mi>iC</mi><mn>2</mn></mrow></msubsup><mo>|</mo><mi>iC</mi><mn>2</mn><mo>=</mo><mn>1</mn><mo>,</mo><mo>&hellip;</mo><mo>,</mo><mi>nNum</mi><mo>_</mo><mi>int</mi><mn>1</mn><mo>}</mo><mo>,</mo></mrow></math>]]></maths><img file="A0214627800089.GIF" wi="87" he="53" />是P中点的标号,nNum_int1是投影轮廓中的顶点数目;对于任一点<maths num="054"><![CDATA[ <math><mrow><mi>ptli</mi><mo>=</mo><msubsup><mi>pt</mi><mrow><mi>int</mi><mn>1</mn></mrow><mrow><mi>iC</mi><mn>2</mn></mrow></msubsup></mrow></math>]]></maths>,它在Face<sub>3</sub>中的三维坐标<maths num="055"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mn>3</mn><mi>ptli</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>X</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup></mtd><mtd><msubsup><mi>Y</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup></mtd><mtd><msubsup><mi>Z</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>,而<maths num="056"><![CDATA[ <math><mrow><mi>Center</mi><mo>=</mo><mo>-</mo><msubsup><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mn>1</mn></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub></mrow></math>]]></maths>如前所述是L摄像机光心在generic坐标系中的坐标,则该点在Face<sub>4</sub>中的坐标应满足<maths num="057"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mn>4</mn><mi>ptli</mi></msubsup><mo>=</mo><msubsup><mi>M</mi><mn>3</mn><mi>ptli</mi></msubsup><mo>+</mo><msub><mi>t</mi><mrow><mi>line</mi><mn>2</mn></mrow></msub><mi>v</mi><mn>2</mn><mo>,</mo></mrow></math>]]></maths><maths num="058"><![CDATA[ <math><mrow><mi>v</mi><mn>2</mn><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>x</mi></msub></mtd><mtd><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>y</mi></msub></mtd><mtd><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>z</mi></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>=</mo><msubsup><mi>M</mi><mn>3</mn><mi>ptli</mi></msubsup><mo>-</mo><mi>Center</mi></mrow></math>]]></maths>,参数t<sub>line2</sub>同样根据直线<maths num="059"><![CDATA[ <math><msup><mfenced open='[' close=']'><mtable><mtr><mtd><mfrac><mrow><msubsup><mi>X</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup><mo>+</mo><msub><mi>t</mi><mrow><mi>line</mi><mn>2</mn></mrow></msub><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>x</mi></msub></mrow><mrow><msubsup><mi>Z</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup><mo>+</mo><msub><mi>t</mi><mrow><mi>lin</mi><mn>2</mn></mrow></msub><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>z</mi></msub></mrow></mfrac></mtd><mtd><mfrac><mrow><msubsup><mi>Y</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup><mo>+</mo><msub><mi>t</mi><mrow><mi>line</mi><mn>2</mn></mrow></msub><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>y</mi></msub></mrow><mrow><msubsup><mi>Z</mi><mn>3</mn><mrow><mi>pt</mi><mn>1</mn><mi>i</mi></mrow></msubsup><mo>+</mo><msub><mi>t</mi><mrow><mi>line</mi><mn>2</mn></mrow></msub><msub><mrow><mi>v</mi><mn>2</mn></mrow><mi>z</mi></msub></mrow></mfrac></mtd></mtr></mtable></mfenced><mi>T</mi></msup></math>]]></maths>与闭合多边形Cont_img<sub>int1</sub>的交点求出;(4.6),形状修正E:按前述的径向基函数算法把Face<sub>4</sub>变形为Face<sub>5</sub>(即最终的形状模型Face<sub>s</sub>);设Face<sub>start</sub>=Face<sub>4</sub>,Face<sub>new</sub>=Face<sub>5</sub>,Subset中除了包括“形状修正A、B、C、D”里已经确定了的点之外,还有一些新添加的点,即从手工标出的中间视图2即使R<sub>g,t</sub>的旋转角最接近40度的时刻t的人脸轮廓中恢复出来的三维点,具体的恢复步骤与形状修正D相同;(5).纹理映射:目前的纹理是通过L摄像机拍摄的正面和侧面视图(I<sub>L,1</sub>和I<sub>L,side</sub>)生成,纹理映射是要为创建的模型Face<sub>s</sub>生成看起来有相片一样真实感的柱面纹理图Texture<sub>s</sub>,即要把采集的图象转换到一个统一的柱面坐标系中并进行融合,它依次含有如下步骤:(5.1),生成柱面展开图:首先对形状修正E的最终结果Face<sub>s</sub>中的任一三维点<maths num="060"><![CDATA[ <math><mrow><msubsup><mi>M</mi><mi>s</mi><mi>pt</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>X</mi><mi>s</mi><mi>pt</mi></msubsup></mtd><mtd><msubsup><mi>Y</mi><mi>s</mi><mi>pt</mi></msubsup></mtd><mtd><msubsup><mi>Z</mi><mi>s</mi><mi>pt</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>按下式作柱面映射:<img file="A0214627800092.GIF" wi="392" he="208" />,映射的结果是一个二维平面,其上的点为{Cyn<sub>pt</sub>}={(lg<sub>pt</sub>lt<sub>pt</sub>)};这里lg<sub>pt</sub>是柱面上的经度位置,用弧度值表示;lt<sub>pt</sub>则是柱面旋转轴向的坐标位置;(5.2),生成正面纹理图:把所有点<img file="A0214627800093.GIF" wi="78" he="50" />在已知的正面姿态参数R<sub>g,l</sub>,T<sub>g,l</sub>下按下式在正面视图I<sub>L,1</sub>上投影,<maths num="061"><![CDATA[ <math><mrow><msubsup><mover><mi>p</mi><mo>&RightArrow;</mo></mover><mn>1</mn><mi>pt</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>x</mi><mn>1</mn><mi>pt</mi></msubsup></mtd><mtd><msubsup><mi>y</mi><mn>1</mn><mi>pt</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>是Face<sub>s</sub>中三维点M<sub>s</sub><sup>pt</sup>在I<sub>L,1</sub>上的二维投影:<img file="A0214627800095.GIF" wi="466" he="285" />其中<maths num="062"><![CDATA[ <math><mrow><msub><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>R</mi><mrow><mn>1</mn><mi>g</mi><mo>,</mo><mn>1</mn></mrow><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi><mrow><mn>2</mn><mi>g</mi><mo>,</mo><mn>1</mn></mrow><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi><mrow><mn>3</mn><mi>g</mi><mo>,</mo><mn>1</mn></mrow><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="063"><![CDATA[ <math><mrow><msub><mi>T</mi><mrow><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>T</mi><mrow><mn>1</mn><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>T</mi><mrow><mn>2</mn><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>T</mi><mrow><mn>3</mn><mi>g</mi><mo>,</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>是旋转矩阵和平移向量的分量表示;接着,把I<sub>L,1</sub>中的各像素映射到Cyn平面上,即对Face<sub>s</sub>中的任一面片facet=(pt<sub>1</sub>pt<sub>2</sub>pt<sub>3</sub>)<sup>T</sup>,m<sub>proj</sub>=Δ(p<sub>1</sub>,p<sub>2</sub>,p<sub>3</sub>)表示这三点在I<sub>L,1</sub>平面上构成的三角形,m<sub>cyn</sub>=Δ(p<sub>1</sub>′,p<sub>2</sub>′,p<sub>3</sub>′)是Cyn平面上的对应三角形,即<maths num="064"><![CDATA[ <math><mrow><msub><mi>p</mi><mrow><mi>iT</mi><mn>1</mn></mrow></msub><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>x</mi><mn>1</mn><msub><mi>pt</mi><mrow><mi>iT</mi><mn>1</mn></mrow></msub></msubsup></mtd><mtd><msubsup><mi>y</mi><mn>1</mn><msub><mi>pt</mi><mrow><mi>iT</mi><mn>1</mn></mrow></msub></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>,</mo></mrow></math>]]></maths><maths num="065"><![CDATA[ <math><mrow><msup><msub><mi>p</mi><mrow><mi>iT</mi><mn>1</mn></mrow></msub><mo>&prime;</mo></msup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>lg</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>1</mn></mrow></msub></msub></mtd><mtd><msub><mi>lt</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>1</mn></mrow></msub></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>,</mo></mrow></math>]]></maths>iT1=1,2,3;再对三角形m<sub>cyn</sub>内的点[lglt]按下式计算[xy]:<maths num="066"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>x</mi></mtd></mtr><mtr><mtd><mi>y</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><msub><mi>a</mi><mn>2</mn></msub></mtd><mtd><msub><mi>a</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>4</mn></msub></mtd><mtd><msub><mi>a</mi><mn>5</mn></msub></mtd><mtd><msub><mi>a</mi><mn>6</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mi>lg</mi></mtd></mtr><mtr><mtd><mi>lt</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>a<sub>1</sub>~a<sub>6</sub>由下式求出:<img file="A0214627800101.GIF" wi="916" he="423" />再令正面纹理图<maths num="067"><![CDATA[ <math><mrow><msub><mi>I</mi><mrow><mi>Textur</mi><msub><mi>e</mi><mn>1</mn></msub></mrow></msub><mrow><mo>(</mo><mi>lg</mi><mo>,</mo><mi>lt</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>I</mi><mrow><mi>L</mi><mo>,</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(5.3),生成侧面纹理图:把所有点<img file="A0214627800103.GIF" wi="80" he="50" />在已知的侧面姿态参数R<sub>g,side</sub>,T<sub>g,side</sub>,下按下式在侧面视图I<sub>L,side</sub>上投影,<maths num="068"><![CDATA[ <math><mrow><msubsup><mover><mi>p</mi><mo>&RightArrow;</mo></mover><mi>side</mi><mi>pt</mi></msubsup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>x</mi><mi>side</mi><mi>pt</mi></msubsup></mtd><mtd><msubsup><mi>y</mi><mi>side</mi><mi>pt</mi></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>是Face<sub>s</sub>中三维点<img file="A0214627800105.GIF" wi="78" he="49" />在I<sub>L,side</sub>上的二维投影:<img file="A0214627800106.GIF" wi="552" he="284" /><maths num="069"><![CDATA[ <math><mrow><msub><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>R</mi><mrow><mn>1</mn><mi>g</mi><mo>,</mo><mi>side</mi></mrow><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi><mrow><mn>2</mn><mi>g</mi><mo>,</mo><mi>side</mi></mrow><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi><mrow><mn>3</mn><mi>g</mi><mo>,</mo><mi>side</mi></mrow><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="070"><![CDATA[ <math><mrow><msub><mi>R</mi><mrow><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>R</mi><mrow><mn>1</mn><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>R</mi><mrow><mn>2</mn><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>R</mi><mrow><mn>3</mn><mi>g</mi><mo>,</mo><mi>side</mi></mrow></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>再对Face<sub>s</sub>中的任一面片facet=(pt<sub>1</sub>pt<sub>2</sub>pt<sub>3</sub>)<sup>T</sup>,设ms<sub>proj</sub>=Δ(ps<sub>1</sub>,ps<sub>2</sub>,ps<sub>3</sub>),<maths num="071"><![CDATA[ <math><mrow><msub><mi>ps</mi><mrow><mi>iT</mi><mn>2</mn></mrow></msub><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>x</mi><mi>side</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>2</mn></mrow></msub></msubsup></mtd><mtd><msubsup><mi>y</mi><mi>side</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>2</mn></mrow></msub></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths>,iT2=1,2,3;再对三角形m<sub>cyn</sub>内的点[lglt]按下式计算[xsys]:<maths num="072"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>xs</mi></mtd></mtr><mtr><mtd><mi>ys</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>as</mi><mn>1</mn></msub></mtd><mtd><msub><mi>as</mi><mn>2</mn></msub></mtd><mtd><msub><mi>as</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msub><mi>as</mi><mn>4</mn></msub></mtd><mtd><msub><mi>as</mi><mn>5</mn></msub></mtd><mtd><msub><mi>as</mi><mn>6</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mi>lg</mi></mtd></mtr><mtr><mtd><mi>lt</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>as<sub>1</sub>~as<sub>6</sub>由下式求出:<img file="A02146278001011.GIF" wi="966" he="422" />再令侧面纹理图<maths num="073"><![CDATA[ <math><mrow><msub><mi>I</mi><mrow><mi>Textur</mi><msub><mi>e</mi><mi>side</mi></msub></mrow></msub><mrow><mo>(</mo><mn>1</mn><mi>g</mi><mo>,</mo><mi>lt</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>I</mi><mrow><mi>L</mi><mo>,</mo><mi>side</mi></mrow></msub><mrow><mo>(</mo><mi>xs</mi><mo>,</mo><mi>ys</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(5.4),反射侧面纹理图以得到另一侧的纹理图,这是因为Face<sub>s</sub>的拓扑结构是完全对称的;设:直接获得纹理的那一侧脸上的任一三角面片m<sub>cyn</sub>=Δ(p<sub>1</sub>,p<sub>2</sub>,p<sub>3</sub>),它在另一侧脸上的对称面片是m<sub>cyn</sub>′=Δ(p<sub>1</sub>′,p<sub>2</sub>′,p<sub>3</sub>′),其中<maths num="074"><![CDATA[ <math><mrow><msub><mi>p</mi><mrow><mi>iT</mi><mn>3</mn></mrow></msub><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>lg</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>3</mn></mrow></msub></msub></mtd><mtd><msub><mi>lt</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>3</mn></mrow></msub></msub></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths><maths num="075"><![CDATA[ <math><mrow><mo>,</mo><msup><msub><mi>p</mi><mrow><mi>iT</mi><mn>3</mn></mrow></msub><mo>&prime;</mo></msup><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>lg</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>3</mn></mrow></msub><mo>&prime;</mo></msubsup></mtd><mtd><msubsup><mi>lt</mi><msub><mi>pt</mi><mrow><mi>iT</mi><mn>3</mn></mrow></msub><mo>&prime;</mo></msubsup></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>,</mo></mrow></math>]]></maths>iT3=1,2,3;对m<sub>cyn</sub>中的任一点p=(lglt)<sup>T</sup>按下式计算[lg′lt′],<maths num="076"><![CDATA[ <math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msup><mi>lg</mi><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><mrow><msup><mi>lt</mi><mo>&prime;</mo></msup></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>rs</mi><mn>1</mn></msub></mtd><mtd><msub><mi>rs</mi><mn>2</mn></msub></mtd><mtd><msub><mi>rs</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><msub><mi>rs</mi><mn>4</mn></msub></mtd><mtd><msub><mi>rs</mi><mn>5</mn></msub></mtd><mtd><msub><mi>rs</mi><mn>6</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mrow><mo>-</mo><mn>1</mn></mrow></msup><mfenced open='[' close=']'><mtable><mtr><mtd><mi>lg</mi></mtd></mtr><mtr><mtd><mi>lt</mi></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>rs<sub>1</sub>~rs<sub>6</sub>按下式求出:<img file="A0214627800112.GIF" wi="987" he="423" />再从直接有纹理的一侧反射生成另一侧:<maths num="077"><![CDATA[ <math><mrow><msub><mi>I</mi><mrow><mi>Textur</mi><msub><mi>e</mi><mi>side</mi></msub></mrow></msub><mrow><mo>(</mo><mi>l</mi><msup><mi>g</mi><mo>&prime;</mo></msup><mo>,</mo><mi>l</mi><msup><mi>t</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>=</mo><msub><mi>I</mi><msub><mi>Texture</mi><mi>side</mi></msub></msub><mrow><mo>(</mo><mi>lg</mi><mo>,</mo><mi>lt</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(5.5),正面的和侧面的纹理图的融合,得到最终纹理图Texture<sub>s</sub>;设定阈值lg<sub>min</sub>和lg<sub>max</sub>,Texture<sub>s</sub>在任一位置Cyn=(lglt)<sup>T</sup>处的取值按下式给出:<img file="A0214627800114.GIF" wi="985" he="138" />
地址 100084北京市100084-82信箱