Openface学习(一):使用dlib探测人脸并与模板人脸对齐

本文介绍了如何使用Openface结合dlib库进行人脸检测,并通过预训练参数确定人脸标记点,利用opencv进行仿射变换实现人脸对齐,为后续人脸识别训练做准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习了开源人脸识别程序Openface的代码。Openface的思路是先将人脸从图像中提取出来,再通过FaceNet,即使用了triplet loss的神经网络将图像分类或者识别。

本篇文章的代码的作用是,使用dlib库将人脸探测、提取的方法集合成类,方便调用。

本篇文章的代码的思路是,在通用模板中的68个人脸标记点的基础上,使用dlib库以及预训练出的参数,确定输入图像的人脸标记点,再使用opencv的内置函数进行仿射变换,得到输出对齐的图像,以便下一步训练时使用。

# 使用dlib进行人脸切割,变换

import cv2
import dlib
import numpy as np

# 这是人脸的特征点,一共68个
TEMPLATE = np.float32([( , )... # 这里填数据 ])

# 下面将人脸的关键点标准化,即寻找人脸在最左侧的点和最上侧的点,作为图像的边缘,
# 其他点以这两个边缘为基准平移;最后除以(最右侧-最左侧)和(最下侧-最上侧)
# 使人脸的标准点均匀地分布在图形里,恰好不丢失特征,也无多余像素。
(TEM_MIN, TEM_MAX) = (np.min(TEMPLATE, axis = 0), np.max(TEMPLATE, axis = 0))
STANDARD_TEMPLATE = (TEMPLATE - TEM_MIN) / (TEM_MAX - TEM_MIN)

class AlignDlib():
    INNER_EYES_AND_BOTTOM_LIP = [39, 42, 57] # 用于仿射变换的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值