Professional Documents
Culture Documents
Ban in Doan2
Ban in Doan2
LI CM N
Chng em xin chn thnh cm n thy c ging dy chng em, c bit l cc thy c gio
trong khoa in-in t.
Xin cm n cc bn sinh vin trong khoa gip ti rt nhiu mt: nh phng tin, sch
v, kin
Mc d rt c gng hon thnh n ny song cung khng trnh khi nhng sai st, mong
thy c v cc bn ng gp nhng kin qu bu n c thnh cng hn.
LI M U
Hn mt thp k qua c rt nhiu cng trnh nghin cu v bi ton nhn dng khun mt
ngi t nh en trng, xm n nh mu nh ngy hm nay. Cc nghin cu i t bi ton n gin,
mi nh ch c mt khun mt ngi nhn thng vo thit b thu hnh v u t th thng ng trong
nh en trng. Cho n ngy hm nay bi ton m rng cho nh mu, c nhiu khun mt trong cng
mt nh, c nhiu t th thay i trong nh. Khng nhng vy m cn m rng c phm vi t mi
trng xung
Nhn dng mt ngi trn Matlab Trang iii
quanh kh n gin cho n mi trng xung quanh rt phc tp nhm p ng nhu cu ca con
ngi.
Mc tiu ca ti Nhn dng mt ngi trn matlab l thc hin chng trnh tm kim
mt bc nh c khun mt mt ngi trong tp nh c s ging vi khun mt ca ngi trong bc
nh cn kim tra bng ngn ng matlab.
- Phn u l gii thiu v thut ton PCA l ng ton c s dng rt nhiu trong vin
thng. V ti ny s dng thut ton PCA.
- Phn tip theo l gii thiu cc lnh c s dng trong chng trnh.
- Phn cui cng l gii thiu giao din chng trnh v code ngun.
Do ti liu tham kho hn ch, trnh c hn v kinh nghim trong thc tin cn non km,
nn ti khng trnh khi nhng thiu st. Rt mong c nhn nhng kin ng gp, gip
chn tnh, qu bu ca qu thy c cng cc bn sinh vin.
MC LC
LIT K HNH
LIT K BNG
CHNG 1 DN NHP
Nhn dng mt ngi trn Matlab Trang 3
1.1 t vn
Chng ta bit, ngy nay phn ln cc thit b in t u dn pht trin theo xu hng t
ng ha, thng minh, cng hiu con ngi, chng giao tip vi con ngi m khng cn mt thit b
trung gian no, lm c iu cc thit b cm bin, thut ton nhn dng ra i ngy cng hin
i hn, chnh xc hn, an ton v rt bo mt, chng c th chng nhn bit cc hot ng ca con
ngi, hnh gin ca con ngi v hot ng theo mun con ngi. Th bi ton Nhn dng mt
ngi l mt trong s .
1.2 L do chn ti
Ngy nay cc thit b s dng thut ton x l nh c s dng ngy cng rng ri, vi nhiu
mc ch khc nhau. Dng cho cc h thng bo mt nh kha bng vn tay, ging ni, gic mc mt
n cc thit b an ninh, truy tm ti phm..
Xut pht t nhng yu cu thc t trn ngi thc hin tin hnh tm hiu v nghin cu
ti : NHN DNG MT NGI TRN MATLAB.
1.3 Mc ch nghin cu
Ngi thc hin ti ny nhm mc ch:
Tm hiu cc thut ton nhn dng v x l nh mu, cu trc nh mu.
Nng cao k nng thit k v lp trnh bng ngn ng matlab.
Rn luyn k nng nghin cu, tm hiu ti liu.
Chng 1: Dn nhp
Nhn dng mt ngi trn Matlab Trang 4
Chng 1: Dn nhp
CHNG 2
CC THUT TON
NHN DNG KHUN MT
Nhn dng mt ngi trn Matlab Trang 6
Hin nay c nhiu hng tip cn xc nh mt nh c phi l nh kha thn hay khng?
Khun mt ngi c xem nh mt yu t xc nh cho mt hng tip cn m c dng gn
y.
ng dng trong video phone.
Phn loi trong lu tr hnh nh trong in thoi di ng. Thng qua bi ton xc nh khun
mt ngi v trch c trng, ri da vo c trng ny sp xp lu tr, gip ngi s dng d dng
truy tm khi cn thit.
Kim tra trng thi ngi li xe c ng gt, mt tp trung hay khng, v h tr thng bo khi
cn thit.
Phn tch cm xc trn khun mt.
Trong lnh vc thit k iu khin robot.
Hng my chp hnh Canon ng dngbi ton xc nh khun mt ngi vo my chp
hnh th h mi cho kt qu hnh nh p hn, nht l khun mt ngi.
2.3 Phng php xc nh khun mt ngi
C nhiu nghin cu tm phng php xc nh khun mt ngi, t nh xm n ngy nay
l nh mu. Ti s trnh by mt cch tng qut nht nhng hng gii quyt chnh cho bi ton, t
nhng hng chnh ny nhiu tc gi thay i mt s nh bn trong c kt qu mi.
Da vo tnh cht ca cc phng php xc nh khun mt ngi trn nh. Cc phng php
ny c chia lm bn hng tip cn chnh. Ngoi bn hng ny, nhiu nghin cu c khi lin quan
n khng nhng mt hng tip cn m c lin
quan nhiu hn mt hng chnh:
Hng tip cn da trn tri thc: M ha cc hiu bit ca con ngi v cc loi khun mt
ngi thnh cc lut. Thng thng cc lut m t quan h ca cc c trng.
Hng tip cn da trn c trng khng thay i: Mc tiu cc thut ton i tm cc
c trng m t cu trc khun mt ngi m cc c trng ny s khng thay i khi t th khun
mt, v tr t thit b thu hnh hoc iu kin nh sng thay i.
Hng tip cn da trn so khp mu: Dng cc mu chun ca khun mt ngi (cc mu
ny c chn la v lu tr) m t cho khun mt ngi hay cc c trng khun mt (cc mu
ny phi chn lm sao cho tch bit nhau theo tiu chun m cc tc gi nh ra so snh). Cc mi
tng quan gia d liu nh a vo v cc mu dng xc nh khun mt ngi.
Hng tip cn da trn din mo: Tri ngc hn vi so khp mu, cc m hnh (hay cc
mu) c hc t mt tp nh hun luyn trc . Sau h thng (m hnh) s xc nh khun mt
ngi. Hay mt s tc gi cn gi hng tip cn ny l hng tip cn theo phng php hc.
Phn tch thnh phn chnh (Principal Component Analysis ) gi tt l PCA l thut ton nhn
dng nh da trn nhng nt tng th ca khun mt , ta s p dng thut ton ny thc hin hai
cng vic sau :
- Th nht l tm mt khun mt ging vi khun mt cho trc
ln nht .
ca ma trn .
l tch v hng gia hai vector u , v . A=[ ]
v = v v = Av , tc l Av l mt tr ring ca ma trn .
Thng thng ta ch ly mt s Q vector ring ng vi Q tr ring c gi tr ln nht .
=
di c gi l khong cch t u n W .
Tp hp , i=1, , Q c gi l ta ca trong khng gian W .
Tm C= K l ta ca hnh chiu ca K ln khng gian khun mt . C l vector ct Q1
= vi = C( i , 1) ; = E( : , i ) .
Vi l mt ct trong ma trn A ( tng ng vi bc nh trong tp hun luyn ) . Ta tnh
Xt v l hai ngng no .
- th l bc nh ca cng mt ngi vi H . ( H gn vi )
Tnh s(x,y)= .
Tp hp cc gi tr s(x,y) to thnh mt bn khun mt (face map) ca H , t ta c th xc nh
v tr nhng khun mt trong nh .
Hnh 3.1: nh mu
3.1.1 Biu din nh s
Trong biu din nh, ngi ta thng dung cc phn t c trng ca nh l Pixel. Nhn chung
c th xem mt hm 2 bin cha cc thong tin biu din ca mt nh. Cc m hnh biu din nh cho
ta mt m t logic hay nh lng cc tnh cht ca hm ny.
Vic x l nh s phi c ly mu v lng t ha. Vic lng t ha l chuyn i tn hiu tng
t sang tn hiu s ca mt nh ly mu sang mt s hu hn mc xm.
Mt s m hnh thng dung biu din nh: m hnh ton, m hnh thng k.
3.1.2 nh mu
*c s v mu :
Nh ta bit th khi cho nh sng trng i qua lng knh ta s thu c mt dy ph mu bao
gm 6 mu rng : tm , lam , lc , vng , cam , . Nu nhn k th s khng c ranh gii r rng gia
cc mu m mu ny s t t chuyn sang mu kia.Mt chng ta nhn thy c l do nh sng phn
x t vt th.
Hnh 3.2: Cc mu c s
Vd : + lc = vng
Lc +lam = xanh
Trn ba mu s cp hoc trn mt mu th cp vi mu s cp ngc vi n s to ra c
nh sng trng
Cc mu gc c lin quan n cc khi nim sinh hc hn l vt l, n da trn c s phn ng
sinh l hc ca mt ngi i vi nh sng. Mt ngi c cc t bo cm quang c hnh nn nn cn
c gi l t bo hnh nn, cc t bo ny thng thng c phn ng cc i vi nh sng vng - xanh
l cy (t bo hnh nn L), xanh l cy (t bo hnh nn M) v xanh lam (t bo hnh nn S) tng ng
vi cc bc sng khong 564 nm, 534 nm v 420 nm. V d, mu vng thy c khi cc t bo cm
nhn mu xanh nh vng c kch thch nhiu hn mt cht so vi t bo cm nhn mu xanh l cy
v mu cm nhn c khi cc t bo cm nhn mu vng - xanh c cy c kch thch nhiu hn
so vi t bo cm nhn mu xanh l cy.
Cc c trng dng phn bit mt mu vi mu khc l : sng (brightness) , sc mu
(hue) v bo ha mu (Saturation)
Mu sc c lin quan n bc sng nh sng .Thng thng, sc mu chnh l tn ca mu. V
d: , cam, lc
sng th hin v cng nh sng :m t n sng hay ti nh th no
bo ha mu : th hin thun khit ca mu. Khi bo ha cao, mu s sch v rc r.
C nhiu m hnh mu nh RGB,CYM,YIQ,CIE... y ch trnh by v m hnh mu RGB
lam (0.0.1)
Trng
en (0.1.0)
Lc
vng
(1.0.0)
(0, 0, 0) l mu en
(255, 255, 255) l mu trng
(255, 0, 0) l mu
(0, 255, 0) l mu xanh l cy
(0, 0, 255) l mu xanh lam
(255, 255, 0) l mu vng
(0, 255, 255) l mu xanh ngc
(255, 0, 255) l mu hng sm
- nh dng JPEG: Phng php nn nh JPEG (ting Anh, vit tt cho Joint Photo-graphic
Experts Group) l mt trong nhng phng php nn nh hiu qu, c t l nn nh ti vi chc ln.
Tuy nhin nh sau khi gii nn s khc vi nh ban u. Cht lng nh b suy gim sau khi gii nn.
S suy gim ny tng dn theo h s nn. Tuy nhin s mt mt thng tin ny l c th chp nhn c
v vic loi b nhng thng tin khng cn thit c da trn nhng nghin cu v h nhn th ca
mt ngi.Phn m rng ca cc file JPEG thng c dng .jpeg, .jfif, .jpg, .JPG, hay .JPE; dng .jpg
l dng c dng ph bin nht. Hin nay dng nn nh JPEG rt c ph bin trong TDD cng
nh nhng trang thit b lu gi c dung lng nh. Cng on chnh l chia nh bc nh thnh nhiu
vng nh (thng thng l nhng vng 8x8 pixel) ri s dng bin i cosin ri rc bin i nhng
vng th hin ny thnh dng ma trn c 64 h s th hin "thc trng" cc pixel. iu quan trng l
y h s u tin c kh nng th hin "thc trng" cao nht, kh nng gim rt nhanh vi cc h
s khc. Ni cch khc th lng thng tin ca 64 pixels tp trung ch yu mt s h s ma trn theo
bin i trn. Trong giai on ny c s mt mt thng tin, bi khng c bin i ngc chnh xc.
Nhng lng thng tin b mt ny cha ng k so vi giai on tip theo. Ma trn nhn c sau bin
i cosin ri rc c lc bt s khc nhau gia cc h s. y chnh l lc mt nhiu thng tin v
ngi ta s vt b nhng thay i nh ca cc h s. Nh th khi bung nh nn ta s c c nhng
tham s khc ca cc pixel. Cc bin i trn p dng cho thnh phn U v V ca nh vi mc cao
hn so vi Y (mt nhiu thng tin ca U v V hn). Sau th p dng phng php m ha ca
Gernot Hoffman: phn tch dy s, cc phn t lp li nhiu c m ha bng k hiu ngn ( marker).
Khi bung nh ngi ta ch vic lm li cc bc trn theo qu trnh ngc li cng vi cc bin i
ngc
vi hang 2,.. Ring vi kiu uint6, Matlab khng h tr cc php ton so vi kiu uint8 nn khi cn
s l ta chuyn sang kiu d liu uint8 hoc double bng cc hng imapprox hoc im2double.
nh biu din theo sng
Mi nh c biu din bi mt ma trn hai chiu, trong gi tr ca mi phn t cho bit
sng (hay mc xm) ca im nh . Ma trn ny c th thuc mt trong cc kiu uint8, uint16 hoc
double. Trong gi tr nh nht 0 tng ng vi mu en cn gi tr ln nht(255 hoc 65535 ty
kiu d liu no) ng vi mu trng. Nh vy, nh biu din theo kiu ny gi l nh trng en hoc
nh gray scale.
nh nh phn
nh nh phn cng c biu din bng ma trn hai chiu nhng thuc kiu logical, c ngha
l mi im nh ch c th nhn mt trong hai gi tr 0(en) hoc 1 (trng).
nh RGB
nh RGB cn gi l nh truecolor do tnh trung thc ca n. nh ny c biu din bi
mt ma trn 3 chiu c kch thc m x n x 3, vi m x n l kch thc nh theo pixels. Ma trn ny nh
ngha cc thnh phn mu red, green, blue cho mi im nh, cc phn t ca n c th thuc kiu
uint8, uint16, hoc double. V d, im nh v tr (10,5) s c ba thnh mu c xc nh bi cc
gi tr (10,5,1), (10,5,2) v (10,5,3). Cc file nh hin nay thng s dng 8 bit cho thnh phn mu,
ngha l mt 24bit cho mi im nh (khong 16 triu mu).
Tn thuc tnh M t
Filename Chui cha tn file
FileModDate Ngy chnh file gn nht
FileSize S nguyn ch kch thc file(byte)
Format Chui cho bit nh dng nh
y chnh l giao din chnh ca chng trnh gm hai khung hin th hnh nh v hai nt
nhn Browse v Search. bt u tm kim ta cn load nh khun mt ngi cn kim tra bng cch
nhn vo phm Browse. Hp thoi m file xut hin, bn chn file nh bn mun kim tra. y ta ly
v d nh kim tra l nh 4.jpg nh hnh v:
Hnh 4.8: nh cn tm
Chng trnh s tm ra khun mt gn ging nht vi khun mt cn kim tra. V y kt qu tm
c l hnh c tn 7.jpg.
5.1 S khi
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
anhtim = strcat(TrainPath,'\',OutputName);
anhtim = imread(anhtim);
imshow(anhtim);
title('Anh tim duoc');
str = strcat('Ten anh :',OutputName);
set(handles.tenanh,'String',str);
function Browse_Callback(hObject, eventdata, handles)
[file_name file_path] = uigetfile ('*.jpg','Chon anh kiem tra ','test\2.jpg');
if file_path ~= 0
TestImage = imread ([file_path,file_name]);
end
axes(handles.anhkiemtra);
if file_path ~= 0
imshow(TestImage);
end
save TestImage;
function T = taoCSDL(trainPath)
% trainPath la duong dan toi thu muc csdl anh .Thu muc nay ngoai nhung
% file anh con chua nhung file khac co ten : . , .. , Thumbs.db
% Bien tat ca anh kich thuoc MxN thanh vector cot M*Nx1 , su dung
% ham reshape cua Matlab , sau do dat vao ma tran T , cuoi cung ma tran T
% se co kich thuoc M*NxP
% return T
csdl = dir(trainPath);
soanh = 0;
for i = 1:size(csdl,1) % dem nhung file la anh trong csdl
if not(strcmp(csdl(i).name,'.')|strcmp(csdl(i).name,'..')|strcmp(csdl(i).name,'Thumbs.db'))
soanh = soanh + 1; % so anh chua trong tap csdl
end
end
% Tao ma tran tu nhung tam anh
T = [];
for i = 1 : soanh
% Trong csdl cua vi du nay thi cac file anh co ten : 1.jpg , 2.jpg ...
str = int2str(i);
str = strcat('\',str,'.jpg');
str = strcat(trainPath,str); % lay ten day du cua file anh
img = imread(str);
img = rgb2gray(img);
[dong cot] = size(img);
tam = reshape(img',dong*cot,1); % bien anh thanh vector
T = [T tam]; % tang dan kich thuoc ma tran T
end
% Theo thuat toan PCA ,dau tien ta se tinh ra m la trung binh cua tat ca cac anh
% trong ma tran T.
% Sau do ta se lay tung buc anh trong T tru cho anh trung binh , ta se duoc mot ma
% tran A kich thuoc M*NxP
% Ta can tim Eigenface la nhung vector rieng cua ma tran A*A' , nhung ma
% tran A*A' kich thuoc l M*NxM*N qua lon , ta se tim nhung vector rieng
% cua ma tran A'*A co kich thuoc PxP . Ta se tim nhung vector rieng
% bang ham eig trong MatLab
% Gia su v la mot vector rieng cua ma tran A'*A , khi do A*v la vector
% rieng cua ma tran A*A' .
% tap hop nhung vector rieng cua ma tran A*A' goi la Eigenfaces
% tra ve 3 gia tri :
% m anh trung binh
% A tap hop nhung (anh-anh trung binh )
% E nhung vector rieng cua ma tran A*A'
%tinh toan anh trung binh
m = mean(T,2);
soanh = size(T,2);
%xuat ra hinh anh cua m
show(m,'Anh trung binh');pause;
% tinh do lech giua anh moi buc anh voi anh trung binh
A = [];
for i = 1 : soanh
temp = double(T(:,i)) - m; % T(:,i): vector cot thu i chinh la mot buc anh
if i<6
show(temp,'Anh - Anh TB');pause;
end
A = [A temp];
end
% tim nhung tri rieng va nhung vector rieng cua ma tran A'*A , tu do tim
% nhung vector rieng cua ma tran A*A' la nhung Eigenface
L = A'*A;
[V D] = eig(L);
%V chua nhung vector rieng , con D chua nhung tri rieng trong do vector
%rieng V(:,i) ung voi tri rieng D(i,i)
D1=diag(D);
D1=sort(D1);
s=size(D1);s=s(1);
D1=D1(s-18);
LeigV = [];%tap hop vector rieng cua ma tran L=A'*A
for i = 1 : size(V,2)
if( D(i,i)>D1 )
LeigV = [LeigV V(:,i)];
end
end
%ta chi lay 18 vector rieng ung voi 10 tri rieng lon nhat
%nhu da noi o tren , sau khi co cac vector rieng cua ma tran A'*A , ta tim
%cac vector rieng cua ma tran A*A' bang cach lay ma tran A nhan voi cac
%vector rieng nay , tap hop cac vector rieng cua ma tran A*A' con duoc goi
%la Eigenface do day la nhung vector rieng va no giong hinh khuon mat .
E = A * LeigV;
%xuat ra mot so hinh anh cua cac Eigenface
for i=1:5
anh=E(:,i);
show(anh,'Eigenface');pause;
end
%E la mot co so gom nhung vector truc giao , ta se chuan hoa no de E bien
%thanh mot co so truc chuan
sovector=size(E,2);
for i=1:sovector
dodai=norm(E(:,i));
E(:,i)=E(:,i)/dodai;
end
end
function show(m,t)
%ham show duoc su dung de hien thi hinh anh voi kich thuoc mau
%m la matran anh can hien thi
%t la chuoi the hien tieu de cua anh
im=imread('anhmau.jpg');
try
im=rgb2gray(im);
catch
end
[dong,cot]=size(im);% lay kich thuoc (anhmau.jpg coi nhu bien tam luu kich thuoc)
tam=reshape(m,cot,dong);
tam=tam';
imshow(tam);
dem=1;
for i=1:dong
for j=1:cot
im(i,j)=tam(i,j);
end
end
imshow(im);title(t)
end
toado = [];%tap toa do hinh chieu cua moi buc anh trong csdl
sovector = size(E,2);%so vector rieng trong E ( la so cot )
for i = 1 : sovector
tam = E'*A(:,i); %toa do hinh chieu cua buc anh Ai
toado = [toado tam];
end
tam = rgb2gray(InputImage);
[dong cot] = size(tam);
InImage = reshape(tam',dong*cot,1);
%tinh do lech giua anh kiem tra va anh trung binh trong csdl , do lech la
%mot vector cot giong nhu cac vector cot trong ma tran A
dolech = double(InImage)-m;
%tuong tu nhu khi tim toa do hinh chieu cua cac vector cot cua A , bay gio ta
%tim toa do hinh chieu cua buc anh kiem tra
toadoKT = E'*dolech;
%
hinhchieuKT=double(InImage)*0;
for i=1:sovector
hinhchieuKT=hinhchieuKT + toadoKT(i,1)*E(:,i);
end
show(hinhchieuKT,'Hinh chieu anh len KG anh');pause;%figure;
kc=norm(double(InImage)-hinhchieuKT);
str=num2str(kc);
str=strcat('Khoang cach tu anh kiem tra toi khong gian khuon mat : ',str);
disp(str);
%Bay gio ta se tinh khoang cach giua toa do hinh chieu cua buc anh kiem tra voi
%tat ca toa do hinh chieu cua cac buc anh trong csdl . Toa do hinh chieu cua
%anh kiem tra se co khoang cach ngan nhat voi hinh chieu cua buc anh tuong
%ung trong csdl (Hai buc anh cung la khuon mat cua mot nguoi )
%
%ta luu y la moi toa do hinh chieu la mot vector , ta se dung chuan Euclid de tinh
%khoang cach giua 2 vector (2 toa do hinh chieu)
khoangcach = [];
for i = 1 : sovector
q = toado(:,i);
tam = ( norm( toadoKT - q ) )^2;
khoangcach = [khoangcach tam];
endA
%lay ra khoang cach ngan nhat va vi tri cua buc anh tim duoc trong csdl ,
%ta luu y la nhung file anh trong csdl co ten la : 1.jpg , 2.jpg ....
[minKC , vitri] = min(khoangcach);
str=num2str(minKC);
str=strcat('Min khoang cach hai toa do hinh chieu : ',str);
disp(str);
anhtim = strcat(int2str(vitri),'.jpg');