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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐