人脸关键点

简介: 【6月更文挑战第20天】

人脸关键点检测是计算机视觉和机器学习领域的一个重要任务,它涉及在图像或视频中识别和定位人脸的特定特征点。这些关键点可以包括眼睛、鼻子、嘴巴、眉毛、下巴等部位的轮廓和特征。不同的关键点模型提供不同级别的细节和精度,以下是一些常见的人脸关键点检测模型:

  1. 68个关键点模型

    • 这是由dlib库提供的默认人脸关键点检测模型,通常称为“shape_predictor_68_face_landmarks.dat”。
    • 它能够检测到人脸上的68个特征点,覆盖了主要的面部特征,如眼睛、鼻子、嘴巴、眉毛等。
    • 68点模型适用于大多数面部识别和分析任务,并且计算速度快,适用于实时应用。
  2. 104个关键点模型

    • 104点模型是68点模型的一个扩展,提供了更细致的面部特征描述。
    • 这个模型不仅包括了68点模型的所有关键点,还增加了眼睛、鼻子和嘴巴内部的更多关键点。
    • 104点模型适用于需要更高精度面部特征分析的应用,如高级面部表情识别。
  3. 240个关键点模型

    • 240点模型进一步增加了面部关键点的数量,提供了更为精细的面部特征描述。
    • 这种模型能够捕捉到更多的面部细节,包括面部的微妙表情变化和更复杂的面部结构。
    • 240点模型适用于对面部特征精度要求极高的应用,如3D面部重建、高精度面部动画等。

不同的关键点模型有各自的优势和局限性:

  • 精度:240点模型提供最高的精度,但计算成本也最高;68点模型则在精度和计算效率之间取得平衡。
  • 速度:68点模型由于关键点数量较少,处理速度最快,适合实时系统。
  • 应用场景:68点模型适用于大多数通用场景,104点和240点模型适用于需要更高细节的场景,如医学图像分析或高级面部特效制作。
    ```js
    import cv2

加载预训练的68点人脸关键点检测模型

model_path = './model/shape_predictor_68_face_landmarks.dat' # 确保你有这个模型文件
predictor = cv2.face.createFacemarkKazemi(model_path)

读取图像

image_path = 'yh_color.jpg' # 替换为你的图片路径
image = cv2.imread(image_path)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

人脸检测,这里使用OpenCV的Haar级联分类器

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_alt.xml')
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

对每个检测到的人脸进行关键点检测

for (x, y, w, h) in faces:

# 在灰度图像上检测关键点
landmarks = predictor.fit(gray, cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2))

# 绘制关键点
for (x, y) in landmarks:
    cv2.circle(image, (x, y), 2, (0, 0, 255), -1)  # 红色关键点

显示图像

cv2.imshow('Face Landmarks', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

```

目录
相关文章
|
机器学习/深度学习 Shell 算法框架/工具
【姿态估计】实操记录:使用Dlib与mediapipe进行人脸姿态估计
【姿态估计】实操记录:使用Dlib与mediapipe进行人脸姿态估计
2820 0
|
Web App开发 Go API
RTSPtoWebRTC
RTSPtoWebRTC
1093 0
|
Linux 网络安全 虚拟化
安装Linux虚拟机——以ubuntukylin-16.04.7-desktop-amd64.iso为例
安装Linux虚拟机——以ubuntukylin-16.04.7-desktop-amd64.iso为例
851 0
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
机器学习/深度学习 数据采集 人工智能
微调之后还能做什么?大模型后训练全链路技术解析
本文探讨了后训练的重要性、方法以及最新进展。文章将包含理论分析与实际操作指南,适合希望深入了解并应用这些技术的开发者。
3065 19
微调之后还能做什么?大模型后训练全链路技术解析
|
算法 计算机视觉
Opencv学习笔记(六):cv2.resize函数的介绍
这篇文章介绍了OpenCV库中cv2.resize函数的使用方法,包括其参数、插值方式选择以及实际代码示例。
3942 1
Opencv学习笔记(六):cv2.resize函数的介绍
|
数据采集 人工智能 监控
人机融合智能 | 人智交互中的人类状态识别
近年来,随着“以人为中心”的AI理念兴起,“人智交互”逐渐成为研究热点。该理念强调AI系统需理解人类生理、心理状态,以实现更自然、和谐的人机合作。本章从生理计算、情感计算与交互意图理解三方面,探讨人类状态识别的理论基础与技术进展,分析其在人智交互中的关键作用,并展望未来发展趋势。
465 8
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
27561 3
|
机器学习/深度学习 算法 图形学
shape_predictor_68_face_landmarks
【6月更文挑战第22天】
1487 7
|
XML JSON 数据可视化
数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式
本文介绍了labelImg和labelme两款图像标注工具的安装、使用、数据转换和验证方法,适用于目标检测和图像分割任务,支持YOLO等数据集格式。
6620 2
数据集学习笔记(六):目标检测和图像分割标注软件介绍和使用,并转换成YOLO系列可使用的数据集格式