YOLO v8使用WIDER Face数据集人脸检测

本文介绍了如何使用yolov8在WIDERFace数据集上进行人脸检测,包括数据集准备、转换为yolo所需的COCO8格式,以及如何配置和训练模型。后续章节涉及PyTorch和OpenCV的模型训练与测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


github:https://github.com/taisuii/yolo_face

0x1 数据集准备

yolo支持多种数据集格式,详细请看官网 https://docs.ultralytics.com/datasets/

WIDER Face(人脸目标检测数据集) http://shuoyang1213.me/WIDERFACE/

人脸图像 https://drive.google.com/file/d/1KfmeBY7N0hNhg79UIgdEhbNxGSrDPWSm/view?usp=drive_link

使用yolov8模型目标检测,再使用resnet或者OpenCV对人脸图像进行分类

0x2 数据处理 及其转换

网上有转换成VOC数据集再转换成COCO再转换成yolo的数据集,实际上没必要那么麻烦

先下载这三个,解压到WIDER_FACE,我们只需要这几个数据,从左到右,x和y的最小值坐标,box的宽和高
在这里插入图片描述

在这里插入图片描述

把数据进行转换成yolo支持的coco8格式(WIDER_FACE_COCO8.py),即比例形式

x_center = (xmin + boxw/2)/img_with

y_center = (ymin + boxh/2)/img_height

box_width = boxw / img_width

box_height = boxh / img_height

处理代码,及其绘制box

python WIDER_FACE_COCO8.py

验证是否文件齐全

python verify.py

0x3 模型训练

配置文件在config/coco8.yaml

这里我用的设备是RTX 4070 12G

单线程 batch=8 跑出来大概需要空闲显存10G

python train_yolov8.py

PyTorch: starting from 'runs\detect\train2\weights\best.pt' with input shape (1, 3, 640, 640) BCHW and output shape(s) (1, 5, 8400) (5.9 MB)

Results saved to runs\detect\train22
在这里插入图片描述

左边标签,右边predict
在这里插入图片描述

在这里插入图片描述

0x4 OpenCv训练

1.数据处理

提取所有人名 放入config.py

python FaceDataHandle.py
2.训练模型

训练opencv的模型 保存为model.yml

python opencv_faceClassify/train.py

0x5 模型测试

python run.py

在这里插入图片描述

Base on yolov8 and wider face dataset, training a model that can be used

### YOLO用于人脸识别的数据集下载及示例代码 YOLO(You Only Look Once)是一种高效的实时目标检测算法,在人脸检测领域也有广泛应用。以下是关于如何准备数据集使用YOLO进行人脸识别的具体方法。 #### 数据集准备 为了训练YOLO模型进行人脸识别,通常需要一个标注良好的人脸数据集。常用的人脸识别数据集包括: - **WIDER FACE**:这是一个大规模的人脸检测数据集,包含超过40,000张图片和约75万个人脸框[^1]。 - **FDDB (Face Detection Data Set and Benchmark)**:该数据集中包含了2845张图像,每幅图中标记了一个人或多个人的脸部区域[^3]。 如果想自己创建数据集,则可以按照以下方式操作: 1. 将所有训练数据放置于`traindata`目录下,并按类别分好文件夹结构。 2. 修改配置文件中的`data_path`参数指向本地存储路径,例如设置为`./traindata`即可完成基本配置。 #### 安装依赖与环境搭建 确保安装必要的库和支持工具链: ```bash pip install -r requirements.txt ``` 运行验证脚本前确认已正确加载权重文件: ```bash python ultralytics/yolo/v8/detect/val.py --data face_expression_dataset.yaml --weights runs/detect/train/exp/weights/best.pt ``` 上述命令会基于预定义的测试集合评估当前最佳性能模型的表现情况[^2]。 #### 推理过程演示 利用已经训练完毕的最佳权值执行预测任务时可采用如下指令形式: ```bash python detect.py --source path_to_image_or_video --weights best.pt --conf-thres 0.4 --iou-thres 0.5 ``` 这里设置了置信度阈值(`--conf-thres`) 和交并比(`--iou-thres`) 来过滤掉低质量的结果输出。 #### 示例代码片段 下面给出一段简单的Python接口调用实例来展示如何通过API实现单帧画面内的多个人物面部定位功能。 ```python from ultralytics import YOLO model = YOLO('best.pt') # 加载最优模型 results = model.predict(source='test.jpg', conf=0.4, iou=0.5) for r in results: boxes = r.boxes.xyxy.cpu().numpy() # 获取边界框坐标[xmin,ymin,xmax,ymax] scores = r.boxes.conf.cpu().numpy() # 提取得分数组 labels = r.names[r.boxes.cls.int().cpu().numpy()] # 类别名称列表 print(f'Detected {len(boxes)} faces.') ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值