Professional Documents
Culture Documents
ĐỒ Án Nhân Dạng Thiế Bị Di Động
ĐỒ Án Nhân Dạng Thiế Bị Di Động
34
Buc 3:
T2nh v:ctor khu'n ()t trung b4nh th:o c'ng th@c:
Buc 4:
Tr> v:ctor khu'n ()t trung b4nh:
\0 th t! c?:
Buc 5:
T2nh (! tr-n hip ph,ng s!i 8covariance9 ):
\ sw c? k2ch thc h
o
xh
o
Trong ?: S sw c c? k2ch thc C h
o
xA
Buc 6:
T2nh cc eigenvector #i 8v:ctor ri<ng9 c3! (! tr-n vu'ng A4A
1
8\ c? k2ch thc
h
o
Mh
o
9*
A! tr-n ny c? k2ch thc Ru Cn kh'ng kh$ thi ph$i kh'n kh{o i ng
vvngK
Buc 6.1:
{t (! tr-n A4A
1
chi L (! tr-n ny chG c? k2ch thc C AMA*
Buc 6.2:
T2nh cc vector ring vi 8:ig:nv:ctors9 c3! (! tr-n vu'ng S*S
T
ny*
35
j!u khi D t2nh _c cc vector vi 8c? k2ch thc C AMl9, t! sw %I %ng suy r!
_c cc vector ring #i 8k2ch thc hoMl9 (ong (un c"n t4( th:o c'ng th@c:
89
\hi L chuBn h?! cc v:ctor ui 8
l =
i
#
9, ngh]! C:
i
i
i
#
#
# =
T! rit r! _c cc chi L s!u:
A! tr-n A4A
1
c? th c? 1n <
T
tra ri<ng 8(bi tra ri<ng sw @ng vi v' s
v:ctor ri<ng n? _c gyi C ^kh_ng gian ring `ng v]i tra ring nIo Gbc9*
A! tr-n A
1
4A c? th c? 1n / tra ri<ng*
/ tra ri<ng c3! (! tr-n A
1
4A 8k( vi cc v:ctor ri<ng t,ng @ng9, sw @ng
vi / tra ri<ng Cn nhFt c3! A4A
1
8ci ny Ru!n tryng b6i t! !ng i t4( cc
hng bi1n thi<n Ru!n tryng nhFt9*
Buc 6.3:
T2nh A v:ctor ri<ng ui tt nhFt c3! A4A
1
th:o c'ng th@c 89*
Buc 7:
\hG gi7 C5i 3 v:ctor ri<ng trong s / v:ctor n?i tr<n 8@ng vi 3 tra ri<ng Cn nhFt9,
tFt nhi<n 3 YY <T*
\? o cch Mc anh 3:
Cch 1:
jHp M1p th:o th@ t& %Dy gi$( %"n cc eigenval#e t4( _c*
Th:o %Ni s& bi1n thi<n c3! %Dy tr<n: khi kh'ng cvn bi1n thi<n 8ho)c MFp MG
bng kh'ng9 th4 Cic ? t! D chyn 3 3*
Cch 2:
36
\hyn 3 th:o c'ng th@c s!u:
3.1.4. Nhn dng khun m}t bng cc Eigenface
\ho l $nh khu'n ()t ch! bi1t C !i
=
*
*
*
*
t
o
l
1
3
1
1
1
#
#
#
#
Buc 3:
T4(
37
T@c t! t4( khu'n ()t th@ C trong t-p (`u c? kho$ng cch g"n nhFt vi khu'n ()t
c"n nh-n %5ng*
Buc 4:
h1u e
r
Y 1r 81r C (t ngng chFp nh-n _c no ?9: $nh khu'n ()t c"n Mc
anh 3 g"n vi $nh c3! ngi th@ C trong t-p (`u* Jhi ?, t! k1t Cu-n ? ch2nh C
khu'n ()t c3! ngi th@ C*
Ch :
T! c? th s/ %0ng khoDng cLch 2#clid t2nh e
r
* Tuy nhi<n, ngi t! ch@ng (4nh
_c rng, k1t Ru$ sw tt h,n n1u %zng kho$ng cch A!h!C!nobis:
3.1.5. ng dng d tm - DETECTION
Th-t r!, y kh'ng ing ngh]! C pht hin ( chG C Mc anh M:( c? ph$i C
$nh ()t ngi h!y kh'ng ( th'i*
Buc 1: =
Buc 2:
T2nh
Buc 3:
T2nh
38
Buc 4:
h1u :% T% 8(t ngng no ? chFp nh-n _c9:
T@c $nh c"n Mc anh c? kho$ng cch 3 g"n vi kh'ng gi!n khu'n ()t* Jhi ?,
t! k1t Cu-n ? ch2nh C $nh khu'n ()t ngi 8ch@ kh'ng ph$i $nh c$nh v-tK9*
\? (t ti Ciu 8sCi%: c3! Xr!%::p ku%%h!r!u9 # c-p 1n vic t2nh ngng nh
s!u:
c Z d ma$5"k effp5:pkffgh 5"k Z U"X"m
T@c C c bng kho$ng cch Cn nhFt gi7! h!i khu'n ()t bFt kq*
hgng ny sw _c %zng th!y cho c$ 1d v 1r
3.1.6. Nhuc dim ca Eigenface
Trong nh7ng trng h_p s!u, X\S gig:nV!c: sw nh-n %5ng s!i:
Jhc nh!u v# i#u kin nh sng*
Hnh ,.1F. C[n$ *Pt 8h!Gn *Mt dJKi *Jei ?iC! 8iLn s-n$ 8h-c nh#!.
Jhc nh!u v# iu b 8nh nghi<ng "u9*
\$( Mic 8ci to, h (ing, v*v*9*
3.2. Thut ton Fisherface
3.2.1. Fisherface l g?
39
Tish:rV!c: C cch biu %iIn h4nh $nh osU %5ng khu'n ()t bng cc v:ct, c, s6
thu _c khi p %0ng thu-t ton inear +Fisheris, -iscriminant Anal&sis tr<n t-p h4nh
$nh* nUS C (t thu-t ton c.ng ging nh X\S C gi$( s chi#u c3! b@c $nh Mung
nhng nh7ng th'ng tin c3! b@c $nh kh'ng gi$( Mung ch2nh v4 th1 sw giip ch,ng tr4nh
M/ CL nh!nh h,n* Pi( Ru!n tryng c3! nUS C n? phn Cp cc i t_ng r! chi1u vo
nh7ng chi#u khc nh!u ( X\S kh'ng C( _c
;4nh t*p* j& khc nh!u gi7! X\S v nUS
hh4n h4nh t*p, t! thFy _c s& u vi<t c3! thu-t ton nUS so vi X\S* X\S n?
chyn ph,ng chi1u nhng cc i t_ng ch=ng C<n nh!u cvn nUS phn tch t>ng i
t_ng* Jhi vic phn tng i t_ng r! sw giip vic nh-n %5ng t>ng i t_ng sw ch2nh
Mc h,n*
3.2.2. Phn tch cc di tung trong LDA
\ho ` C v:ctor c3! (`u
`f g`
1
h `
(
hi`
c
jk
`
i
fg6
1
h6
(
hi 6
8
jk
+:ctor c3! cc i t_ng `
i
C :
40
+:ctor trung b4nh c3! c$ (`u C:
A! tr-n nh M5 trong Cp:
A! tr-n tn M5 gi7! cc Cp:
ky gi ching t! sw t4( nh7ng ph,ng chi1u ti u c3! (`u :
T4( :ig:nv!Cu: c3! W t> cc W
i
j
r
sl
j
k
r
i
r
i
j
r
sl
j
k
r
i
r
i
Jhi ? tr6 C5i thu-t ton c3! X\S %zng :ig:nV!c:s t4( cc :ig:nv:ctors 8r
i
9
c3! j
r
sl
j
k
+ cc ct c3! r ch2nh C r
i
* Abi h4nh $
5
>
i
chi1u C<n kh'ng gi!n p
i
r
T
8M
(9 *
3.2.3. Cch thc hot dng ca Fisherface
41
=
=
k
5
5 i
$
k
l
l
=
=
c
i
i
c
l
l
Pi vi ph,ng php ti1p c-n Tish:rV!c:, cc :ig:nV!c: t2nh ton 6 tr<n D _c
s/ %0ng nh C (t bc "u ti<n, nhng chG c? <c Z RQ 0 P Z Wj v:ctor ri<ng _c gi7
C5i cho nhu c"u gi$( chi#u* nu L rng trong trng h_p ny, ch2n Cp hyc _c b!o g=(
trong t-p huFn Cuyn* Uo ?, c? c 0 U Z P 0 U Z k Vish:rV!c: t=n t5i:
Hnh ,.<. T-* &isher&#ce cl ?J\c tm tD2 h!Qn +!'Ln.
T,ng t& nh tr<n, cc khu'n ()t trong t-p huFn Cuyn _c chi1u C<n cc
Vish:rV!c: v cc tryng s _c cFt gi7*
3.3. nh gi thut ton
j!u khi pro%iling v th/ nghi( cc thu-t ton nh-n %5ng khu'n ()t trong
A!tn!b, ching t! trin kh!i cc thu-t ton tr<n in tho5i Sn%roi%* Pi vi ph"n %in
khu'n ()t, t! s/ %0ng (y pht hin khu'n ()t c? sxn trong cc SXY th!y v4 th&c hin
cc thu-t ton nh-n %in khu'n ()t* \c ti Ciu th&c s& C ngHn gyn n<n kh'ng bi1t chHc
chHn tr<n nh7ng thu-t ton n? _c %&!* h? _c s/ %0ng cHt (t khung ()t trong
h4nh $nh ch0p bng (y $nh in tho5i*
J1t Ru$ tr$ v# chi! thnh bn trng h_p:
T chi sai: n1u ()t c? Ci<n Ru!n vi khu'n ()t ch2nh Mc, nhng kho$ng
cch Cn h,n ngng*
Chp nhn sai: n1u ()t c? Ci<n Ru!n vi ()t s!i, nhng kho$ng cch nhQ
h,n ngng*
42
T chi dng: n1u ()t c? Ci<n Ru!n vi ()t s!i v kho$ng cch Cn h,n
ngng*
Chp nhn dng: n1u ()t c? Ci<n Ru!n vi ()t ch2nh Mc v kho$ng cch
nhQ h,n ngng*
kng cch i#u chGnh gi tra ngng, s C_ng h4nh $nh r,i vo bn Co5i sw th!y
Ei* +ic bE sung cc t C t> chi ch2nh Mc v chFp nh-n ing _c coi nh tEng s t
C ch2nh Mc* +i thu-t ton gig:nV!c:, t! c? th 5t _c (t t C ch2nh Mc tEng cng
kho$ng u,t, trong khi vi Tish:rV!c:, t C ch2nh Mc C<n ti kho$ng u,d*
Xht trin cc thu-t ton nh-n %5ng khu'n ()t tr<n n#n t$ng Sn%roi%* hh ching
t! D thFy, Tish:rV!c: c? hiu Ru$ c!o h,n gig:nV!c:* ;,n n7!, t! chG c? th th&c hin
_c Tish:rV!c: trong Sn%roi%* JnT v Tish:r Ync chi1u _c t2nh ton trong A!tC!b
_c c anh thi1t C-p v Cu tr7 tr<n Cu tr7 b<n ngoi Uroi%*
\ui czng, thu-t ton c? th Mc anh (t ngi 8nh-n %in khu'n ()t v c'ng
nh-n9 vi (t gi!o %in ngi %zng ,n gi$n (' t$ trong h4nh*
43
CHONG 4: TH VIJN OPENCV V THIET KE
HJ THNG
4.1. Thu vin OpenCV
[p:n\+ C (t th vin (6 v# C]nh v&c \o(put:r +ision _c vi1t tr<n n#n t$ng
\e\ff* U& n b!n "u _c pht trin b6i Ynt:C, s!u ? _c hb tr_ b6i riCCoW m!r!g:
8phvng C!b nghi<n c@u robotic, chuy<n pht trin v# ph"n (#( v ph"n c@ng (D ngu=n
(6 cho cc @ng %0ng t& ng9* Th vin ny b!o g=( nhi#u h( ch@c nOng, t-p trung
ch3 y1u vo Ru tr4nh M/ CL $nh thi gi!n th&c*
+4 C th vin (D ngu=n (6, n<n hin n!y, [p:n\+ _c pht trin tr<n nhi#u n#n
t$ng khc nh!u, b!o g=( n#n t$ng Sn%roi%* Xro:ct sw s/ %0ng th vin ny pht trin
h thng nh-n %in khu'n ()t* Tuy nhi<n, ! [p:n\+ vo n#n t$ng Sn%roi% c"n
th'ng Ru! c chl native vi b Sn%roi% hUJ* \, ch1 n!tiv: cho ph{p @ng %0ng Sn%roi%
c? th th&c thi cc co%: v th vin t2ch h_p _c vi1t bng \e\ff*
\o(put:r +ision c.ng nh M/ CL $nh C nh7ng C]nh v&c v' czng rng Cn v ph@c
t5p* +4 v-y, = n chG ti1n hnh nghi<n c@u v p %0ng tr&c ti1p nh7ng k1t Ru$ c? _c
vi nh7ng h( ch@c nOng c.ng nh th vin [p:n\+ cung cFp sxn th&c hin (0c
2ch c3! pro:ct, ch@ kh'ng i Ru su vo chi ti1t b<n trong c3! th vin ny*
4.1.1. Nhn din khun m}t
u tr4nh nh-n %in khu'n ()t c, b$n _c th&c hin Ru! cc gi!i o5n:
Buc 1 Xc d|nh khun m}t (Face Detection): C Ru tr4nh Mc anh vzng $nh
c3! khu'n ()t trong h4nh $nh* u tr4nh ny chG Mc anh u C khu'n ()t c3!
(t con ngi*
Buc 2 Tin xu l hnh anh khun m}t (Face Preprocessing): C Ru tr4nh
tinh chGnh h4nh $nh khu'n ()t thu _c v# %5ng chuBn chung c3! khu'n ()t
ngi 8c? cc )c t2nh ging so vi cc khu'n ()t khc9
44
Buc 3 Thu thp v hc d liu khun m}t: C Ru tr4nh Cu gi7 cc )c
t2nh ri<ng c3! cc khu'n ()t D _c M/ CL, t> ? hyc cch nh-n %in nh7ng
khu'n ()t ny*
Buc 4 Nhn din khun m}t: C Ru tr4nh ki( tr! g,ng ()t no trong t-p
h_p cc khu'n ()t D _c hyc khp vi h4nh $nh g,ng ()t thu _c trong
c!(:r!*
\c k thu-t Mc anh khu'n ()t hin n!y c? k1t Ru$ kh tin c-y ng!y c$ trong
i#u kin th&c t1 vi (@c sng, hng nh sng, b?ng E, hng khu'n ()t v s&
biu c$( tr<n khu'n ()t th!y Ei (5nh, trong khi cc k thu-t nh-n %in C5i ch! p
@ng _c cc y<u c"u ny n<n k1t Ru$ thu _c v`n ch! c? tin c-y c!o* Uo ?, t!
th&c hin Ru tr4nh ti#n M/ CL khu'n ()t 6 bc o nhH( ti vic h5n ch1 ti ! nh7ng vFn
# tr<n Ru! vic chuBn h?! cc h4nh $nh khu'n ()t v# chung (t sng, t,ng ph$n
v )c t2nh khu'n ()t 8v2 %0 nh (Ht v (.i 6 (t va tr2 nhFt anh tr<n $nh9* u tr4nh
ti#n M/ CL tt sw C( tOng ng k tin c-y cho ton h thng nh-n %in*
4.1.2. Xc d|nh khun m}t
A. L thuyt
u tr4nh Mc anh khu'n ()t trong th vin [p:n\+ C s/ %0ng b phn Co5i th:o
b-c %5ng ;!!r 8?aar:!ased cascade classi%ier, gyi tHt C ;!!r \C!ssiVi:r9*
Ch : ?aar:!ased cascade classi%ier _c pht trin b6i X!uC +ioC! v Aich!:C
^on:s vo nO( oddl, s!u ? _c c$i ti1n vo nO( oddo b6i ~!in:r ni:nh!rt v ^och:n
A!y%t*
+ic )t t<n classi%ier ny %&! tr<n vic CFy )c t2nh c3! s?ng ;!!r 8?aar wavelet9
bng cch th<( ho)c bt cc vzng $nh h4nh ch7 nh-t trc khi M/ CL ngng k1t Ru$*
45
Hnh 0.1N. nEn$ sln$ H##r.
t6ng c, b$n c3! b nh-n %in khu'n ()t %&! th:o ;!!r 8?aar:!ased %ace
detector9 C n1u t! nh4n tr&c %in vo (t khu'n ()t no ?, vzng (Ht sw ti h,n so vi
vzng trn v c(, vzng (ing sw ti h,n vzng trn, v*v** Th'ng thng, ph,ng php ny
sw th&c hin kho$ng od bc so snh nh v-y Mc anh h4nh $nh ? c? ph$i C khu'n
()t h!y kh'ng* ;,n n7!, vic ki( tr! ph$i _c th&c hin t5i (bi va tr2 c? th tr<n $nh
vi (bi k2ch thc c? th c3! khu'n ()t* +4 v-y, th&c t1 c? kho$ng lddd ph{p ki( tr!
_c th&c hin tr<n (bi $nh*
Th>! h6ng v c$i ti1n t> ?aar:!ased %ace detector, A6:!ased %ace detector,
_c pht trin b6i Shon:n, ;!Ci% v Xi:tikin:n t> nO( oddp, nhng p %0ng k thu-t
so snh biu = (-t piM:C trong vic M/ CL $nh n<n cho kh$ nOng Mc anh nh!nh h,n
;!!rsb!s:% nhi#u C"n* Thu-t ton ny c.ng _c t2ch h_p trong th vin [p:n\+*
\$ ?aar:!ased %ace detector v A6:!ased %ace detector #u _c h4nh thnh t>
vic huFn Cuyn nhi#u c, s6 %7 Ciu v# khu'n ()t* TFt c$ th'ng tin #u _c Cu vo t-p
tin anh %5ng An* Th vin [p:n\+ c.ng cung cFp b ;!!r %:t:ctor vi cc %7 Ciu
khu'n ()t _c huFn Cuyn sxn*
46
4.2. Thit k h thng
4.2.1. OpenCV Manager
P cc @ng %0ng s/ %0ng th vin [p:n\+ c? th ch5y tr<n cc thi1t ba Sn%roi%,
t! c"n s/ %0ng 8pen). /anager nh C (t service Ru$n CL th vin [p:n\+* h?
cho ph{p chi! s| cc th vin [p:n\+ ng gi7! cc @ng %0ng trong thi1t ba*
Hnh 0.(T. o!' trnh *Pt #22 sa d/n$ 12enCV chE' trXn thit Ip.
uy tr4nh th&c thi (t @ng %0ng s/ %0ng [p:n\+:
Jh6i ng, ki( tr! v y<u c"u ci )t [p:n\+ A!n!g:r*
Jhi (!n!g:r ho5t ng, ki( tr! v y<u c"u ci )t th vin [p:n\+ cho
thi1t ba*
\h5y @ng %0ng*
47
Hnh 0.(1. qor8&+ow c;# 12enCV "#n#$er.
+ic th&c hin ki( tr! v ci )t th vin [p:n\+ _c th&c hin b6i a!stract
class Aaseoader)all!ack, class 8pen).oader v class As&ncService?elper:
Abstract class BaseLoaderCallback
public abstract class k!s:no!%:r\!CCb!ck implements no!%:r\!CCb!ckYnt:rV!c:
***
public void onA!n!g:r\onn:ct:%8int st!tus9
switch 8st!tus9
e Jh6i t5o (t inst!nt [p:n\+ thnh c'ng e
case no!%:r\!CCb!ckYnt:rV!c:*S=))2SS:
e ng %0ng ph$i ov:rri%: ph,ng th@c ny ti1p t0c Ru tr4nh kh6i t5o e
jyst:(*loadi!rar&8Cibr!ryn::%toCo!%9Z
breakZ
e [p:n\+ Co!%:r kh'ng th ch5y moogC: XC!y A!rk:t* e
case no!%:r\!CCb!ckYnt:rV!c:*/AF321m2FF8F:
breakZ
e Ti1n tr4nh ci )t g?i D ba hu bQ* e
case no!%:r\!CCb!ckYnt:rV!c:*7<S1Am)A<)22-:
breakZ
48
e ng %0ng kh'ng t,ng th2ch vi phi<n b$n [p:n\+ A!n!g:r ny*
\? Cw c"n ph$i c-p nh-t C<n phi<n b$n (i h,n* e
case no!%:r\!CCb!ckYnt:rV!c:*7<)8/6A17A2m/A<AG2Fm.2FS78<:
*** breakZ
e \c tr5ng thi khc, v2 %0: YhYTTSYngU* e
default:
breakZ
Class OpenCVLoader
public class [p:n\+no!%:r
***
e
Th vin [p:n\+ phi<n b$n o*u*u*
e
public static final jtring 862<).m.2FS78<mTmRmR o*u*uZ
***
public static boolean initSsync8jtring +:rsion, \ont:Mt Spp\ont:Mt,
no!%:r\!CCb!ckYnt:rV!c: \!CCb!ck9
return Ssyncj:rvic:;:Cp:r*init8pen).8+:rsion, Spp\ont:Mt, \!CCb!ck9Z
Class AsyncServiceHelper
class Ssyncj:rvic:;:Cp:r
At .iew cho c!(:r! g=( o tr5ng thi S1AF12- v S18662-* P k2ch ho5t
c!(:r!, t! th&c thi h( ena!le.iew+,* ;( check)#rrentState+, sw ki( tr! tr5ng thi
c!(:r!, n1u c? s& th!y Ei tr5ng thi, h( sw k1t thic tr5ng thi hin t5i v th&c thi tr5ng
thi ti1p th:o*
private void proc:ssgnt:rjt!t:8int st!t:9
switch8st!t:9
case S1AF12-:
ongnt:rjt!rt:%jt!t:89Z
if 8(nist:n:r K null9
(nist:n:r*on\!(:r!+i:Wjt!rt:%8(Tr!(:ri%th, (Tr!(:;:ight9Z
breakZ
case S18662-:
ongnt:rjtopp:%jt!t:89Z
if 8(nist:n:r K null9
(nist:n:r*on\!(:r!+i:Wjtopp:%89Z
breakZ
Z
private void ongnt:rjt!rt:%jt!t:89
e J1t ni c!(:r! e
if 8Kconn:ct\!(:r!8g:tri%th89, g:t;:ight8999
51
ee Thot n1u thi1t ba kh'ng hb tr_ c!(:r!
***
+i tr5ng thi mState C S1AF12-, c!(:r! _c k1t ni bng h(
on2nterStartedState+,, =ng thi sw k2ch ho5t (t camera preview tr<n thi1t ba th'ng Ru!
h( on)amera.iewStarted+,4
Tuy nhi<n, s/ %0ng %7 Ciu h4nh $nh c3! c!(:r!, [p:n\+ c.ng anh ngh]! cc
inter%ace cho class )ameraAridge.iewAase nh s!u:
public interface \v\!(:r!+i:Wnist:n:ro
e \"n ph$i ov:rri%: ph,ng th@c ny trc khi s/ %0ng e
public void on\!(:r!+i:Wjt!rt:%8int Wi%th, int h:ight9Z
public void on\!(:r!+i:Wjtopp:%89Z
public A!t on\!(:r!Tr!(:8\v\!(:r!+i:WTr!(: inputTr!(:9Z
Z
public interface \v\!(:r!+i:WTr!(:
e Xh,ng th@c ny tr$ v# khung h4nh 6 %5ng ~mkS e
public A!t rgb!89Z
e Xh,ng th@c ny tr$ v# khung h4nh 6 %5ng trHng :n e
public A!t gr!y89Z
Z
!ctivity ch2nh, t! ti1n hnh override cc ph,ng th@c v>! s/ %0ng %7 Ciu
$nh th&c cho pr:vi:W, =ng thi s/ %0ng %7 Ciu $nh gr!ysc!C: M/ CL*
public void on\!(:r!+i:Wjt!rt:%8int Wi%th, int h:ight9
(mr!y new A!t89Z
(~gb! new A!t89Z
public void on\!(:r!+i:Wjtopp:%89
(mr!y*r:C:!s:89Z
(~gb!*r:C:!s:89Z
public A!t on\!(:r!Tr!(:8\v\!(:r!+i:WTr!(: inputTr!(:9
52
(~gb! inputTr!(:*rgb!89Z
(mr!y inputTr!(:*gr!y89Z
***
return (~gb!Z
4.2.3. Xc d|nh khun m}t
[p:n\+ anh ngh]! (t cC!ss )ascade)lassi%ier yc cc )lassi%ier, t> ? ti1n
hnh M/ CL th:o cc th'ng s trong ? v Mc anh vzng $nh ch@! khu'n ()t th'ng Ru!
h( detect/#ltiScale+,* +ic Mc anh khu'n ()t hon ton %&! vo cc h( n!tiv:*
public class \!sc!%:\C!ssiVi:r
***
public \!sc!%:\C!ssiVi:r8jtring ViC:n!(:9
n!tiv:[b )ascade)lassi%iermU8ViC:n!(:9Z
returnZ
***
public void %:t:ctAuCtijc!C:8A!t i(!g:, A!t[V~:ct ob:cts, double sc!C:T!ctor,
int (inh:ighbors, int VC!gs,
ji: (inji:, ji: (!Mji:9
A!t ob:cts(!t ob:ctsZ
detect/#ltiScalemS8n!tiv:[b, i(!g:*n!tiv:[b, ob:cts(!t*n!tiv:[b, sc!C:T!ctor,
(inh:ighbors, VC!gs, (inji:*Wi%th, (inji:*h:ight,
(!Mji:*Wi%th, (!Mji:*h:ight9Z
returnZ
***
private static native long \!sc!%:\C!ssiVi:rl8jtring ViC:n!(:9Z
private static native void %:t:ctAuCtijc!C:d
53
8
long n!tiv:[b, long i(!g:n!tiv:[b,
long ob:cts(!tn!tiv:[b,
double sc!C:T!ctor, int (inh:ighbors,
int VC!gs, double (inji:Wi%th,
double (inji:h:ight,
double (!Mji:Wi%th,
double (!Mji:h:ight9Z
T> anh ngh]! cC!ss tr<n, t! kh!i bo h( ch@c nOng 6 !ctivity ch2nh nh s!u:
public A!t on\!(:r!Tr!(:8\v\!(:r!+i:WTr!(: inputTr!(:9
(~gb! inputTr!(:*rgb!89Z
(mr!y inputTr!(:*gr!y89Z
if 8(SbsoCut:T!c:ji: d9
int h:ight (mr!y*roWs89Z
if 8A!th*ro#nd8h:ight (~:C!tiv:T!c:ji:9 d9
(SbsoCut:T!c:ji: A!th*ro#nd8h:ight (~:C!tiv:T!c:ji:9Z
A!t[V~:ct V!c:s new A!t[V~:ct89Z
if 8(U:t:ctor K null9
(U:t:ctor*%:t:ctAuCtijc!C:8(mr!y, V!c:s, l*l, o, o,
new ji:8(SbsoCut:T!c:ji:, (SbsoCut:T!c:ji:9, new ji:899Z
~:ct V!c:sSrr!y V!c:s*toSrr!y89Z
for 8int i dZ i V!c:sSrr!y*C:ngthZ iff9
\or:*rectangle8(~gb!, V!c:sSrr!yi*tC89, V!c:sSrr!yi*br89,
FA)2mF2)1m)88F, t9Z
return (~gb!Z
h( tr<n, v4 vic Mc anh khu'n ()t _c ti1n hnh th:o thi gi!n th&c n<n
kh'ng trnh khQi vic k2ch thc khu'n ()t MuFt hin trong c!(:r! th!y Ei to h!y nhQ
%o kho$ng cch M! h!y g"n so vi c!(:r!* +4 v-y, t! c"n Mc anh (t tG C nhFt anh c3!
54
khu'n ()t i vi h4nh $nh ch2nh* TG C ny _c th hin th'ng Ru! bi1n
mFelativeFaceSine vi gi tra d*oV 8od9, t> ? t! Mc anh ch2nh Mc _c k2ch thc
vzng khu'n ()t th:o bi1n mA!sol#teFaceSine* \ui czng, vzng khu'n ()t Mc anh
_c sw _c hin tha b6i h( )ore4rectangle+444,*
55
CHONG 5: GII THIJU CHONG TRINH
5.1. Giao din chuong trnh
Main activity
Hnh 4.((. "#in Activit'.
j!u khi nhFn T!k: Xictur:, ch,ng tr4nh sw kh6i ng )apt#re Activit&:
56
Hnh 4.(,. C#2t!re Activit'.
u!y %7 Ciu h4nh $nh t> c!(:r!:
Hnh 4.(0. Chrn Hnh 8h!Gn *Mt s#! 8hi ch/2.
nh _c tr$ v# /ain Activit&, t! ti1n hnh ghi %7 Ciu khu'n ()t vo c, s6 %7
Ciu bng Cnh S%% h!(:* h1u %7 Ciu khu'n ()t D c? trong c, s6 %7 Ciu, t! c? th
nh-n %5ng khu'n ()t bng nit U:t:ct T!c:, khi ?, t<n khu'n ()t sw _c tr$ v#*
hh-p %7 Ciu khu'n ()t ho)c nh-n %5ng n1u D c?*
57
Hnh 4.(4. %hD2 ds +iL! 8h!Gn *Mt *Ki.
h1u khu'n ()t D c? trong c, s6 %7 Ciu, khi nhFn U:t:ct T!c:, ch,ng
tr4nh sw tr$ v# t<n c3! khu'n ()t*
Hnh 4.(7. Kh!Gn *Mt ?t cl tron$ C=nu.
58
5.2. Nguyn l hot dng
Hnh 4.(<. %$!'Xn +O hoEt ?Pn$.
5.3. Main Activity
mi!o %in ch2nh c3! ch,ng tr4nh* Ti1n hnh c-p nh-tetruy MuFt %7 Ciu khu'n ()t
t> \jUn, hin tha k1t Ru$*
Hnh 4.(F. "#in Activit'.
59
5ain 6ctivity
Camera
6ctivity
*review
6ctivity
5678 6C97V79:
Captur
e
Camera
6ct#
*review
6ct#
proceed to take
return a take
Crop Captured
;
:es
8o
/696<6S=
6dd -ecogni
4e
crop
and
proces
s
face
retur
n
face
inde>
5.4. Camera Activity
j/ %0ng \!(:r! SXY, t& ng ti1n hnh CFy n{t khi c? khu'n ()t*
Hnh 4.(N. C#*er# Activit'.
5.5. Preview Activity
Xr:vi:W $nh trc khi ti1n hnh nh-n %inec-p nh-t khu'n ()t*
Hnh 4.,T. Preview Activit'.
5.6. Cu trc co s d liu
j!u khi D thu _c v M/ CL h4nh $nh khu'n ()t, %7 Ciu khu'n ()t sw _c Cu
th:o cFu tric:
YrootOYnamemaO@S45pg
YrootO YnamemaO@U45pg
YrootO YnamemaO@T45pg
YrootOY namem!O@S45pg
YrootOYnamem!O@U45pg
X
U&! vo t<n khu'n ()t ( ngi %zng nh-p, %7 Ciu sw _c c-p nh-t bE sung
ti1p th:o ?* +i (bi t<n ngi ri<ng bit, vic cng c? nhi#u %7 Ciu $nh sw giip t C
60
C65=-6 6C97V79:
5ain
6ctivit
y
*revie
w
6ctivit
y
*-=V7=? 6C97V79:
*revie
w
6ctivit
y
-ecaptu
re
@
A
5ain
6ctivit
y
nh-n %in thnh c'ng c!o h,n* +ic gi!o ti1p gi7! %7 Ciu h4nh $nh khu'n ()t c3! \jUn
vi ch,ng tr4nh _c th&c hin b6i kiu %7 Ciu ?ash/ap th'ng Ru! ViC: \j+*tMt*
T,ng @ng vi (bi t<n khu'n ()t 8val#e9 C (t in%:M ri<ng bit 8ke&9*
\Fu tric ViC: _c Cu th:o anh %5ng nh s!u:
YrootOYnamemaO@S45pghS
YrootOYnamemaO@U45pghS
YrootOYnamemaO@T45pghS
YrootOYnamem!O@S45pghU
YrootOYnamem!O@U45pghU
YrootOYnamemcO@S45pghT
YrootOYnamemaO@W45pghS
X
5.7. Giao din Camera
\h,ng tr4nh s/ %0ng \!(:r! SXY ()c anh c3! Sn%roi%* Th!o tc ch0p $nh _c
th&c hin vi bi1n %7 Ciu )amera 8anh ngh]! trong g?i android4hardware4)amera9 vi
cc 6ict#re)all!ack*
camera4take6ict#re+sh#tter)all!ack" pict#re)all!ack" pict#re)all!ack,
\c c!CCb!ck ho5t ng nh nh7ng thr:!%*
5.8. Giao din Preview
P thu-n tin cho vic preview, t5i gi!o %in ny cung cFp t2nh nOng pht hin
khu'n ()t cho $nh t]nh* Uo hin t5i, @ng %0ng cvn h5n ch1, n<n vic nh-n %in ch! th
ti1n hnh song song ( %&! vo h4nh $nh kh#_n mot l]n nhpt trong b c0c $nh*
5.9. Nhn din khun m}t
+ic th&c hin huFn Cuyn c.ng nh phQng on %7 Ciu khu'n ()t _c th&c hin
b6i cc (o%uC: n!tiv: s/ %0ng [p:n \+*
6trYFaceFecogninerO model Z create2igenFaceFecogniner+,h
model :O train+images" la!els,h
model :O predict+%ace" prediction,h
61
+i cc th!( s images v la!els _c truy MuFt t> ViC: %7 Ciu *)S.* \ui czng,
h( predict+, sw ti1n hnh nh-n %in khu'n ()t ch0p _c 6 bi1n th!( s V!c: vi \jUn
%7 Ciu $nh v tr$ v# k1t Ru$ C chG (0c c3! t<n khu'n ()t ? th'ng Ru! th!( s
prediction* \c (o%uC: n!tiv: _c anh ngh]! trong (t ViC: 4cpp v _c Ruy anh 6
ViC: Android4mk nh s!u:
incl#de q+)2AFm.AFS,
incl#de X@8pen).i!rar&@sdk@native@5ni@8pen).4mk
8)Am/8-=2 :Z Yde%inemli!rar&mnameO
8)AmSF)mF72S :Z Ymod#lesmnative4cppO
X
incl#de q+A=7-mS?AF2-m7AFAFV,
Trong ch,ng tr4nh ch2nh, (o%uC: n!tiv: _c n5p:
S&stem4loadi!rar&+^Yde%inemli!rar&mnameOc,h
gi!i o5n cui c3! Ru tr4nh nh-n %in, t! Mc anh tG C trzng khp c3! $nh !ng
M{t vi %7 Ciu $nh trong \jUn bng cch t4( s!i khc c3! ching* Abi $nh vi kiu
%7 Ciu /at #u anh ngh]! gi tra c3! (bi i( $nh th:o th!ng gi tra t> d occ* Uo v-y,
t4( s!i khc, t! ti1n hnh tr> gi tra c3! h!i (! tr-n $nh cho nh!u:
errorT Z )ore4norm+/atA" /atA" )ore4<8F/mT,h
similarit& Z errorT@+do#!le,+A4rows+,9A4cols+,,h
P s!i khc 8d*d l*d9 cng Cn, t C trzng khp cng thFp* P Mc anh t C
trzng khp t! c?:
con%idenceFatio Z U4S 0 similarit&h
U&! vo th&c nghi( tr<n nhi#u %7 Ciu $nh khc nh!u, t C ny c? gi tra n(
trong kho$ng t> d*d d*c* Uo v-y t C trzng khp sw C:
matchmrate Z con%idenceFatio9+USS@S4PQ,h
62
5.10. Cc hn ch v hung pht trin trong tuong lai
Cc hn ch ca chuong trnh:
Xro:ct s/ %0ng cc th vin v SXY sxn c? nh th vin (6 [p:n \+*
\vn h5n ch1 6 Ru tr4nh ti#n M/ CL khu'n ()t %`n 1n nhiIu $nh c!o 8cc pi$el
trash9, %o ? Ru tr4nh nh-n %in ch! th&c s& hon thin 8chG %7 Ciu khu'n ()t9*
\h! c? t2nh t2nh nOng b$o (-t*
Hung pht trin trong tuong lai:
j/ %0ng @ng %0ng nh-n %5ng khu'n ()t cho vic b$o (-t, (6 kh?! tr<n in
tho5i %i ng*
j/ %0ng @ng %0ng Mc anh ing sinh vi<n vi ph5( khi c? h4nh $nh v c, s6 %7
Ciu $nh c3! sinh vi<n* Xht trin thnh @ng %0ng nh-n %5ng sinh vi<n trong nh
trng* \? th pht trin v (6 rng r! trong cc tE ch@c MD hi khc*
+ic nh-n %5ng khu'n ()t cho vic My %&ng cc kh?! th'ng (inh, chG (6 khi
ing khu'n ()t*
\!o h,n C @ng %0ng nh-n %5ng c? th t4( k2(, pht hin nh7ng ti ph5( ba truy
nD, t4( ki1( ngi thn ba thFt C5c, v*v**
63
KET LUAN
P= n ny ! r! _c tEng Ru!n v# h i#u hnh Sn%roi%* Py C n#n t$ng
cho nh7ng !i (i bHt "u C-p tr4nh vi Sn%roi%* P= n D 5t _c nh7ng (0c ti<u c"n
t4( hiu My %&ng ch,ng tr4nh @ng %0ng Sn%roi% C Mc anh nh-n %in thnh c'ng
khu'n ()t* Trc khi My %&ng ch,ng tr4nh @ng %0ng, nh?( D tr4nh by v# cc thnh
ph"n t5o n<n (t @ng %0ng cho Sn%roi%, Ru tr4nh (t @ng %0ng _c th&c thi nh th1
no, cc thnh ph"n trong (t %& n Sn%roi%, cch porting th vin [p:n\+, thu-t ton
gig:nV!c: v thu-t ton Tish:rV!c: _c s/ %0ng trong th vin [p:n\+* A'i trng c"n
My %&ng v th&c thi cc @ng %0ng cho Sn%roi% C cc ng'n ng7 C-p tr4nh ^!v!, \e\f
f* hgoi r!, Sn%roi% %&! tr<n n#n t$ng ninuM n<n ('i trng tt vi1t cc @ng %0ng C
cc h i#u hnh nhn ninuM nh buntu* Tuy nhi<n, t! c.ng c? th vi1t tr<n rin%oWs
vi i#u kin %zng 1n swing %zng cc Cnh c3! ninuM*
ko co c.ng D tr4nh by v# Sn%roi% jUJ v Sn%roi% hUJ, C cc c'ng c0 hb
tr_ (5nh cho pht trin cc @ng %0ng Sn%roi%* hh?( c.ng ! r! _c cc Ruy tr4nh C(
(t %& n ph"n (#( vi cc c'ng c0 ny* At v2 %0 ,n gi$n t> ? hiu _c Ruy
tr4nh C( (t %& n v ch,ng tr4nh _c th&c thi nh th1 no tr<n Sn%roi%, t> ?, c?
th pht trin th<( nhi#u @ng %0ng hFp %`n khc cho Sn%roi%*
T?( C5i, @ng %0ng ( nh?( My %&ng D nh-n %5ng v pht hin thnh c'ng
khu'n ()t tr<n in tho5i Sn%roi%* ng %0ng ch5y En anh v cho k1t Ru$ nh-n %in s!u
o t giy* Tuy nhi<n, nh?( ch! C( _c vFn # pht trin @ng %0ng C<n %zng cho
vic kho (y, n<n # ti sw %>ng C5i 6 vic Mc anh v nh-n %5ng ch2nh Mc khu'n ()t
v tr$ v# ph"n trO( ch2nh Mc*
64
TI LIJU THAM KHAO
l http:eeWWW*V!c:sr:c*orgeint:r:stingsp!p:rs
ohttp:eesibgr!pi*si%*inp:*brecoCesi%*inp:*bresibgr!pideodded*l*dt*lle%oce(!
i!s\oCorY(!g:gn*p%V
t Sn%roi%TA S Xrogr!((:rs mui%e ;4F4 -i/arnio" XuCish:r: Acmr!Ws;iCC
u ;!rv:y A* U:it:C, X!uC ^*U:it:C, ;ava ?ow to 6rogram +Rth 2dition,"
XubCish:r:
c ^!(:s jt::C: h:Cson To" 1he Android -eveloperis )ook!ook A#ilding
Applications with the Android S-3" XubCish:r: S%% isonsr:s C:y, odld*
p A!rko m!rg:nt!, nearning Android" XubCish:r: [~:iCCy A:%i!, l :%ition,
odld*
~obin ;:Witt, Seeing with 8pen)." j:rvo (!g!in:, ^!nu!ry odd, Ync*
65