虚拟环境上的 Opencv3 和 Python 2.7 - AttributeError:“模块”对象没有属性“createLBPHFaceRecognizer”

Posted

技术标签:

【中文标题】虚拟环境上的 Opencv3 和 Python 2.7 - AttributeError:“模块”对象没有属性“createLBPHFaceRecognizer”【英文标题】:Opencv3 and Python 2.7 on Virtual Environment - AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer' 【发布时间】:2016-02-10 18:31:36 【问题描述】:

我有一个带有 opencv 3 的 python 函数。它可以在没有虚拟环境的情况下工作。另外我在 venv 上安装了 opencv,来自:pyimagesearch。我试图在venv上运行那个python函数,然后它给出了一个错误:

AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

终端中没有venv:

gkhan@Gkan ~/Masaüstü/face_recognizer $ python face_recognizer.py
Yol :./sinif/114.jpg.
114 Yuz Tanindi 12

在终端中使用 venv:

gkhan@Gkan ~/Masaüstü/face_recognizer $ workon cv
(cv)gkhan@Gkan ~/Masaüstü/face_recognizer $ python face_recognizer.py
Traceback (most recent call last):
  File "face_recognizer.py", line 15, in <module>
    recognizer = cv2.createLBPHFaceRecognizer()
AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

我的python代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import cv2, os
import numpy as np
from PIL import Image

# For Test
if 0==0:

    cascadePath = "haarcascade_frontalface_default.xml"
    faceCascade = cv2.CascadeClassifier(cascadePath)

    recognizer = cv2.createLBPHFaceRecognizer()
...

我在 Linux Mint 64 位上使用 python 2.7 运行 Opencv3

【问题讨论】:

【参考方案1】:

从 OpenCV 3 开始,您必须获取并构建 opencv_contrib 存储库。然后就可以使用子模块“face”了。

关于 cv2 中的模块 cv2.face 的帮助:

NAME
    cv2.face

FILE
    (built-in)

FUNCTIONS
    createEigenFaceRecognizer(...)
        createEigenFaceRecognizer([, num_components[, threshold]]) -> retval

    createFisherFaceRecognizer(...)
        createFisherFaceRecognizer([, num_components[, threshold]]) -> retval

    createLBPHFaceRecognizer(...)
        createLBPHFaceRecognizer([, radius[, neighbors[, grid_x[, grid_y[, threshold]]]]]) -> retval

瞧~你现在可以使用cv2.face.createLBPHFaceRecognizer()

【讨论】:

非常感谢,我没有看到人脸子模块。所以它现在可以工作了。 如何为 Windows 构建它?? OpenCV的官网对安装有非常清晰的介绍。 Click here【参考方案2】:

对我来说最简单的方法是使用 anaconda 包:

conda install -c menpo opencv3=3.1.0

安装后,使用cv2.face.createLBPHFaceRecognizer() 或其他人脸识别器。希望这会有所帮助

【讨论】:

如何安装conda?【参考方案3】:

试试这个

运行这个命令来安装contrib

python -m pip install opencv-contrib-python

完成后 使用这个属性

recoginizer = cv2.face.LBPHFaceRecognizer_create()

【讨论】:

【参考方案4】:

对于 3.6 使用的 python 版本:

rec = cv2.face.LBPHFaceRecognizer_create();

【讨论】:

你的意思是OpenCV 3.0及以上版本。【参考方案5】:

对于使用 python 3 的 windows 用户,您可以从here 获取 opencv_contrib。我的系统是 64 位的,所以 opencv_python‑3.3.0+contrib‑cp36‑cp36m‑win_amd64.whl 是我使用的。如果您是 32 位,请选择 32 位版本。

打开命令提示符并导航到下载文件夹并使用命令

pip install opencv_python-3.3.0+contrib-cp36-cp36m-win_amd64.whl

注意:使用类似于您刚刚下载的文件的命令,并确保在使用 contrib 安装新版本之前卸载旧版本。 我不得不跑:

pip uninstall opencv_python-3.3.0-cp36-cp36m-win_amd64.whl

在进行新安装之前。

然后确保它成功

>>>import cv2
>>>cv2.face
<module 'cv2.face'>

您必须使用 LBPHFaceRecognizer_create() 而不是 createLBPHFaceRecognizer()

【讨论】:

【参考方案6】:

对于 Python 3.6.x 版,请执行以下操作:

打开你的终端并安装 opencv-contrib-python

python -m pip install opencv-contrib-python

当你完成它时使用它

recoginizer = cv2.face.LBPHFaceRecognizer_create()

对于更多选项,您可以这样做:

print(help(cv2.face))

【讨论】:

以上是关于虚拟环境上的 Opencv3 和 Python 2.7 - AttributeError:“模块”对象没有属性“createLBPHFaceRecognizer”的主要内容,如果未能解决你的问题,请参考以下文章

Python3.7.3安装TensorFlow和OpenCV3

2.VS2013和opencv3.1.0开发环境配置

人脸识别--Python3.6+OpenCV3.2在Mac下环境搭建

Ubuntu 18下OpenCV3.4的安装与使用示例

opencv3.3 安装环境教程以及实现个图片读取功能

1.Python3.5+Pyqt5+PyCharm+Opencv3.3+Qtdesigner开发环境配置