人脸识别pytorch,完整代码
时间: 2024-06-20 15:02:11 浏览: 186
人脸识别是一个广泛应用深度学习的领域,特别是在PyTorch框架中,可以使用预训练的模型如MTCNN、Dlib或FaceNet等进行人脸检测和识别。以下是一个简单的PyTorch人脸识别示例,使用预训练的ArcFace模型进行人脸识别:
```python
# 首先,确保已经安装了torch, torchvision, dlib以及face_recognition库
# 安装:pip install torch torchvision dlib face_recognition
import torch
from torchvision.models import resnet18
from torchvision.transforms import ToTensor
from dlib import get_frontal_face_detector
from face_recognition import load_image_file
# 加载预训练的ResNet18作为特征提取器
model = resnet18(pretrained=True)
model.eval() # 设置为评估模式,不更新权重
# 使用dlib进行人脸检测
detector = get_frontal_face_detector()
def recognize_face(image_path):
# 加载图像并转换为Tensor
image = load_image_file(image_path)
img_tensor = ToTensor()(image)
img_tensor = img_tensor.unsqueeze(0) # 增加通道维度
# 获取特征向量
features = model(img_tensor)
# 这里只是演示,实际应用可能需要与数据库人脸特征对比
# 假设你有一个预先存储的人脸库
known_faces = ... # 储存的人脸特征列表
distances = torch.nn.functional.pairwise_distance(features, known_faces)
# 找到最近的人脸
min_distance, index = distances.min(dim=0)
# 输出识别结果
return "The closest match is with person {}".format(index.item())
# 使用函数
image_path = "path_to_your_image.jpg" # 替换为你的图片路径
print(recognize_face(image_path))
阅读全文