facenet-pytorch 库的简单使用

最近尝试facenet做识别,没有从头复现,刚好在GitHub找到一个可以已经封装好的repo,使用起来也特别方便。项目地址 https://github.com/timesler/facenet-pytorch 。安装使用它只需直接pip install facenet-pytorch即可。

facenet-pytorch库使用mtcnn进行人脸检测和InceptionResnetV1进行图像到欧式空间的向量映射。进行使用之前需要建立要识别的人脸特征向量数据库。结合timesler提供的例子,总结了人脸数据库制作的代码如下,提前将数据库中的人脸向量与其名字保存为本地文件,这样对新图识别的时候直接加载这个文件即可。

该库使用的网络预训练权重在readme里面都有。
第一步:制作自己的数据库。

# 制作人脸特征向量的数据库 最后会保存两个文件,分别是数据库中的人脸特征向量和对应的名字。当然也可以保存在一起
from facenet_pytorch import MTCNN, InceptionResnetV1
import torch
from torch.utils.data import DataLoader
from torchvision import datasets
import numpy as np
import pandas as pd
import os
workers = 0 if os.name == 'nt' else 4
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
print('Running on device: {}'.format(device))
mtcnn = MTCNN(
    image_size=160, margin=0, min_face_size=20,
    thresholds=[0.6, 0.7, 0.7], factor=0.709, post_process=True,
    device=device
)
# InceptionResnetV1提供了两个预训练模型,分别在vggface数据集和casia数据集上训练的。
# 预训练模型如果不手动下载,可能速度会很慢,可以从作者给的谷歌云链接下载,然后放到C:\Users\你的用户名\.cache\torch\checkpoints这个文件夹下面
# 如果是linux系统,那么存放在/home/你的用户名/.cache/torch/checkpoints下面
resnet = InceptionResnetV1(pretrained='vggface2').eval().to(device)

def collate_fn(x):
    r
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值