Posts Ubuntu安装OpenFace
Post
Cancel

Ubuntu安装OpenFace

安装准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sudo apt-get install build-essential -y
sudo apt-get install cmake -y
sudo apt-get install curl -y
sudo apt-get install gfortran -y
sudo apt-get install git -y
sudo apt-get install libatlas-dev -y
sudo apt-get install libavcodec-dev -y
sudo apt-get install libavformat-dev -y
sudo apt-get install libboost-all-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libjpeg-dev -y
sudo apt-get install liblapack-dev -y
sudo apt-get install libswscale-dev -y
sudo apt-get install pkg-config -y
sudo apt-get install python-dev -y
sudo apt-get install python-pip -y
sudo apt-get install wget -y
sudo apt-get install zip -y

安装库

1
2
3
4
5
sudo pip2 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip2 install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip2 install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip2 install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip2 install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple

安装Torch

安装torch:

1
2
3
4
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh
source ~/.bashrc

安装相关包:

1
2
3
4
5
6
7
8
~/torch/install/bin/luarocks install dpnn
~/torch/install/bin/luarocks install nn
~/torch/install/bin/luarocks install optim
~/torch/install/bin/luarocks install csvigo
~/torch/install/bin/luarocks install cunn
~/torch/install/bin/luarocks install torchx
~/torch/install/bin/luarocks install graphicsmagick
~/torch/install/bin/luarocks install cutorch

安装OpenCV

1
2
mkdir -p src
cd src

复制编译好的OpenCV到src目录下

安装Dlib

下载Dlib 通过以下过程安装:

1
2
3
4
5
6
7
8
mkdir -p ~/src
cd ~/src tar xf dlib-18.16.tar.gz
cd dlib-18.16/python_examples
mkdir build
cd build
cmake ../../tools/python
cmake --build . --config Release
sudo cp dlib.so /usr/local/lib/python2.7/dist-packages

安装OpenFace

1
2
3
git clone https://github.com/cmusatyalab/openface.git
sudo python2 setup.py install
models/get-models.sh

运行demo2:

./demos/compare.py images/examples/{lennon*,clapton*}

运行demo3:

./demos/classifier.py infer models/openface/celeb-classifier.nn4.small2.v1.pkl ./images/examples/carell.jpg

测试OpenFace

第一步

OpenFace/文件中建立一个名为training-images/的文件夹: mkdir training-images

第二步

为你想识别的每个人建立一个子文件夹。例如:

1
2
3
mkdir training-images/will-ferrell/
mkdir training-images/chad-smith/
mkdir training-images/jimmy-fallon/

第三步

将每个人的所有图像拷贝进对应的子文件夹。确保每张图像上只出现一张脸。不需要裁剪脸部周围的区域。OpenFace 会自己裁剪。

第四步

从这个 OpenFace 的根目录中运行这个 OpenFace 脚本。

1.进行姿势检测和校准:

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

这将创建一个新aligned-images/子文件夹,带有每一个测试图像的裁剪过的并且对齐的版本。

2.从对齐的图像中生成表征:

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

运行完后,这个aligned-images/子文件夹会包含一个带有每张图像的嵌入csv 文件。

3.训练自己的面部检测模型:

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

这将产生名为generated-embeddings/classifier.pkl的新文件名。这个文件有你将用来识别新面部的 SVM 模型。

第五步

识别面部,获取一张未知脸的新照片。把它像这样传递给分类器脚本:

./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg

你需要得到一个看起来像这样的预测:

1
2
=== /test-images/will-ferrel-1.jpg ===
Predict will-ferrell with 0.73 confidence.

从这里开始你可以利用这个Python 脚本 做任何你想做的:

./demos/classifier.py

Tips

如果你得到了坏的结果,请尝试在第三步中为每个人添加更多一些照片(尤其是不同姿势的照片)。这个脚本总是会给出一个预测,即便是一张它不知道的脸。在真实的应用中,你会看到信度得分,并抛除低信度的预测,因为它们很可能是错误的

This post is licensed under CC BY 4.0 by the author.