基于人脸5个关键点的人脸对齐(人脸纠正)

摘要:人脸检测模型输出人脸目标框坐标和5个人脸关键点,在进行人脸比对前,需要对检测得到的人脸框进行对齐(纠正),本文将通过5个人脸关键点信息对人脸就行对齐(纠正)。

一、输入图像就行人脸检测:

人脸检测模型输出每个人脸的目标框坐标以及5个关键点坐标。

二、利用5个特征点进行人脸对齐(纠正)

人脸1:

人脸1纠正结果:

人脸2:

人脸2纠正后结果:

人脸3:

人脸3纠正后结果:

三、人脸对齐(纠正)代码示例:

python 复制代码
import cv2
import numpy as np
import skimage.transform


ST_KEYPOINT = np.array(
    [
        [0.34191607, 0.46157411],
        [0.65653393, 0.45983393],
        [0.500225, 0.64050536],
        [0.37097589, 0.82469196],
        [0.63151696, 0.82325089]]
    , dtype=np.float32)


def get_aligned_face(image, keypoint, align_size):
    '''
    Args:
        image: origin imsge
        keypoint: five keypoints with shape of (5, 2)
        align_size: output size of (w, h), exp: (112, 112)
    Returns:
        aligned face with the size of align_size
    '''

    st_kp = ST_KEYPOINT * np.array(align_size)
    st = skimage.transform.SimilarityTransform()  # define the  function of affine transformation
    st.estimate(keypoint, st_kp)  # calculate the matrix of affine transformation
    align_face = cv2.warpAffine(image, st.params[0:2, :], align_size, flags=cv2.INTER_LINEAR, borderValue=0.0)  # face align
    return align_face
相关推荐
华科云商xiao徐1 分钟前
分布式爬虫双核引擎:Java大脑+Python触手的完美协同
java·爬虫·python
LLM精进之路33 分钟前
RCL 2025 | LLM采样机制的新视角:来自处方性偏移的解释
人工智能·深度学习·机器学习·语言模型·transformer
计算机毕业设计木哥1 小时前
计算机毕设大数据选题推荐 基于spark+Hadoop+python的贵州茅台股票数据分析系统【源码+文档+调试】
大数据·hadoop·python·计算机网络·spark·课程设计
Re_draw_debubu1 小时前
torchvision中数据集的使用与DataLoader 小土堆pytorch记录
pytorch·python·小土堆
猫先生OVO1 小时前
shellgpt
python
数据智能老司机1 小时前
GPU 编程实战——使用 PyCUDA 与 CuPy 功能
人工智能·python·gpu
Cl_rown去掉l变成C1 小时前
第R5周:天气预测
人工智能·python·深度学习·算法·tensorflow2
天下弈星~2 小时前
变分自编码器VAE的Pytorch实现
图像处理·pytorch·python·深度学习·vae·图像生成·变分自编码器
失散132 小时前
深度学习——03 神经网络(4)-正则化方法&价格分类案例
深度学习·神经网络·正则化
这里有鱼汤2 小时前
新型震荡器CyberOsc指标详解及完整策略源码(含图)
python