YbFace:完全开源的人脸检测算法
Posted 阳光玻璃杯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YbFace:完全开源的人脸检测算法相关的知识,希望对你有一定的参考价值。
YbFase(yolo base face detector),是一个借鉴了yolov3的网络结构,在多特征尺度下预测人脸框的人脸检测算法.并结合了yolov4使用的mish激活函数.该模型大小仅为7,8M,无论模型大小,还是准确率,还是执行速率都很有竞争力.
源码地址(github):
如果对你有帮助,给他star鼓励下,谢谢!!!
完全开源
很多开源的人脸检测项目,或者没有训练代码,或者没有评估代码,而我的这个YbFace项目,包含了做人脸检测你需要的所有东西.
- 训练代码
- 测试代码
- 计算ap的评估代码及其可视化
- 模型可视化
模型
tensorboard绘制的模型结构图:
我绘制的模型结构图:
说明:
- 基于resnet,Bottleneck是一个resnet单元.
- 在三个特征map上检测人脸,分别是13*13, 26*26, 52*52,因此,每张图片最多能检测13*13+ 26*26+ 52*52个人脸.
- 损失函数借鉴了yolov2
- 激活函数使用了mish
train
首先,修改dataset.py中的数据集所在的路劲,修改为你的winderface所在路劲:
TRAIN_IMG_PATH = "/home/javer/work/dataset/widerface/WIDER_train/images/"
VAL_IMG_PATH = "/home/javer/work/dataset/widerface/WIDER_val/images/"
SPLIT_PATH = "/home/javer/work/dataset/widerface/wider_face_split"
训练命令:
python3.6 train.py -l 0.001 -e 10 -b 5
detailes: -l for learning rate, -e for epoes, -b for batch.
if you want train from last model, add -p True,like this:
python3.6 train.py -l 0.001 -e 10 -b 5 -p True
可视化
当你开始训练,你可以在tensorboard查看损失函数的变化情况,同时,每隔一个epoe,会输出一张预测的图片,你可以根据预测的图片判断训练的效果:
损失函数收敛情况:
预测图片:
test
python3.6 test.py
eval
python3.6 eval.py -c 0.6 -t 0.5
details: -c for the confidence of box that contains face.
-t for thresh of IOU
check
查看测试数据集上检测的效果:
python3.6 check.py
执行评估后,会在data目录下的eval下生成预测数据,然后我们需要在WiderFace-Eval-Python目录下,执行evaluation.py脚本,脚本会输出在wider face数据集easy,middle,hard上的ap值,并绘制准确率-召回率曲线
like this:
目前的ap情况
iou阈值为0.5时:
==================== Results ====================
Easy Val AP: 0.7591958348540782
Medium Val AP: 0.6638570720830507
Hard Val AP: 0.29491406020888183
=================================================
当iou阈值为0.3时
==================== Results ====================
Easy Val AP: 0.8306507608970572
Medium Val AP: 0.7456867544852942
Hard Val AP: 0.34469488372280677
=================================================
目前,损失还在下降,我也会不断更新更新的ap情况
shows
写在最后
I am still training and optimizing the model, Welcome to do it better together!
communicate with:
QQ group: 704153141
以上是关于YbFace:完全开源的人脸检测算法的主要内容,如果未能解决你的问题,请参考以下文章