YOLOv9人脸检测
人脸检测任务是在图像或视频中识别和定位人脸。本仓库演示了如何在WIDER Face数据集上训练YOLOv9模型,以实现高精度的人脸检测。
⚙️ 安装
克隆此仓库并安装YOLOv9的requirements.txt:
git clone https://github.com/spacewalk01/yolov9-face-detection
cd yolov9-face-detection/yolov9
pip install -r requirements.txt
🤖 预训练模型
从谷歌云盘下载预训练的yolov9-c.pt
模型。请注意,此模型在WIDER数据集上训练了240轮。
📚 数据准备
WIDER数据集包含超过30k张图像,其中包含超过390k个人脸,每个人脸都有边界框和其他各种标签格式。
数据集结构
${ROOT}
└── yolov9
└── datasets/
└── widerface/
└── train/
└── val/
└── original-widerface/
└── train/
└── images/
└── label.txt
└── val/
└── images/
└── label.txt
└── train2yolo.py
└── val2yolo.py
└── widerface.yaml
准备数据的步骤:
- 下载WIDER-FACE数据集。
- 从谷歌云盘下载注释文件。
运行以下命令:
python train2yolo.py datasets/original-widerface/train datasets/widerface/train
python val2yolo.py datasets/original-widerface datasets/widerface/val
这些脚本会将注释文件转换为YOLO格式,为每张图像创建一个.txt文件。文件中的每一行代表一个对象,格式为:类别 x中心 y中心 宽度 高度
。
🏋️ 训练
使用以下命令训练模型:
cd yolov9
python train_dual.py --workers 4 --device 0 --batch 4 --data ../widerface.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15
🌱 推理
使用以下命令进行推理:
python detect.py --weights runs/train/yolov9-c5/weights/best.pt --source assets/worlds-largest-selfie.jpg
或者如果你想使用训练好的模型,从上面的链接下载并运行以下命令:
python detect.py --weights best.pt --source assets/worlds-largest-selfie.jpg
🔗 参考
- YOLOv9 - YOLOv9:使用可编程梯度信息学习你想学的内容
- WIDER FACE - WIDER FACE:人脸检测基准
- YOLO5Face - YOLO5Face:为什么要重新发明人脸检测器