树莓派实验室python人脸识别_开源 人脸识别 openface 实用介绍 实例演示 训练自己的模型...
发布日期:2022-02-04 03:25:46 浏览次数:11 分类:技术文章

本文共 5608 字,大约阅读时间需要 18 分钟。

1.OpenFace 是 卡耐基梅陇(CMU)大学的一个图像+机器学习项目,整体程序包含:人脸发现,特征提取,特征神经网络训练,人脸识别这四部分。

2.安装

说的不是很详细,很多关键依赖以及基本概念并没有讲清楚。很容易导致安装、编译失败。

2.1操作系统

只支持Linux 和OSX,官方强烈推荐使用docker镜像来使用,不过为了运行加速或自主修改,还是建议大家从源码搭建。

OpenFace已经在ubuntu14.04和OSX10.10上成功测试。

2.2从头安装

我的实验室位置在西安,更换中科大的软件源超屌  http://mirrors.ustc.edu.cn trasty ,以下所有依赖的安装速度均与网速有关,也可能跟长城有关,安装时还需要耐心等待。若某一步安装不成功可以重启计算机重新安装。

sudo apt-get updatesudo apt-get install sshgit curl zsh vim #安装基本工具sudo -i #进入root,基本上主要程序都放在/root/目录下,只有openface源码放在/home/usr/也可以。

#安装必要依赖

1 sudo apt-get install build-essential cmake gfortran libatlas-dev libavcodec-dev libavformat-dev libboost-all-dev libgtk2.0-dev libjpeg-dev liblapack-dev libswscale-dev pkg-config python-dev python-pip wget zip

#必要的数值计算库

1     pip2 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple #选择下载镜像,可以加速,

2

3     pip2 installscipy #numpy安装成功后,scipy总失败,reboot之后就好了4

5     pip2 installpandas6

7     pip2 install scikit-learn8

9     pip2 install scikit-image #发现安装慢也可以使用 sudo apt-get install python-skimage的方式

#安装Torch 基于lua的科学计算工具,其包管理器是luarocks。

1     sudo apt-get installluarocks2

3     curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash -e #安装Torch的依赖库

4

5     git clone https://github.com/torch/distro.git ~/torch --recursive #源码

6

7 cd torch8

9     bash install-deps #(cloning openblas)10

11     ./install.sh #源码安装torch 如果网络被墙也可以从www.pandaroll.cn/openface/torch.tar.gz 下载 ,解压:tar -xvf torch.tar.gz

#再安装torch需要的依赖,下载

1     ~/torch/install/bin/luarocks install moses #若安装很慢可以从源码解压后直接安装,下载:www.pandaroll.cn/openface/Moses-master.zip 然后在终端输入~/torch/install/bin/luarocks install Moses-master/rockspec/moses-1.4.0-1.rockspec2

3     ~/torch/install/bin/luarocks install torchx #www.pandaroll.cn/openface/torchx-master.zip

4

5     ~/torch/install/bin/luarocks install nn #www.pandaroll.cn/openface/nn-master.zip

6

7     ~/torch/install/bin/luarocks install dpnn #www.pandaroll.cn/openface/dpnn-master.zip

8

9     ~/torch/install/bin/luarocks install csvigo #www.pandaroll.cn/openface/lua---csv-master.zip

10

11     ~/torch/install/bin/luarocks install fblualib #www.pandaroll.cn/openface/fblualib-master.zip

12

13     ~/torch/install/bin/luarocks install optim #www.pandaroll.cn/openface/optim-master.zip

#安装opencv

1     sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libjasper-dev2

3     sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils

1     cd ~

2

3     unzip ocv.zip

4

5     cd opencv-2.4.11

6

7     mkdirrelease8

9 cd release10

11     cmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D BUILD_SHARED_LIBS=OFF -D WITH_GSTREAMER=ON ..12

13     sudo make all -j4 #cpu是4核14

15     sudo make install #若报错硬件问题或操作系统问题,可能是过热问题,换个主板或计算机,最好是台式机。

#安装无报错后将cv2.so 考到python目录下

cp /lib/cv2.so /usr/local/lib/python2.7/dist-packages

#安装dlib

1     cp dlib-18.16.tar.bz2 ~/src2

3 cd src4

5     tar xf dlib-18.16.tar.bz26

7     cd dlib-18.16/python_examples8

9     mkdirbuild10

11 cd build12

13     cmake ../../tools/python14

15     cmake --build . --config Release16

17     sudo cp dlib.so /usr/local/lib/python2.7/dist-packages

#到目前,opencv 和 dlib应该安装好了,测试一下安装成功否:

1 python2

3 import cv24

5     import dlib

#若都成功,则继续下面的步骤

#安装openface

1     git clone https://github.com/cmusatyalab/openface.git #若下载太慢则:www.pandaroll.cn/openface/openface.zip ,然后解压unzip openface.zip,可以放到/home/usr/目录下面。

2

3 git submodule init4

5 git submodule update6

7 cd openface8

9     sudo python2 setup.py install

#获取模型

========================安装完成==========

3.测试

3.1demo1    #进入sudo -i root模式

计算不同面孔之间的相似度距离:

1 cd openface2

3     ./demos/compare.py images/examples/{lennon-1.jpg,clapton-1.jpg}

运行结束后会给出一个结果:l2距离是1.132

1     ./demos/compare.py images/examples/{lennon-1.jpg,lennon-2.jpg}

运行结束后会给出一个结果:l2距离是0.763

发现:同一个人的确更相似。

3.2训练一个分类器

需要人脸原图,每个图包含一个人脸,每个人脸15张图。不同的人的照片放入不同的文件夹下。例如我收集了我自己和妹子的分别15张照片。一共相当于2个人,但是有几个人就分几个文件夹即可。将这几个文件夹放入同一个目录。

1 cd openface2

3     mkdir training-images4

5     cp -r siyi/ openface/traning-images6

7     cp -r naixin/ openface/traning-images

#人脸发现和矫正和裁剪 对其的新照片将放入/aligned-images/目录中,是96*96的正方形图片:

1     ./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96

#提特征,每个人脸128个特征点,新特征为csv文件,放入了/generated-embeddings/目录中:

1     ./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images

#训练自己的面部检测模型,是最基本的SVM模型:classifier.pkl 会放入generated-embeddings/目录下:

1     ./demos/classifier.py train ./generated-embeddings/

#获取一张不在数据集中的照片,利用分类器检测并归属然后会得到一个属于哪个名字的结果 和 一个可信度数值:

新照片siyitest1.jpg:

1     ./demos/classifier.py infer ./generated-embeddings/classifier.pkl siyitest1.jpg

分类器会给出分类结果和可信度,一般同样的人的可信度在99%左右,未在分类器中的人会低于80%。

3.3web-demo

1     sudo pip install -r demos/web/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

2

3     ./demos/web/start-servers.sh

安装一个usb摄像头,打开火狐浏览器:127.0.0.1:8000 可以在线添加训练,实时识别。

==完==

乔思祎

2017年3月20日

转载地址:https://blog.csdn.net/weixin_39626369/article/details/110991873 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:字节跳动python后端_笔试记录 字节跳动 20200920 算法工程师
下一篇:python棋盘格画图代码_使用OpenCV进行姿态估计的绘图棋盘格参考系(solvePnP + projectPoints)...

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月02日 17时07分36秒