24小时热门版块排行榜    

查看: 1502  |  回复: 9

mhwang

新虫 (初入文坛)

[交流] 【求助】人脸检测 已有9人参与

大家好,我现在在做人脸识别,但是由于现在需要做一些关于人脸检测的部分,所以想向群里的群友请教一些关于人脸检测的代码,谢谢大家分享。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

okokhyy

铜虫 (初入文坛)

OpenCV
引用回帖:
Originally posted by mhwang at 2010-11-28 21:21:27:
大家好,我现在在做人脸识别,但是由于现在需要做一些关于人脸检测的部分,所以想向群里的群友请教一些关于人脸检测的代码,谢谢大家分享。

2楼2010-11-29 08:21:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mhwang

新虫 (初入文坛)

请问谁有基于神经网络以及boost 和adboost的人脸检测matlab代码呀,不胜感激
3楼2010-12-01 17:24:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

just1do1it

禁虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
本帖内容被屏蔽

4楼2010-12-17 13:26:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

image_pro

新虫 (初入文坛)


小木虫(金币+0.5):给个红包,谢谢回帖交流
OpenCV有一个很经典的 人脸检测的代码,原理就是Adaboost分类器的。很容易找到的。
5楼2010-12-21 16:01:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanghuaway

新虫 (初入文坛)

怎么获得流量和金币啊
破碎虚空
6楼2010-12-22 13:54:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mpbchina

禁虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
本帖内容被屏蔽

7楼2010-12-22 19:04:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

miaow2013

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
有没有matlab版本的Adaboost face detection?多谢啦!
8楼2013-04-12 12:04:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

硬语愁吟

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
基于pca人脸识别
%训练部分 获取特征脸
[m,n]=size(imread('F:/matlab/PCA_face_recognition/11/1.bmp'));     %获取训练图片的尺寸
allsamples=[];
for i=1:10
str1='F:/matlab/PCA_face_recognition/11/';
str2=num2str(i);
str3='.bmp';
a=imread(strcat(str1,str2,str3));  %读入训练图片
P1=a(1:m*n);
P2=double(P1);
allsamples=[allsamples;P2];   % allsamples中每一行代表一张图片
end
samplemean=mean(allsamples); %平均图片
for i=1:10
xmean(i,=allsamples(i,-samplemean;
end
sigma=xmean*xmean';
[V,D]=eig(sigma);
D1=diag(D);
DR=flipud(D1); %特征值排序
VR=fliplr(V);
dsum=0;
for j=1:11;       %选取一定数量的特征值
    dsum=dsum+DR(j);
    if(dsum/sum(DR)>0.95)
        break;
    end
end

base=xmean'*VR(:,1:j)*diag(DR(1:j).^(-1/2));

for j=1:6
   str1='F:/matlab/PCA_face_recognition/test/'
   str2=num2str(j);
   str3='.bmp';
   tst=imread(strcat(str1,str2,str3));
   P2=tst(1:m*n);
   b=double(P2);
   % b=double(reshape(tst,1,m*n));
test11=b-samplemean;      %计算测试图片相对于平均值的偏差  
c=test11*base;
IMG=base*c';       %计算由特征向量重构的偏差值
IMG=IMG';
faa1=(test11-IMG)*(test11-IMG)';
   if (faa1<=7300000) %设定阈值
   tst(1:10,1:100)=0;    %用黑色矩形边框标记人脸区域
   tst(91:100,1:100)=0;
   tst(1:100,1:10)=0;
   tst(1:100,91:100)=0;
   end
   
      subplot(2,3,j);
      imshow(tst);    %显示结果
  y=mat2gray(test11);

end
9楼2013-04-14 17:16:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

v.cc

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
%%%%  肤色的人脸检测研究
% clc,close all;

f=imread('face.jpg');
Ori_Face=f;
copy=f;
img=f;
% figure,imshow(f);
f=rgb2ycbcr(f);%rgb转换为ycbcr
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% figure,imshow(f);
f_cb=f(:,:,2);
f_cr=f(:,:,3);
f= (f_cb>=100) & (f_cb<=127) & (f_cr>=138) &(f_cr<=170) ;
%皮肤颜色在ycbcr色度空间的分布范围为:100<=cb<=127,138<=cr<=170
figure(1); imshow(f);
%K=medfilt2(f,[5 5]);%5×5中值滤波,去除噪声
%figure,imshow(f);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%利用开闭运算的方法消除噪声
se=strel('square',3);
f=imopen(f,se);
f=imclose(f,se);
figure(2),imshow(f);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%填孔处理
f=imfill(f,'holes');
figure(3),imshow(f);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%重构法
fe=imerode(f,ones(8,7));
fo=imopen(f,ones(8,7));
f=imreconstruct(fe,f);
figure(4),imshow(f);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相关匹配,作用不大,可注释掉
%w=ones(3);%w为模板大小.
%f=imfilter(f,w);
%figure(5),imshow(f);
% [M,N]=size(f);
% f=fft2(f);
% w=conj(fft2(w,M,N));
% g=real(ifft2(w.*f));
% gs=gscale(g);
% figure,imshow(gs);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%人脸候选区筛选时,由于头部部分重合,以及头部与其他
%部分,例如衣服等的连接,对筛选造成了困难,故应先利用
%闭运算操作,断开连接,再进行处理.
se1=strel('square',8);
f=imerode(f,se1);
f=imdilate(f,se1);
figure(6),imshow(f);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%区域连通
[L,num]=bwlabeln(f,4);
for i=1:num;
[r,c]=find(L==i);
r_temp=max(r)-min(r);
c_temp=max(c)-min(c);
temp=size(r);
sum=sum+temp(1);
area_sq=r_temp*c_temp;
area=size(find(L==i),1);
ratio=area/area_sq;
if (r_temp/c_temp<0.8)|(r_temp/c_temp>2)|temp(1)>2000|temp(1)<200|ratio<0.6
%脸部区域<250的去掉,一般为手或其他干扰.
%利用脸部宽长比的大概上下限来确定一个模板范围.
%矩形面积area_sq=目标区长度*宽度,目标区面积为area,若area/area_sq<0.6,认为不是人脸区,删除之.
for j=1:temp(1);
L(r(j),c(j))=0;
end
else
continue;
end
end
L=bwperim(L,8);%边缘检测,检测出人脸的边缘区域
L=uint8(L);
z=find(L(>0);
L(z)=255;
% ave=sum/num;%ave=696.
figure(7),imshow(L);
L_r=L;
L_g=L;
L_b=L;
L_rgb=cat(3,L_r,L_g,L_b);%在原图上加框
% figure,imshow(L_rgb);
img1_r=min(L_r+img(:,:,1),255);
img1_g=min(L_g+img(:,:,2),255);
img1_b=min(L_b+img(:,:,3),255);
img1=cat(3,img1_r,img1_g,img1_b);
figure(8),imshow(img1);
10楼2016-04-15 12:31:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mhwang 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见