61
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -------o0o------- XÂY DỰNG ỨNG DỤNG PHÁT HIỆN KHUÔN MẶT TRONG ẢNH SỬ DỤNG OPENCV ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ Thông tin HẢI PHÒNG - 2019 ISO 9001:2015

XÂY DỰNG ỨNG DỤNG PHÁT HIỆN KHUÔN MẶT TRONG ẢNH …

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

LI M UTRNG I HC DÂN LP HI PHÒNG
-------o0o-------
DNG OPENCV
Ngành: Công ngh Thông tin
HI PHÒNG - 2019
TRNG I HC DÂN LP HI PHÒNG
-------o0o-------
DNG OPENCV
Ngành: Công ngh Thông tin
Sinh viên thc hin : Cao Tin t
Mã sinh viên : 1512111009
HI PHÒNG - 2019
TRNG I HC DÂN LP HI PHÒNG
-------o0o-------
Sinh viên: Cao Tin t Mã sinh viên: 1512111009
Lp: CT1901C Ngành: Công ngh Thông tin
Tên tài: “Xây dng ng dng phát hin khuôn mt trong nh s dng OpenCV”
NHIM V TÀI
1. Ni dung và các yêu cu cn gii quyt trong nhim v tài tt nghip
a. Ni dung:
- Tìm hiu tng quan v phát hin khuôn mt trong nh
- Tìm hiu phng pháp phát hin khuôn mt da trên c trng
Haarlike
- Tìm hiu mt s hàm c bn trong th vin OpenCV s dng cho
phát hin khuôn mt trong nh.
b. Các yêu cu cn gii quyt
- Trình bày tng quan v phát hin khuôn mt trong nh
- Hiu và trình bày phng pháp phát hin khuôn mt da trên c trng.
- Xây dng ng dng phát hin khuôn mt trong nh s dng OpenCV.
2. Các s liu cn thit thit k, tính toán
3. a im thc tp
CÁN B HNG DN TÀI TT NGHIP
Ngi hng dn th nht:
H và tên: Ngô Trng Giang
Hc hàm, hc v: Tin s.
C quan công tác: Khoa Công ngh Thông tin
Ni dung hng dn:
- Tìm hiu tng quan v phát hin khuôn mt trong nh
- Tìm hiu phng pháp phát hin khuôn mt da trên c trng
- Tìm hiu mt s hàm c bn trong th vin OpenCV s dng cho phát hin
khuôn mt trong nh.
H và tên: …………………………………………………………………………………......
…………………………………………………………………………………………………..
…………………………………………………………………………………………………..
tài tt nghip c giao ngày 01 tháng 7 nm 2019
Yêu cu phi hoàn thành trc ngày 21 tháng 9 nm 2019
ã nhn nhim v: .T.T.N
Sinh viên
Ngô Trng Giang
HIU TRNG
c lp – T do – Hnh phúc
PHIU NHN XÉT CA CÁN B HNG DN TT NGHIP
H và tên: Ngô Trng Giang
C quan công tác: Khoa Công ngh Thông tin
H tên sinh viên: Cao Tin t Ngành: Công ngh Thông tin Ni dung hng
dn:
- Tìm hiu tng quan v phát hin khuôn mt trong nh
- Tìm hiu phng pháp phát hin khuôn mt da trên c trng
- Tìm hiu mt s hàm c bn trong th vin OpenCV s dng cho phát hin khuôn
mt trong nh.
1. Tinh thn thái ca sinh viên trong quá trình làm tài tt nghip:
- Sinh viên ch ng tìm c các tài liu liên quan ti tài
- Chp hành nghiêm túc k hoch, tin ra.
2. ánh giá cht lng ca án (so vi ni dung yêu cu ã ra trong nhim
v tài tt nghip trên các mt lý lun, thc tin, tính toán s liu..):
- V mt lý thuyt: án trình bày các vn c bn v Phát hin khuôn mt trong
nh, c trng Haar-like, các hàm c bn trong OpenCV ng dng trong phát hin
khuôn mt trong nh.
- V mt thc nghim: án ã cài t c chng trình phát hin khuôn mt trong
nh s dng các hàm ca OpenCV, va mi dng li phát hin khuôn mt nhìn thng
( nghiêng, xoay ít).
- V hình thc: Báo cáo trình bày sáng sa, b cc hp lý.
- án áp ng c yêu cu ra.
3. Ý kin ca cán b hng dn:
t Không t im:……………………………………...
Cán b hng dn
TS. Ngô Trng Giang
QC20-B18
CNG HÒA XÃ HI CH NGHA VIT NAM c lp - T do - Hnh phúc
PHIU NHN XÉT CA CÁN B CHM PHN BIN
H và tên ging viên: TS. Vn Chiu.
n v công tác: Khoa Công ngh Thông tin – Trng i hc Dân lp Hi Phòng
H và tên sinh viên: Cao Tin t Ngành: Công ngh Thông tin
tài tt nghip:
“Xây dng ng dng phát hin khuôn mt trong nh s dng OpenCV”
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
c bo v Không c bo v iêm:…………………………….
Hi Phòng, ngày …… tháng 10 nm 2019
Cán b chm phn bin (Ký và ghi rõ h tên)
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 1
LI CM N
Em xin chân thành cm n các thy, các cô khoa Công ngh Thông
tin Trung Ði hc qun lí và công ngh ã tình dy d, truyn t cho
chúng em nhiu kin thc quý báu.
Em xin t lòng bit n sâu sc n thy TS.Ngô Trung Giang,
ngui ã tn tình giúp và truyn t nhiu kinh nghim tài có
th c thc hin và hoàn thành.
Xin chân thành cm n các bn trong khoa Công Ngh Thông Tin,
Ðai Hc Qun lí và công ngh ã giúp mình rt nhiu trong quá trình
thc hin tài.
Sinh viên
Cao Tin t
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 2
MC LC
CHNG 1: Tng quan v phát hin khuôn mt. ................................. 6
1.1 Gii thiu phát hin khuôn mt ............................................................ 6
1.2 Các hng tip cn trong phát hin khuôn mt .................................... 7
1.2.1 Hng tip cn da trên tri thc ................................................... 8
1.2.2 Hng tip cn da trên c trng không i. ........................... 11
1.2.3 Hng tip cn da trên so lp mu ........................................... 15
1.2.4 Hng tip cn da trên máy hc ............................................... 18
1.2.5 Hng tip cn tng hp ............................................................. 23
1.3 Khó khn và thách thc trong bài toán phát hin khuôn mt ............. 24
1.4 Mt s lnh vc ng dng phát hin khuôn mt ................................. 25
CHNG 2: Phát hin khuôn mt s dng c trng Haar .............. 26
2.1 c trng ca Haar ............................................................................. 26
2.1.1 i tng nhn dng ................................................................... 26
2.1.2 c trng ..................................................................................... 27
2.2.1 Gii thiu ..................................................................................... 30
2.2.2 Các hng tip cn dò tìm khuôn mt nhanh ............................. 30
2.2.3 Thut toán AdaBoost .................................................................. 31
2.2.4 B phân lp AdaBoost ................................................................ 36
2.3 Dò tìm khuôn mt ............................................................................... 39
2.4 Nhn xét .............................................................................................. 40
2.4.1 u im ....................................................................................... 40
2.4.2 Nhc im ................................................................................. 41
3.1 Mô t bài toán ..................................................................................... 42
Phân tích và la chn công c ................................................................. 42
3.2 Phát hin khuôn mt s dng hàm OpenCV....................................... 43
3.2.1 OpenCV là gì ............................................................................... 43
3.2.2 Cu trúc OpenCV ........................................................................ 44
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 3
3.2.3 Phát hin khuôn mt vi các hàm trong OpenCV ...................... 45
3.3 Mt s kt qu chng trình ............................................................... 49
KT LUN .................................................................................................... 51
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 4
DANH MC HÌNH
Hình 1-1: Các bc chính trong mt h thng nhn dng mt ngi .............. 6
Hình 2-1 ........................................................................................................... 27
Hình 2-3: c trng ng(line feature) ........................................................ 28
Hình 2-4: c trng xung quanh tâm(center-surround features) ................... 28
Hình 2-5: Các c trng m rng ca các c trng Haar-like c s ............ 28
Hình 2-6: Công thc tính Intergral Image ...................................................... 29
Hình 2-7: Ví d cách tính nhanh các giá tr mc xám ca vùng D trên nh .. 30
Hình 2-8: Ví d minh ha cho thut toán AdaBoost ...................................... 36
Hình 2-9: Minh ha b tìm phân tng ........................................................ 37
Hình 3-1: H thng phát hin khuôn mt ngi ............................................. 42
Hình 3-2: Cu trúc c bn ca OpenCV ......................................................... 44
Hình 3-3: Trong th mc ca Opencv ã có các b hun luyn có sn. ........ 45
Hình 3-4: Chuyn v nh xám ........................................................................ 46
Hình 3-5: Tm nhìn ca máy tính khi các c trng Haar chy ..................... 47
Hình 3-6 ........................................................................................................... 47
Hình 3-7: Các c trng Haar ánh du nhng ni có th là khuôn mt ....... 48
Hình 3-8: Bc nh ã c xác nh khuôn mt ............................................ 49
Hình 3-9: Bc nh cn nhn din khuôn mt .................................................. 49
Hình 3-10: Giao din chng trình ................................................................. 50
Hình 3-11: Nhp ng dn ti nh cn nhn din ........................................ 50
Hình 3-12: Kt qu .......................................................................................... 50
Hình 3-13: Bc nh có nhiu khuôn mt ........................................................ 51
Hình 3-14: Kt qu ( khuôn mt nghiêng cha nhn dng c) ................... 51
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 5
PHN M U
Công ngh thông tin ang c ng dng trong mi lnh vc ca cuc
sng. Vi mt h thng máy tính, chúng ta có th làm c rt nhiu vic, tit
kin thi gian và công sc. in hình nh công vic nhn dng mt ngi.
Ngày xa, mun tìm kim mt k tình nghi trong siêu th hay sân bay, các
nhân viên an ninh phi tìm kim trên tng màn hình camera theo dõi. Ngày
nay, công vic y ã c làm t ng nh các h thng nhn dng mt
ngi. Phát hin mt ngi trong nh là mt phn quan trng ca h thng
nhn dng mt ngi ó, gii quyt tt vic phát hin mt ngi s giúp tit
kim thi gian và nâng cao chính xác ca vic nhn dng khuôn mt.
Phát hin mt ngi cng là mt bài toán nhn dng n gin, h thng
ch cn phân loi i tng a vào có phi mt ngi hay không phi mt
ngi. mc cao hn, sau khi ã phát hin c khuôn mt, các khuôn
mt ó s c so sánh vi các khuôn mt có trong d liu nhn dng xem
khuôn mt y là ca ai (thng áp dng trong nhn dng khuôn mt ca
ngi ni ting hoc ca ti phm ang b truy nã).
Vi mc tiêu chính là tìm hiu c trng haar-like, mô hình Cascade of
Classifiers, ng thi áp dng vào bài toán phát hin mt ngi trong nh.
Ni dung án bao gm:
Chng 1: Tng quan v phát hin khuôn mt.
Chng 2: Phát hin khuôn mt s dng c trng Haar.
Chng 3: Thc nghim phát hin khuôn mt.
Phn kt lun.
Tài liu tham kho.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 6
CHNG 1: TNG QUAN V PHÁT HIN KHUÔN MT.
1.1 Gii thiu phát hin khuôn mt
Trong nhng nm gn ây, có rt nhiu công trình nghiên cu v bài
toán xác nh khuôn mt ngi t nh en trng, xám n nh màu. Ban u
ch là nhng bài toán n gin, mi nh ch có mt khuôn mt nhìn thng và
u luôn phi t th thng ng trong nh en trng, không áp ng c
nhu cu ngày càng cao trong cuc sng, khoa hc ngày nay. Vì th ã có
nhng ci tin nghiên cu v bài toán phát hin khuôn mt ngi trong nhng
môi trng phc tp hn, có nhiu khuôn mt ngi trong nh hn, và có
nhiu t th thay i trong nh.
Xác nh khuôn mt ngi là mt k thut xác nh v trí và kích
thc khuôn mt ngi trong các nh bt k. K thut này nhn bit v các
c trng ca khuôn mt và b qua nhng th khác.
Tng quan kin trúc ca mt h thng nhn dng mt ngi
Mt h thng nhn dng mt ngi thông thng bao gm bn bc x
lý sau: phát hin khuôn mt (face detection), phân on khuôn mt (face
alignment hay segmentation), rút trích c trng (feature extraction), và phân
lp khuôn mt (face classification).
Hình 1-1: Các bc chính trong mt h thng nhn dng mt ngi
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 7
Phát hin khuôn mt dò tìm và nh v nhng v trí khuông mt xut hin
trong nh hoc trên các frame video. Phân on khuôn mt s xác nh v trí
mt mi, ming, là các thành phn khác ca khuôn mt và chuyn kt qu này
cho bc rút trích c trng. T nhng thông tin v các thành phn trên
khuôn mt, chúng ta có th d dàng tính c véc-t c trng trong bc rút
trích c trng. Nhng véc-t c trng này s là d liu u vào cho mt mô
hình ã c hun luyn trc phân loi khuôn mt. Bên cnh nhng bc
chính nêu trên, chúng ta còn có th áp dng thêm mt s bc khác nh tin
x lý, hu x lý nhm làm tng chính xác cho h thng. Do mt s thông
s nh: t th khuôn mt, sáng, iu kin ánh sáng, v.v , phát hin khuôn
mt c ánh giá là bc khó khn và quan trng nht so vi các bc còn
li ca h thng. Trong lun vn này, em tp trung ch yu vào bc phát
hin khuôn mt.
1.2 Các hng tip cn trong phát hin khuôn mt
Có nhiu nghiên cu tìm ra phng pháp xác nh khuôn mt ngi, t
nh xám n ngày nay là nh màu. Da vào tính cht ca các phng pháp
này thành bn hng tip cn chính:
Hng tip cn da trên tri thc: Mã hóa các hiu bit ca con
ngi v các loi khuôn mt ngi thành các lut. Thông thng
các lut mô t quan h ca các c trng.
Hng tip cn da trên c trng không thay i: Mc tiêu
các thut toán i tìm các c trng mô t cu trúc khuôn mt
ngi mà các c trng này s không thay i khi t th khuôn
mt, v trí t thiu b thu hình hoc iu kin ánh sáng thay i.
Hng tip cn da trên so khp mu: Dùng các mu chun
ca khuôn mt ngi(các mu này c chn la và lu tr)
mô t cho khuôn mt ngi hay các c trng khuôn mt(các mu
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 8
này phi chn làm sao cho tách bit nhau theo tiêu chun mà các
tác gi nh ra so sánh).
Hng tip cn da trên din mo: Trái ngc hn so khp
mu, các mô hình hc ây c hc t 1 tp nh hun luyn cho
trc. Sau ó h thng s xác nh khuôn mt ngi. Mt s tác
gi còn gi hng tip cn này là hng tip cn theo phng
pháp hc.
1.2.1 Hng tip cn da trên tri thc
Trong hng tip cn này, các lut s ph thuc rt hn vào tri thc ca
nhng tác gi nghiên cu v bài toán xác nh khuôn mt ngi. ây là
hng tip cn top-down. D dàng xây dng các lut c bn mô t các c
trng ca khuôn mt và các quan h tng ng, Ví d, mt khuôn mt thng
có hai ôi mt i xng nhau qua trc thng ng gia khuôn mt và có
mt mi, mt ming. Các quan h ca các c trng có th c mô t nh
quan h v khong cách và v trí. Thông thng các tác gi s trích c trng
ca khuôn mt trc tiên có th c các ng viên, sau ó các ng viên
này s c xác nh thông qua các lut bit ng viên nào là khuôn mt và
ng viên nào không phi là khuôn mt,
Mt vn khá phc tp khi dùng hng tip cn này là làm sao chuyn
t tri thc con ngi sang các lut mt cách hiu qu. Nu các lut này quá
chi tit nhng khuôn mt(cht ch) thì khi xác nh có th xác nh thiu các
khuôn mt có trong nh, vì nhng khuôn mt này không th tha mãn tt c
các lut a ra, Nhng các lut tng quát có th chúng ta s xác nh lm mt
vùng nào ó không phi là khuôn mt mà li xác nh là khuôn mt. Và cng
khó khn khi cân m rng yêu cu ca bài toán xác nh các khuôn mt có
nhiu t th khác nhau.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 9
Hình 1-2: (a) nh ban u có phân gii n = 1; (b), (c), và (d) nh có
phân gii n = 4, 8, 16.
Yang và Huang dùng phng thc theo hng tip cn này xác nh
các khuôn mt. H thng ca hai tác gi này bao gm ba mc lut. mc cao
nht, dùng mt khung ca s quét trên nh và thông qua mt tp lut tìm
các ng viên có th là khuôn mt. mc k tip, hai ông dùng mt tp lut
mô t tng quát hình dáng khuôn mt. mc còn li dùng mt tp lut khác
xem xét mc chi tit các c trng khuôn mt, Mt h thng a phân
gii có th t c dùng xác nh, (Hình 1.1). Các lut mc cao nht
tìm ng viên nh: “Vùng trung tâm khuôn mt ( phn ti hn trong hình 1.2)
có bn phn vi mt mc u c bn”, “phn xung quanh bên trên ca mt
khuôn mt( phn sáng hn trong hình 1.2) có mt mc u c bn”. và
“mc khác nhau gia các giá tr xám trung bình ca phn trung tâm và
phn bao bên trên là áng k”. mc hai, xem xét biu ca các ng viên
loi bt ng viên không phi là khuôn mt, ng thi dò ra cnh bao xung
quanh ng viên. mc cui cùng, nhng ng viên nào còn li s c xem
xét các c trng ca khuôn mt v mt và min. Hai ông ã dùng mt chin
lc “ t thô n mn” hay “Làm rõ dn” gim s lng tính toán trong x
lý, Mc dù t l chính xác cha cao, nhng ây là tin cho nhiu nghiên
cu sau này.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 10
Hình 1-3: Mt loi tri thc ca ngi nghiên cu phân tích trên khuôn mt.
Kotropoulos và Pitas a ra mt phng pháp dùng trên phân gii
thp. Hai ông dùng phng pháp chiu xác nh các c trng khuôn mt.
Kanade ã thành công vi phng pháp chiu xác nh biên ca khuôn
mt. Vi I(x,y) là giá tr xám ca mt im trong nh có kích thc m x n iwr
ti v trí (x,y), các hàm chiu nh theo phng ngang và thng ng c
nh ngha nh sau:
HI(x)ny1 I(x, y) và VI(y)mx1 I(x, y) (1-1)
Hình 1-4: Phng pháp chiu
(a) nh ch có mt khuôn mt và hình nn n gin; (b) nh ch có mt khuôn mt và hình nn phc tp;
(c) nh có nhiu khuôn mt
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 11
Da trên bin chiu hình ngang, có hau cc tiu cc b khi hai ông
xét quá trình thay i dc HI, ó chính là cnh bên trái và phi ca hai bên
u. Tng t vi hình chiu dc VI, các cc tiu cc b cng cho ta bit v
trí ming, nh mi, và hai mt. Các c trng này xác nh khuôn mt.
Hình 1.4.a là mt ví d ca cách xác nh trên. Cách xách nh này có t l
xác nh chính xác 86,5% cho trng hp ch có mt khuôn mt thng trong
nh và hình nn không phc tp. Nu hình nn phc tp thì rt khó tìm, nh là
hình 1.4.b. Nu nh có nhiu khuôn mt thì s không xác nh c, hình
1.4.c.
Hình 1-5: Chiu tng phn ng viên xác nh khuôn mt.
Mateos và Chicote dùng kt cu xác nh ng viên trong nh màu.
Sau ó phân tích hình dáng, kích thc, thành phn khuôn mt xác nh
khuôn mt, hai ông trích các ng viên ca tng thành phn khuôn mt, sau ó
chiu tng phn này xác thc ó có phi là thành phn khuôn mt hay
không. T l chính xác hn 87%.
Berbar kt hp mô hình màu da ngi và xác nh cnh tùn ng viên
khuôn mt ngi. Sau ó kt hp các c trng và phng pháp chiu các
ng viên khuôn mt xung h trc ta xác nh ng viên nào thc s là
khuôn mt.
1.2.2 Hng tip cn da trên c trng không i.
ây là hng tip cn thiu kiu bottom-up. Các tác gi c gng tìm các
c trng không thay i ca khuôn mt ngi xác nh khuôn mt ngi.
Da trên nhn xét thc t: con ngi d dàng nhn bit các khuôn mt trong
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 12
các t th khác nhau và iu kin ánh sáng khác nhau. Do ó khuôn mt phi
có các thuc tính hay c trng không thay i. Theo nhiu nghiên cu thì
ban u phi xác nh các c trng khuôn mt ri ch có khuôn mt trong
nh hay không. Các c trng nh: lông mày, mt, mi, ming, và ng vin
ca tóc c trích bng phng pháp xác nh cnh. Trên c s các c trng
này, xây dng mt mô hình thông kê mô t quan h ca các c trng này
và xác nh s tn ti cùa khuôn mt trong nh. Mt vn ca các thut toán
theo hng tip cn c trng cn phi iu chnh cho phù hp iu kin ánh
sáng, nhiu, và b che khut. ôi khi bóng ca khuôn mt s to theo cnh
mi, mà cnh này li rõ hn cnh thc s ca khuôn mt, vì th nu dùng
cnh xác nh s gp khó khn.
1.2.2.1 Các c trng khuôn mt
Sirohey a mt phng pháp xác nh khuôn mt t mt nh có
hìnhnn phc tp. Phng pháp da trên cnh (dùng phng pháp Candy
vàheuristics loi b các cnh còn li duy nht mt ng bao xung
quanhkhuôn mt. Mt hình ellipse dùng bao khuôn mt, tách bit vùng u
vàhình nn. T l chính xác ca thut toán là 80%. Cng dùng phng pháp
cnh nh Sirohey, Chetverikov và Lerch dùng mt phong pháp da trên blob
và streak (hình dng git nc và sc xen k), xác nh theo hng các
cnh. Hai ông dùng hai blob ti và ba blob sáng mô t hai mt, hai bên gò
má, và mi.
Mô hình này dùng các treak mô t hình dáng ngoài ca khuôn mt,
lông mày, và môi. Dùng nh có phân gii thp theo bin i laplace xác
nh khuôn mt thông qua blob. Graf a ra mt phng pháp xác nh c
trng ri xác nh khuôn mt trong nh xám. Dùng b lc làm ni các
biên, các phép toán hình thái hc(morphology) c dùng làm ni bt các
vùng có cng cao và hình dáng chc chn (nh mt). Thông qua
histogram tìm các nh ni bt xác nh các ngng chuyn nh xám
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 13
thành hai nh nh phân. Các thành phn dính nhau u xut hin trong hai nh
nh phân thì c xem là vùng ca ng viên khuôn mt ri phân loi xem có
phi là khuôn mt không. Phng pháp c kim tra trên các nh ch có u
và vai ca ngi. Tuy nhiên còn có mt vn ây là làm sao s dng
các phép toán morphology và làm sao xác nh khuôn mt trên các vùng ng
viên.
1.2.2.2 c trng kt cu
Khuôn mt con ngi có nhng kt cu riêng bit mà có th dùng
phân loi so vi các i tng khác. Augusteijn và Skufca cho rng hình dng
ca khuôn mt dùng làm kt cu phân loi, gi là kt cu ging khuôn mt
(face-like texture). Có ba loi c trng c xem xét: màu da, tóc, và nhng
th khác. Hai ông dùng mng n-ron v mi tng quan cascade cho phân
loi có giám sát các kt cu và mt ánh x c trng t t chc Kohonen
gom nhóm các lp kt cu khác nhau. Hai tác gi xut dùng phng pháp
bu c khi không quyt nh c kt cu a vào là kt cu ca da hay kt
cu ca tóc. Dai và Nakano dùng mô hình SGLD xác nh khuôn mt
ngi. Thông tin màu sc c kt hp vi mô hình kt cu khuôn mt. Hai
tác gi xây dng thut gii xác nh khuôn mt trong không gian màu, vi các
phn ta màu cam xác nh các vùng có th là khuôn mt ngi.
Mt thun li ca phng pháp này là có th xác nh khuôn mt không
ch chp thng và có th có râu và có kính. Mark và Andrew dùng phân b
màu da và thut toán DoG (Difference of Gauss) tìm các ng viên, ri xác
thc bng mt h thng hc kt cu ca khuôn mt. Manian và Ross dùng
bin i wavelet xây dng tp d liu kt cu ca khuôn mt trong nh
xám thông qua nhiu phân gii khác nhau kt hp xác sut thông kê xác
nh khuôn mt ngi. Mi mu s có chín c trng. T l chính xác là 87%,
t l xác nh sai là 18%.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 14
1.2.2.3 c trng sc màu ca da
Thông thng các nh màu không xác nh trc tip trên toàn b d liu
nh mà các tác gi dùng tính cht sc màu ca da ngi (khuôn mt ngi)
chn ra c các ng viên có th là khuôn mt ngi (lúc này d liu ã thu
hp áng k) xác nh khuôn mt ngi.
1.2.2.4 a c trng
Gn ây có nhiu nghiên cu s dng các c trng toàn cc (tng quát)
nh: màu da ngi, kích thc, và hình dáng tìm các ng viên khuôn mt,
ri sau ó s xác nh ng viên nào là khuôn mt thông qua các c trng cc
b (chi tit) nh: mt, lông mày, mi, ming, và tóc. Tùy mi tác gi s s
dng tp c trng khác nhau. Yachida a ra mt phng pháp xác nh
khuôn mt ngi trong nh màu bng lý thuyt logic m.
Ông dùng hai mô hình m mô t phân b màu da ngi và màu tóc
trong không gian màu CIE XYZ. Nm mô hình hình dng ca u (mt thng
và bn xoay xung quanh) mô t hình dáng ca mt trong nh. Mi mô hình
hình dng là mt mu 2-chiu bao gm các ô vuông có kích thc mxn, mi ô
có th cha nhiu hn mt im nh. Hai thuc tính c gán cho mi ô là: t
l màu da và t l tóc, ch ra t l din tích vùng da (tóc) trong ô so vi din
tích ca ô. Mi im nh s c phân loi thành tóc, khuôn mt, tóc/khuôn
mt, và tóc/nn trên c s phân b ca mô hình, theo cách ó s có c các
vùng ging khuôn mt và ging tóc. Mô hình hình dáng ca u s c so
sánh vi vùng ging khuôn mt và ging tóc. Nu tng t, vùng ang xét s
tr thành ng viên khuôn mt, sau ó dùng các c trng mtlông mày và
mi-ming xác nh ng viên nào s là khuôn mt tht s.
Sobottka và Pitas dùng các c trng v hình dáng và màu sc xác
nh khuôn mt ngi. Dùng mt ngng phân on trong không gian màu
HSV xác nh các vùng có th là màu da ngi (vùng ging màu da
ngi). Các thành phn dính nhau s c xác nh bng thut toán tng vùng
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 15
phân gii thô. Xem xét tin ng viên nào va khp hình dng ellipse s
c chn làm ng viên ca khuôn mt. Sau ó dùng các c trng bên trong
nh: mt và ming, c trích ra trên c s các vùng mt và ming s ti hn
các vùng khác ca khuôn mt, sau cùng phân loi da trên mng n-ron
bit vùng ng viên nào là khuôn mt ngi và vùng nào không phi khuôn
mt ngi. T l chính xác là 85%.
1.2.3 Hng tip cn da trên so lp mu
Trong so khp mu, các chun ca khuôn mt (thng là khuôn mt
c chp thng) s c xác nh trc hoc xác nh các tham s thông
qua mt hàm. T mt nh a vào, tính các giá tr tng quan so vi các mu
chun v ng vin khuôn mt, mt, mi, ming. Thông qua các giá tr
tng quan này mà các tác gi quyt nh có hay không có tn ti khuôn mt
trong nh. Hng tip cn này có li th rt d cài t, nhng không hiu qu
khi có s thay i v t l, t th và hình giáng.
1.2.3.1 Xác nh mu trc
Sakai ã c gng th xác nh khuôn mt ngi chp thng trong nh.
Ông dùng vài mu con v mt, mi, ming, và ng vin khuôn mt mô
hình hóa mt khuôn mt. Mi mu con c nh ngha trong gii hn ca
các on thng. Các ng thng trong nh c trích bng phng pháp
xem xét thay i gradient nhiu nht và so khp các mu con. u tiên tìm
các ng viên thông qua mi tng quan gia các nh con và các mu v
ng vin. Sau ó, so khp vi các mu con khác. Hay nói mt cách khác,
giai on u xem nh là giai on s ch tìm ng viên, giai on th hai
là giai on tinh ch xác nh có tn ti hay không mt khuôn mt ngi.
Ý tng này c duy trì cho n các nghiên cu sau này.
Craw a ra mt phng pháp xác nh khuôn mt ngi da vào các
mu v hình dáng ca các nh c chp thng (dùng v b ngoài ca hình
dáng khuôn mt). u tiên dùng phép lc Sobel tìm các cnh. Các cnh
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 16
này s c nhóm li theo mt s ràng buc. Sau ó, tìm ng vin ca u,
quá trình tng t c lp i lp li vi mi t l khác nhau xác nh các
c trng khác nh: mt, lông mày, và môi. Sau ó Craw mô t mt phng
thc xác nh dùng mt tp có 40 mu tìm các c trng khuôn mt và
iu khin chin lc dò tìm.
Sinha dùng mt tp nh các bt bin nh trong không gian nh mô t
không gian các mu nh. T tng chính ca ông da vào s thay i mc
sáng ca các vùng khác nhau ca khuôn mt (nh hai mt, hai má, và trán),
quan h v mc sáng ca các vùng còn li thay i không áng k. Xác
nh các cp t s ca mc sáng ca mt s vùng (mt vùng ti hn hay
sáng hn) cho ta mt lng bt bin khá hiu qu. Các vùng có sáng u
c xem nh mt mu t s mà là mu thô trong không gian nh ca mt
khuôn mt vi thích hp ít dùng chn nh các c trng chính ca
khuôn mt nh hai mt, hai má, và trán. Lu gi thay i sáng ca các
vùng trên khuôn mt trong mt tp thích hp vi các cp quan h sáng hn –
ti hn gia các vùng nh. Mt khuôn mt c xác nh khi mt nh tha tt
c các cp sáng hn – ti hn. Ý tng này xut phát t s khác bit ca
cng gia các vùng k cc b, sau này c m rng trên c s bin i
wavelet biu din cho xác nh ngi i b, xác nh xe hi, xác nh
khuôn mt. Ý tng ca Sinha còn c áp dng cho h thng th giác ca
robot. Hình 1-5 cho thy mu ni bt trong 23 quan h c nh ngha. Dùng
các quan h này phân loi, có 11 quan h thit yu (các mi tên màu en)
và 12 quan h xác thc (các mi tên xám). Mi mi tên là mt quan h. Mt
quan h tha mãn mu khuôn mt khi t l gia hai vùng vt qua mt
ngng và 23 quan h này vt ngng thì xem nh xác nh c mt
khuôn mt.
Phng pháp so khp mu theo th t xác nh khuôn mt ngi do
Miao trình bày. giai on u tiên, nh s c xoay t -20o n 20o vi
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 17
mi bc là 5o và theo th t. Xây dng nh a phân gii, hình 1-1, ri
dùng phép toán Laplace xác nh các cnh. Mt mu khuôn mt gm các
cnh mô t sáu thành phn: hai lông mày, hai mt, mt mi, và mt ming.
Sau ó áp dng heuristic xác nh s tn ti ca khuôn mt trong nh,
phng pháp này cho phép xác nhiu khuôn mt, nhng kt qu không tt
bng xác nh mt khuôn mt (chp thng hoc xoay) trong nh xám.
Hình 1-6: Mu khuôn mt, có 16 vùng và 23 quan h (các mi tên).
Wei và Lai dùng b lc phân on kt hp thut toán tìm láng
ginggn nht xác nh ng viên khuôn mt, t ng viên này sau ó so khp
vi cácmu ã xác nh trc bit ng viên có phi là khuôn mt hay
không. T l chính xác là 80%.
Darrell dùng phân on tìm ng viên, dùng ng viên này xác
nhkhuôn mt ngi da vào mu ri theo vt chuyn ng ca ngi.
Dowdall dùng ph ca màu da ngi xác nh ng viên. Sau ó
chiucác ng viên này so sanh vi các mu có trc xác nh ng viên
nào làkhuôn mt ngi. Phng pháp này ch xác nh cho khuôn mt chp
thng vàgn thng, góc quay khong t -10o n 10o.
1.2.3.2 Các mu b bin dng
Yuille dùng các mu bin dng mô hình hóa các c trng ca khuôn
mt, mô hình này có kh nng linh hot cho các c trng khuôn mt. Trong
hng tip cn này, các c trng khuôn mt c mô t bng các mu c
tham s hóa. Mt hàm nng lng (giá tr) c nh ngha liên kt các
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 18
cnh, nh, và thung lng trong nh tng ng vi các tham s trong mu.
Mô hình này tt nht khi ti thiu hàm nng lng qua các tham s, Mc dù
kt qu tt vi mu bin dng trong theo vt i tng trên c trng không
mô hình theo li, mt hn ch ca hng tip cn này là các mu bin dng
phi c khi to trong phm vi gn các i tng xác nh.
Lanitis mô t mt phng pháp biu din khuôn mt ngi vi c hai
thông tin: hình dáng và cng . Bt u vi các tp nh c hun luyn
vi các ng vin mu nh là ng bao mt, mi, cm/má c gán nhãn.
Dùng mt vector các im mu mô t hình dáng. Tác gi dùng mt mô
hình phân b im (Point Distribution Model – PDM) mô t vector hình
dáng qua toàn b các cá th.
1.2.4 Hng tip cn da trên máy hc
Trái ngc vi các phong pháp so khp mu vi các mu ã c nh
ngha trc bi nhng chuyên gia, các mu trong hng tip cn này c
hc t các nh mu. Mt các tng quát, các phng pháp theo hng tip cn
này áp dng các k thut theo hng xác sut thng kê và máy hc tìm
nhng c tính liên quan ca khuôn mt và không phi là khuôn mt. Các c
tính ã c hc trong hình thái các mô hình phân b hay các hàm bit s
nên dùng có th dùng các c tính này xác nh khuôn mt ngi. ng
thi, bài toán gim s chiu thng c quan tâm tng hiu qu tính toán
cng nh hiu qu xác nh. Có nhiu phng pháp áp dng xác sut thng kê
gi quyt. Mt nh hay mt vector c trng xut phát t mt nh c
xem nh mt bin ngu nhiên x, và bin ngu nhiên có c tính là khuôn mt
hay không phi khuôn mt bi công thc tính theo các hàm mt phân lp
theo iu kin p(x | khuôn mt) và p(x | không phi khuôn mt) . Có th dùng
phân loi Bayes.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 19
1.2.4.1 Eigenface
Kohonen ã a ra phng pháp dùng vector riêng nhn dng khuôn
mt, ông dùng mt mng n-ron n gin chng t kh nng ca phng
pháp này trên các nh ã c chun hóa. Mng n-ron tính mt mô t ca
khuôn mt bng cách xp x các vector riêng ca ma trn tng quan ca nh.
Các vector riêng sau này c bit n vi cái tên Eigenface. Kirby và
Sirovich chng t các nh có các khuôn mt có th c mã hóa tuyn tính
bng mt slng va phi các nh c s. Tính cht này da trên bin i
KarhunenLòeve, mà còn c gi di mt cái tên khác là PCA và bin i
Hotelling. Ý tng này c xem là ca Pearson trình bày u tiên vào nm
1901 và sau ó là Hotelling vào nm 1933. Cho mt tp các nh hun luyn
có kích thc n x m c mô t bi các vector có kích thc m x m, các
vector c s cho mtkhông gian con ti u c xác nh thông qua li bình
phng trung bình khi chiu các nh hun luyn vào không gian con này. Các
tác gi gi tp các vector c s ti u này là nh riêng sau ó gi cho n
gin là vector riêng ca ma trn hip phng sai c tính t các nh khuôn
mt ã vector hóa trong tp hun luyn. Nu cho 100 nh, mà mi khuôn mt
có kích thc 91x50 thì có th ch dùng 50 nh riêng, trong khi vn duy trì
c mt kh nng ging nhau hp lý (gi c 95% tính cht).
Turk và Pentland áp dng PCA xác nh và nhn dng khuôn mt.
Tng t, dùng PCA trên tp hun luyn nh các khuôn mt sinh các nh
riêng (còn gi là eigenface) tìm mt không gian con (không gian khuôn
mt) trong không gian nh. Các nh khuôn mt c chiu vào không gian
con này và c gom nhóm li. Tng t các nh không có khuôn mt dùng
hun luyn cng c chiu vào cùng không gian con và gom nhóm li.
Các nh khi chiu vào không gian khuôn mt thì không b thay i tính cht
c bn, trong khi chiu các nh không có khuôn mt thì xut hin s khác
nhau cng không ít. Xác nh s có mt ca mt khuôn mt trong nh thông
qua tt c khong cách gia các v trí trong nh và không gian nh. Khong
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 20
cách này dùng xem xét có hay không có khuôn mt ngi, kt qu khi tính
toán các khong cách s cho ta mt bn v khuôn mt. Có th xác nh
c t cc tiu a phng ca bn này. Có nhiu nghiên cu v xác nh
khuôn mt, nhn dng, và trích c trng t ý tng vector riêng, phân rã, và
gom nhóm. Sau ó Kim phát trin cho nh màu, bng cách phân on nh
tìm ng không gian tìm kim bt i.
1.2.4.2 Phng pháp Mng neuron
Mô phng hot ng ca các n-ron thn kinh, mng n-ron nhân to là
h thng bao gm nhiu phn t x lý n gin (neuron) hot ng song
song.Tính nng ca h thng này tu thuc vào cu trúc ca h, các trng s
liên kt n-ron và quá trình tính toán ti các n-ron n l. Mng n-ron có
th t d liu mu và tng quát hoá da trên các d liu mu hc.
Hình 1-7: Mô hình mng Neuron
Mt nhóm các n-ron c t chc theo mt cách sao cho tt c chúng
u nhn cùng mt vector vào X x lý ti cùng mt thi im. Vic sn
sinh ra tín hiu ra ca mng xut hin cùng mt lúc. Vì mi n-ron có mt tp
trng s khác nhau nên có bao nhiêu n-ron s sn sinh ra by nhiêu tín hiu
ra khác nhau. Mt nhóm các n-ron nh vy c gi là mt lp mng.
Chúng ta có th kt hp nhiu lp mng to ra mt mng có nhiu lp, lp
nhn tín hiu u vào (vector tín hiu vào x) c gi là lp vào (input layer).
Trên thc t chúng thc hin nh mt b m cha tín hiu u vào. Các tín
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 21
hiu u ra ca mng c sn sinh ra t lp ra ca mng (output layer). Bt
k lp nào nm gia 2 lp mng trên c goi là lp n (hidden layer) và nó
là thành phn ni ti ca mng và không có tip xúc nào vi môi trng bên
ngoài. S lng lp n có th t 0 n vài lp. Mô hình n-ron nhân to òi
hi 3 thành phn c bn sau:
Tp trng s liên kt c trng cho các khp thn kinh.
B cng (Sum) thc hin phép tính tng các tích tín hiu vào vi
trng s liên kt tng ng.
Hàm kích hot (squashing function) hay hàm chuyn (transfer function)
thc hin gii hn u vào ca neuron.
Trong mô hình n-ron nhân to mi n-ron c ni vi các n-ron
khác và nhn c tín hiu xi t chúng vi các trng s wi. Tng thông tin
vào có trng s là: = ∑ .
1.2.4.3 Phng pháp SVM – support vector machine
SVM là phng pháp do Vladimir N. Vapnik xut nm 1995. SVM
da trên lý thuyt thng kê và ngày càng c s dng ph bin trong nhiu
lnh vc, c bit là trong lnh vc phân loi mu và nhn dng mu. ng
thi phng pháp này có nhiu tính nng u vit so vi các phng pháp c
in khác nh d dàng x lý, x lý có tính n nh cao trên d liu phc tp,
có th có s chiu ln và quan trng hn c là kh nng x lý tng quát.
1.2.4.4 Mô hình Makou n
Phong pháp tìm kim khuôn mt da trên mô hình Markov n cng là
mt trong các hng nghiên cu c chú trng. Mô hình Markov n là mt
tp các mô hình thng kê c s dng mô t các c tính thng kê ca tín
hiu. Lý thuyt v chui Markov và mô hình Markov ã c nghiên cu sâu
rng và áp dng nhiu trong lý thuyt nhn dng nh nhn dng ting nói,
ch vit. Samarie và cng s, Netfian và cng d là hai nhóm nghiên cu
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 22
hàng u trong vic áp dng mô hình Markov n vào tìm kim và nhn dng
mt ngi.
1.2.4.5 Mng lc tha (Sparse Network of Winnows – SNoW)
ây là phng pháp do yang xut dùng xác nh khuôn mt ngi
vi các c trng khác nhau và biu di trong các t th khác nhau, di iu
kin ánh sáng khác nhau. SNoW là mt mang tha dùng các hàm tuyn tính
và dùng lc cp nht lut. Phng pháp này thích hp cho hc trong min
khi các c trng tim nng to ra các quyt nh sai khác nhau mà không bit
mc u tiên. T l li là 5.9%, hiu qu cng nh các phng pháp khác.
1.2.4.6 AdaBoost
AdaBoost là mt phân loi mnh phi tuyn phc HM(x), c xây dng
t M phân loi yu. Mc tiêu ca AdaBoost là hc mt dãy các phân loi yu.
Gi s có mt tp N mu hun luyn ã c gán nhãn {(x1,y1), …, (xN,yN)},
vi yi là nhãn tng ng ca mu = . Tính mt phân b ca các mu
hun luyn [w1,…. wN] cp nht trong sut quá trình hc. Sau bc m, mu
khó phân loi (xi,yi) có trng s mi ()
, n bc lp th (m+1), mu này
s có tm quan trng hn. Vioa và Jones dùng AdaBoost ktt hp cascade
xác nh khuôn mt ngi vi các c trng dng Haar wavelet-like. Tc
x lý khá nhanh và t l chính xác hn 80% trên nh xám.
1.2.4.7 Hc vi FloatBoost
Li và Zhang a ra mt khái nim mi ó là FloatBoost. Phng pháp
này hc da trên phân loi boosting t l li cc tiu. Nhng phng pháp
này cho phép quay lui sau khi ti mi bc chân khi hc bng Adaboost ã
cc tiu c t l li trc tip, cc tiu theo hàm m. Có hai vn gp khi
dùng phng pháp Adaboost:
- Th nht: AdaBoost cc tiu theo hàm m ti biên qua tp hun
luyn. ây là tin li, tuy nhiên mc tiêu cui cùng trong các ng
dng dùng phân loi mu thì thng là cc tiu mt giá tr trc
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 23
tip (tuyn tính) kt hp vi t l li. Mt phân loi cc mnh
c hc bng AdaBoost thì gn im ti u ca ng dng trong
iu kin t l li.
- Th hai: AdaBoost li mt thách thc nu dùng phân loi yu
hc, Hc phân loi ti u khi dùng phân loi yu cn c
lng mt không gian c trng, iu này là vn khó, c
bit khi s chiu ca không gian khá ln.
Mt thut toán yu có hiu qu và d dùng thì rt cn thit. Float xem
nh mt cu ni gia mc tiêu ca hc boosting thông thng (cc i biên)
và ng dng dùng cc tiu t l li thông qua vic kt hp phng pháp tìm
kim Floating và AdaBoost kt hp k thut quay lui.
1.2.5 Hng tip cn tng hp
Các phng pháp c chia làm bn phân loi chính theo bn hng
tip cn. Tuy nhiên, có nhiu phng pháp không hoàn toànn ri vào mt
trong bn hng tip cn này mà trong bn hng tip cn khác nhau. Ví
d, phng pháp so khp mu dùng mô hình khuôn mt ngi và các mu
con trích các c trng khuôn mt, và sau ó dùng các c trng này
xác nh khuôn mt. Hn na phng pháp da trên tri thc và phng pháp
so khp mu không thc s tách bit, t ó có nhiu hng gii quyt dùng
tri thc ca con ngi nh ngha các mu khuôn mt ngi.
Kim kt hp các c trng láng ging ca khuôn mt xây dng các mu
theo các hng, sau ó dùng k thut xác nh cnh EBM (Edge-like Blob
Map) theo cng . Ông xây dng logic m kt hp PCA c lng t
th các khuôn mt.
Taur và Tao xây dng phân loi neurofuzzy ( neuro-fuzzy classsifier –
NEFCAR) có do tin ct bit nh nào là khuôn mt ngi. Các ng viên
c chn thông qua phân on màu da.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 24
1.3 Khó khn và thách thc trong bài toán phát hin khuôn mt
Vic xác nh khuôn mt ngi có nhng khó khn nht nh:
Hng (pose) ca khuôn mt i vi máy nh, nh: nhìn thng,
nhìn nghiêng hay nhìn t trên xung. Cùng trong mt nh có th
có nhiu khuôn mt nhng t th khác nhau.
S có mt ca các chi tit không phi là c trng riêng ca khuôn
mt ngi, nh: râu quai nón, mt kính, ….
Các nét mt (facial expression) khác nhau trên khuôn mt, nh:
vui, bun, ngc nhiên, ….
Mt ngi b che khut bi các i tng khác có trong nh.
iu kin nh, c bit là v sáng và cht lng nh, cht
lng thit b thu hình.
Trc to ca máy nh so vi nh.
Kích thc khác nhau ca các khuôn mt ngi, và c bit là
trong cùng mt nh.
Nhiu khuôn mt có vùng da dính ln nhau.
Các khó khn trên chng t rng bt c phng pháp gii quyt (thut
toán) bài toán xác nh khuôn mt ngi nào cng s không th tránh khi
mt s khim khuyt nht nh. ánh giá và so sánh các phng pháp xác
nh mt ngi, ngi ta thng da trên các tiêu chí sau:
T l xác nh chính xác là t l s lng các khuôn mt ngi
c xác nh úng t h thng khi s dng mt phng pháp
xây dng so vi s lng khuôn mt ngi tht s có trong các
nh (detection rate).
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 25
S lng xác nh nhm là s lng vùng trong nh không phi
là khuôn mt ngi mà h thng xác nh nhm là khuôn mt
ngi (false positives).
Thi gian thc hin là thi gian máy tính xác nh khuôn mt
ngi trong nh (running time).
1.4 Mt s lnh vc ng dng phát hin khuôn mt
Bài toán nhn dng mt ngi có th áp dng rng rãi trong nhiu ng
dng thc t khác nhau. ó chính là lý do mà bài toán này hp dn rt nhiu
nhóm nghiên cu trong thi gian dài. Các ng dng liên quan n nhn dng
mt ngi có th k nh:
H thng phát hin ti phm: camera c t ti mt s im
công cng nh: siêu th, nhà sách, trm xe buýt, sân bay,v.v... Khi
phát hin c s xut hin ca các i tng là ti phm, h
thng s gi thông ip v cho trung tâm x lý. - H thng theo
dõi nhân s trong mt n v: giám sát gi ra vào ca tng nhân
viên và chm công.
H thng giao tip ngi máy: thay th vic tng tác gia ngi
và máy theo nhng cách truyn thng nh: bàn phím,
chut,v.v...Thay vào ó là s dung các giao tip trc quan: biu
cm khuôn mt, du hiu, c ch bng tay (visual input, visual
interaction).
H thng tìm kim thông tin trên nh, video da trên ni dung (ch
mc theo ngi). Chng hn nh: ài truyn hình Vit Nam
(VTV) có mt kho d liu video tin tc khá ln cn tìm kim
nhanh nhng on video nào có G. Bush hoc Bin Laden.
Các th thng bo mt da trên thông tin trc sinh hc: mt ngi,
vân tay,v.v... thay vì xác nhn mt khu, khóa,v.v...
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 26
CHNG 2: PHÁT HIN KHUÔN MT S DNG C TRNG
HAAR
2.1 c trng ca Haar
2.1.1 i tng nhn dng
Trên nh, vùng khuôn mt là tp hp các im nh có nhng mi quan
h khác bit so vi các vùng nh khác, nhng mi quan h này to lên các c
trng riêng ca khuôn mt. Tt c khuôn mt ngi u có chung nhng c
im sau khi ã chuyn qua nh xám, ví d nh:
Vùng hai mt s ti hn vùng má và vùng chán, tc mc xám ca
vùng này cao hn vt tri so vi hai vùng còn li.

Và còn rt nhiu nhng c im khác ca khuôn mt và các c trng
Haar like da vào các c im này nhn dng.
V tng quát, các c trng Haar like không ch c s dng nhn
dng khuôn mt mà có th dùng nhn dng bt kì mt i tng nào trên
nh( thân ngi, tay, chân, ô tô, vt,….). Bi vì cng ging nh khuôn
mt, mi i tng có nhng c im riêng bit c trng bi các vùng im
nh, công vic ca c trng Haar-like là tính toán các giá tr tng quan gia
các vùng nh ó.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 27
ây ch là bc ban u v cách áp dng c trng phân loi ca s
con, chi tit cách phân loi ca b Adaboost và Cascade of Classifiers s trình
bày mc sau.
2.1.2 c trng
Các c trng Haar-Like là nhng hình ch nht c phân thành các
vùng khác nhau nh hình:
Hình 2-1
c trng do Viola và Jones công b gm 4 c trng c bn
xác nh khuôn mt ngi. Mi c trng Haar-Like là s kt hp ca
hai hay ba hình ch nht trng hay en nh trong hình sau:
Hình 2-2: 4 t trng Haar-like c bn
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 28
s dng các c trng này vào vic xác nh khuôn mt ngi, 4 c
trng Haar-Like c bn c m rng ra và c chia làm 3 tp c trng
nh sau:
Hình 2-4: c trng xung quanh tâm(center-surround features)
Hình 2-5: Các c trng m rng ca các c trng Haar-like c s
Dùng các c trng trên, ta có th tính c các giá tr ca c trng
Haar-Like là s chênh lch gia tng ca các pixel ca vùng en và vùng
trng nh trong công thc sau:
(2-1)
Viola và Joines a ra mt khái nim gi là Integral Image, là mt mng
2 chiu vi kích thc bng vi kích thc ca nh cn tính c trng Haar-
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 29
Like, vi mi phn t ca mng này c tính bng cách tính tng ca im
nh phía trên (dòng-1) và bên trái (ct-1) ca nó.
Hình 2-6: Công thc tính Intergral Image
(, ) = ∑ (′, ′)
(2-2)
Sau khi tính c Integral Image, vic tính tng các giá tr mc xám ca
mt vùng bt k nào ó trên nh thc hin rt n gin theo cách sau:
Gi s ta cn tính tng giá tr mc xám ca vùng D nh hình di, ta có
th tính c nh sau:
D = A + B + C + D – (A+B) – (A+C) + A (2-3)
Vi A + B + C + D chính là giá tr ti im P4 trên Integral Image,
tng t nh vy A+B là giá tr ti im P2, A+C là giá tr ti im P3, và A
là giá tr ti im P1. Vy ta có th vit li biu thc tính D trên nh sau:
(2-4)
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 30
Hình 2-7: Ví d cách tính nhanh các giá tr mc xám ca vùng D trên nh
Tip theo, chn các c trng Haar-like dùng cho vic thit lp
ngng, Viola và Jones s dng mt phng pháp máy hc c gi là
AdaBoost. AdaBoost s kt hp các b phân loi yu to thành mt b
phân loi mnh. Vi b phân loi yu ch cho ra câu tr li chính xác ch hn
vin oán mt cách ngn nhiên mt chút, còn b phân loi mnh có th a ra
câu tr li chính xác trên 60%.
2.2 B phân lp AdaBoost
2.2.1 Gii thiu
Bài toán dò tìm khuôn mt nhanh trên nh là bài toán quan trng vì quá
trình nhn dng i tng s thiu chính xác nu nh thiu bc dò tìm và
nh v c i tng. Bài toán dò tìm khuôn mt nhanh có ý ngha rt quan
trng trong vic nhn dng, theo vt các i tng chuyn ng trong các
on video hay camera.
2.2.2 Các hng tip cn dò tìm khuôn mt nhanh
Hng dò tìm khuôn mt trên nh màu da trên s phân tích màu sc
ca vùng da. Mc dù vic x lý khá nhanh nhng hng này có gii
han ch x lý trên nh màu và thng nhy cm vi ánh sáng, thng
ch s dng làm các bc tin x lý cho các hng khác.
Hng dò tìm khuôn mt da trên c trng bt bin ca khuôn mt
ngi. Thành công nht trong dò tìm khuôn mt ngi trong thi gian
thc là phng pháp ASM (Active shape Models).
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 31
Hng dò tìm khuôn mt da trên thông tin hình nh gm mng n-
ron, các hng thng kê (SVM, AdaBoost….). Phng pháp SVM và
mng n-ron cng t c kt qu cao trong thi gian khá nhanh song
cng ch vài nh trong mt giây nên khó có th áp dng trong vic nhn
din thi gian thc. Riêng phng pháp AdaBoost cho kt qu kh
quan nht vì có th x lý n khong 15-20 khung hình trong mt giây.
2.2.3 Thut toán AdaBoost
Xét bài toán hai lp, mu hun luyn bao gm M b (xi,yi) ã c gán
nhãn, vi i {1,2,..,M} trong ó yi {+1,-1} là nhãn và xi Rn là các mu hun
luyn. Trong AdaBoost, mt b phân loi mnh hn c xây dng da trên
s kt hp tuyn tính gia M b phân loi yu hn:
() = ∑ ()
(2-5)
Các b phân loi yu hn có th mang các giá tr thc, (x) R. Phân
loi ca x c quyt nh bng hàm H(x) = sign[(x)], trong ó ln
|(x)| cho ta tin cy. Mi mu c kt hp vi mt trng s. Trong quá
trình hc, các trng s s c cp nht ng nhn mnh các phân loi mnh
trc ó b phân loi sai. Tuy nhiên, quá trình cp nht trng s ch cn thit
i vi thut toán AdaBoost trc ây. i vi các thut toán AdaBoost ci
tin gn ây, quá trình này có th c thay th bng mt hàm ti u hóa. Li
xy ra khi H (x) ≠ y hay y (x) < 0. L ca mu (x, y) qua hàm h(x) R
trên tp các mu hun luyn c nh ngha là yh(x). L có th c xem là
s o tin cy ca giá tr oán trc ca h. Li phân lp ca có biên
trên là:
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 32
() = ∑ −()
(2-6)
Thut toán AdaBoost xây dng hàm h(x) bng cách gim ti a (2-6).
Cho
(2-7)
HM(x) tt nht cho phân loi mnh (x) = −() + ()
Là hàm dn ti giá tr nh nht:
Hm = arg min J(H (x) h (x)) (2-
8)
và hàm có giá tr nh nht c chng minh là:
()

9)
Vi là (−) trng lng ti thi im M.
Dùng công thc P(y| x,ω) = P(x| y,ω) P(y) và cho
()

11)
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 33
Chúng ta có c (x) = (x) – T. c hc ra t các mu ca
c hai phân lp. Ngng T c xác nh bng t l log ca các xác sut trc
ó.
Ta có mt phng pháp tính phng trình (2-11), ng dng khi hc
các b phân lp ti u. Vì rút ra mt b phân loi yu trong mt min không
gian nhiu chiu là công vic quan trng, xin c a ra sau ây mt mô
hình thng kê hc theo tng giai on da trên vài c im vô hng. Mt
c im vô h ng j ca x c tính bng mt phép bin i t không gian
d liu n chiu thành ng thng thc (x) € Z. Mt c im có th là h
s, hay nói trong x lý nh là phép bin i vi ba tín hiu. Nu phng pháp
tìm kim c lng c s dng nh phép bin i x) n gin c
xem là to th j ca x. Mt danh sách K c im ng c viên có th c
to Z ={ (x), …, (x)}. Trong phn sau, chúng ta s dng z(m) biu
din cho c im c chn trong giai on m, và (x) là c im c
tính toán t x s dng phép bin i th k.
Gi s Z là mt tp rt hoàn chnh, tp các phân lp yu có th có cho
bài toán phân lp yu ti u có th c lp nh sau: Trc tiên, ti giai on
M, khi M-1 c im ca () , (), …, (−) ã c chn và trng lng
s cho là (−), chúng ta xp x p(x|y,(−))) bng cách dùng phân b
ca M c im:
p(x|y, (−)) ≈ p(z(1), z(2), …,(−)), , |y, (−)) (2-
12)
p(, |y, (), () …, (−), (−)) (2-
13)
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 34
Bi vì Z là tp rt hoàn chnh, phép xp x vn tt i vi tp M ln
khi M c im c chn thích hp.
Ghi chú: p(|y, (), (), …, (−)) thc ra là p(|y, (−)) bi
vì () cha thông tin v toàn b quá trình to ω và bao gm các thành phn
l thuc trên (), (), …, (−) Vì vy, chúng ra có:
p(x|y, (−)) ≈ p(z(1)| y, ()) p(()| y, ())…
p((−)| y, (−)) p(zk| y, (−))
(2-14)
Mt xác sut p(| y, (−)))) cho phân lp dng y = +1 và phân
lp âm y = -1 có th phng oán c t histogram tính c qua ánh giá
công nhn trng s ca các ví d hun luyn s dng các trng s (−)).
Cho
(|=−,(−)) và
() =

15)
chúng ta rút ra c tp hp các phân lp yu hn nh sau:
()() = ()()|∀ (2-16)
Thut toán Adaboost
1. Tp Z = { (, ), (, ),…, (, )} vi:
N = a + b;
a là s mu thuc phân lp = +1
b là s mu thuc phân lp = -1
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 35
2. S lp yu ti a Mmax c kt hp
Bc 1: Khi to
()
M = 0
While M < Mmax
3) Cp nht ()
← exp −() và chun hóa ()
∑ ()
=
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 36
Hình 2-8: Ví d minh ha cho thut toán AdaBoost
2.2.4 B phân lp AdaBoost
Vi mt b dò tìm c do phng pháp AdaBoost hun luyn c, ta có
th dò tìm vi mt chính xác nht nh và mt tc nht nh. Nu nh
cn phi chính xác cao thì b dò tìm phi bao gm nhiu c trng, iu ó
kéo theo tc dò tìm s gim.
Nu s dng b dò tìm kt hp F={} vi nhiu b dò tìm c bn fi
khác nhau cng ri vào tình trng tng t. có c chính xác cao,
hoc cn phi có s lng ln các b dò tìm, hoc mi b dò tìm cn phi có
nhiu c trng, hoc c hai. Do ó cng kéo theo tc s gim. Mt hng
khc phc nhc im này là s dng b dò tìm phân tng T={}. B dò tìm
phân tng bao gm nhiu tng, mi tng = {} là mt b dò tìm kt hp
vi s lng các b dò tìm khác nhau nên có tc và chính xác khác
nhau. Khi dò tìm tt c các khuôn mt trong nh, tt c các ca s con
={,,} vi các kích thc s khác nhau ti các ta (i,j) s c kim
tra xem có phi là mt ngi hay không. Qua mi tng ti, = (−)
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 37
trong ó ||<<|−| do qua mi tng, các ca s không phi ng viên s b
loi sm. iu này cho phép chúng ta xây dng các tng sao cho, càng v sau
phúc tp (s lng các b dò tìm c bn vi các c trng) càng ln trong
khi các tng càng thp thì phc tp càng n gin và phi loi c nhiu
ng viên càng tt nhng t l loi sai phi thp.
Hình 2-9: Minh ha b tìm phân tng
Xét mi tng tk = {ci} ta có t l loi sai ca tk c tính nh sau:
= ∏
(2-17)
Trong ó fi chính là t l loi sai ng vi b dò tìm ci và K chính là s
b dò tìm ca tng tk. Tng t, chính xác ca tng tk c tính nh sau :
= ∏
(2-18)
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 38
Trong ó di là chính xác ca ng vi b dò tìm ci. ng thi cng
vi cách tính này, ta có th tính c chính xác ca toàn b các tng
T={ti} là:
(2-19)
Vy khi cho trc mt t l loi sai D và chính xác là F, ta có th
hun luyn tng b phân loi t sao cho t có t l loi sai là D và ô chính xác
là F. Và lp li quá trình hun luyn tng ta c b hun luyn gm nhiu
tng vi chính xác G hoc s tng n nh mong mun. Di ây là thut
toán hun luyn mt tng vi t l loi sai f và chính xác d cho trc:
Bc 0. u vào:
f (t l nhn sai mu dng ti a chp nhn c)
d (t l nhn úng ti thiu trong lp)
Ftarget (t l nhn sai mu dng)
P=tp mu dng
N=tp mu âm
Bc 1. Khi to:
i ← i + 1
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 39
ni = 0; Fi = Fi – 1
Trong khi (Fi > f x Fi – 1)
ni = ni +1
S dng P và N hun luyn mt phân loi H vs ni c
trng, dùng AdaBoost
Thêm b phân loi hin thi vào C
Tính Fi và Di cho b phân loi C hin thi lên tp hp l
Gim ngng cho lp th I cho n khi b phân loi C
hin thi t t l dò tìm ti thiu là d x Di-1 (iu này
cng nh hng ti Fi)
N ←Ø
Nu Fi > Ftarget thì nh giá b giò tìm C hin thi trên
tp nh không phi mt ngi và a các mu dò tìm b li
vào tp N
Bc 3. u ra: b dò tìm a tng C
2.3 Dò tìm khuôn mt
Vic dò tìm khuôn mt trong nh qua b phân tng ã hun luyn gp
mt vn là s sa s vi các kích thc khác nhau quá ln. khc phc
vn này, phng pháp dò theo kin trúc tháp c áp dng nh sau: xét
nh s kích thc (w x h), step = 0, h s co scale 1.2
Lp trong khi kích thc (w x h) còn ln hn ca s nh mt ngi hun
luyn ( x ):
Duyt toàn b các v trí ( x,y) ca s vi kích thc (0 x 0), vi
mi n v trí tin hành:
Áp dng b dò tìm phân tng xác nh có phi mt ngi hay
không
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 40
Nu là mt ngi ti v trí (x,y) thì thc t mt ngi ti v trí (x *
scalestep, y * scalestep ) và kích c ca s là (0* scalestep, 0*
scalestep)
Gán = W / scale và , = h / scale
Thu nh nh t kích thc (w x h) n ( x , )
Gán w = và h = ,
step = step + 1
Nhn xét:
H s co scale quyt nh mn ca các ca s dò tìm, nu nh scale
càng nh (≥ 1) thì càng có nhiu ca s dò tìm nên càng chính xác hn.
Áp dng thut toán dò theo kin trúc tháp nh trên ta có th dò tìm tt c
các khuôn mt tt c các v trí, song kích thc dò tìm mi bc nh sau:
Bc 1: Kích thc t (, ) n ( * scale, , * scale)
Bc 2: Kích thc t ( * scale, , * scale) n
( ∗ , )
………………………………
Bc n: Kích thc t ( ∗ − , − ) n
(w0 * scale, , * scale)
2.4 Nhn xét
2.4.1 u iêm
Phng pháp cho chính xác tng i cao (trên 90%), tc dò tìm
khuôn mt khá nhanh, thích hp dò tìm khuôn mt trong thi gia
thc, trong video.
Thích hp vi vic hun luyn d liu b nhiu.
Phng pháp trích chn c trng thc hin khá nhanh.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 41
2.4.2 Nhc iêm
Thut toán hun luyn khuôn mt thc hin chm do có rt nhiu b
phân loi yu.
Ch dò tìm c các khuôn mt nhìn thng và góc quay nh
Không ít các tính cht ca AdaBoost mang tính cht nhn nh và cha
c chng minh cht ch.
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 42
CHNG 3: THC NGHIM PHÁT HIN KHUÔN MT
3.1 Mô t bài toán
T các phng pháp c a ra phn trc, bài toán phát hin
khuôn mt c thc hin theo hai bc chính:
Do tìm các vùng có th là khuôn mt trong nh.
Xác thc khuôn mt.
u vào: nh gc.
u ra: nh ã c phát hin khuôn mt.
nhn dng khuôn mt bng c trng haar like thì u tiên ta phi
a nh v xám hóa, sau ó cho các c trng haarlike chy khp bc nh,
nhng khu vc so sánh c cho là ging vi nhiu c chng haar like nht
s c ánh du li.
Hình 3-1: H thng phát hin khuôn mt ngi
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 43
T nh gc ban u ta s tính Integral image, là mng hai chiu vi phn
t (x,y) s c tính bng tng ca các phn t (x’,y’) vi x’ < y và y’ < y,
làm nh vy tính nhanh tng ca các giá tr mc xám ca mt vùng hình
ch nht bt k trên nh gc. Các vùng nh con này s c a qua các hàm
Haar c bn c lng c trng, kt qu c lng s c a qua b
iu chnh Adaboost loi b nhanh các c trng không có kh nng là các
c trng ca khuôn mt ngi. Ch có mt tp nh các c trng mà b iu
chnh Adaboost cho là có kh nng là c trng ca khuôn mt ngi mi
c chuyn sang cho b quyt nh kt qu (là tp các b phân loi yu). B
quyt nh s tng hp kt qu là khuôn mt ngi nu kt qu ca các b
phân loi yu tr v là khuôn mt ngi.
Mi b phân loi yu s quyt nh kt qu cho mt c trng Haar-like,
c xác nh ngng nh sao cho có th vt c tt c các b d liu
mu trong tp d liu hun luyn (s lng nh khuôn mt trong tp hun
luyn.
3.2.1 OpenCV là gì
Opencv vit tt ca t Open Source Computer Vision Library.
OpenCV là mt th vin mã ngun m phc v cho vic nghiên cu
hay phát trin v th giác máy tính.
Ti u hóa và x lý ng dng trong thi gian thc.
Giúp cho vic xây dng các ng dng x lý nh, th giác máy tính …
mt cách nhanh hn.
OpenCV có hn 500 hàm khác nhau, c chia làm nhiu phn phc
v các công vic nh: x lý nh, an ninh, camera quan sát, nhn din, robot…
Xây dng ng dng phát hin khuân mt trong nh s dng OpenCV
Cao Tin t _ CT1901C 44
Th vin c vit bng ngôn ng C và C++ có th chy trên các h iu
hành Linux, Window và MacOsX. OpenCV c thit k nâng cao hiu
sut tính toán và nhn mnh n h thng thi gian thc. OpenCV a ra mt
h thng n gin, d s dng giúp mi ngi nhanh chóng xây dng các
ng dng trong th giác máy, k c các h thng kim tra trong nhà máy, bc
nh trong lnh vc y hc, bo mt, robot hc…
Nó cha các lp trình x lý nh n gin, k c thc thi các hàm bc cao
nh dò tìm khuôn mt, theo dõi khuôn mt, nhn dng khuôn mt&hell