【发布时间】:2020-07-29 21:23:08
【问题描述】:
我有一个pythonface recognition,我使用open-face 模型和SVM 来检测和识别人脸。我识别图像的一般步骤如下:
- 使用人脸检测模型检测人脸:使用开放人脸模型而不是 HAAR cascase 的原因是 cascade 无法检测侧面
- 提取人脸嵌入:使用开放人脸模型提取 128 d 人脸嵌入
-
训练:使用
SVM我正在训练带有适当标签的人脸嵌入,如下所示:params = {"C": [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0], "gamma": [1e-1, 1e-2, 1e-3, 1e-4, 1e-5]}model = GridSearchCV(SVC(kernel="rbf", gamma="auto", probability=True), params, cv=3, n_jobs=-1)model.fit(data["embeddings"], labels) 测试:提取测试图像的人脸嵌入,并预测结果如下:
model.predict_proba()
我有unknown 随机人脸数据集和known 人脸数据集。这里的问题是,如果我添加大约 30 个已知人物图像并且如果我有大约 10 个未知人物图像,则可以很好地识别已知人物,但如果有任何未知人物进来,它也会将未知人物识别为具有高实际上应该是未知的信心。
如果我在 unknown 数据集中添加更多随机人,可以说大约 50 张图像,如果我有 30 张已知人物图像。它可以很好地识别已知人图像,但信心低,如果有任何未知人进入,现在将其识别为未知
看起来要获得良好的人脸识别结果,我们需要大约相同数量的known and unknown 人物图像,这实际上是不可能的,因为已知人物图像可以增加到 100 或更多,而不是我们添加的每个已知人物。我在这里很困惑,不知道该怎么办。有没有其他方法可以识别known/unknown 人。请帮忙。谢谢
【问题讨论】:
标签: python opencv face-recognition