OpenFace自建CNN模型

OpenFace自建CNN模型

1.        OpenFace Home:

https://cmusatyalab.github.io/openface/

Setup: (This is not working for myenvironment. View on 2016/8/23)

https://cmusatyalab.github.io/openface/setup/

2.        Environment(环境):

Ubuntu16.04

Nvidia 940M

Cuda8.0

3.        Required Liabrary(必须环境):

Opencv2.4.11与cuda8.0具有一定的冲突性,可以安装opencv2.4.13,本机安装的是opencv3.10.

Opencv2.4.13官方安装(未测试):

http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

[compiler] sudo apt-get installbuild-essential

[required] sudo apt-get install cmake gitlibgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

[optional] sudo apt-get install python-devpython-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-devlibjasper-dev libdc1394-22-dev

cd ~/opencv

mkdir release

cd release

cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local ..

make

sudo make install

4.        Dlib库以及torch的安装此处略过,查看之前的内容

5.        Openface的安装:

安装比较简单:

sudo python2 setup.py install

sh models/get-models.sh

配置好就可以跑一些简单的demo了(相关web的demo都没跑,感觉有点麻烦,~~):



跑demo运行

demo2:

./demos/compare.pyimages/examples/{lennon*,clapton*}

运行demo3:

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

 

注意:官网的很多命令不带有前标,如python2,th等。

6.        训练DNN模型:

数据预处理:

 

for N in {1..8}; do ./util/align-dlib.pydata/casia-facescrub/raw align outerEyesAndNose data/casia-facescrub/dlib-affine-sz:96--size 96 & done

python2 ./util/prune-dataset.pydata/casia-facescrub/dlib-affine-sz:96 --numImagesThreshold 3

Train之前需要做的处理:

train.lua:

修正module和OpenFaceOptim模块:

local models = require 'model'

local openFaceOptim = require 'OpenFaceOptim'

改为

local models = require './model.lua'

local openFaceOptim = require'./OpenFaceOptim.lua'

由官网所知opt.lua为训练的参数,其中需要更改两个参数,减少对GPU的要求(容易out of memory):

 cmd:option('-peoplePerBatch', 15, 'Number of people to sample in eachmini-batch.')

   cmd:option('-imagesPerPerson',20, 'Number of images to sample per person in each mini-batch.')

改为:

 

 cmd:option('-peoplePerBatch', 1, 'Number of people to sample in eachmini-batch.')

  cmd:option('-imagesPerPerson', 2, 'Number of images to sample per personin each mini-batch.')

test.lua:运行时发生错误找不到文件,直接改成绝对目录了:

 

local batchRepresent ="../batch-represent/main.lua"

local lfwEval ="../evaluation/lfw.py"

改为:

local batchRepresent = "~/openface/batch-represent/main.lua"

local lfwEval = "~/openface/evaluation/lfw.py"

找不到/data/lfw/aligned文件:

修改opt.lua:

cmd:option('-lfwDir','../data/lfw/aligned', 'LFW aligned image directory for testing.')

改为:

cmd:option('-lfwDir', '~/openface/data/lfw/aligned','LFW aligned image directory for testing.')

改过之后,开始训练和测试的时候,还是溢出了,再改:
   cmd:option('-testBatchSize', 800,'Batch size for testing.')

改成

  cmd:option('-testBatchSize', 80, 'Batch size for testing.')

「必须!」为了要testing,改变在opts.lua中的lfwDir

cmd:option('-lfwDir','/media/tsunyi/0EF057F8F057E50D/codeDemo/openface-master/data/lfw/dlib-affine-sz:96','LFW aligned image directory for testing.'

更改openface/batch-represent下面的batch-represent和opts以减少GPU

更改/openface/evaluation下的lfw.py,相关文件路径

你可能感兴趣的:(深度学习)