Facenet相关资料

facenet 人脸识别源码的使用方法(一)
https://blog.csdn.net/u012505617/article/details/88038733

疯狂的小萝卜头
facenet 人脸识别(一)
https://www.cnblogs.com/gmhappy/p/9472388.html
pip install --upgrade --ignore-installed --default-timeout=65000  tensorflow-gpu==1.14
安装
1、anaconda 下新建 环境 face ,python版本选择 3.6
2、升级 pip到最新版 ,python升级到 3.6最新版
3、安装 requirements.txt 文件里的包
4、卸载 scipy1.4.1 安装 scipy1.2.1 再卸载 numpy=1.18.1 安装 numpy=1.16.2
5、将 facenet文件夹复制到anaconda对应环境文件夹下
6、将align.dataset_mtcnn.py 文件中 修改
import facenet.src.facenet as facenet
import facenet.src.align.detect_face as detect_face
两处 align.detect_修改为 detect_face
7、将 lfw数据解压到 facenet\data 下,为 facenet\data\lfw\name\name_xxxx.jpg 格式
8、在data目录新建一个空文件夹,命名为 lfw_160
9、切换目录至facenet下 python src\align\align_dataset_mtcnn.py --help 测试是否能够正常显示help信息
10、执行转换 python src/align/align_dataset_mtcnn.py data/lfw data/lfw_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25
../data/lfw ../data/lfw_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25

ValueError: Object arrays cannot be loaded when allow_pickle=False
修改 detect_face.py  里的
data_dict = np.load(data_path, encoding='latin1').item()

data_dict = np.load(data_path, encoding='latin1',allow_pickle=True).item()

11、预估准确率
python src/validate_on_lfw.py data/lfw_160 models/20180408-102900
Accuracy 0.97833+-0.00489
Validation rate 0.83967+-0.03686 FAR 0.00133
Area Under Curve 0.997
Equal Error Rate 0.025

python src/validate_on_lfw.py data/lfw_160 models/20180402-114759
Accuracy 0.98467+-0.00407
Validation rate 0.90567+-0.01995 FAR 0.00067
Area Under Curve 0.998
Equal Error Rate 0.015

12、搜集人脸

检测对齐人脸
python src\align\align_dataset_mtcnn.py data/stars data/stars_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25
人脸训练
python src\classifier.py TRAIN data/stars_160 models/20180408-102900/ models/classifier.pkl
数据集测试
python src\classifier.py CLASSIFY data/stars_160 models/20180408-102900/ models/classifier.pkl
图片测试
python contributed\predict.py data/test/test1.jpeg models/20180408-102900/ models/classifier.pkl

匹配人脸
https://blog.csdn.net/hongbin_xu/article/details/80253684?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

训练数据集
for N in {1..4}; do \
python src/align/align_dataset_mtcnn.py \
datasets/casia/CASIA-maxpy-clean/ \
datasets/casia/casia_maxpy_mtcnnpy_182 \
--image_size 182 \
--margin 44 \
--random_order \
--gpu_memory_fraction 0.25 \
& done

python src/align/align_dataset_mtcnn.py datasets/casia/CASIA-maxpy-clean/ datasets/casia/casia_maxpy_mtcnnpy_182 --image_size 182 --margin 44 --random_order --gpu_memory_fraction 0.25 

python src/train_softmax.py \
--logs_base_dir logs/facenet/ \
--models_base_dir models/facenet/ \
--data_dir datasets/casia/casia_maxpy_mtcnnpy_182/ \
--image_size 182 ^
--model_def models.inception_resnet_v1 \
--lfw_dir data/lfw_160/ \
--optimizer ADAM \
--learning_rate -1 \
--max_nrof_epochs 2 \
--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

facenet pyhton3.5 训练 train_softmax.py 时报错AttributeError: 'dict' object has no attribute 'iteritems'
https://www.cnblogs.com/liuwenhua/p/11516678.html
由于我的python时3.5的,Python3.5中:iteritems变为items

https://blog.csdn.net/u012505617/article/details/88038733
KeyError: "The name 'decode_image/cond_jpeg/is_png' refers to an Operation not in the graph."
解决
在facenet.py代码中找到create_input_pipeline 再添加一行语句 with tf.name_scope("tempscope"): 就可以完美解决(貌似Tensorflow 1.10及以上版本才修复这个bug)。

python src/train_tripletloss.py --models_base_dir models/facenet  --model_def models.inception_resnet_v1 --data_dir datasets/casia/casia_maxpy_mtcnnpy_182 --image_size 160 --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 20 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data\learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --alpha 0.1 --gpu_memory_fraction 0.9

python src/train_tripletloss.py --models_base_dir models/facenet/  --model_def models.inception_resnet_v1 --data_dir datasets/casia/casia_maxpy_mtcnnpy_182 --image_size 160 --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 20 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data\learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --alpha 0.1 --gpu_memory_fraction 0.9
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch FaceNet是基于PyTorch框架的人脸识别模型,是现代人脸识别领域中最流行和高效的模型之一。 FaceNet模型的目标是将人脸图像映射到高维特征空间,使得同一人的特征向量之间距离较近,不同人的特征向量之间距离较远。这样,通过计算特征向量之间的距离,我们可以实现人脸识别、人脸验证和人脸聚类等任务。 PyTorch是一个开源的深度学习框架,提供了丰富而强大的工具和接口,方便我们构建和训练神经网络模型。FaceNet模型的实现使用PyTorch库中的各种功能,例如卷积神经网络(CNN)构建、梯度优化算法、损失函数和数据增强等。 PyTorch FaceNet使用深度卷积神经网络来提取人脸图像的特征。首先,模型通过多层卷积和池化层来提取图像的低阶特征,然后通过全连接层将这些特征映射到一个高维特征向量。在训练过程中,FaceNet模型使用三元组损失函数来学习特征表示的紧凑性,同时最大化同一人特征向量之间的相似性,最小化不同人特征向量之间的相似性。 利用PyTorch的自动微分功能,我们可以方便地计算模型参数对损失函数的梯度,并使用优化算法(如随机梯度下降)来更新模型参数,从而不断优化模型的性能。 总之,PyTorch FaceNet将PyTorch框架和FaceNet模型结合起来,为人脸识别领域的研究和应用提供了强大的工具和方法。通过PyTorch FaceNet,我们可以方便地构建和训练高效准确的人脸识别模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值