python - 使用 MTCNN 进行人脸识别
问题描述
我在尝试运行的代码中遇到错误。AttributeError:模块 'facedetector_m' 没有属性 FaceDetectorClass
from facenet_pytorch import MTCNN
import facedetector_m
import os
import torch
from torchvision import models
import torch.nn as nn
import argparse
import sys
sys.argv=['']
ap = argparse.ArgumentParser()
ap.add_argument("-b", "--blur", type=bool, default=True, choices=[True,False])
args = vars(ap.parse_args())
del sys
model = models.resnet18(pretrained=True)
num_ftrs = model.fc.in_features
model.fc = nn.Sequential(nn.Linear(num_ftrs, 2), torch.nn.Sigmoid())
model.load_state_dict(torch.load('C:/Users/mayan/Downloads/Face_Detection_LiveStreaming/model-resnet18-2.pth'))
model.eval()
mtcnn = MTCNN()
fcd = facedetector_m.FaceDetectorClass(mtcnn, classifier=model)
if args["blur"] == True:
fcd.run(blur_setting=True)
if args["blur"] == False:
fcd.run(blur_setting=False)
解决方案
为什么不用deepface?它将 mtcnn 包装为面部检测器。
#!pip install deepface
from deepface import DeepFace
DeepFace.verify("img1.jpg", "img2.jpg", model_name = 'Facenet', detector_backend = 'mtcnn')
推荐阅读
- git - 如何通过 ssh 从 BitBucket 连接到服务器?
- apache-kafka - Kafka集群云迁移,当我们管理偏移量时,如何确保消费者从正确的偏移量消费?
- oracle - Oracle APEX:关闭交互式网格选择列表中的字符转义
- php - 获取外部网站元标记与 fb 调试器
- if-statement - 有没有更好的方法来使这个软件流动
- azure - 如何在 BOT 的消息框中进行自动完成文本建议
- grpc - 是否可以在 proto3 中注释方法调用
- unit-testing - watchQuery 的 ApolloTestingModule 刷新多次
- c# - EF Core 模型中导航属性的必要性
- php - 使用 array_push 存储特定的行数