使用Opencv查找面部的姿势变化

时间:2012-06-12 13:15:19

标签: c++ opencv

在图像中有一张脸,它有点倾斜并且有轻微的姿势变化。使用opencv我检测到眼睛,鼻子和嘴巴的坐标。使用这4点是否可以将这张脸重新对准理想的正面? 我尝试了透视变换,它确实适用于一些图像,但是对于大多数图片都给出了可怕的结果。有没有其他方法可以将图像重新对齐到理想的正面而没有任何倾斜或姿势变化?

1 个答案:

答案 0 :(得分:2)

我认为您可以参考Procrustes Analysis获取更多帮助。 我们的想法是使用一组已知点找到从理想人脸到实际人脸的刚性变换矩阵。然后使用此变换矩阵的逆矩阵到实际人脸上的每个点,以获得理想的点。

这里有一组已知点(两只眼睛,鼻尖和嘴巴)。你可以为他们提供一个理想的位置。从使用OpenCV的图像检测中,您可以获得4个对应点。 你也可以参考Kabsch algorithm,如果你可以假设只有旋转是可能的,我认为在你的情况下可能有意义。 有一个很好的问题here解释了上述主题。 我希望以上参考资料可以帮助你。