将面部从非正面旋转到正面 opencv

Rai*_*ker 5 opencv rotation head pose-estimation face

我已经为一个问题苦苦挣扎了一个星期,我无法像这张图片中的左脸一样将一张脸从非正面旋转到同一张图片中的右脸一样的正面。

在此处输入图片说明

1)。我在learnopencv网站上使用了一个关于delaunay的教程来获取左面的所有三角形(大约138个三角形),如下所示:

...

triangle num 4: [100, 383] | [120, 374] | [112, 385]

triangle num 5: [120, 374] | [100, 383] | [92, 345]

triangle num 6: [136, 396] | [137, 379] | [151, 394]

triangle num 7: [137, 379] | [136, 396] | [118, 395]

triangle num 8: [92, 345] | [86, 414] | [80, 451]

triangle num 9: [86, 414] | [92, 345] | [100, 383]

triangle num 10: [86, 414] | [100, 383] | [118, 395]

triangle num 11: [116, 336] | [120, 374] | [92, 345]

triangle num 12: [120, 374] | [116, 336] | [133, 344]

...
Run Code Online (Sandbox Code Playgroud)

2)。和这个库:https : //github.com/chili-epfl/attention-tracker(可以估计头部姿势)得到左脸头部姿势的 4x4 矩阵变换,这个矩阵似乎是函数的结果Rodrigues在opencv中。

 0.659585  -0.749291 -0.0592507  0.0591621 

-0.0327269 -0.107385 0.993679    -0.00523744 

-0.750917  -0.653477 -0.0953513  -0.280204 

 0         0         0           1 
Run Code Online (Sandbox Code Playgroud)

所以我不知道下一步是如何用步骤 2 的 4x4 矩阵旋转步骤 1 中的所有三角形以获得 Right Face 的结果。请帮忙!

erf*_*neh 4

即使您已经投影了脸部的标志位置,如何将脸部从非正面视图投影到正面视图也是一个复杂的问题。我建议使用我之前使用过的两个开源库。

第一个是由麻省理工学院提供的。此代码不仅是面部前置器,还可以用于任何对象。 https://bitbucket.org/gbhuang/congealreal

下面的第二个库链接仅提供用于面部投影。

https://github.com/eranid/adience_align

我认为第二个库是最有用的。