发明名称 一种图形处理的关节中心参数估计方法
摘要 本发明公开了一种图形处理的关节中心参数估计方法,其用于一通用计算机的运动捕获处理,包括以下步骤:对标志点进行刚性预处理;估计计算关节中心回归参数;从关节中心回归参数获得刚性点集;对刚性点集进行选择处理。本发明图形处理的关节中心参数估计方法由于采用了上述对标志点的刚性预处理,以及优化的关节中心初值估计方法,其在图形处理中消除了标志点的漂移,简化了处理过程,且提高了数据处理的准确性。
申请公布号 CN101241601B 申请公布日期 2010.06.02
申请号 CN200810065399.6 申请日期 2008.02.19
申请人 深圳先进技术研究院 发明人 刘思源;文高进;郑倩;曹文静;冯圣中;樊建平
分类号 G06T7/20(2006.01)I;G06T7/00(2006.01)I;G06K9/00(2006.01)I 主分类号 G06T7/20(2006.01)I
代理机构 深圳市君胜知识产权代理事务所 44268 代理人 杨宏;刘文求
主权项 1.一种图形处理的关节中心参数估计方法,其用于一通用计算机的运动捕获处理,包括以下步骤:A、对标志点进行刚性预处理;所述的步骤A包括:A1、输入点集{X<sup>j</sup>}<sub>j=1</sub><sup>k</sup>;A2、计算无噪声的点集<img file="F2008100653996C00011.GIF" wi="230" he="56" />相似变换参数{R<sub>j</sub>}<sub>j=1</sub><sup>k</sup>,{t<sub>j</sub>}<sub>j=1</sub><sup>k</sup>和{c<sub>j</sub>}<sub>j=1</sub><sup>k</sup>;A3、i从1到n,同时j从1到k获得输出修正点集{Y<sup>j</sup>}<sub>j=1</sub><sup>k</sup>的元素<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>y</mi><mi>i</mi><mi>j</mi></msubsup><mo>=</mo><msub><mi>c</mi><mi>j</mi></msub><msub><mi>R</mi><mi>j</mi></msub><msub><mi>z</mi><mi>i</mi></msub><mo>+</mo><msub><mi>t</mi><mi>j</mi></msub><mo>;</mo></mrow></math>]]></maths>B、估计计算关节中心回归参数;所述的步骤B包括:B1、输入点集{P<sub>i</sub><sup>j</sup>}<sub>i=1</sub><sup>3</sup>和{C<sub>i</sub><sup>j</sup>}<sub>i=1</sub><sup>3</sup>;B2、采用非线性优化极小化误差函数<maths num="0002"><![CDATA[<math><mrow><mi>ERROR</mi><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>F</mi></munderover><msup><mrow><mo>(</mo><msup><mrow><mo>|</mo><mo>|</mo><mmultiscripts><mi>J</mi><mprescripts/><none/><mi>i</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mi>i</mi></mmultiscripts><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><msup><mi>r</mi><mn>2</mn></msup><mo>)</mo></mrow><mn>2</mn></msup><mo>;</mo></mrow></math>]]></maths>其中,F为采集数据的帧数,<sup>i</sup>J为关节中心,<sup>i</sup>C<sub>1</sub>为子刚体上的标志点,r为回归坐标参数;B3、输出回归参数{a,b,c};C、从关节中心回归参数获得刚性点集;所述的步骤C包括:C1、更新点集{P<sub>i</sub><sup>j</sup>}<sub>i=1</sub><sup>3</sup>和{C<sub>i</sub><sup>j</sup>}<sub>i=1</sub><sup>3</sup>,去除噪声;C2、计算矩阵A,B:采用相邻的父子刚体上各三个点,<sup>i</sup>P<sub>1</sub>、<sup>i</sup>P<sub>2</sub>、<sup>i</sup>P<sub>3</sub>是父刚体上的标志点,角标i表示帧数,<sup>i</sup>C<sub>1</sub>、<sup>i</sup>C<sub>2</sub>、<sup>i</sup>C<sub>3</sub>是子刚体上的标志点,关节中心<sup>i</sup>J相对于相邻刚体上的标志点始终保持不变,满足如下关系式:<sup>i</sup>J=[<sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>2</sub> <sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>3</sub>(<sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>2</sub>)×(<sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>3</sub>)<sup>i</sup>P<sub>1</sub>]·[a b c 1]<sup>t</sup>      (1)<sup>i</sup>J=[<sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>2</sub> <sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>3</sub>(<sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>2</sub>)×(<sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>3</sub>)<sup>i</sup>C<sub>1</sub>]·[d e f 1]<sup>t</sup>      (2)其中,{a,b,c,d,e,f}为回归坐标参数;两式联立可得到:[<sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>2</sub> <sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>3</sub>(<sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>2</sub>)×(<sup>i</sup>P<sub>1</sub>-<sup>i</sup>P<sub>3</sub>)<sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>2</sub> <sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>2</sub>(<sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>2</sub>)×(<sup>i</sup>C<sub>1</sub>-<sup>i</sup>C<sub>3</sub>)]·[a b c-d-e-f]<sup>t</sup>=-(<sup>i</sup>P<sub>1</sub>-<sup>i</sup>C<sub>1</sub>)                                (3)对于连续采集的F帧数据,得到如下方程组:AX=B                                                 (4)其中:<maths num="0003"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>2</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts></mtd><mtd><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>3</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts></mtd><mtd><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>2</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>3</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>)</mo></mrow></mtd><mtd><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts></mtd><mtd><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts></mtd><mtd><mrow><mo>(</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>3</mn><none/><mprescripts/><none/><mn>1</mn></mmultiscripts><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>2</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts></mtd><mtd><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>3</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts></mtd><mtd><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>2</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>3</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>)</mo></mrow></mtd><mtd><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts></mtd><mtd><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts></mtd><mtd><mrow><mo>(</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>3</mn><none/><mprescripts/><none/><mn>2</mn></mmultiscripts><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>2</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts></mtd><mtd><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>3</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts></mtd><mtd><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>2</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mmultiscripts><mi>P</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>P</mi><mn>3</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>)</mo></mrow></mtd><mtd><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts></mtd><mtd><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts></mtd><mtd><mrow><mo>(</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>2</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mmultiscripts><mi>C</mi><mn>1</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>-</mo><mmultiscripts><mi>C</mi><mn>3</mn><none/><mprescripts/><none/><mi>F</mi></mmultiscripts><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>X=[a b c-d-e-f]<sup>t</sup>B=[-(<sup>1</sup>P<sub>1</sub>-<sup>1</sup>C<sub>1</sub>)-(<sup>2</sup>P<sub>1</sub>-<sup>2</sup>C<sub>1</sub>)…-(<sup>F</sup>P<sub>1</sub>-<sup>F</sup>C<sub>1</sub>)]<sup>t</sup>                (6)C3、计算矩阵X:当采集数据的帧数F超过3时,方程组变成超定方程组,可以最小二乘解为:X=(A<sup>t</sup>A)<sup>-1</sup>A<sup>t</sup>B                                         (7)通过式(6)或(7)计算出每一帧关节中心的位置;C4、输出回归参数{a,b,c,d,e,f};D、对刚性点集进行选择处理;所述的步骤D包括:D1、输入点集<img file="F2008100653996C00022.GIF" wi="172" he="82" />,处理点集<img file="F2008100653996C00023.GIF" wi="177" he="91" />得到{z<sub>i</sub>}<sub>i=1</sub><sup>K</sup>,变换参数{R<sup>i</sup>}<sub>i=1</sub><sup>F</sup>、{t<sup>i</sup>}<sub>i=1</sub><sup>F</sup>,{c<sup>i</sup>}<sub>i=1</sub><sup>F</sup>;D2、i从1到K计算<maths num="0004"><![CDATA[<math><mrow><mo>{</mo><msub><mi>f</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>F</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>F</mi></munderover><msup><mrow><mo>|</mo><mo>|</mo><msubsup><mi>y</mi><mi>i</mi><mi>j</mi></msubsup><mo>-</mo><msub><mi>c</mi><mi>j</mi></msub><msub><mi>R</mi><mi>j</mi></msub><msub><mi>z</mi><mi>i</mi></msub><mo>-</mo><msub><mi>t</mi><mi>j</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>}</mo><mo>;</mo></mrow></math>]]></maths>D3、按递减顺序给f<sub>i</sub>排序成f<sub>i0</sub>≤f<sub>i1</sub>≤...≤f<sub>ik-1</sub>;D4、按序号i1,i2,...,ik-1,从中选择与z<sub>i0</sub>,z<sub>i1</sub>不共线的第三点z<sub>it</sub>,输出i0,i1,it。
地址 518067 广东省深圳市南山区蛇口南海大道1019号南山医疗器械产业园A座三楼