基于深度学习的人脸检测技术

这篇具有很好参考价值的文章主要介绍了基于深度学习的人脸检测技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  用到环境
1、pycharm community edition 2022.3.2
2、Python 3.10
整篇内容都已上传至我的csdn资源中,想用的请移步。
基于深度学习的人脸检测技术

流程

  多任务级联卷积神经网络(Multi-task Cascaded Convolutional Networks, MTCNN)算法进行人脸检测

普通人脸检测

单人人脸检测

基于深度学习的人脸检测技术

图1 单人人脸检测

  分析:可以看出在单人人脸检测时,MTCNN方法很好的画出了人脸的检测框以及很准确的检测出了眼睛、笔尖、嘴角的一共五个点,实现效果很好。

双人人脸检测

基于深度学习的人脸检测技术

图2 双人人脸检测

  分析:可以看出在双人人脸检测时,MTCNN方法很好的画出了人脸的检测框以及不管是张嘴还是闭嘴都很准确的检测出了眼睛、笔尖、嘴角的一共五个点,实现效果很好。

多人人脸检测

基于深度学习的人脸检测技术

图3 多人人脸检测

  分析:可以看出在多人人脸检测时,MTCNN方法依然能很好的画出了人脸的检测框以及准确的检测出了眼睛、笔尖、嘴角的一共五个点,实现效果很好。

特殊情况的人脸检测

侧拍

基于深度学习的人脸检测技术

图4 侧拍角度人脸检测

  分析:可以看出在即使在侧拍角度,五官的位置相较于普通情况很不一样,MTCNN方法还是可以很好的画出了人脸的检测框以及很准确的检测出了眼睛、笔尖、嘴角的一共五个点,实现效果很好。

  在侧拍照片中,由于人脸的姿态发生了变化,传统的基于Haar或者HOG特征的人脸检测算法可能无法准确地检测出人脸区域,而MTCNN可以通过多尺度的滑动窗口搜索技术,在不同尺度下对人脸进行全局检测。同时,MTCNN中的关键点回归模块可以通过学习人脸形态学信息,准确地预测出人脸的五个关键点位置,即左眼、右眼、鼻子、左嘴角和右嘴角。

  因此,即使是在侧拍照片中,MTCNN也可以通过深度神经网络的强大表征能力和多任务学习的方法,实现对人脸区域的准确检测和关键点的精确定位。

有遮挡

基于深度学习的人脸检测技术

图5 有遮挡人脸检测
  分析:可以看出在即使在眼睛戴墨镜有遮挡的情况下,MTCNN方法还是可以很好的画出了人脸的检测框以及很准确的检测出了眼睛、笔尖、嘴角的一共五个点,实现效果很好。

  可能原因是:虽然戴着眼镜的人脸与不戴眼镜的人脸在外观上存在差异,但是这些关键点位置通常是比较稳定的,并且MTCNN在训练过程中已经学习到了戴眼镜人脸的特征,所以在实际应用中,MTCNN可以很好地检测带眼镜的人脸关键点。

类人生物

基于深度学习的人脸检测技术

图6 复杂情况人脸检测
  分析:可以看出在即使在有闭眼、出现猪鼻子的情况下,MTCNN方法还是可以很好的画出了人脸的框以及很准确的检测出了眼睛、笔尖、嘴角的一共五个点,实现效果很好。

  可能原因:虽然猪鼻子和人的鼻子的人脸以及睁眼和闭眼在外观上存在差异,但是这些关键点位置通常是比较稳定的,并且MTCNN在训练过程中已经学习到了戴眼镜人脸的特征,所以在实际应用中,MTCNN可以很好地检测带眼镜的人脸关键点。

人脸对齐问题

基于深度学习的人脸检测技术

图7 人脸检测对齐结果

  分析:以上是两组人脸对齐的实验结果,可以看出通过将检测到的人脸关键点与参考关键点进行比较的方法可以很好的进行人脸对齐。

基于深度学习的人脸检测技术

图8 人脸检测对齐异常结果

  分析:以上是一组人脸对齐的实验结果,可以看出通过将检测到的人脸关键点与参考关键点进行比较的方法可以很好的进行人脸对齐,只是对齐结果的图片顶部出现不明黑色区域。出现原因是人脸对齐的框的大小是实现给定的固定值,当人脸对齐的结果在边缘(这里在顶部)且小于给定值时,会用黑色填充空白区域。

更多面部特征点提取问题

基于深度学习的人脸检测技术

图9 dlip更多面部特征点提取结果

  分析:以上是dlip更多面部特征点提取结果,左边是单人的面部特征点提取结果,右边是多人的面部特征点提取结果。可以看出与MTCNN相比,DLIP确实可以检测更多的面部特征点,而且实现效果好。

代码:
主函数
import cv2
from mtcnn import MTCNN

detector = MTCNN()

image = cv2.cvtColor(cv2.imread("12.jpg"), cv2.COLOR_BGR2RGB)
result = detector.detect_faces(image)

# Result is an array with all the bounding boxes detected. We know that for 'ivan.jpg' there is only one.
for person in result:
    bounding_box = person['box']
    keypoints = person['keypoints']

    cv2.rectangle(image,
                  (bounding_box[0], bounding_box[1]),
                  (bounding_box[0]+bounding_box[2], bounding_box[1] + bounding_box[3]),
                  (0,155,255),
                  2)

    cv2.circle(image,(keypoints['left_eye']), 2, (0,155,255), 2)
    cv2.circle(image,(keypoints['right_eye']), 2, (0,155,255), 2)
    cv2.circle(image,(keypoints['nose']), 2, (0,155,255), 2)
    cv2.circle(image,(keypoints['mouth_left']), 2, (0,155,255), 2)
    cv2.circle(image,(keypoints['mouth_right']), 2, (0,155,255), 2)


cv2.imwrite("12_draw.jpg", cv2.cvtColor(image, cv2.COLOR_RGB2BGR))

print(result)

人脸对齐
import cv2
import numpy as np
from mtcnn import MTCNN

# Define the reference landmarks that the face will be aligned to
ref_landmarks = np.array([
    [30.2946, 51.6963],
    [65.5318, 51.5014],
    [48.0252, 71.7366],
    [33.5493, 92.3655],
    [62.7299, 92.2041]
], dtype=np.float32)

def align_face(img, landmarks):
    # Convert landmarks to a NumPy array
    landmarks = np.array([list(landmarks.values())], dtype=np.float32)

    # Calculate the transformation matrix using the reference and detected landmarks
    M, _ = cv2.estimateAffinePartial2D(landmarks, ref_landmarks)

    # Apply the transformation matrix to the image
    aligned_img = cv2.warpAffine(img, M, (96, 112), flags=cv2.INTER_CUBIC)

    return aligned_img

# Load the input image
img = cv2.imread('3.jpg')

# Initialize MTCNN
detector = MTCNN()

# Detect faces using MTCNN
faces = detector.detect_faces(img)

# For each detected face, align the face and save the result
for face in faces:
    landmarks = face['keypoints']
    aligned_face = align_face(img, landmarks)
    cv2.imwrite('3_aligned_face.jpg', aligned_face)

更多面部特征点提取问题
import cv2
import dlib
# 读取图片
img_path = "1.jpg"
img = cv2.imread(img_path)
# 转换为灰阶图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 正向人脸检测器
detector = dlib.get_frontal_face_detector()
# 使用训练完成的68个特征点模型
predictor_path = "shape_predictor_68_face_landmarks.dat"
predictor = dlib.shape_predictor(predictor_path)
# 使用检测器来检测图像中的人脸
faces = detector(gray, 1)
for i, face in enumerate(faces):
    # 获取人脸特征点
    shape = predictor(img, face)
    # 遍历所有点
    for pt in shape.parts():
        # 绘制特征点
        pt_pos = (pt.x, pt.y)
        cv2.circle(img, pt_pos, 1, (255,0, 0), 2)
cv2.imshow('opencv_face_laowang',img)  # 显示图片
cv2.waitKey(0) # 等待用户关闭图片窗口
cv2.destroyAllWindows()# 关闭窗口

编写不易,求个点赞!!!!!!!
“你是谁?”

“一个看帖子的人。”

“看帖子不点赞啊?”

“你点赞吗?”

“当然点了。”

“我也会点。”

“谁会把经验写在帖子里。”

“写在帖子里的那能叫经验贴?”

“上流!”
cheer!!!

基于深度学习的人脸检测技术文章来源地址https://www.toymoban.com/news/detail-497446.html

到了这里,关于基于深度学习的人脸检测技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代

    目录 前言 机器视觉 缺陷检测 工业上常见缺陷检测方法 内容简介 作者简介 目录 读者对象 如何阅读本书 获取方式 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 机器视觉 机器视觉是使用各种工业相机,结

    2024年02月04日
    浏览(39)
  • OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代

    机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成,特别是传统的3C制造环节,产品缺陷检测依赖于人眼睛来发现与检测,不仅费时费力还面

    2024年02月04日
    浏览(32)
  • OpenCv人脸检测技术-(实现抖音特效-给人脸戴上墨镜)

    本文章用的是Python库里的OpenCv。 人脸检测,把图像分成一个个小块,对每一个小块判断是否是人脸,假如一张图被分成了5000块,则速度非常慢。 为了提高效率,OpenCV 提供 cascades 来避免这种情况。提供了一系列的xml文件 cascades :翻译 :小瀑布 级联 cascade 对于每个数据块,

    2023年04月21日
    浏览(27)
  • 浅析人脸活体检测技术的功能及几种分类

    在日常生活工作中,出现了人脸验证、人脸支付、人脸乘梯、人脸门禁等等常见的应用场景。这说明人脸识别技术已经在门禁安防、金融行业、教育医疗等领域被广泛地应用,人脸识别技术的高速发展与应用同时也出现不少质疑。其中之一就是人脸识别很容易被照片、视频、

    2024年02月07日
    浏览(33)
  • AI:149-法律电子邮件图像中的欺诈检测与敲诈勒索追踪—深度学习技术

    🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,

    2024年03月19日
    浏览(39)
  • 门禁系统中人脸检测技术的原理剖析和使用教程

    人脸检测 API 是一种基于深度学习技术的图像处理API,可以快速地检测出一张图片中的人脸,并返回人脸的位置和关键点坐标,在人脸识别系统、人脸情绪识别等多种场景下都有极大的应用。 本文将从人脸检测的发展历程、原理、特点等角度出发,一文带你看透人脸检测 AP

    2023年04月21日
    浏览(31)
  • 深度解析知网AIGC检测:从理论到实践,全方位探索前沿技术

    大家好,小发猫降ai今天来聊聊深度解析知网AIGC检测:从理论到实践,全方位探索前沿技术,希望能给大家提供一点参考。降ai辅写 以下是针对论文AI辅写率高的情况,提供一些修改建议和技巧,可以借助此类工具: 还有: 标题: \\\"深度解析知网AIGC检测:从理论到实践,全方

    2024年03月16日
    浏览(50)
  • 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

    1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度检测计算算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 List item 工作量:3分 创新点:5分 🧿 更多资料, 项目分享:

    2024年03月22日
    浏览(77)
  • Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

    ​ 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理 :首先,对输入图像进行预处理,包括读取图片、将图片灰度转换、修改图片的尺寸、绘制矩形

    2024年04月13日
    浏览(35)
  • 计算机视觉 - 基于黄金模板比较技术的缺陷检测

            基于黄金模板比对的检测是一种常见的视觉应用。当进行缺陷检查而其他缺陷检测方法是不可行的时候,使用金模板比较。另外当物体的表面或物体的形状非常复杂时,此技术特别有用。          虽然说黄金模板比较的技术的思路很简单,但是真正落地实施确

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包