我已经苦苦挣扎了一个星期,遇到了一个问题,即我无法将一张脸从该image中的“左脸”这样的非正面旋转到同一图像中的“右脸”这样的正面。
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]
...
2)。还有这个库:https://github.com/chili-epfl/attention-tracker(可以估计头部姿势)以获取Left Face头部姿势的4x4矩阵变换,该矩阵似乎是opencv中
Rodrigues
函数的结果。 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
因此,我不知道下一步是将步骤1中的所有三角形与步骤2中的4x4矩阵进行旋转以获得右面的结果。
请帮助!
最佳答案
即使您已经投影了人脸的地标位置,如何从非正面 View 向正面 View 转换人脸也是一个复杂的问题。
我建议使用我以前使用过的两个开源库。
第一个由麻省理工学院提供。这段代码不仅面向正面,而且可以用于任何对象。
https://bitbucket.org/gbhuang/congealreal
第二个库链接位于仅用于面部投影的链接下方。
https://github.com/eranid/adience_align
我认为第二个库是最有用的。
关于opencv - 将脸部从非正面旋转到正面opencv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36949933/