『Lab』在TensorFlow 中实现人脸识别(FaceNet重新练模型)

一个TensorFlow 下实现人脸识别的玩耍笔记(续)

Github:

facenet https://github.com/davidsandberg/facenet

0 Before Work

请完成https://idforhyit.github.io/2019/04/07/FaceNet-Notes/中的

0 requirements以及1 配置facenet的PYTHONPATH前期准备步骤

1 CASIA-WebFace数据集

@IDforHYIT 2019.04

CASIA-WebFace_Datasets_Info:
    494414 images
    10575 people

文件目录结构戳此查看。

下载

http://www.cbsr.ia.ac.cn/english/CASIA-WebFace-Database.html    # 4.10 GB
# or
链接: https://pan.baidu.com/s/1ub8DiQvg_IDBE0fMtrIMxg 
提取码: 2333

解压

# 压缩包内文件解压于某位置(如:D:\Datasets\casia\raw)

2 人脸检测和对齐

与LFW 数据集类似,同样先利用MTCNN 对原始圄像进行人脸检测和对齐。

激活环境

activate tf17    # 激活tensorflow1.7环境

执行人脸对齐命令

因为数据集很大,人脸对齐可能会持续数小时

python D:\envs\facenet\src\align\align_dataset_mtcnn.py D:\Datasets/casia/raw/ D:\Datasets/casia/casia_maxpy_mtcnnpy_182 --image_size 182 --margin 44

对齐后的人脸图像存放在目录~/datasets/casia/casia_maxpy_mtcnnpy_182 下。所有的图像像素都是182x182 。最终网络的输入图像像素是160x160,之所以这一步生成182x182 的图像,是为了留出一定空间给数据增强的裁剪环节。会在182x182 像素的图像上随机裁出160xl60 的区域,再送入神经网络进行训练。

3 开始训练

python src/train_softmax.py --logs_base_dir D:/My_File/Datasets/logs/facenet/ --models_base_dir D:\My_File\models\facenet/ --data_dir D:\My_File\Datasets\casia\casia_maxpy_mtcnnpy_182 --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir D:\My_File\Datasets\lfw\lfw_mtcnnpy_160 --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 80 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --center_loss_factor 1e-2 --center_loss_alfa 0.9
 --batch_size 1 --gpu_memory_fraction 0.5  # 用GPU跑报显卡内存溢出添上这俩个参数,减少显存单次使用量

4 结果

Epoch: [1][999/1000]    Time 0.770      Loss 7.932      Xent 7.266      RegLoss 0.666   Accuracy 0.000  Lr 0.05000      Cl 0.031
Epoch: [1][1000/1000]   Time 0.766      Loss 7.561      Xent 6.895      RegLoss 0.666   Accuracy 0.000  Lr 0.05000      Cl 0.032
Saving variables
Variables saved in 0.53 seconds
Saving metagraph
Metagraph saved in 36.29 seconds
Runnning forward pass on LFW images
............
Accuracy: 0.56700+-0.02968
Validation rate: 0.01233+-0.00423 @ FAR=0.00133
Saving statisticsEpoch: [1][999/1000]    Time 0.770      Loss 7.932      Xent 7.266      RegLoss 0.666   Accuracy 0.000  Lr 0.05000      Cl 0.031
Epoch: [1][1000/1000]   Time 0.766      Loss 7.561      Xent 6.895      RegLoss 0.666   Accuracy 0.000  Lr 0.05000      Cl 0.032
Saving variables
Variables saved in 0.53 seconds
Saving metagraph
Metagraph saved in 36.29 seconds
Runnning forward pass on LFW images
............
Accuracy: 0.56700+-0.02968
Validation rate: 0.01233+-0.00423 @ FAR=0.00133
Saving statistics

已弃疗~~~

This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:https://idforhyit.github.io/2019/04/07/FaceNet-Notes-2/