BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Phạm Hồng Sơn
NGHIÊN CỨU CÁC THUẬT TOÁN VÀ PHƢƠNG PHÁP
NHẬN DẠNG ẢNH MẶT NGƢỜI
....................................
1.TS.
1708330019545da6b51e6-b137-43b2-9e5b-df12a037e5df
170833001954598306aa0-e195-43ff-b152-4aecea39fe6b
1708330019545c53e4909-91fd-49e4-b110-15517a9e4b5b
1
Độc lập – Tự do – Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn :
Đề tài luận văn:
Chuyên ngành:
Mã số HV: CB150250
Giáo viên hƣớng dẫn
Tác giả luận văn
CHỦ TỊCH HỘI ĐỒNG
2
LỜI CAM ĐOAN
Tiến sĩ Vƣơng Hoàng Nam.
Phạm Hồng Sơn
3
LỜI CẢM ƠN
-
Phạm Hồng Sơn
4
MỤC LỤC
ng 1 GIV ...................................... 11
1.1
Gi thiu chung v ph mm Matlab ................................................................. 11
1.1.1 Khái niệm về Matlab .............................................................................................. 11
1.1.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng................................. 11
1.1.3 Hệ thống Matlab .................................................................................................... 12
1.1.4 Làm quen với Matlab ............................................................................................ 13
1.1.5 Các cửa sổ làm việc của Matlab ........................................................................... 14
1.2
................................................................................. 16
1.2.1 Các khái niệm cơ bản về ảnh ................................................................................ 16
1.2.2 Các cách phân loại ảnh ......................................................................................... 16
1.3
............................................................................................... 18
1.3.1 Xử lý ảnh ................................................................................................................. 18
1.3.2 Các giai đoạn xử lý ảnh........................................................................................ 18
1.3.3 Xử lý ảnh với Matlab ............................................................................................. 20
1.3.3.1 Các kiểu ảnh trong Matlab ............................................................................. 20
1.3.3.2 Các hàm xử lý ảnh cơ bản trong Matlab ....................................................... 22
2 PHNG ........................... 42
2.1. ....................................................................... 42
.......................................................... 44
........................................................ 44
................................................................................ 45
2.4.1 Hướng tiếp cận dựa trên tri thức .......................................................................... 46
2.4.2 Hướng tiếp cận dựa trên đặc trưng không thay đổi ............................................. 47
2.4.2.1 Các đặc trưng khuôn mặt................................................................................ 48
2.4.2.2 Kết cấu .............................................................................................................. 49
2.4.2.3 Sắc màu của da ................................................................................................. 49
2.4.2.4 Đa đặc trưng .................................................................................................... 49
2.4.3 Hướng tiếp cận dựa trên so khớp mẫu ................................................................. 49
2.4.4 Hướng tiếp cận dựa trên diện mạo ....................................................................... 50
2.5 ......................................................................................................... 51
5
PHN .......................... 53
............................................................... 53
3.2 Thut PCA ng dng trong nhn dng k t ng .............................. 54
3.2.1 Thuật tốn................................................................................................................ 54
3.2.2 Phân tích thành phần chính PCA ........................................................................... 55
3.2.3 Ví dụ minh họa ........................................................................................................ 57
3.3 ng ng Eigenfc nhn dng mt ng .............................................. 63
3.3.1 Tính tốn Eigenfaces .............................................................................................. 66
3.3.2 Dùng Eigenfaces để phân loại ảnh mặt người. ..................................................... 67
3.3.3 Ứng dụng Eigenfaces để phát hiện gương mặt ..................................................... 68
3.3.3.1 Xem xét lại không gian mặt............................................................................. 69
3.3.3.2 Nhận dạng theo thời gian thực ........................................................................ 69
3.4 Nhn ......................................................................................................................... 70
3.4.1 Ưu điểm của phương pháp PCA ............................................................................ 70
3.4.2 Nhược điểm của PCA ............................................................................................. 71
3.5 hng ................................................................................................ 71
3.5.s nh .................................................................................................... 71
3.5.1.1 Tập ảnh huấn luyện .......................................................................................... 71
3.5.1.2 Tập ảnh mẫu ..................................................................................................... 72
3.5.2 Các bước thực hiện chương trình .......................................................................... 73
3.5.3 Lưu đồ giải thuật ..................................................................................................... 75
3.5.3.1 Lưu đồ giải thuật chính .................................................................................... 75
3.5.3.2 Lưu đồ giải thuật chi tiết .................................................................................. 75
3.5.4 Kết quả mô phỏng ................................................................................................... 78
3.5.5 Tốc độ thực hiện ...................................................................................................... 83
3.6 ......................................................................................................... 83
............................................................................................................................. 86
........................................................................................................ 86
...................................................................................................... 87
6
PHỤ LỤC HÌNH
Hình 1.1 Cửa sổ khi khởi động Matlab .....................................................................13
Hình 1.2 Cửa sổ Command History ..........................................................................14
Hình 1.3 Cửa sổ Workspace......................................................................................15
Hình 1.4 Cửa sổ Array Editor ...................................................................................15
Hình 1.5 Một số hệ tọa độ màu cơ bản .....................................................................17
Hình 1.6 Các bước cơ bản trong xử lý ảnh ...............................................................18
Hình 1.7 Ảnh trước và sau khi imresize ....................................................................31
Hình 1.8 Ảnh trước và sau khi imrotate ....................................................................34
Hình 1.9 Ảnh được quay theo chiều ngang ...............................................................36
Hình 1.10 Ảnh trước và sau khi imcrop ....................................................................36
Hình 1.11 Ảnh trước và sau khi imcrop ....................................................................38
Hình1. 12 Ảnh trước và sau khi imtransfo ................................................................ 39
Hình 2. 1 Độ phân giải của 1 ảnh
Hình 2. 2 Một loại trí thức của người nghiên cứu phân tích trên khn mặt
Hình 2. 3 Một mẫu khn mặt, có 16 vùng và 23 quan hệ (các mũi tên)
47
47
50
Hình 3. 1 Hình ảnh mơ tả phương pháp hạ bậc dữ liệu
Hình 3. 2 Hình ảnh minh họa tương quan giữa vector ảnh với vector cơ sở
Hình 3. 3 Hình ảnh minh họa Eigenface có kích thước NxN
Hình 3. 4 Diễn giải hình học phương pháp PCA
Hình 3. 5 Hình ảnh ví dụ đơn giản về phương pháp giảm chiều dữ liệu
Hình 3. 6 a) Những gương mặt dùng để chạy thử b) Ảnh trung bình ψ
Hình 3. 7 Các Eigenfaces được tính tốn từ dãy chạy thử của hình 3.6
Hình 3. 8 Ảnh và hình chiếu của nó vào khơng gian mặt người xác định
Hình 3. 9 a) Ảnh gốc b) Bản đồ mặt người, vùng tối chỉ ra hình dạng khn mặt
Hình 3. 10 Ví dụ thể hiện 4 hình chiếu của ảnh lên khơng gian mặt người
Hình 3. 11 Hệ thống dị tìm và định vị mặt người
Hình 3. 12 Tập ảnh Face
Hình 3. 13 Tập ảnh nface
Hình 3. 14 Tập ảnh mẫu
Hình 3. 15 Lưu đồ giải thuật chính
Hình 3. 16 Lưu đồ giải thuật chọn ảnh
Hình 3. 17 Lưu đồ giải thuật chương trình dị tìm ảnh mặt người
Hình 3. 18 Lưu đồ giải thuật chương trình nhận dạng
Hình 3. 19 Lưu đồ thuật tốn PCA
Hình 3. 20 Bộ cơ sở dữ liệu dùng để thực hiện kiểm tra
Hình 3. 21 Tạo bộ cơ sở dữ liệu để thực hiện kiểm tra
Hình 3. 22 Hiển thị thơng số cơ sở dữ liệu sau khi đã cập nhật
Hình 3. 23 Kết quả thực hiện sau khi lựa chọn ảnh kiểm tra đầu vào
Hình 3. 24 Ảnh đầu ra gần nhất với ảnh kiểm tra đầu vào
53
62
62
63
63
65
65
67
68
69
70
72
73
73
75
75
76
77
78
79
81
82
82
83
7
DANH MỤC CÁC TỪ VIẾT TẮT
PCA
ICA
CSDL
RGB
B = Blue (xanh lam)
HSV
B (hay V): (Bright hay
CMYK
C = Cyan (xanh)
JPEG
BMP
dot-
GIF
PNG
TIFF
8
ĐỊNH NGHĨA CÁC THUẬT NGỮ
Tn thut ng
Din gii
Rng a - xut hin khi gim ch tnh. Khi thc
ca m nh bgim, pixel c y mu gim to ra t
pixel hn. Aliasing xy ra nh kt q ca vic gim ch
Aliasing
thc nh th xut hi n dng bc thang ( c bit
trong nh ng phn cao )
Antialiasing
Cc bin chng ng ca cho nh
Bicubic
tr ca pixel ra nh t
interpolation
Bilinear
ca pixel ra t trung
interpolation
2x2 pixel cn
t thao tc a quan hnh h ga cc pixel trong
Geometric
m nh. Chng h n thay i ch tc nh, quay nh v
operation
xn nh
Qu trnh c s d l nh t tr
Interpolation
gia c pixel
Near
estneigh
bor
g pixel ra c tr pixel nm trong
t vng gn pixel
inter
9
LỜI MỞ ĐẦU
Principal
10
Chƣơng 1 GIỚI THIỆU MATLAB VÀ KHÁI QUÁT VỀ ẢNH
1.1
Giới thiệu chung về phần mềm Matlab
1.1.1 Khái niệm về Matlab
Matlab m ng lp h thc hnh c cao c s dng
gii v ut. Matlab vic nh n, th n kt
qu, cho php lp tr giao din vc rt cho ng s d D
liu cg th vin lp tr sn cho s dng cth cc
nhng ng dng sau y.
S ng sn trong th vin, cc php tnh ton h
thng.
Cho php lp trnh to ra nh ng ng d ng i.
Cho php m phng c m h thc .
kho s v hin th liu.
Vi phn mm ho cc mnh.
Cho php ph trin, giao tip m s phn mm nh C++,
Fortran.
1.1.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
Matlab l m ng ng giao, phn liu m mng
(m h ch c). g cho php gii quyt vn
li quan n lp trnh bng my tnh, c bit s d ma trn
hay vect th s dng ngn n C hc Fortran lp trnh r thc hin ng
ng lp th bng c cu nh Matlab. Matlab vit tt
ch MATrix LABoratory c vin ma tr n, t phn mm
Matlab vt nhm cung cp cho vic truy cp vo phn mm ma tr n mt
d phn mm ma trn ny ph trin ng Linpack
11
v pack. nay Matlab c ph trin bi Lapack v Artpack to nn
m ngh thut n mm cho ma trn.
1.1.2.1 Dữ liệu
D liu Matlab th hin i dng ma tr n (hoc mng - ng qut),
c c kiu lu lit k sau
Kiu n single, kiu l nh d liu hi t
byte nhn, kiu d liu s dng trong p tnh h
h n.
Kiu double kiu kiu nht bin trong Matlab
Kiu Sparse.
Kiu uint8, uint8, uint16, uint64...
Kiu char
Kiu cell.
Kiu Structure.
Trong Matlab kiu liu double l kiu mc nh s d ng trong cc
s h
1.1.2.2 Ứng dụng
Matlab to u kin thun cho:
Cc kho v to n hc.
s, n ng c u khoa hc.
D Matlab tn, n u to ra sn phm nht
trong sn xut.
1.1.2.3 Toolbox là một công cụ quan trọng trong Matlab
ny Matlab cung cp cho bn ng dng k thut
phn thit k, m phng m
Ta th m thy toolbox trong m vic ca.
Mng nn.
Logic m
Simulink.
1.1.3 Hệ thống Matlab
H th giao dn ca Matlab chia thnh 5 phn:
12
M trin: y ni t thanh c ng c cc png
tin gi ta sng lnh file, ta c lt k m s sa u.
+ Desktop.
+ Command Window.
+ Command History.
+ Browsers for viewinghelp.
Th vin, hm h bao gm cu tc n tng,
sin cosin atan, atan2 etc..., tnh n gin n phc t
nh ma trn nghich o, tr chuyn i fo urier, laplace, symbolic library.
Nn n Matlab. l cc n n cao ma trn v mng,
cc lnh, h m, u t liu , c th lp trnh h ng tng.
ho trong Matlab. Bao cc cu lnh hin ha
trong m tr 2D 3D, to cc hnh nh chun cung cp
giao din t gia i s dng my
Giao tip v cc n n . Matlab cho php ng vi
c nn k nh C, Fortran
1.1.4 Làm quen với Matlab
Tr khi ng Matlab bn ch click vo bi file
Matlab.exe, mn xut hin ca s sau. (Xem v 1.1) C s
cha thanh (Giao din ng my) cn thit cho vic qun l c
files, bin, ca s lnh, coi desktop panel g c , ,
qun l tc dng ca tg a s n qun b desktop.
Hình 1.1 Cửa sổ khi khởi động Matlab
13
1.1.5 Các cửa sổ làm việc của Matlab
a) Cửa sổ Command Window
ca s giao tip ch ca Matlab y n nhp gi tr
bin, hin tr gi tr ca biu th, thc thi c hm csn trong
th vin (dng lnh), hoc (dng function) do n p tr ra
trong M-file.
lnh c nhp sau du nhc nu trong trnh
(nhp) lnh th nhn Enter cho n khi nhn c du nhc
Thc thi lnh bng nh n ph Enter.
b) Cửa sổ command History
m bn nhp o trong ca s Command Window
n y c th g nhp bin, hoc lnh tc hin )
g li trong a s Command History, a s ny cho php ta s
dng li nhng lnh bng ch click chut n cc nh hoc bin, nu
nh b n mu sdng li bin . Xem hnh 1.2
c) Cửa sổ Workspace
Click
chut
lnh
hoc
bin s
dng li
Hình 1.2 Cửa sổ Command History
N ra cho php thay g tr, ng n th ca bin
bng click chu ln c bin. Hoc click vo nt bn tri ngay cnh t
save. V d khi ch bin s bin b) click (hoc click ct
cnh save) ta c ca s sau g l Array Editor (xem hnh 1.4)
14
Hình 1.3 Cửa sổ Workspace
Hình 1.4 Cửa sổ Array Editor
l tn bin b, nh dng liu c Numeric format,
mc nh l d ng short, thc size l 1 by 3 (tc l mt 3 ct) ta c
th thay i kch th ny bng thay i tr trong kch th size.
D ca s u cc bin i d liu ca bn b, ta
thay i bng thay i gi tr trong Tt c bn u
lu trong Workspace trong hin c ch thc (Size), ses
kiu lu (class) (8 bytes cho mi phn liu kiu double c l 24
bytes d nh cho b 8 bytes cho a).
d) Cửa sổ M-file
mt ca s son tho ch nh ng dng, thc thi
chng trnh vit trong M-file bng h g n ca file cha chng trnh
trong ca sma ndwindow.
Khi m trnh vit trong M-file, th tu theo ng dng c th,
theo ni lp tr m ch tr th vit di dng sau:
Dng Script file: c l chng trnh g p hp lnh
vit dng lit c bn d liu vo v bn ly ra.
Dng hm function: c bin liu bin ra.
e) Đường dẫn thư mục: N lu g files ch
15
1.2
Giới thiệu khái quát về ảnh số
1.2.1 Các khái niệm cơ bản về ảnh
t m
tm h nh lm cho tm nh t nn thc c h
a) Điểm ảnh (Picture Element)
im nh (Pixel) mt phn nh s ti to (x, y) xm
hoc mu nht nh. Kch c khong cch gia cc im nh
chn sao cho mt ngi cm nhn v gian mc
xm (hoc m nh s gn nh nh tht. Mi phn trong ma trn c
g m phn t nh.
b) Mức xám của ảnh
Mức xám: kt ca s bin i tng ng tr 1
im nh 1 g tr th xc nh trong [0, 255]
tu thu tr m m m nh c biu din.
c thang gi tr mc 16, 32, 64, 128, 256 (Mc 256
lmc ph dng. do: t k thut my 1 byte (8 bit) biu din
mc m. Mc 1 byte biu din: 28 =256 mc, tc l 0 n 255).
c) Độ phân giải của ảnh
.
1.2.2 Các cách phân loại ảnh
16
-
Ảnh màu:
-
H mu RGB:
M pixel c biu din bng 3 g tr (R, G, B) trong R, G, B m
gi tr bu biu din bng 1 byte. Khi ta c m nh 24 bits.
P(x, y) = (R, G, B)
-
H mu CMY: l phn h m u RGB
(C,M,Y) = (1,1,1) (R,G,B) Hay C+R = M+G = Y+B =1
-
K= min(C, M, Y) P(x, y) = (C-K, M-K, V-K, K)
-G-B
-S-V
Hình 1.5 Một số hệ tọa độ màu cơ bản
17
1.3
X ử lý ảnh với Matlab
1.3.1 Xử lý ảnh
b cn thit trong x lnh. u tin, nh th g ngoi
c thu nhn qua thit b thu (n Camera, my chp nh). Tr nh
thu qua Camera l c nh tng t. Gn s pht trin ca cng ngh,
nh mu hoc en tr ng ly ra t Camera, sau n c chuyn tc tip
thnh nh s to thun li cho x tip theo. y nh s hin nay m d
gn g Mt nh cng tip nhn tinh; c th qut t nh ch
ng my nh. Hnh di y m b bn trong nh.
1.3.2 Các giai đoạn xử lý ảnh
a)
-
Thu nhận ảnh (Image Acquisition)
nh thu nhu ng u kh nhau:m nh, my quay phim, my
-
M bn thng tin hnh nh cu trc c lu
trong my c hn ra thit b ngoi vi n my in, mn
&
Hình 1.6 Các bước cơ bản trong xử lý ảnh
-
Gm hai tin h:
+ Bin nng lng quang nh nng l n.
+ h nng ng in th nh hoc ma trn .
b)
-
Tiền xử lý (Image Processing)
q nh s dng thut l nh lm nh tt theo
mc s dng.
-
M
18
c) Phân đoạn (Segmentation)
-
qu tr nh phn chia i dung cc tng c n kho st ra nh.
-
Ph chia i ng tip nhau.
-
Ph i ng ring bit i t con.
d) Biểu diễn ảnh (Image Representation)
u ra nh sau n cha im nh ca g nh (nh
phon) ng v m kt vi cc ln cn. Vic bin i c s liu
ny thnh dng ch h c n thit cho tip theo bng Vic
chn tnh cht th hin nh gi tr cn c tr ng (Feature Selection)
gn vi vic c tnh nh di dng c tg tin nh lng
hoc lm s phn bit tng ny i tng trong ph m vi
nh nhn c.
V d: trong nhn dng k t trn phong th, chng ta mi
c trng ca t ng k phn bit ny t
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)
Nhn dng nh trnh nh nh. Qu tr ny thg thu
c bng so snh mu chun c h (hoc l) tr c. N suy
on theo ngha trn c s nhn dng.
V d: mt lot ch s gch ngang trn phong th th
ni suy thnh m n thoi. nhiu ch pn loai nh k nhau v nh. Theo
-
-
19
f) Cơ sở tri thức (Knowledge Base)
N n tr nh m t phc tp v ng t,
ng ti, dung lng m nh, m trng thu nh phong theo nhiu.
Trong nh iu x v phn tch nh ngoi vic gin ha ph
to hc m bo tin cho ngi ta mong mu bt cc quy
tip nhn x h theo ca con ng Trong l
nhiu hin nay x theo ng php tr tu con V
vy, c s tri tc c huy.
1.3.3 Xử lý ảnh với Matlab
1.3.3.1 Các kiểu ảnh trong Matlab
a) nh nh ch s (Indexed Images)
M nh ch s bao m t ma tr n liu X ma trn bn mu
map. Ma trn liu c th kiu l uint8, uint16 hoc kiu double.
Ma trn bn mu l m mng mx3 kiu double bao g tr du
phy nm gia 0 v 1. M bn ra cc gi tr m: red,
green v blue ca m mu M nh ch s s dng nh trc tip gia
gi tr pixel nh ti g tr trong bn mu. Mu sc ca m pixel nh
c bng cch s ng tr tng ng X x t m tr
ch s c map. tr 1 ch ra hng u tin, g tr 2 ch ra hai trong
n mu
M bn mu ng cha cng nh ch s v c ng
np v nh khi s g hm imread nh. Tuy nh ta
gii h n khi s ng bn mu mc nh, ta c th s dng bt bn u
b) nh cng (Intensity Images)
M nh cng l m ma tn liu nh I m gi ca i din
cho cng trong m s ca nh. Matlab cha t nh cng
n m ma trn m phn t ma trn tng g mt pixel
ca nh. Ma trn c th th u l double, uint8 hay uint16. Trong khi nh
him khi c lu bn mu, Matlab s dng n mu
hin
20