将轮廓面部图像与其正面图像对齐

Ste*_*eph 5 c++ opencv image-processing computer-vision

我有一张个人资料:

在此输入图像描述

和正面形象:

在此输入图像描述

输出:参照正面对齐轮廓面.

想法:我只需要知道我可以采取哪三个共同点,这两个点在两个面上都可见,然后使用affineTransform并显示对齐的轮廓面

      OR any other **simple method** of doing so
Run Code Online (Sandbox Code Playgroud)

发展环境 :c ++和opencv 2.4.2

我试过的:

  1. haarcascade特征检测(两个图像中的常见检测点=眼睛); 它不会检测到正面的耳朵
  2. OpenCV:相对于参考图像(图像注册)移动/对齐面部图像(我收到错误信息)

her*_*tao 5

正如@bytefish 在这里所讨论的那样,在给定图像中找到眼睛的准确位置远非微不足道.用于在OpenCV中找到眼睛的Haar级联产生太多的假阳性而无用,而且这种方法对于图像旋转不会很稳健.

您需要一个强大的头部姿势估计来对齐人脸图像.这里有两个最强大的(可用代码):


例如,使用第二篇论文中描述的方法,您将获得更强大的功能,如下图所示.而这些强大的功能反过来将确保产生更强大的面部对齐性能.

在此输入图像描述

在此输入图像描述