原文:Yolov8 人脸关键点检测 - 知乎 (zhihu.com)
基于yolov8的人脸检测,带关键点检测。主要基于yolov8 姿态估计进行修改:
Ctrl CV:Yolov8 姿态估计20 赞同 · 39 评论文章
人脸关键点有5个点,分别为左右两个嘴角,两个眼睛的中心,鼻子,这5个关键点属于人脸内部关键点,根据它们就可以计算出人脸的姿态。
一、数据集下载 widerface
http://shuoyang1213.me/WIDERFACE/shuoyang1213.me/WIDERFACE/
二、数据准备
将数据处理成yolo格式,并划分train、val
这里与姿态估计不同的是人脸关键点只有5个,每个关键点由x,y组成,因此一组标注信息共(1+4+5*2)=15个数字。即每一行都有15个数字标注。
三、模型训练
1、修改模型配置文件yolov8n-widerface.yaml
2、数据配置文件widerface.yaml
3、训练
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8s-widerface.yaml') # build a new model from YAML
model = YOLO('yolov8s-pose.pt') # load a pretrained model (recommended for training)
# Train the model
# model.train(data='widerface.yaml', epochs=300, imgsz=640, batch=16)
model.train(data='widerface.yaml', epochs=1, imgsz=640, batch=32) 这里只训练1个 epoch
4、测试
# 图片
yolo pose predict model=runs/pose/train/weights/best.pt source='https://ultralytics.com/images/bus.jpg' show=True save=True
# 视频
yolo pose predict model=runs/pose/train/weights/best.pt source=0 show=True save=True
由于这里只运行了一个epoch, 效果有待提高。