OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'

1 环境设置:

win10

python 3.6.8

opencv 4.0.1

2 尝试的方法

在学习人脸识别中,遇到了没有 cv2 中没有 face 属性。在网上找了几个方法,均没有成功解决掉该问题。

2.1 方法一

来源:module 'cv2.cv2' has no attribute 'face'

pip install opencv-contrib-python

重启sublime,在运行后依旧报错。

当然了,这个不成功可能是由于opencv 与 contrib 版本不匹配造成的。

2.2 方法二

来源:OpenCV3-Python人脸识别方法—人脸识别与标记

方法:

model = cv2.face.createEigenFaceRecognizer()

改为

model = cv2.face_EigenFaceRecognizer.create()

依据报错,只是这次是不存在 face_EigenFaceRecognizer 属性。

当然了,以上两个均无法解决错误可能是版本问题。

3 解决方案

3.1、寻根问祖——官网

首先查看 opencv 官网 https://docs.opencv.org/4.0.1/

OpenCV modules 赫然而现

既然是 opencv 的 modules 出现问题,就直接看 modules 好了

OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'_第1张图片

注意:不要点击菜单栏中的 Modules ,直接看本页内容 OK 了;主要是点击后看到的内容比较混乱,反而没有对 “ 打开神奇的大门 ” 没有太大的帮助。

 

不难发现,我们在 opencv 的基础款 (Main modules)中确实没有发现 face 类;当我们继续查看附加款(Extra modules)时,竟然发现了 face ;任督二脉就此打通。

OpenCV 学习笔记 05 人脸检测和识别 AttributeError: module 'cv2' has no attribute 'face'_第2张图片

真的是机缘巧合,打开菜单栏中的 modules 时会发现,穷列了所有的 modules (Here is a list of all modules:),多达 4 页,幸运的是在第一页出现了  Face Analysis,点开后是对face 类的详细讲解 【Face Analysis】,不过此时已经很难看到庐山真面了。

3.2 解决方案

以前在安装库的时候,记得有的库文件中带有 contrib ,而基本都没安装过,contrib 应该就和 extra modules 有关 !

打开 python 扩展包网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv,

找到对应版本 opencv_python-4.0.1+contrib-cp36-cp36m-win_amd64.whl ,下载 - 安装。

搞定!

安装前先卸载了 opencv-python

安装后的版本为

opencv-python         4.0.1+contrib

 

4 参考

官网 https://docs.opencv.org/4.0.1/index.html

Face Analysis 官网 https://docs.opencv.org/4.0.1/db/d7c/group__face.html

如何編譯opencv3.0(含extra modules) 这个讲的比较好,有一定启发性。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv python 第三方库文件

module 'cv2.cv2' has no attribute 'face' 这个案例不成功可能是opencv 与extent modules不匹配造成的。

OpenCV3-Python人脸识别方法—人脸识别与标记 文档中讲述了原因可能是新版本变化使得书中的代码形式改变,作者应该也费了一番功夫。

 

 

转载于:https://www.cnblogs.com/gengyi/p/10466589.html

你可能感兴趣的:(人工智能,python)