OpenCV说模块对象没有属性面

OpenCV说模块对象没有属性面

我正在构建一个具有人脸检测和识别功能的机器人。我已经让人脸检测部分正常工作了。但是对于人脸识别,我收到以下错误(使用 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编译它们以获得人脸识别功能。

相关内容