人脸检测和对齐,关键点坐标仿射变换

时间: 2024-11-10 admin IT培训

人脸检测和对齐,关键点坐标仿射变换

人脸检测和对齐,关键点坐标仿射变换

  1. MTCNN的PNet, RNet, ONet三者是串联的。
  • 人脸检测:PNet, RNet提供检测框,输入到ONet. ONet输出关键点信息。这里提供检测框的PNet, RNet也可以换成SFD。然后再输入到ONet串联使用。
  • 人脸对齐:在人脸检测框中回归5个关键点。基于这5个关键点、标准人脸,通过仿射变换进行对齐。
  • 由此可见检测框的预测精度将影响最终关键点预测的精度。而关键点预测的精度影响最终识别的性能。
  1. 从人脸5个关键点到人脸识别模型输入
  • 根据5个关键点和标准人脸的5个关键点,得到仿射矩阵M。
  • 基于原始输入图像和M,经过仿射变换得到最终的输入。也就是检测对齐好的人脸。可能还会resize到指定大小。如112x112。
  • 注意这里得到的模型输入和人脸检测框无关,不是根据检测框crop得到的,而是根据检测到的关键点、标准人脸,通过仿射变换和resize得到的。所以可以说,一开始的人脸检测框和识别结果没有直接关系(有间接关系:通过影响框内回归出的关键点的位置,间接影响最终识别结果)
  1. 如何根据检测到的关键点,标准人脸得到仿射矩阵?
def get_affine_lmk(landmark1, image_size=