环境
Ubuntu ,opencv3
数据准备
原始深度图(已标定过人脸位置) 百度云盘:https://pan.baidu.com/s/1Hi85o521oIGaAfDoavOXeA
使用MATLAB进行数据采集与处理:
1、运行dataGet_MATLAB/position_process.m,进行深度图片的人脸位置的快速批量标定,鼠标框出人脸位置,自动生成同名包含位置信息的txt文件。(百度云盘中已包含人脸位置信息,可跳过此步)
1 | clc |
2、运行dataGet_MATLAB/faceGet_process.m,进行人脸深度图的批量处理 ,需提前新建/data/face与/data/non-face空文件夹用来存放生成的正负训练样本
1 | clc |
新建文件夹data/train_image/1、data/train_image/0、data/test_image/1、data/test_image/0
data/face文件夹中的五分之四复制到data/train_image/1,剩下的复制到data/test_image/1
data/non-face文件夹中的五分之四复制到data/train_image/0,剩下的复制到data/test_image/0
模型训练
1 |
|
运行 svm_train.cpp
g++ svm_train.cpp `pkg-config –cflags –libs opencv` -o svm_train
./ svm_train
生成的SVM模型存储在根目录的svm.xml中
模型测试
1 |
|
运行 svm_test.cpp
g++ svm_test.cpp `pkg-config –cflags –libs opencv` -o svm_test
./ svm_test
运行结果
项目地址 :https://github.com/zj19941113/FaceLivenessDetection_SVM