代码来源 基于极限学习机ELM的人脸识别程序

感谢文章主的分享

我的环境是

  • win10
  • anaconda Command line client (version 1.6.5)(conda 4.3.30)
  • tensorflow-gpu 1.1.0
  • python 3.6.2

1. 直接运行代码块,提示“未知引用 import hpelm"

这是因为我的Python环境没有安装hpelm导致的,运行代码pip install hpelm。第一次安装没有成功,查询发现可能是pip版本问题,升级了pip版本,运行pip3 install hpelm,安装成功,两次使用的安装命令不同,不知道是不是因为升级了pip版本才安装hpelm成功的。

2. 提示‘import cv2’错误

安装hpelm后,再次运行代码,提示上述错误,因为我的环境没有安装opencv,运行

  1. pip install numpy Matplotlib
  2. pip install opencv-python安装成功即可

3. 提示numpy版本不对

再次运行代码,提示numpy版本不对,提示错误

RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa

网上提示升级numpy版本,方法:

  1. 运行pip uninstall numpy
  2. 运行pip install -U numpy

    安装成功即可。

4. 提示错误'AssertionError: X has wrong dimensionality: expected 10000, found 1'

错误如下:

Traceback (most recent call last):

File "train_hpelm.py", line 38, in <module>

elm.train(np.array(input_data),np.array(output_data))

File "C:\Users\caichangqing\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\hpelm\elm.py", line 182, in train

X, T = self._checkdata(X, T)

File "C:\Users\caichangqing\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\hpelm\elm.py", line 533, in _checkdata

(self.nnet.inputs, X.shape[1])

AssertionError: X has wrong dimensionality: expected 10000, found 1

由于路径问题,代码中路径的格式’D:\abc\abc\a',中间''符号被当成转义字符,造成路径错误,应该改成

  • D:\\abc\\abc\\a
  • 或者 D:/abc/abc/a

5. AttributeError: module 'opencv' has no attribute 'resize'

错误如下:

AttributeError: module 'opencv' has no attribute 'resize'

在代码的引用中,导入opencv是'import opencv as cv2',我的环境是'python 3.6',应该使用'import cv2'导入

6. 读入图片错误

错误如下:

OpenCV Error: Assertion failed (ssize.width > 0 && ssize.height > 0) in cv::resize, file C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp, line 4044

Traceback (most recent call last):

File "train_hpelm.py", line 15, in

manimg = cv2.resize(cv2.imread(file_path, cv2.IMREAD_GRAYSCALE),(100, 100),interpolation=cv2.INTER_CUBIC)

cv2.error: C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215) ssize.width > 0 && ssize.height > 0 in function cv::resize

试了很多,最后发现我下载的人脸库有问题,同样环境下,cv2.imread()可以读取别的图片,不能读取我下载的人脸库图片,cv2.imread()读取后返回值是None。同时,所有不能正确读入图片都会提示该错误。

(后来同学说cv2.imread不能读取gif图片,我下的是这个格式的)

7. 新下载的库,改名就行了

我使用的yale人脸库下载地址

#coding=utf-8
import os
path = "D:\\tensorflow\\face\\yale" #更改为你自己的人脸库路径
count = 1
flag = 1
for i in range(1,166):
flag = i%11
add_pre=lambda x:'0'+str(x) if len(str(x))==1 else str(x) #加前缀
if(flag == 0 ):
flag = 11
files = os.path.join(path, 's{}.bmp'.format(i))
if(os.path.isfile(files)):
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件扩展名
Newdir=os.path.join(path,'subject{}_{}'.format(add_pre(count),flag)+filetype);#新的文件路径
os.rename(files,Newdir)#重命名
if(flag == 11): count += 1

关于运行“基于极限学习机ELM的人脸识别程序”代码犯下的一些错误的更多相关文章

  1. 基于Dlib、OpenCV开发人脸识别程序的开发建议

    前言 在去年十月的时候参加了一个小比赛,做了一个人脸识别程序并很意外地获得省里面的一等奖,视频演示链接在这里,有同学想要做这方面的毕业设计or课程设计,发一篇博客来分享一下当时的开发过程. 视频演示链 ...

  2. 转:基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴等)【模式识别中的翘楚】

    文章来自于:http://blog.renren.com/share/246648717/8171467499 基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴 ...

  3. 基于iOS用CoreImage实现人脸识别

    2018-09-04更新: 很久没有更新文章了,工作之余花时间看了之前写的这篇文章并运行了之前写的配套Demo,通过打印人脸特征CIFaceFeature的属性,发现识别的效果并不是很好,具体说明见文 ...

  4. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序

    原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词 ...

  5. opencv基于PCA降维算法的人脸识别

    opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...

  6. C#实现基于ffmepg加虹软的人脸识别

    关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV ...

  7. C#实现基于ffmpeg加虹软的人脸识别demo及开发分享

    对开发库的C#封装,屏蔽使用细节,可以快速安全的调用人脸识别相关API.具体见github地址.新增对.NET Core的支持,在Linux(Ubuntu下)测试通过.具体的使用例子和Demo详解,参 ...

  8. C#实现基于ffmpeg加虹软的人脸识别

    关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸 识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenC ...

  9. 基于虹软的Android的人脸识别SDK使用测试

    现在有很多人脸识别的技术我们可以拿来使用:但是个人认为还是离线端的SDK比较实用:所以个人一直在搜集人脸识别的SDK:原来使用开源的OpenCV:最近有个好友推荐虹软的ArcFace, 闲来无事就下来 ...

随机推荐

  1. Linux 下Shell的学习3-service编程

    1. vim /etc/init.d/nginx 2. chmod 755 /etc/init.d/nginx 3. service nginx status #!/bin/bash # nginx ...

  2. C++基础算法学习——生理周期

    人有体力.情商.智商的高峰日子,它们分别每隔23天.28天和33天出现一次.对于每个人,我们想知道何时三个高峰落在同一天.给定三个高峰出现的日子p,e和i(不一定是第一次高峰出现的日子),再给定另一个 ...

  3. python中判断实例可迭代地几种方式

    1. 利用 __iter__内建属性 if hasattr(obj, '__iter__') : print 'iterable' 这种方法不能检测字符串,如:hasattr('', '__iter_ ...

  4. idea本地将本地现有的项目和gitlab进行管理并提交到线上

    备注:通过这个操作可以让本地的项目与远程gitlab进行关联,并将本地的代码提交到gitlab上面 1.在idea的菜单项选择 VCS>Import into Version Control&g ...

  5. 【Alpha 冲刺】 11/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成app端api编写 未完成 文件上传api还没完成 孙浩楷 1. 与后端交接, 2. 完成图片在线编辑插件引入 未完成 陷入僵 ...

  6. zepto.js不支持scrollTop的解决办法

    zepto.js不支持animate({ scrollTop: 100},1000); 可以在移动端使用原生window.scrollTop(x,y);简便

  7. php输出年份

    Copyright <?php echo date('Y');?> by Creditease Corp.All Right Reserved.

  8. Winfrom 使用WCF 实现双工通讯

    实现双工通讯主要分三步. 通信接口的定义: 被调用接口的实现 双工通道的建立 请先引用DLL(CSDN的代码编辑器真尼玛蛋疼) 整个解决方案的结构 1.通信接口的定义: 服务端调用客户端接口IServ ...

  9. kubernetes备份和恢复

    kubernetes备份和恢复   备份etcd数据 首先由于ETCD有三个备份,并且会同步,所以您只需要在一台master机器上执行ETCD备份即可. 另外在运行下列命令前,确保当前机器的kube- ...

  10. yarn的学习-1-包管理工具

    https://yarn.bootcss.com 使用yarn的原因: 1.速度超快 Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载. 同时利用并行下载以最大化资源利用率,因此安装速度更快 ...