YOLOv9是一个在目标检测领域内具有突破性进展的深度学习模型,尤其以其在实时性与准确性上的优秀表现而受到广泛关注。针对人脸检测这一特定任务,YOLOv9通过其架构创新和算法优化提供了强大的支持。
YOLOv9在继承了YOLO系列(如YOLOv7、YOLOv8)优点的基础上,进一步提升了模型性能和效率。例如,YOLOv9引入了可编程梯度信息(PGI),这一创新有助于缓解深度神经网络中因多层处理导致的信息损失问题,从而提高了模型对于小尺寸人脸以及复杂背景下的检测能力。
在人脸检测项目中,YOLOv9可能利用了更高效的特征提取器、跨阶段的信息融合机制、以及更为精简的网络结构设计,以实现在保证高精度的同时达到实时处理视频流的能力。这意味着无论是嵌入式设备还是高性能GPU服务器,都可以利用YOLOv9快速地进行人脸检测,广泛应用于安防监控、智能门禁、移动设备解锁等多种场景。
由于YOLOv9的具体人脸检测实现细节没有直接描述,可以预见的是,相关的研究人员或开发者会根据YOLOv9的基础架构调整输出层,适应人脸检测任务的特性,比如优化anchor boxes大小、增加人脸关键点预测分支等,以确保模型能够精准定位和识别不同尺度、姿态的人脸。
同时,结合大规模人脸数据集进行训练,YOLOv9的人脸检测模型在准确性和鲁棒性上都应有所提升。
1.人脸检测任务识别并精确定位图像或视频中的人脸。此存储库演示了如何训练 YOLOv9 模型以在 WIDER Face 数据集上进行高精度人脸检测。
安装
克隆此存储库并安装YOLOv9 的requirements.txt:
预训练模型
yolov9-c.pt从google Drive下载预训练模型。请注意,该模型在 WIDER 数据集上训练了 240 个时期。
数据准备
WIDER 数据集包含超过 30k 图像和超过 390k 人脸,每个图像都有 bouding box 和其他各种标签格式。
${ROOT}
└── yolov9
└── datasets/ └── widerface/└── train/└── val/└── original-widerface/└── train/└── images/└── label.txt└── val/└── images/└── label.txt
└── train2yolo.py
└── val2yolo.py
└── widerface.yaml
准备数据:
下载WIDER-FACE数据集。 从google Drive下载注释文件。 运行以下命令:
运行以下命令:
python train2yolo.py datasets/original-widerface/train datasets/widerface/train
python val2yolo.py datasets/original-widerface datasets/widerface/val
这些脚本会将您的注释文件转换为 YOLO 格式,为每个图像创建一个 .txt 文件。文件中的每一行将代表一个格式为的单个对象:class x_center y_center width height
.
训练:
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