ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【深度学习目标检测】十八、基于深度学习的人脸检测系统-含GUI和源码(python,yolov8)

2026/9/25 5:04:08 拓冰建站 浏览量
【深度学习目标检测】十八、基于深度学习的人脸检测系统-含GUI和源码(python,yolov8)

人脸检测是计算机视觉中的一个重要方向,也是一个和人们生活息息相关的研究方向,因为人脸是人最重要的外貌特征。人脸检测技术的重要性主要体现在以下几个方面:

  1. 人脸识别与安全:人脸检测是人脸识别系统的一个关键部分,是系统实现的前提和基础。在安防监控中,通过人脸检测可以抓拍人脸并将结果上传,与嫌疑犯人脸进行比对,协助公安人员的执法工作。此外,企业还在为考勤系统实施人脸识别技术,以防止时间欺诈并提高员工进出办公室的安全性。
  2. 人机交互与自动化:人脸检测也可以用于人机交互和图像数据库管理,如数码相机使用人脸检测来自动对焦,以及智能业务系统及平台的研发等。
  3. 零售与支付:在零售行业,人脸检测被用来加速盗窃和欺诈调查,以及分析来自众多来源的镜头以识别感兴趣的个人。此外,预计未来几年零售领域将发生巨大变化,全球将推广刷脸支付,这也离不开人脸检测技术的应用。

总之,人脸检测技术在许多领域都有广泛的应用前景,它能够提高人们生活的便利性、安全性和自动化程度。随着技术的不断进步,人脸检测将在更多领域发挥重要作用。

本文介绍了基于深度学习yolov8的洋葱检测系统,包括训练过程和数据准备过程,同时提供了推理的代码和GUI。对准备计算机视觉相关的毕业设计的同学有着一定的帮助。

检测结果如下图:

一、安装YoloV8

yolov8官方文档:主页 - Ultralytics YOLOv8 文档

安装部分参考:官方安装教程

1、安装pytorch

根据本机是否有GPU,安装适合自己的pytorch,如果需要训练自己的模型,建议使用GPU版本。

①GPU版本的pytorch安装

对于GPU用户,安装GPU版本的pytorch,首先在cmd命令行输入nvidia-smi,查看本机的cuda版本,如下图,我的cuda版本是12.4(如果版本过低,建议升级nvidia驱动):

打开pytorch官网,选择合适的版本安装pytorch,如下图,建议使用conda安装防止cuda版本问题出现报错:

②CPU版本pytorch安装

打开pytorch官网,选择CPU版本安装pytorch,如下图:

2、安装yolov8

在命令行使用如下命令安装:

pip install ultralytics

二、数据集准备

WIDER FACE数据集是一个用于面部检测的大规模人脸数据集,由香港中文大学的研究团队创建。该数据集的特点和组成如下:

  1. 规模与内容:该数据集包含了32,203张图片和393,703个人脸实例,涵盖了广泛的场景、姿态和光照条件。
  2. 标注信息:每个实例都有精确的边界框标注和五个面部特征点标注,这为研究者提供了丰富的信息来进行面部检测和相关任务的研究。
  3. 挑战性:WIDER FACE数据集拥有一个挑战性高的评估基准,旨在评估面部检测算法在各种实际场景中的性能。
  4. 数据划分:该数据集以60个事件类别(如交通、节日、游行等)为基础进行划分,每个事件类别中随机选择40%的数据作为训练集,10%作为验证集,50%作为测试集。这种划分方式使得数据集更具实际应用价值。
  5. 难度级别:WIDER FACE数据集为每个子集(训练集、验证集和测试集)都提供了三个级别的检测难度:Easy、Medium和Hard。这有助于研究者了解他们的算法在不同难度级别上的表现。

总的来说,WIDER FACE数据集是一个丰富、多样且具有挑战性的面部检测数据集,为面部检测和相关任务的研究提供了有力的支持。

本文使用的数据集来自widerface数据集,包含12876张训练图片,3226个测试图片,部分图片如下所示:

为了使用yolov8进行训练,需要将数据集转为yolo格式,本文提供转换好的数据集连接:widerface-yolov8数据集

三、模型配置及训练

1、数据集配置文件

创建数据集配置文件widerface.yaml,内容如下(将path路径替换为自己的数据集路径):

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 dataset http://cocodataset.org by Microsoft
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco  ← downloads here (20.1 GB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: D:\DeepLearning\datasets\csdn\widerface_yolo8  # 替换为自己的数据集路径
train: images/train 
val: images/val 
test: images/val  # Classes
names:# 0: normal0: face

2、训练模型

使用如下命令训练模型,数据配置文件路径更改为自己的路径,model根据自己的需要使用yolov8n/s/l/x版本,其他参数根据自己的需要进行设置:

yolo detect train project=widerface name=train exist_ok data=widerface/widerface.yaml model=yolov8n.yaml epochs=100 imgsz=416

3、验证模型

使用如下命令验证模型,相关路径根据需要修改:

yolo detect val imgsz=640 model=widerface/train/weights/best.pt data=widerface/widerface.yaml

验证的精度如下:

# Ultralytics YOLOv8.1.10 🚀 Python-3.9.18 torch-2.2.0 CUDA:0 (NVIDIA GeForce RTX 3060, 12288MiB)
# YOLOv8n summary (fused): 168 layers, 3005843 parameters, 0 gradients, 8.1 GFLOPs
# val: Scanning D:\DeepLearning\datasets\csdn\thsant-wgisd-ab223e5\wgisd_yolov8\labels\test.cache... 58 images, 0 backgrounds, 0 corrupt: 100%|██████████| 58/58 [00:00<?, ?it/ 
#                  Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:06<00:00,  1.70s/it]
#                    all         58        850      0.772      0.714        0.8      0.445
# Speed: 2.7ms preprocess, 8.4ms inference, 0.0ms loss, 8.4ms postprocess per image

四、推理

训练好了模型,可以使用如下代码实现推理,权重路径修改为自己的路径:

from PIL import Image
from ultralytics import YOLO# 加载预训练的YOLOv8n模型
model = YOLO('best.pt')image_path = 'test.jpg'
results = model(image_path)  # 结果列表# 展示结果
for r in results:im_array = r.plot()  # 绘制包含预测结果的BGR numpy数组im = Image.fromarray(im_array[..., ::-1])  # RGB PIL图像im.show()  # 显示图像im.save('results.jpg')  # 保存图像

五、界面开发

使用pyqt5开发gui界面,支持图片、视频、摄像头输入,支持导出到指定路径,其GUI如下图(完整GUI代码可在下方链接下载):

代码下载连接:基于yolov8的人脸检测系统,包含训练好的权重和推理代码,GUI界面,支持图片、视频、摄像头输入,支持检测结果导出