web-dev-qa-db-fra.com

Opencv3 et Python 2.7 sur environnement virtuel - AttributeError: l'objet 'module' n'a aucun attribut 'createLBPHFaceRecognizer'

J'ai une fonction python avec opencv 3. Cela fonctionne sans environnement virtuel. J'ai également installé opencv sur venv depuis: pyimagesearch . j'essaie de lancer cette fonction python sur venv, cela donne alors une erreur: 

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

sans venv in terminal:

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

avec venv in terminal:

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'

mon code 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()
...

J'exécute Opencv3 avec Python 2.7 sur Linux Mint 64 Bit

11
Gkan

Depuis OpenCV 3, vous devez obtenir et construire le répertoire opencv_contrib repo. Ensuite, vous pouvez utiliser le sous-module "face".

Aide sur le module cv2.face dans cv2:

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

Voila ~ Vous pouvez maintenant utiliser cv2.face.createLBPHFaceRecognizer()

12
Rick

Le moyen le plus simple pour moi était d'utiliser le paquet anaconda:

conda install -c menpo opencv3=3.1.0

Une fois installé, utilisez cv2.face.createLBPHFaceRecognizer() ou un autre identificateur de visage. J'espère que cela t'aides

5
Chandan Purohit

essaye ça

lancez cette commande pour installer la contrib 

python -m pip installer opencv-contrib-python

ensuite, utilisez cet attribut 

recoginizer = cv2.face.LBPHFaceRecognizer_create()
4
learnkevin

pour les versions python en 3.6 utilise:

rec = cv2.face.LBPHFaceRecognizer_create();
3
Sleider

Pour les utilisateurs de Windows utilisant Python 3, vous pouvez obtenir opencv_contrib à partir de ici . Mon système est en 64 bits, donc opencv_python ‑ 3.3.0 + contrib ‑ cp36 ‑ cp36m ‑ win_AMD64.whl est ce que j'ai utilisé. Si vous avez 32 bits, choisissez la version 32 bits.

Ouvrez la commande Invite, naviguez jusqu'au dossier de téléchargement et utilisez la commande. 

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

Remarque: utilisez une commande similaire au fichier que vous venez de télécharger et veillez à désinstaller une version antérieure avant d'installer la nouvelle avec contrib . Je devais courir:

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

avant de faire la nouvelle installation. 

Alors assurez-vous que c'est réussi

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

Au lieu de createLBPHFaceRecognizer (), vous devez utiliser LBPHFaceRecognizer_create ()

0
Explorer 24

Pour Python version 3.6.x, procédez comme suit:

Ouvrez votre terminal et installez opencv-contrib-python

python -m pip install opencv-contrib-python

quand tu as fini avec ça utilise ça

recoginizer = cv2.face.LBPHFaceRecognizer_create()

Pour plus d’option, vous pouvez le faire comme ceci:

print(help(cv2.face))
0
Shubham Gupta