笑脸识别从零开始研究:BUG记录(1)

近几个月的笑脸识别研究过程中踩了很多坑,担心记录在本地容易不小心给删了,记录一份放在网上

以下为关于笑脸识别的个人自学记录,不具备科学的严谨性,仅作参考


1.硬件

MacBook Air (13-inch, Early 2015)

1.6 GHz Intel Core i5

4 GB 1600 MHz DDR3

Intel HD Graphics 6000 1536 MB

2.软件

程序语言为python

平台为pycharm


【BUG1:pip更新所有包报错】

A6-King:~ superA6$ sudo -s

bash-3.2# pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs pip install -U

bug:

Cannot uninstall 'certifi'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

pip install certifi --ignore-installed requests

sudo pip --ignore-installed certifi

pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs pip install -U --ignore-installed certifi

./anaconda3/lib/python3.6/site-packages(0.11.3)

解决方案:

pip install --upgrade certifi --ignore-installed certifi


【BUG2:无法打开github】

1.打开Dns检测|Dns查询 - 站长工具

2.在检测输入栏中输入http://github.com官网

3.把检测列表里的TTL值最小的IP输入到hosts里,并对应写上github官网域名

github.com


【BUG3:程序更新】

运行某代码时,报错:

NameError:name‘xrange’is not defined

原因:

在Python 3中,range()与xrange()合并为range()。


【BUG4:tensorboard不能启动】

tensorboard启动路径问题,该问题很重要。tensorflow运行后的events文件的路径需要在python启动的时的路径下。

例如在windows启动tensorboard的路径为C:\Users\Administrator>

则events文件必须在该文件下。

tensorboard --logdir=/Users/liuzuoli/anaconda/lib/python3.5/site-packages

tensorboard --logdir=/Users/liuzuoli/cnn_smile/tmp

http://A6-King.local:6006

pip show --files tensorboard

如上图所示,我们收到一个端口号:http://0.0.0.0:6006

解决方案:电脑是直接打不开的,需要打开谷歌浏览器,直接转到http://127.0.0.1:6006/


【BUG5-homebrew安装】

安装过程遇到PermissionError

解决方案:目前通过进入root 模式进入

sudo -s

在Mac OS X 10.11系统以后,/usr/local/等系统目录下的文件读写是需要系统root权限的,以往的Homebrew安装如果没有指定安装路径,会默认安装在这些需要系统root用户读写权限的目录下,导致有些指令需要添加sudo前缀来执行,比如升级Homebrew需要:

$ sudo brew update

如果你不想每次都使用sudo指令,你有两种方法可以选择:

对/usr/local目录下的文件读写进行root用户授权

$ sudo chown -R $USER /usr/local

示例:

$ sudo chown -R wentianen /usr/local

conda create -n tensorflow python=3.5

如何获取系统权限

https://www.jianshu.com/p/138b98e662ed


【BUG6:异常处理机制】

遇到异常自动停止

解决方案:假如异常处理机制,如下

try:

    img = cv2.imread(path_pic + XXXpic)

# 取灰度

    img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 计算68点坐标

    pos_68 =[]

    rects = detector(img_gray,0)

    landmarks = np.matrix([[p.x,p.y]for pin predictor(img,rects[0]).parts()])

except IndexError:

    print("Error: 没有找到文件或读取文件失败")

else:


【BUG7:facecut】

在facecut程序中

RuntimeError: Unsupported image type,must be 8bit gray or RGB image.

最初认为是cv.imread的问题,重装了opencv但是没有解决问题

通过pip更新完成问题解决

不过发现问题时而有时而没有

【BUG8:dlib_cut_face_save】

RuntimeError: Unsupported image type,must be 8bit gray or RGB image.

目前猜想原因是因为

img = cv2.imread(path_read+"pic3.JPG")

读取图片为空

采用方式为重装opencv


【BUG9:图片批量截取人脸】

当数据量较大时出现

IndexError: index 179 is out of bounds for axis 0 with size 179

https://stackoverflow.com/questions/34316403/indexerror-index-10000-is-out-of-bounds-for-axis-0-with-size-10000

while(y[i]>= 0)and(i < len(time)):


【BUG10:批量剪切人脸的特大bug】

最后发现

只需要移除不能识别的名称的图片之后就可以运行

(尴尬)

如果找不到就可以改

for iin range(1,len(coll)):

和大小无关,和名字有关

果然我删去部分名字的文件后,从原先的31张人脸扩大到71张人脸   

现在可以确定读取图片是按照文件名顺序的

反思主要原因是因为当图片无人脸的时候,无法解决,这里需要加一个if语句


【BUG11】

问题主要在两个地方:

from sklearn.model_selectionimport train_test_split

from sklearn.neural_networkimport MLPClassifier        # 神经网络模型中的多层网络模型

目前的解决方案是更新sklearn0.18

pip show[package]

anaconda本身自带包管理器conda


【BUG12:不能import opencv】

>>> import cv2

Traceback(most recent call last):

  File "",line 1,in

ImportError: dlopen(/usr/local/lib/python2.7/site-packages/cv2.so,2): Symbol not found: _PyCObject_Type

  Referenced from: /usr/local/lib/python2.7/site-packages/cv2.so

  Expected in: flat namespace

 in /usr/local/lib/python2.7/site-packages/cv2.so

问题应该调用了另外一个python2.7而不是python3.6

解决了这个问题之后,通过

https://stackoverflow.com/questions/45643650/importerror-no-module-named-cv2-python3

sudo python3.5 -m pip install opencv-python

解决了完整问题

brew install opencv3--with-python3 --c++11 --with-contrib --with-ffmpeg --without-python

一个解决方案:

https://blog.csdn.net/willduan1/article/details/53898440

cd /usr/local/lib/python3.6/site-packages

ln -s /usr/local/Cellar/opencv/3.4.1_2/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so/

ln -s /usr/local/Cellar/opencv/3.4.1_2/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so/

ln -s /usr/local/Cellar/opencv/3.4.1_2/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so

最后的经验就是有问题一定要用Google,用英文搜索,可以搜索到很多优质的答案,很不错。)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,884评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,212评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,351评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,412评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,438评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,127评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,714评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,636评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,173评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,264评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,402评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,073评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,763评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,253评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,382评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,749评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,403评论 2 358

推荐阅读更多精彩内容