如何提高FaceNet的准确性

2024-05-31 04:01:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在写我的论文,我将比较面部识别技术的特征脸,鱼儿脸和CNN在准确性和速度方面。我目前正在尝试使用FaceNet为CNN训练自己的模特。在

我遇到的问题是,我似乎无法获得超过71%的模型准确率,而我为分类器管理的最大值是80%。我使用的是LFW数据集的一小部分,它包含10个类,每个类有40个图像用于训练,4个图像用于测试。在

我尝试了以下参数,使用分类器时的准确率为77.5%,模型前向传递的准确率为71%:

/*
 * Alignment
 */
python3 src/align/align_dataset_mtcnn.py ~/datasets/custom2/raw/training/ ~/datasets/custom2/aligned_182/training --image_size 182 --margin 44

python3 src/align/align_dataset_mtcnn.py ~/datasets/custom2/raw/testing/ ~/datasets/custom2/aligned_182/testing --image_size 182 --margin 44

/*
 * Training
 */
python3 src/train_softmax.py \
--logs_base_dir ~/logs/facenet/ \
--models_base_dir ~/models/facenet/ \
--data_dir ~/datasets/custom2/aligned_182/training/ \
--image_size 160 \
--model_def models.inception_resnet_v1 \
--lfw_dir ~/datasets/lfw/lfw_aligned_160/ \
--optimizer ADAM \
--learning_rate -1 \
--max_nrof_epochs 150 \
--keep_probability 0.8 \
--random_crop \
--random_flip \
--use_fixed_image_standardization \
--learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt \
--weight_decay 5e-4 \
--embedding_size 512 \
--lfw_distance_metric 1 \
--lfw_use_flipped_images \
--lfw_subtract_mean \
--validation_set_split_ratio 0.05 \
--validate_every_n_epochs 5 \
--prelogits_norm_loss_factor 5e-4

python3 src/freeze_graph.py ~/models/facenet/20190402-225816/ ~/models/facenet/20190402-225816/model.pb

python3 src/classifier.py TRAIN ~/datasets/custom2/aligned_182/training/ ~/models/facenet/20190402-225816/model.pb ~/models/facenet/20190402-225816/classifier.pkl --batch_size 1000

/*
 * Test verification
 */
python3 src/classifier.py CLASSIFY ~/datasets/custom2/aligned_182/testing/ ~/models/facenet/20190402-225816/model.pb ~/models/facenet/20190402-225816/classifier.pkl --batch_size 1000

但在此之前,我尝试了以下方法,分类器的准确率为80%,前传球的准确率为68%:

^{pr2}$

第一种模型对LFW前向传递的准确率较高,为71%,而不是68%,但使用分类器时,其精度为77.5%,而不是80%。我的问题是我应该怎么做才能达到更高的精确度。 如果可能的话,我想拿到90%以上。我从tensorboard收集的图表上可以看出,在训练期间,模型到处都是。这些图表来自模型,精确度约为71%:

LFW AccuracyTotal LossCross Entropy 1

这些来自第一个模型,精确度约为68%:

LFW AccuracyTotal LossCross Entropy 1

如果可能的话,我想用我自己的模型达到90%以上的精确度,因为我要把它与其他技术进行比较。在

如果需要更多的信息来帮助我,请告诉我!这里有人知道我应该怎么做才能达到90%以上的准确率吗?在

提前谢谢!在


Tags: py模型srcsize分类器modelspython3datasets