TRNG I HC KHOA HC T NHIÊN
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PHN MM
INH BÁ THNG – NG BÁC VN
TÌM HIU CÁC K THUT
ÁP DNG CHO BÀI TOÁN
NHN DNG KÝ HIU NGI CÂM
KHÓA LUN C NHÂN TIN HC
Th.S NGUYN TRI TUN
NIÊN KHÓA 2001 - 2005
LI NHN XÉT CA GIÁO VIÊN HNG DN
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
Li cm n
Chúng em xin chân thành cm n Khoa Công ngh Thông tin, trng i hc
Li nói đu
S ra đi ca máy tính đã giúp ích rt nhiu cho công vic và cuc sng ca con
ngi. Vi máy tính, con ngi có th son tho vn bn, nghe nhc, xem phim, thit
k đ ha, x lý nh, biên tp phim Tuy nhiên, vic giao tip gia con ngi và máy
tính ph thuc ch yu vào bàn phím và chut, và hu nh con ngi luôn phi ngi
trc máy tính. Dn dn, các nhà sn xut thy đc s bt tin và đã to ra bàn phím
và chut không dây vi mong mun mang li s t do hn cho ngi dùng. Tuy nhiên,
bàn phím không dây thì vn là bàn phím, con ngi cng ch có th tng tác vi máy
tính thông qua h thng 104 phím. Con ngi ch tht s đc “gii phóng” khi vic
tng tác vi máy tính đc thc hin thông qua các c ch trong cuc sng hàng ngày,
tc là máy tính phi “hiu” đc các c ch ca con ngi. ó chính là vn đ đt ra
cho bài toán nhn dng và phân loi c ch. Cho đn thi đim hin nay, dù đã có
nhiu cách tip cn khác nhau cho bài toán này, nhng dng nh vn cha có mt h
thng nhn dng c ch nào thc s hiu qu.
Bên cnh đó, bài toán nhn dng mt ngi đang đt đc mt kt qu rt kh
quan vi mô hình Cascade of Boosted Classifiers do Viola và Jones [1] đ ngh. Mô
hình này đt hiu qu cao c v đ chính xác ln thi gian nhn dng. Eng Jon [14] đã
áp dng mô hình này lên bài toán nhn dng bàn tay và cng đt đc kt qu tt.
Mc tiêu ca khóa lun này là th áp dng mô hình Cascade of Boosted
Classifiers lên bài toán phân loi c ch vi hi vng nó cng s đt đc kt qu tt
nh trên bài toán nhn dng mt ngi và nhn dng bàn tay. Lun vn đc trình bày
trong 6 chng vi b cc nh sau:
• Chng 1-M đu: Nêu lên tm quan trng ca bài toán phân loi c ch và
mô t s b phm vi bài toán mà khóa lun này s gii quyt. ng thi gii
đim s qua các cách tip cn hin có vi các u khuyt đim ca chúng và gii
thiu v mô hình s dng trong khóa lun này. 1
Mc Lc
Chng 1 M đu 6
Chng 2 Gii thiu v h thng phân loi c ch 12
Chng 3 Các c s lý thuyt 15
3.1 Tip cn Boosting 15
3.2 AdaBoost 16
3.3 Haar Feature 20
3.4 Cascade of Classifiers 24
3.5 Cascade of Boosted Classifiers 25
3.6 ánh giá 26
Chng 4 Phân loi c ch vi Cascade of Boosted Classifiers 29
4.1 B nhn dng 1 c ch 29
4.1.1 Tp hun luyn 29
4.1.2 c trng 31
4.1.3 Xây dng b nhn dng vi AdaBoost 32
4.1.4 Cascade of Boosted Classifiers 36
4.1.5 Hot đng ca b nhn dng c ch 38
4.2 B phân loi c ch 41
Chng 5 Kt qu th nghim 43
5.1 Tp hun luyn 43
5.2 Cách tin hành hun luyn 47
5.3 Kt qu th nghim 49
5.4 So sánh và đánh giá 53
Chng 6 Tng kt 56
6.1 Kt lun 56
6.2 Hng phát trin 57
Hình 5 - Boosting 16
Hình 6 - Strong classifier H(x) xây dng bng AdaBoost 17
Hình 7 - Haar Feature c bn 21
Hình 8 - Haar Feature cho mt ngi 21
Hình 9 - SAT(x,y) và cách tính tng các đim nh trong mt hình ch nht bt kì 22
Hình 10 - Haar Feature xoay 45º do Lienhart đ ngh 23
Hình 11 - RSAT(x,y) và cách tính tng các đim nh trong mt hình ch nht xoay 1
góc 45º 23
Hình 12 - Cascade of Classifiers 25
Hình 13 - B nhn dng c ch A 29
Hình 14 - Các mu positive cho b nhn dng ch A 30
Hình 15 - Các mu negative (B, C, D) cho b nhn dng ch A 30
Hình 16 - Tp hun luyn ca các weak classifiers 31
Hình 17 - Các Haar Feature s dng trong b nhn dng 1 c ch 31
Hình 18 - Cách chn weak classifier ca AdaBoost 34
Hình 19 - Chn ngng θ da vào min detection rate 35
Hình 20 - Các vùng nh không liên quan (nét mnh) s b loi ngay t nhng stages
đu tiên 39
Hình 21 - Khc phc trng hp nhiu vùng nh k cn nhau bng cách ly vùng nh
trung bình 39
Hình 22 - i vi các vùng nh lng nhau, các vùng nh bên trong s b loi b 40
5
Danh sách bng
Bng 1 - Kt qu hun luyn vi 3 kích thc ca mu positive 45
Bng 2 - Kt qu hun luyn qua 3 lp ca b nhn dng c ch B 49
Bng 3 - Kt qu thu đc ca b nhn dng c ch A trên 2 tp test 50
Bng 4 - Kt qu th nghim ca 24 b nhn dng trên tp test gm 592 hình 52
Chng 1. M đu
6
Chng 1 M đu
Mc dù nn công ngh thông tin vn phát trin liên tc vi tc đ v bão nhng
chúng ta vn còn mt chng đng rt dài đ có th giao tip mt cách hoàn toàn t
nhiên vi máy tính nh giao tip gia con ngi vi nhau. Cách giao tip t nhiên nht
vi máy tính chính là dùng giao tip thông qua ting nói và c ch. Trong khi lnh vc
nhn dng ting nói đã đt đc nhng thành công đáng k trong vòng 10 nm gn đây
thì lnh vc nhn dng c ch vn còn tt li phía sau. Tuy nhiên, ngôn ng c ch li
chính là ngôn ng chuyn ti thông tin gia ngi và ngi mt cách trn vn nht.
Nu gi s chúng ta phát trin đc mt h thng nhn dng ting nói kt hp vi nhn
dng c ch thì chúng ta hoàn toàn có th thay th chut hay bàn phím bng mt h
chuyên làm sai ch th thì khó có th đc chp nhn.
Bên cnh đó, đ có th tng tác vi ngi dùng, h thng nhn dng xây dng
phi là h thng thi gian thc, phi x lý nhanh. Mt chuyên viên đ ha s không
chp nhn mt h thng cn đn 30 giây đ xoay mô hình ca h. Mt con robot s
không đc chp nhn nu nó cn đn 20 giây đ hiu ra rng nó phi làm mt vic gì
đó ngay lp tc. Hay nh trong mt cuc giao tip, nu mt h thng phi mt đn 10
giây cho mi c ch mà ngi khim thính ra du thì nó cng không th đc chp
nhn.
Bài toán nhn dng c ch có th chia làm 2 loi chính: nhn dng c ch tnh và
nhn dng c ch đng. C ch tnh là các c ch ng vi mt t th c đnh ca mt
bàn tay, còn c ch đng là chuyn đng theo mt qu đo nht đnh ca mt hay hai
bàn tay. Nhn dng c ch đng bao hàm c nhn dng c ch tnh và mt s x lý trên
chuyn đng nên ht sc phc tp. Khóa lun này ch tp trung vào bài toán nhn dng
c ch tnh.
H thng phân loi c ch xây dng trong khóa lun này là mt h thng có kh
nng nhn dng và phân loi 24 c ch ng vi 24 kí t trong bng ch cái (tr ch J
và Z do đòi hi chuyn đng ca bàn tay) Chng 1. M đu
8
Hình 1 - H thng 24 c ch
Freeman s dng đc trng Orientation Histogram [15] vi thi gian tính toán nhanh,
nhng li đòi hi mu nhn dng phi là mu chp cn cnh ca bàn tay. ng thi
cách này không áp dng đc khi h thng có các c ch tng t nhau, vì các c ch
tng t nhau cho Orientation Histogram ging nhau.
Bowden và Sarhadi [16] s dng mô hình nonlinear PDM (nonlinear point
distribution model) đ biu din đc nhiu thông tin v bàn tay. Nhng vic hun
luyn bng PDM nói chung khó đt đc s vng chc.
Ngoài ra, còn có cách tip cn da trên màu sc ca da trên bàn tay [17] bi vì
màu da tng đi thun nht. ây cng không phi mt cách tip cn tt vì các b
nhn dng xây dng trên đc trng là màu da rt nhy cm vi ánh sáng, và h thng
s nhn dng sai khi mu đa vào có cha các đi tng khác có màu ging vi màu
da
Nhìn chung, trong các cách tip cn trên đu có chung mt hn ch là không th
đt đc s cân đi gia kh nng nhn dng và thi gian x lý. Trong khi đó, hin có
mt mô hình đang đt đc s cân đi gia 2 mt này và hin đang đc Viola và
Jones áp dng rt thành công trong lnh vc nhn dng mt ngi: mô hình Cascade of
Boosted Classifiers vi đc trng s dng là Haar Feature [1] (mô hình cascade này
do chính Viola và Jones đ ngh). Chng 1. M đu
10
Cascade of Boosted Classifiers là mt cu trúc cây mà mi tng là mt classifier
(b phân loi). Classifier này đc xây dng bng thut toán AdaBoost trên nguyên tc
tun t nh trong hình 3 mà bn thân các c ch cng đc phân thành nhóm do s
ging nhau gia mt s c ch trong h thng 24 c ch. S ging nhau này s đc
xác đnh thông qua kt qu ca quá trình th nghim.
Các phn tip theo ca lun vn s ln lt trình bày các vn đ liên quan.
Chng 2 gii thiu cn k hn v bài toán, các vn đ đt ra, các cách tip cn và lý
do ti sao chn mô hình cascade. Chng 3 trình bày c s lý thuyt ca cách tip cn
cascade, thut toán AdaBoost và Haar Feature cùng vi các ng dng thành công ca
chúng. Chng 4 là phn áp dng mô hình lên bài toán phân loi c ch, bao gm cách
hun luyn , h thng các Haar Features s dng cùng vi cu trúc cây cascade và
cách kt hp các b nhn dng c ch đ hình thành b phân loi. Chng 5 là kt qu
th nghim và chng 6 là các đánh giá và hng phát trin ca lun vn. Chng 2. Gii thiu v h thng phân loi c ch
12
Chng 2 Gii thiu v h thng phân loi c ch
Nh đã trình bày phn trên, nhng ng dng to ln ca bài toán phân loi c ch
mang li nhiu khó khn không nh, vic gii quyt nó đòi hòi kin thc c v nhn
dng ln máy hc. Trong đó, 2 mc tiêu ln sau cùng chính là đ chính xác và tc đ.
H thng nhn dng phi có đc các đc trng tt, cha đng đc nhiu thông tin v
đi tng. i vi các c ch, tuy có th s dng các đc trng v hình hc nh chiu
ca ngón tay hay đng bao, nhng các đc trng này không phi lúc nào cng rõ ràng
và đ tin cy đ phân bit bàn tay vi các đi tng xung quanh, đc bit là di các
điu kin chiu sáng khác nhau.
Hình 4 - H thng 24 c ch
H thng phân loi gm 3 phn chính:
1. Module hun luyn: xây dng b nhn dng cho tng c ch (Sign Detector). B
nhn dng này đc t chc theo cu trúc Cascade of Boosted Classfiers, mt
cascade tree mà mi tng là mt strong classifier đc xây dng bng Gentle
AdaBoost [4] - mt bin th ca thut toán AdaBoost. Mi classifier này là mt
chui các weak classifiers – các classifier đn gin ch cn có đ chính xác trên
50% - mi weak classifier s gm 1 haar feature và 1 ngng đ phân loi. Kt
qu tr ra ca module này là các tp tin d liu ng vi cu trúc cascade tree to
thành.
2. Module nhn dng c ch: to li cascade tree t tp tin ca b nhn dng đã
xây dng đ tin hành nhn dng. Ví d s dng tp tin ca b nhn dng c ch
A thì ta s đc A-Detector, vic nhn dng s là nhn dng mt vùng nh có
phi c ch A hay không. Module này nhn vào mt nh, trích ra tt c các vùng
nh vi v trí và kích thc khác nhau, đa chúng vào cascade tree và tr ra các Chng 2. Gii thiu v h thng phân loi c ch
14
hình ch nht ng vi các vùng nh đc b nhn dng đánh giá là c ch. Vic
nhn dng khâu này đc áp dng thêm mt s phng pháp heuristic nhm
tng detection rate và gim false alarm cho h thng.
3. B phân loi c ch: kt hp các b nhn dng c ch đ thc hin phân loi. B
Chng 3 Các c s lý thuyt
3.1 Tip cn Boosting
Boosting là k thut dùng đ tng đ chính xác cho các thut toán hc (Learning
algorithm). Nguyên lý c bn ca nó là kt hp các weak classifiers thành mt strong
classifier. Trong đó, weak classifier là các b phân loi đn gin ch cn có đ chính
xác trên 50%. Bng cách này, chúng ta nói b phân loi đã đc “boost”.
Xét mt bài toán phân loi 2 lp (mu cn nhn dng s đc phân vào 1 trong 2 lp)
vi D là tp hun luyn gm có n mu. Trc tiên, chúng ta s chn ngu nhiên ra n
1
mu t tp D (n
1
<n) đ to tp D
1
. Sau đó, chúng ta s xây dng weak classifier đu
tiên C
1
t tp D
1
. Tip theo, chúng ta xây dng tp D
2
đ hun luyn b phân loi C
2
.
D
2
s đc xây dng sao cho mt na s mu ca nó đc phân loi đúng bi C
1
và
na còn li b phân loi sai bi C
cùng, chúng ta s hun luyn b phân loi C
3
t D
3
.
Bây gi chúng ta đã có mt strong classifier: s kt hp C
1
, C
2
và C
3
. Khi tin
hành nhn dng mt mu X, kt qu s đc quyt đnh bi s tha thun ca 3 b C
1
,
C
2
và C
3
: Nu c C
1
và C
2
đu phân X vào cùng mt lp thì lp này chính là kt qu
phân loi ca X; ngc li, nu C
1
và C
2
phân X vào 2 lp khác nhau, C3 s quyt đnh
X thuc v lp nào.
Chng 3. Các c s lý thuyt
17
Có th hình dung mt cách trc quan nh sau: đ bit mt nh có phi là bàn tay
hay không, ta hi T ngi (tng đng vi T weak classifiers xây dng t T vòng lp
ca boosting), đánh giá ca mi ngi (tng đng vi mt weak classifier) ch cn
tt hn ngu nhiên mt chút (t l sai di 50%). Sau đó, ta s đánh trng s cho đánh
giá ca tng ngi (th hin qua h s
α
), ngi nào có kh nng đánh giá tt các mu
khó thì mc đ quan trng ca ngi đó trong kt lun cui cùng s cao hn nhng
ngi ch đánh giá tt đc các mu d. Vic cp nht li trng s ca các mu sau
mi vòng boosting chính là đ đánh giá đ khó ca các mu (mu càng có nhiu ngi
đánh giá sai là mu càng khó).
Hình 6 - Strong classifier H(x) xây dng bng AdaBoost
Các weak classifiers h
k
(x) đc biu din nh sau:
⎩
⎨
⎧
<
=
otherwise
pxfp
xh
kkkk
k
k
: h s quyt đnh chiu ca bt phng trình
Công thc trên có th đc din gii nh sau: nu giá tr vector đc trng ca mu cho
bi hàm lng giá ca b phân loi vt qua mt ngng cho trc thì mu là object
(đi tng cn nhn dng), ngc li thì mu là background (không phi đi tng).
Thut toán AdaBoost:
1. Cho mt tp hun luyn gm n mu có đánh du (x
1
, y
1
), (x
1
, y
1
), , (x
n
,
y
n
) vi x
k
∈ X = (x
k1
, x
k2
, , x
km
) là vector đc trng và y
k
∈ {-1, 1} là
vi
ε
j
nh nht, ta đc h
t
.
}1,1{:
−
→Xh
t
• Cp nht li trng s
⎩
⎨
⎧
≠
=
×=
−
+
kkt
kkt
t
k,t
k,t
y)x(h,e
y)x(h,e
Z
w
w