matlab 深度图人脸活体检测(.raw深度图像)

RAW_PATH = '/home/zhoujie/liveness detection/zjraw/non-face/';
PLANE_OR_NOT = 0.2;  %根据标定位置的准确程度修改阈值
ITER = 10000;  %10000次结果基本已经稳定,不用修改
file =dir([RAW_PATH ,'*.raw']);

for num=1:length(file)
f1 = fopen([RAW_PATH,file(num).name], 'r');
txtname = strrep(file(num).name,'.raw','.txt');
[par1,par2,par3,par4] = textread([RAW_PATH,txtname],'%d%d%d%d',1);
data0 = fread(f1, 'uint16');
fclose(f1);
img1 = reshape(data0, 400, 345);
dep_img = img1';
% dep_img(find(dep_img > 600))= 0;
% figure(1),imshow(dep_img,[400,580]); 
face = dep_img(par2 :par2 +par4,par1 :par1 + par3); 
% figure(2),imshow(face,[400,580]); 
%%%三维平面拟合
[X Y]=meshgrid(1:size(face,2),1:size(face,1));
zz=face(:);xx=X(:);yy=Y(:);
data=[xx';yy';zz'];
id = data(3,:) == 0;
data(:,id) = [];
number = size(data,2); % 总点数
sigma = 1;
pretotal=0;     %符合拟合模型的数据的个数
for i=1:ITER
 %%% 随机选择三个点
     idx = randperm(number,3); 
     sample = data(:,idx); 
     %%%拟合直线方程 z=ax+by+c
     plane = zeros(1,3);
     x = sample(1,:);
     y = sample(2,:);
     z = sample(3,:);
     a = ((z(1)-z(2))*(y(1)-y(3)) - (z(1)-z(3))*(y(1)-y(2)))/((x(1)-x(2))*(y(1)-y(3)) - (x(1)-x(3))*(y(1)-y(2)));
     b = ((z(1) - z(3)) - a * (x(1) - x(3)))/(y(1)-y(3));
     c = z(1) - a * x(1) - b * y(1);
     plane = [a b -1 c];
     mask=abs(plane*[data; ones(1,size(data,2))]);    %求每个数据到拟合平面的距离
     total=sum(mask<sigma);              %计算数据距离平面小于一定阈值的数据的个数
     if total>pretotal            %找到符合拟合平面数据最多的拟合平面
         pretotal=total;
%      bestplane=plane;          %找到最好的拟合平面
    end  
end

pretotal_ary = pretotal/number;
% potable(num) = pretotal_ary;
if(pretotal_ary>PLANE_OR_NOT)
    descrip = '不是人脸';
else
descrip = '是人脸'; 
end
disp(['pretotal=',num2str(pretotal),',','_ary=',num2str(pretotal_ary),',',file(num).name,descrip]);
end

github地址:https://github.com/zj19941113/Deep-Img-Liveness-Detection
上面这个项目使用的数据集标定的不太准,PLANE_OR_NOT参数选为 0.1

这个数据集是自己标定的,数量较少但是比较准确: https://pan.baidu.com/s/161xSbayGW7tKg0tKfTW1mw ,PLANE_OR_NOT参数选为 0.2

快速鼠标标定深度图人脸位置: https://blog.csdn.net/ffcjjhv/article/details/83270002

猜你喜欢

转载自blog.csdn.net/ffcjjhv/article/details/83270515