《深度学习》Dlib库 CNN卷积神经网络 人脸识别

目录

一、如何实现CNN人脸识别

1、CNN核心概念

1)卷积层

2)池化层

3)激活函数

4)全连接层

2、步骤

1)加载预训练的人脸识别模型

2)读取图像并检测人脸

3)提取人脸特征向量

4)比较相似度

二、案例实现

1、完整代码

运行结果:


一、如何实现CNN人脸识别

1、CNN核心概念

1)卷积层

卷积层是CNN的核心组成部分之一,它通过应用一组卷积核(也称为滤波器)在输入图像上滑动,提取图像的局部特征。每个卷积核会对图像进行卷积操作,得到一个输出特征图。

2)池化层

池化层用于对卷积层输出的特征图进行下采样,减少特征图的尺寸和参数数量。常见的池化操作有最大值池化(Max Pooling)和平均值池化(Average Pooling)。

3)激活函数

在卷积层或全连接层之后,通常使用非线性激活函数来引入非线性关系。常见的激活函数有ReLU函数、Sigmoid函数和Tanh函数等。

4)全连接层

全连接层将前面的卷积层或池化层输出的特征图展平,并与相邻层的所有神经元进行全连接操作。它的作用是将提取到的特征进行分类或回归预测。

2、步骤

1)加载预训练的人脸识别模型

Dlib提供了一个预训练的人脸识别模型,可以在下载并安装Dlib库后找到。

2)读取图像并检测人脸

使用Dlib库提供的人脸检测器来检测输入图像中的人脸,并将每个检测到的人脸提取为一个矩形框。

3)提取人脸特征向量

使用CNN模型对每个检测到的人脸图像进行特征提取,得到一个固定长度的向量表示每个人脸。

4)比较相似度

使用提取的人脸特征向量来比较不同人脸之间的相似度。可以使用欧氏距离或余弦相似度等度量方法来计算相似度分数。

二、案例实现

1、完整代码

python 复制代码
import dlib
import cv2

# opencv可以直接通过retnet来读取神经网络。dlib也可以的。
cnn_face_detector = dlib.cnn_face_detection_model_v1("mmod_human_face_detector.dat")  # 加载预训练的卷积神经网络模型,文件内包含检测人脸所需的权重和配置

img = cv2.imread("people3.png")  # 读取待识别人脸图片

faces = cnn_face_detector(img,1)  # 调用卷积神经网络检测模型对img图像检测人脸,1表示上采样次数为1

for d in faces:  # 遍历识别到的每一个人脸
    # 计算每个人脸的位置
    rect = d.rect   # 获取当前人脸的矩形框对象,返回两个坐标,左上右下
    left = rect.left()  # 左边界x坐标
    top = rect.top()   # 上边界y坐标
    right = rect.right()   # 右边界x
    bottom = rect.bottom()   # 下边界y
    # 绘制人脸对应的矩形框pt1:(left, top)
    cv2.rectangle(img,(left,top),(right,bottom),(0,255,0), 3)
    cv2.imshow("result",img)
k = cv2.waitKey()
cv2.destroyAllWindows()
运行结果:
相关推荐
m4Rk_5 小时前
【论文阅读】Agent 记忆机制(83):Inside Out——用可演化 PersonaTree 构建 Agent 的核心长期记忆
论文阅读·人工智能·学习·开源·github
运行时异常5 小时前
【WMS 仓储系统集成 AI Agent 实战】第 8 讲(终篇):生产部署与并发安全——Semaphore 放进 Flux.defer 的坑,压测抓了一晚上
人工智能·安全
杨杨杨大侠5 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
代码方舟5 小时前
零信任架构实战:基于天远人企关联构建自动化供应链金融网关
运维·人工智能·架构·自动化
虹科网络安全5 小时前
“顶会”看安全(十八):超越越狱:揭示由能力边界模糊引发的 LLM 应用安全风险
人工智能·安全
Maiko Star5 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
鬓戈6 小时前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
天远API6 小时前
零信任架构实战:基于天远人企关联构建自动化图谱网关
网络·人工智能·架构·自动化
爱吃提升6 小时前
文生视频模型发展趋势(2026)
人工智能·音视频
AIGS0016 小时前
什么是本体语义平台?和知识图谱、传统数据中台的区别在哪
人工智能·知识图谱·数据中台·ai问数·本体语义平台·智能数据中台