- 仓库更新 Top News
- 相关仓库 Related code
- 性能情况 Performance
- 所需环境 Environment
- 注意事项 Attention
- 文件下载 Download
- 预测步骤 How2predict
- 训练步骤 How2train
- 参考资料 Reference
2022-03
:进行了大幅度的更新,支持step、cos学习率下降法、支持adam、sgd优化器选择、支持学习率根据batch_size自适应调整。
BiliBili视频中的原仓库地址为:https://github.com/bubbliiiing/facenet-keras/tree/bilibili
2021-02
:创建仓库,支持模型训练,大量的注释,多个可调整参数,lfw数据集评估等。
模型 | 路径 |
---|---|
facenet | https://github.com/bubbliiiing/facenet-keras |
arcface | https://github.com/bubbliiiing/arcface-keras |
retinaface | https://github.com/bubbliiiing/retinaface-keras |
facenet + retinaface | https://github.com/bubbliiiing/facenet-retinaface-keras |
训练数据集 | 权值文件名称 | 测试数据集 | 输入图片大小 | accuracy |
---|---|---|---|---|
CASIA-WebFace | facenet_mobilenet.h5 | LFW | 160x160 | 97.86% |
CASIA-WebFace | facenet_inception_resnetv1.h5 | LFW | 160x160 | 99.02% |
tensorflow-gpu==1.13.1
keras==2.1.5
已经训练好的facenet_mobilenet.h5和facenet_inception_resnetv1.h5可以在百度网盘下载。
链接: https://pan.baidu.com/s/1XzwLpU3zPFW7QK045UDgkQ 提取码: 596k
训练用的CASIA-WebFaces数据集以及评估用的LFW数据集可以在百度网盘下载。
链接: https://pan.baidu.com/s/1qMxFR8H_ih0xmY-rKgRejw 提取码: bcrq
- 下载完库后解压,在model_data文件夹里已经有了facenet_mobilenet.h5,可直接运行predict.py输入:
img\1_001.jpg
img\1_002.jpg
- 也可以在百度网盘下载facenet_inception_resnetv1.h5,放入model_data,修改facenet.py文件的model_path后,输入:
img\1_001.jpg
img\1_002.jpg
- 按照训练步骤训练。
- 在facenet.py文件里面,在如下部分修改model_path和backbone使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,backbone对应主干特征提取网络。
_defaults = {
"model_path" : "model_data/facenet_mobilenet.h5",
"input_shape" : [160,160,3],
"backbone" : "mobilenet"
}
- 运行predict.py,输入
img\1_001.jpg
img\1_002.jpg
- 本文使用如下格式进行训练。
|-datasets
|-people0
|-123.jpg
|-234.jpg
|-people1
|-345.jpg
|-456.jpg
|-...
- 下载好数据集,将训练用的CASIA-WebFaces数据集以及评估用的LFW数据集,解压后放在根目录。
- 在训练前利用txt_annotation.py文件生成对应的cls_train.txt。
- 利用train.py训练facenet模型,训练前,根据自己的需要选择backbone,model_path和backbone一定要对应。
- 运行train.py即可开始训练。
- 下载好评估数据集,将评估用的LFW数据集,解压后放在根目录
- 在eval_LFW.py设置使用的主干特征提取网络和网络权值。
- 运行eval_LFW.py来进行模型准确率评估。
https://github.com/davidsandberg/facenet
https://github.com/timesler/facenet-pytorch