我正在构建一个具有人脸检测和识别功能的机器人。我已经让人脸检测部分正常工作了。但是对于人脸识别,我收到以下错误(使用 python):
Traceback (most recent call last):
File "02_face_training.py", line 21, in <module>
recognizer = cv2.face.LBPHFaceRecognizer_create()
AttributeError: 'module' object has no attribute 'face'
我使用的是 opencv 3.2,所以我升级到 opencv 3.4.6,但出现同样的错误。
于是我开始深入研究源代码,果然我没有看到任何定义 Face 类的 cpp 代码,所以我不确定发生了什么。我甚至下载了 4.1(没有安装)只是为了查看它的源代码,甚至它也没有与人脸识别相关的任何实现(或者至少我找不到它)。
这是导致问题的代码:
import cv2
import numpy as np
from PIL import Image
import os
# Path for face image database
path = 'dataset'
recognizer = cv2.face.LBPHFaceRecognizer_create()
detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml");
我是否需要安装一些单独的模块来进行 opencv 中的脸部识别?
我正在使用 python 2.7。
任何帮助都将不胜感激。谢谢。
答案1
正如steeldriver所说,我需要下载opencv contrib模块并用opencv编译它们以获得人脸识别功能。