人脸关键点

简介: 【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进行人脸姿态估计
2231 0
|
Shell Linux 计算机视觉
【Dlib】动作检测:以常见的人脸识别验证为例讲解张嘴与闭眼
【Dlib】动作检测:以常见的人脸识别验证为例讲解张嘴与闭眼
861 0
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
7月前
|
机器学习/深度学习 数据采集 人工智能
微调之后还能做什么?大模型后训练全链路技术解析
本文探讨了后训练的重要性、方法以及最新进展。文章将包含理论分析与实际操作指南,适合希望深入了解并应用这些技术的开发者。
1688 18
微调之后还能做什么?大模型后训练全链路技术解析
|
算法 计算机视觉
Opencv学习笔记(六):cv2.resize函数的介绍
这篇文章介绍了OpenCV库中cv2.resize函数的使用方法,包括其参数、插值方式选择以及实际代码示例。
2767 1
Opencv学习笔记(六):cv2.resize函数的介绍
|
10月前
|
Kubernetes 调度 异构计算
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
4713 2
|
12月前
|
机器学习/深度学习
YOLOv11改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
YOLOv11改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
2660 4
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
23605 3
|
XML 数据格式 Python
YOLOv5入门实践(3)——手把手教你划分自己的数据集
YOLOv5入门实践(3)——手把手教你划分自己的数据集
5547 0
YOLOv5入门实践(3)——手把手教你划分自己的数据集