人脸识别篇---人脸对齐

article/2025/9/23 14:56:04

人脸对齐

  • 安装环境
    • dlib
  • 脚本实现
  • 运行代码
  • 实现效果
  • 运行问题

安装环境

dlib

windows10安装dlib
在anaconda3下激活相应的环境

conda install -c conda-forge dlib

参考

脚本实现

from imutils.face_utils import FaceAligner
from imutils.face_utils import rect_to_bb
import argparse
import imutils
import dlib
import cv2ap = argparse.ArgumentParser()
ap.add_argument('-p','--shape-predictor',required=True,help='path to the landmark predictor')
ap.add_argument('-i','--image',required=True,help='path to the input image')
args = vars(ap.parse_args())detector = dlib.get_frontal_face_detector()
print(type(detector))
print(detector)
predictor = dlib.shape_predictor(args['shape_predictor'])
fa = FaceAligner(predictor, desiredFaceWidth=256)image = cv2.imread(args['image'])
image = imutils.resize(image, width=800)
print(type(image))
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)cv2.imshow('Input', image)
# cv2.waitKey(30)
rects = detector(gray, 2)for rect in rects:(x, y, w, h) = rect_to_bb(rect)faceOrig = imutils.resize(image[y:y+h, x:x+w], width=256)faceAligned = fa.align(image, gray, rect)cv2.imshow('Original',faceOrig)cv2.imshow('Aligned',faceAligned)cv2.waitKey(0)

运行代码

python align_faces.py -p shape_predictor_68_face_landmarks.dat -i images/1.jpg

检测器(shape_predictor_68_face_landmarks.dat)下载链接:
链接:https://pan.baidu.com/s/11Z9GTaNeTb-HbF6RPu0g4A
提取码:98rz

实现效果

在这里插入图片描述

运行问题

在这里插入图片描述
debug

Traceback (most recent call last):File "D:/BaiduNetdiskDownload/阶段6-人工智能项目实战/08_人脸识别项目/code/Day03/face-alignment/align_faces.py", line 35, in <module>faceAligned = fa.align(image, gray, rect)File "E:\anaconda3\envs\face\lib\site-packages\imutils\face_utils\facealigner.py", line 68, in alignM = cv2.getRotationMatrix2D(eyesCenter, angle, scale)
TypeError: Can't parse 'center'. Sequence item with index 0 has a wrong type

考虑先实现cv2.getRotationMatrix2D(eyesCenter, angle, scale)

# -- coding: utf-8 --
import cv2
import numpy as npimg = cv2.imread('images/1.jpg')  # 读入图像,(H, W, C)
rows, cols = img.shape[:2]  # 取前两个值(H,W)
print(rows, cols)# 第一个参数旋转中心,第二个参数旋转角度,第三个参数:缩放比例, 生成一2*3的矩阵center = (cols / 2, rows / 2)  # 以图像中心为旋转中心
angle = 90  # 顺时针旋转90°
scale = 1  # 等比例旋转,即旋转后尺度不变M = cv2.getRotationMatrix2D(center, angle, scale)print(M)'''
[[ 6.123234e-17  1.000000e+00  2.135000e+02][-1.000000e+00  6.123234e-17  1.066500e+03]]
'''

以上代码能成功地运行,debug发现center需要的数据类型是float,而人脸对齐的代码报错是’center’类别的错误,于是就有个大胆的想法,将源码中涉及计算center的部分修改,将2修改成2.0
如图说示:
在这里插入图片描述
在这里插入图片描述
即可成功运行代码,就是上面实现效果的图!!!


http://chatgpt.dhexx.cn/article/JPDxI9fq.shtml

相关文章

人脸对齐算法常用评价标准总结

转载请注明作者和出处&#xff1a; http://blog.csdn.net/john_bh/ 文章目录 1. I O N 和 I P N ION和IPN ION和IPN2. M N E MNE MNE (the mean normalized error)3 A U C a AUCa AUCa(the area-under-the-curve)4. C E D CED CED (the Cumulative Errors Distribution curve)…

python练习3 人脸对齐以及dir、inspect的用法

一、人脸对齐 训练好的模型库文件&#xff08;替换你的模型文件位置&#xff09; import cv2 import dlib import matplotlib.pyplot as pltpath"D:\python\Lib\site-packages\cv2\photo.jpg" imgcv2.imread(path) graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#人脸分…

人脸识别中常用的人脸检测和人脸对齐

人脸检测和人脸对齐是人脸识别的前提&#xff0c;也是进行一切人人脸相关的人脸项目的开始步骤&#xff0c;本文将从常用的人脸检测的数据集&#xff0c;以及现在公用的比较好的方法开始讲述。 人脸检测常用的数据集 人脸检测的测试数据库有很多&#xff0c;这里仅选择FDDB和…

人脸对齐—级联回归模型和深度学习模型

人脸对齐任务即根据输入的人脸图像&#xff0c;自动定位出面部关键特征点&#xff0c;如眼睛、鼻尖、嘴角点、眉毛以及人脸各部件轮廓点等&#xff0c;如下图所示。 这项技术的应用很广泛&#xff0c;比如自动人脸识别&#xff0c;表情识别以及人脸动画自动合成等。由于不同的姿…

MTCNN 人脸检测 人脸对齐

MTCNN 人脸检测 人脸对齐 flyfish 总体 Loss Stage 0:Image Pyramid 假设图片的宽度是640,高度是480 MIN_DET_SIZE12 minsize70 factor0.709 0.1714285710.709 那么金字塔窗口大小分别是 wh:110,83 wh:78,59 wh:56,42 wh:40,30 wh:28,21 wh:20,1计算过程如下 从640和480…

人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐

使用 OpenCV 和 Python 进行人脸对齐 这篇博文的目的是演示如何使用 OpenCV、Python 和面部标志对齐人脸。 给定一组面部标志&#xff08;输入坐标&#xff09;&#xff0c;我们的目标是将图像扭曲并转换为输出坐标空间。 在这个输出坐标空间中&#xff0c;整个数据集中的所…

人脸预处理:人脸检测+人脸对齐

1 简介 对于人脸识别任务&#xff0c;人脸预处理至关重要。首先我们需要检测出图像中的人脸&#xff0c;然后通过人脸相似性变换得到对齐后的标准人脸。然后在对其进行人脸识别。在人脸识别过程中&#xff0c;往往检测到的人脸是倾斜的。相似性变换根据检测到的关键点和目标点…

dlib人脸配准(人脸对齐)

dlib人脸配准有两种方式。 一种是使用 get_face_chip()方法&#xff0c;使用5个关键点模型来进行配准&#xff0c;这种方法Dlib已经提供了完整的接口(imutils里也有类似函数&#xff0c; face_utils.FaceAligner&#xff0c;代码放在最后面)另一种是自己使用68点关键点模型&am…

基于OpenCV的人脸对齐步骤详解及源码实现

目录 1. 前言2. 人脸对齐基本原理与步骤3. 人脸对齐代码实现 1. 前言 在做人脸识别的时候&#xff0c;前期的数据处理过程通常会遇到一个问题&#xff0c;需要将各种人脸从不同尺寸的图像中截取出来&#xff0c;再进行人脸对齐操作&#xff1a;即将人脸截取出来并将倾斜的人脸…

人脸识别 (4) 人脸对齐

参考&#xff1a;FaceDetector/face_align.ipynb at master faciallab/FaceDetector GitHub 中文&#xff1a;从零开始搭建人脸识别系统&#xff08;二&#xff09;&#xff1a;人脸对齐 - 知乎 Face Alignment Step-by-Step 1、Align Faces by Spatial Transform Operati…

OpenCV实现人脸对齐

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 一、人脸对齐介绍 在人脸识别中有一个重要的预处理步骤-人脸对齐&#xff0c;该操作可以大幅度提高人脸识别的准确率与稳定性&#xff0c;但是早期的OpenCV版本不支持人…

人脸对齐(一)--定义及作用

参考&#xff1a; http://www.thinkface.cn/thread-4354-1-1.html http://www.thinkface.cn/thread-4488-1-1.html&#xfeff;&#xfeff; 人脸对齐任务即根据输入的人脸图像&#xff0c;自动定位出面部关键特征点&#xff0c;如眼睛、鼻尖、嘴角点、眉毛以及人脸各部件轮…

人脸关键点对齐

转&#xff1a;https://www.jianshu.com/p/e4b9317a817f 摘要&#xff1a; 从传统方法到深度学习方法&#xff0c;对人脸关键点定位/人脸对齐的发展进行梳理&#xff0c;对该领域中经典的方法&#xff0c;最新成果进行汇总&#xff0c;并给出相应的paper原文&#xff0c;项目主…

人脸对齐介绍

转自&#xff1a;https://cloud.tencent.com/community/article/532672 一、 人脸对齐&#xff0c;也叫做人脸特征点检测&#xff0c;图为人脸特征点例子 二、 人脸对齐有哪些应用&#xff1f; 1 五官定位 2 表情识别 3 人脸漫画、素描生成 4 增强现实 5 换脸 6 3D建模 三、 人…

常见的人脸对齐方法 python

人脸对齐 1. 通过Dlib库 1.1.环境需求&#xff1a; opencv-python dlib下载dlib库的68关键点文件&#xff1a; http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 然后解压后得到shape_predictor_68_face_landmarks.dat。 其次&#xff0c;下面可能需要有一…

QGIS中也有“fishnet”——QGIS怎么生成渔网

QGIS堪称Mac上的ArcGIS&#xff0c;免费小巧&#xff0c;插件丰富&#xff0c;比ArcGIS更容易上手。今天分享的是如何在QGIS中生成规则网格&#xff0c;也就是ArcGIS中的fishnet功能怎么在QGIS中完美实现。 # 环境声明&#xff1a;QGIS3.10 MacOS10.15.6 # 分享背景&#xff…

ArcMap Fishnet生成规则网格

在利用ArcGIS处理数据时&#xff0c;有时需要对整个工作区域进行规则网格划分&#xff0c;这个在ArcGIS中是一件非常简单的事情&#xff0c;现在就将利用ArcGIS生成规则网格的步骤详细的介绍一下。 首先我有一个工作的范围&#xff0c;比如图一所示的范围&#xff1a; 我要在研…

POJ 1408 Fishnet

题目大意&#xff1a; 有一个1*1的正方形&#xff0c;分别给出下&#xff0c;上&#xff0c;左&#xff0c;右边每个边上的n个点&#xff0c;对边对应点连线&#xff0c;问这些线段相交的最大的四边形面积是多少&#xff08;面积最大的定义是必须当前面积内没有更小的四边形内…

创建渔网工具

创建渔网&#xff08;create fishnet&#xff09;工具是指创建由矩形像元组成的渔网。输出可以是折线或面要素。创建渔网需要三条基本信息&#xff1a;渔网的空间范围、行数和列数以及旋转的角度。要指定这些基本信息可通过多种方法。例如&#xff0c;您可能不确定准确的行数和…

ARCGIS怎么在地图上绘制长宽500m*500m的fishnet

用的是ArcGIS 10.6的版本。 参考教程&#xff1a;https://my.oschina.net/u/4416039/blog/3308651 首先先导入深圳市的shp文件 Layers右键&#xff0c;点击Properties 需要将坐标系改成投影坐标系 点击Projected Coordinate Systems 点击UTM 点击WGS 1984 选择WGS 1984 UT…