OpenCV: AttributeError: el módulo ‘cv2’ no tiene atributo ‘cara’

Estoy creando un sistema de reconocimiento facial utilizando Python y OpenCV en estas versiones:

  • Python 3.6.2 :: Anaconda personalizada (64 bits)
  • Anaconda 4.3.23
  • OpenCV 3.3.0

Cuando trato de entrenar el reconocedor de cara:

face_recognizer = cv2.face.createLBPHFaceRecognizer() 

Me sale este error:

AttributeError: el módulo ‘cv2’ no tiene atributo ‘cara’

Actualizar:

He intentado hacer esto:

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

También:

 conda install -c menpo opencv3=3.3.0 

Y todavía tengo el error.

El proyecto Menpo no tiene un instalador para OpenCV 3.3. El proyecto Menpo tiene hasta 3.1 en macOS y Windows, y 3.2 en Linux. Consulte el paquete de Anaconda para esa descripción y también la lista de archivos para las versiones del instalador. En realidad, puedes consultar el repository de GitHub para la comstackción OpenCV3 de Menpo y obtener los archivos tú mismo. Puede cambiar los archivos de comstackción para adaptarse a su sistema si es necesario.

No estoy seguro de si su bash de pip incluye un error tipográfico o no — el archivo correcto de la wheel paquete PyPI con el módulo contrib es opencv_contrib_python no opencv_python+contrib , como se muestra en PyPI . Tenga en cuenta que si no está utilizando Windows, las características de la GUI de OpenCV no funcionarán con el instalador de pip , incluidas imshow() y otras características similares.

Estaría mejor preparado simplemente eliminando y volviendo a instalar con los módulos contrib en lugar de intentar comstackrlos más tarde.

Encontré la solución a mi problema, tienes que seguir este tutorial OpenCV con módulos adicionales .

Los pasos esenciales son:

  • Vaya a C: / PythonXX / lib / site-packeges (la carpeta de paquetes de sitio donde está instalado Python) y elimine cv2.pyd si está presente.
  • Descarga OpenCV con módulos extra
  • Crea un proyecto de Visual Studio con CMake.
  • Abre Python IDLE e ingresa import cv2. Si no hay ningún error, entonces la instalación es exitosa.

Mi uso de Python 2.7 y Opencv 3.3.0 trabajando en código

 cv2.face.LBPHFaceRecognizer_create(); 

Mientras buscaba la misma solución, probé muchos métodos que no funcionan bien con la instalación exitosa de OpenCV junto con los módulos adicionales, es decir, OpenCV Contrib.

Aparentemente, al usar pip install opencv-python plataformas de ventanas pip install opencv-python , por lo general, solo descarga OpenCV sin los módulos adicionales.

Lo que funciona, es estable y fácil de instalar:

  1. Descargue el archivo ‘whl’ integrado que contiene tanto OpenCV como sus archivos Contrib, que sería como ‘opencv_python ‑ 3.4.3 + contrib ‑ cp36 ‑ cp36m ‑ win_amd64.whl’ que puede descargarse desde aquí .
  2. Instalar usando pip install

He intentado otros métodos que no son confiables, como la solución sugerida por @RoyaumeIX, pero terminó con un fracaso.

Así es con el uso

 pip install opencv pip install opencv-contrib 

La instalación de opencv-contrib no registra correctamente el paquete opencv .

Le sugiero que descargue directamente el archivo whl oficial y lo instale.

La solución, como se encontró en el foro de OpenCV (y la misma en StackOverflow ), funciona bien para mí:

 pip install opencv-python pip install opencv_contrib_python 

Y en cv2, la versión 4.0.0 del reconocedor de rostros se puede crear usando un nombre de función diferente, como se mencionó anteriormente :

 face_recognizer = cv2.face.LBPHFaceRecognizer_create() face_recognizer = cv2.face.EigenFaceRecognizer_create() face_recognizer = cv2.face.FisherFaceRecognizer_create()