README_cn.md

April 28, 2023 · View on GitHub

简体中文 | English

YOLOv6-Face

基于 YOLOv6 v3.0 分支 代码实现人脸检测任务。

新特性

  • 人脸关键点定位
  • Repulsion 损失函数
  • 相同通道解耦头

WIDERFACE 模型指标

ModelSizeEasyMediumHardSpeedT4
trt fp16 b1
(fps)
SpeedT4
trt fp16 b32
(fps)
Params
(M)
FLOPs
(G)
YOLOv6-N64095.092.480.479713134.6311.35
YOLOv6-S64096.294.785.133948412.4132.45
YOLOv6-M64097.095.386.318824024.8570.59
YOLOv6-L64097.295.987.510212156.77159.24
YOLOv6Lite-S41689.684.658.8//0.530.90
YOLOv6Lite-M41690.686.160.6//0.761.07
YOLOv6Lite-L41691.887.664.2//1.061.40

表格备注

  • 以上模型均在COCO预训练模型上微调300轮之后的结果.
  • mAP 和速度指标是在 WIDER FACE 数据集上评估的,模型输入分辨率为 640×640.
  • 速度是在 T4 上测试的,TensorRT 版本为 8.2.
  • 复现 YOLOv6 的速度指标,请查看速度测试 教程.
  • YOLOv6 的参数和计算量是在推理模式下计算的.

快速开始

安装
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
git checkout yolov6-face
pip install -r requirements.txt
训练

单卡

python tools/train.py --batch 8 --conf configs/yolov6s_finetune.py --data data/WIDER_FACE.yaml --fuse_ab --device 0

多卡 (推荐使用 DDP 模式)

python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 64 --conf configs/yolov6s_finetune.py --data data/WIDER_FACE.yaml --fuse_ab --device 0,1,2,3,4,5,6,7
  • fuse_ab: 使用联合锚点训练模式
  • conf: 配置文件路径,里面包含网络结构、优化器配置、超参数信息。如果您是在自己的数据集训练,我们推荐您使用yolov6n/s/m/l_finetune.py配置文件
  • data: 数据集配置文件,以 WIDERFACE 数据集为例,您可以在 WIDERFACE 下载数据, 在这里下载YOLO 格式标签
  • 确保您的数据集按照下面这种格式来组织;
├── widerface
│   ├── images
│   │   ├── train
│   │   └── val
│   ├── labels
│   │   ├── train
│   │   ├── val

推理

首先,从release 页面 下载一个训练好的模型权重文件,或选择您自己训练的模型;

然后,通过 tools/infer.py 文件进行推理。

python tools/infer.py --weights yolov6s_face.pt --source ../widerface/images/val/ --yaml data/WIDER_FACE.yaml --conf 0.02 --not-save-img --save-txt-widerface --name widerface_yolov6s
WIDERFACE 评估
cd widerface_evaluate
python evaluation.py --pred ../runs/inference/widerface_yolov6s/labels/
部署
教程
第三方资源

FAQ(持续更新)

如果您有任何问题,欢迎加入我们的微信群一起讨论交流!