树莓派 人脸识别

树莓派 人脸识别——从小白到大白 @。@

  • 初探树莓派
    • 系统拷入
      • 一些问题
  • 人脸识别
    • yolov3
      • 结果
    • opencv
    • dlib
    • 虹软sdk
    • facenet
      • 关于python
      • facenet遇到的坑以及心得
        • 加一个小插曲
        • 移植树莓派

初探树莓派

这是大鱼的第一篇博客,唉唉,客官留步!!!!

系统拷入

一些问题

人脸识别

作为一个小白,我带着我炽热的心,滚过了刀山,跨越了火海,云淡风轻之后,我只想说:一下内容我用了六种我认为可行的方法(但实际上有些适用于电脑,精确度高,但就是不适用于树莓派;有些树莓派可以用,但是就是精度低 哭了哭了 # ¥ # 各位客官如果不弃,可以继续看看)

yolov3

关于yolov3,我之前做过yolov3的目标识别,想知识迁移一下。
放出官网:
链接: YOLO.
我用了cudnn,cuda做加速,具体怎么做,之后再出一篇

结果

1、yolov3适用于物体识别而不是人脸识别
虽然我的人脸识别可以识别出我,并且置信度为99.9%,但是别人却也有70%多。实在是不合适~不合适呀
2、在树莓派上搭建yolov3的环境也很麻烦
这里推荐一篇教程:(最底下有镜像,别爱我,没结果)
链接: darknet-nnpack.

opencv

上链接
链接: 树莓派 + opencv.
opencv实现人脸识别呢~就是和大多数人脸识别的工具一样,他是直接分
装好函数,给你训练好的模型,让你识别。
这样确实很快,但是这些模型大多是已欧美人的面孔来训练的,所以识别亚洲人准确度不近人意

dlib

老样子链接:
链接: dlib.
dlib号称能够在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。
BUT也是针对于欧美人的面孔的,我是装完之后才发现的(我吐了)
但是可取的是,虽然他分装了函数,模板针对欧美,但是他的人脸识别功能更加全面(相比于opencv,个人建议,小白建议)
dlib-python链接: api文档.

虹软sdk

链接: 虹软.
下载sdk,第一次下载的时候要关注一下叫APP ID和SDK KEY的东东,相当于账号密码,在代码运行的过程中会用到。
从这里,一个巨大无比的坑开始了…(顺便提一句,小小白注意要看readme文档)
跑了一下demo
树莓派 人脸识别_第1张图片
第一部分:输出sdk信息
第二部分:人脸识别,准确率94%,很高了
第三部分:年龄检测 性别检测 3D角度检测 活体信息检测(这些很全了,已经远远超过了人脸识别的要求)
(小插曲:第一次跑demo的时候最后光标一直在闪,我以为是没有跑完,后来试了几次都是这样。最后看了看代码,哎哟,getchar(); 笨笨笨
我本已信心满满的准备晚上代码了,结果放在树莓派上一跑,我又吐了。运行不了。
那夜我查阅了很多的资料,查到了这个:
链接: 交叉编译.
树莓派 人脸识别_第2张图片
欣喜之情,溢于言表~~~
第二天…
唉,尝试过交叉编译之后,发现后面还有一个坑,虹软sdk不支持ram-linux(就是树莓派的cpu架构),我下的是linux版的,当然虹软还有windows,安卓等,就是没有arm-liunx.
在这里插入图片描述做个人脸识别像过山车一样,伤心~

facenet

属于主角的光!!!!
之前的不是运行速度慢就是精度不够。
facenet可以的!
链接: tensorflow-facenet.

这个作者已经讲的很详细了。
我用的是anaconda安装的tensorflow 。
anaconda方便是主要在于可以在不同的框架之间切换,但是有一点不好的就是,安装好anaconda之后,它会将你的python路径改成anaconda的,然后pip xxxx就是安装在anaconda中的python下,但是sudo pip 却不是安装在anaconda里,而是在系统的python(/usr/bin/python)。
有时候一个不小心就安装错了位置,然后打死都找不到原因(明明安装了为啥没有!!!哭晕~)
后来,在栽了几个跟头之后,我决定把python 路径改回来。
再提一句:如果只是修改conda里面的python

conda install python=3.X

关于python

// 查看python版本
python --version
python3 --version
//查看当前python位置
which python
//查看 所有 python
whereis python
//查看pip版本
pip -V
pip3 -V

知道了自己的python、pip版本之后呢,我们就可以修改了成自己想要的了

// 修改python ,pip 版本
sudo gedit ~/.bashrc

在最后加入
alias python=python3.5
alias pip3=/usr/local/bin/pip3
最后别忘了

source ~/.bashrc

君不见黄河之水天上来,奔流到海不复回,君知不知pip和sudo pip可能用的是不同的两个pip???
pip路径修改如上;

// sudo pip 路径修改
//打开文件
sudo gedit /etc/profile

最后一行加入(具体路径看你哦)
alias pip=/usr/local/bin/pip
alias pip3=/usr/local/bin/pip3
(如果是anaconda的话在 anaconda/bin/pip

扯远了@×@

facenet遇到的坑以及心得

树莓派 人脸识别_第3张图片
小白提醒:特别要注意作者给出的安装环境。并不是随便哪一个版本就可以运行的。
比如python - tensorflow版本是有对应的。如,你用python2写的代码用python3运行肯定会有一些语法的改变,会有warning!再说tensorflow1.14-----2.0改变很大,比如2.0去掉了contrib…
所以要严格按作者来

//安装制定版本的tensorflow,如果你是一个小白,如果你是想直接跑facenet代码,则不要安装2.0的,这个作者应用了contrib,在2.0中没得了
conda install tensorflow-gpu==1.8
// 作者没提到的opencv的安装
conda install python-opencv

如果遇到不能安装tqdm、h5py,考虑python版本问题
(我安装的是tensorlfow1.13.1,1.8太老了)

差点就忘了 pip升级:

pip install --user --upgrade pip

加一个小插曲

我在python版本中挣扎时,当时还没意识到路径这回事,把python卸了,于是呵呵哈哈哈…

开始后只有背景和鼠标了…
我想了想,我应该是把桌面卸了

// 命令行安装桌面,Crtl + Alt + F1 进入命令行模式,需要输入login和password
sudo apt-get install ubuntu-desktop
sudo reboot

解决。我的小心脏哟~

移植树莓派

用miniconda,注意版本arm
链接: miniconda.
基本上和pc机上的步骤差不多
我将代码把显示图片的功能去除了,拍照频率也降低了,去掉了一些在图片上作图以及显示的功能,改成直接输出。在ps机上cpu为17%,在3b上勉勉强强,希望在4b上试试。

感谢csdn的同僚们!

你可能感兴趣的:(face,人脸识别,python,深度学习)