Tải bản đầy đủ (.pdf) (87 trang)

Nghiên Ứu Á Thuật Toán Và Phương Pháp Nhận Dạng Ảnh Mặt Người.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.75 MB, 87 trang )

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 GIV ...................................... 11
1.1

Gi thiu chung v ph mm 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  PHNG   ........................... 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


 PHN   .......................... 53
 ............................................................... 53
3.2 Thut  PCA ng dng trong nhn dng 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 Eigenfc nhn dng mt 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 Nhn  ......................................................................................................................... 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 hng ................................................................................................ 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Ữ
Tn thut ng

Din gii
Rng a - xut hin khi gim  ch tnh. Khi  thc
ca m nh bgim,  pixel c y mu gim  to ra t
pixel hn. Aliasing xy ra nh kt q ca vic gim ch

Aliasing

thc nh th xut hi n  dng bc thang ( c bit
trong nh   ng phn cao )

Antialiasing

Cc bin  chng  ng ca cho nh

Bicubic

 tr ca  pixel ra  nh  t

interpolation




Bilinear

  ca pixel ra    t  trung  

interpolation

2x2 pixel  cn
t thao tc a  quan hnh h ga cc pixel trong

Geometric

m nh. Chng h n thay i ch tc nh, quay nh v

operation

xn nh
Qu trnh c s d   l  nh  t  tr

Interpolation

gia c pixel

Near
estneigh
bor

 g  pixel ra c   tr pixel nm trong
t vng gn 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 lp h thc hnh c cao c s dng 
gii    v  ut. Matlab    vic  nh n, th n kt
qu, cho php lp tr giao din  vc rt   cho ng s d D
liu cg  th vin  lp tr sn cho   s dng cth cc
nhng  ng dng sau y.
 S ng    sn trong th vin, cc php tnh ton h 
thng.
 Cho php lp trnh to ra nh ng ng d ng i.
 Cho php m phng c m h thc .
   kho s v hin th  liu.
 Vi phn mm  ho cc mnh.
 Cho php ph trin, giao tip  m s phn mm  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,  phn   liu  m mng
(m   h  ch c). g cho php gii quyt  vn 
li quan n lp trnh bng my tnh, c bit s d      ma trn

hay vect   th s dng ngn n C hc Fortran lp trnh r thc hin ng
ng lp th  bng c cu nh   Matlab. Matlab  vit tt 
ch MATrix LABoratory c   vin  ma tr n, t  phn mm
Matlab  vt nhm cung cp cho vic truy cp vo phn mm ma tr n mt
 d phn mm ma trn ny  ph trin   ng  Linpack

11


v pack.  nay Matlab c ph trin bi Lapack v Artpack to nn
m ngh thut n mm cho ma trn.
1.1.2.1 Dữ liệu
D liu  Matlab th hin i dng ma tr n (hoc mng - ng qut),
c c kiu  lu  lit k sau 
 Kiu n single, kiu   l   nh d liu    hi t
byte nhn, kiu d liu    s dng trong  p tnh  h
   h n.
 Kiu double kiu   kiu   nht   bin trong Matlab
 Kiu Sparse.
 Kiu uint8, uint8, uint16, uint64...
 Kiu char   
 Kiu cell.
 Kiu Structure.
Trong Matlab kiu  liu double l kiu mc nh s d ng trong cc
 s h
1.1.2.2 Ứng dụng
Matlab to u kin thun  cho:
 Cc kho  v to n hc.
   s,  n ng c u khoa hc.
 D Matlab   tn, n u to ra  sn phm  nht

trong sn xut.
1.1.2.3 Toolbox là một công cụ quan trọng trong Matlab
  ny  Matlab cung cp cho  bn ng dng  k thut
 phn  thit k, m phng  m 
Ta  th m thy toolbox  trong m   vic ca.
 Mng nn.
 Logic m
 Simulink.
1.1.3 Hệ thống Matlab
H th giao dn ca Matlab  chia thnh 5 phn:

12


 M   trin: y  ni t  thanh c ng c cc png
tin gi  ta sng lnh   file, ta c  lt k m s  sa u.
+ Desktop.
+ Command Window.
+ Command History.
+ Browsers for viewinghelp.


Th vin,  hm  h bao gm  cu tc n  tng,

sin cosin atan, atan2 etc...,   tnh n gin  n    phc t
nh ma trn nghich o, tr  chuyn i fo urier, laplace, symbolic library.


Nn n Matlab.  l cc n n cao  ma trn v mng, 


cc lnh,  h m, u t  liu , c th lp trnh h ng  tng.


 ho trong Matlab. Bao  cc cu lnh  hin  ha

trong m tr 2D  3D, to cc hnh nh chun  cung cp 
giao din t  gia i s dng  my 


Giao tip v cc n n . Matlab cho php ng  vi

c nn k nh C, Fortran 
1.1.4 Làm quen với Matlab
Tr  khi ng Matlab bn ch click vo bi file
Matlab.exe,  mn  xut hin ca s sau. (Xem  v 1.1) C s 
cha  thanh   (Giao din ng  my) cn thit cho vic qun l c
files,  bin, ca s lnh,   coi desktop   panel g c , ,
qun l  tc dng ca tg a s n  qun  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
 ca s giao tip ch ca Matlab  y  n nhp gi tr 
bin, hin   tr  gi tr ca biu th, thc thi c hm csn trong
th vin (dng lnh), hoc   (dng function) do n  p tr ra
trong M-file.

 lnh c nhp sau du nhc  nu   trong  trnh 
(nhp) lnh th  nhn  Enter cho n khi nhn c du nhc 
Thc thi lnh bng nh n ph Enter.
b) Cửa sổ command History
  m bn nhp o trong ca s Command Window  
n y c th  g nhp bin, hoc     lnh tc hin   )
 g li trong a s Command History,  a s ny cho php ta s
dng li nhng lnh  bng ch click chut n cc  nh  hoc  bin, nu
nh b n mu sdng li bin . Xem hnh 1.2
c) Cửa sổ Workspace




Click
chut



lnh

hoc

bin  s
dng li
Hình 1.2 Cửa sổ Command History
N ra  cho php thay  g tr, ng n  th ca bin
bng  click chu ln c bin. Hoc click vo nt bn tri ngay cnh t
save. V d khi ch bin  s  bin b)  click (hoc click ct  
cnh  save) ta c ca s sau g l Array Editor (xem hnh 1.4)


14


Hình 1.3 Cửa sổ Workspace

Hình 1.4 Cửa sổ Array Editor
  l tn bin b, nh dng  liu   c   Numeric format,
mc nh l d ng short,  thc size l 1 by 3 (tc l mt   3 ct) ta c
th thay i kch th ny bng  thay i  tr  trong  kch th size.
D ca s   u cc bin  i  d liu ca bn b, ta  
thay i  bng  thay i gi tr  trong    Tt c  bn u
 lu trong Workspace trong   hin c ch thc (Size), ses 
kiu  lu (class) (8 bytes cho mi phn   liu kiu double c  l 24
bytes d nh cho b  8 bytes  cho a).
d) Cửa sổ M-file
 mt ca s   son tho ch nh ng dng,  thc thi
chng trnh vit trong M-file bng h g n ca file cha chng trnh 
trong ca sma ndwindow.
Khi m  trnh vit trong M-file, th tu theo ng dng c th,
 theo ni lp tr m ch tr  th vit di dng sau:


Dng Script file: c l chng trnh g p hp   lnh

vit dng lit   c bn d liu vo v bn ly   ra.
 Dng hm function: c bin  liu   bin ra.
e) Đường dẫn thư mục: N lu 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
 tm h nh  lm cho tm nh t nn thc  c  h
a) Điểm ảnh (Picture Element)
im nh (Pixel)  mt phn   nh s ti to  (x, y)   xm
hoc mu nht nh. Kch c  khong cch gia cc im nh  
chn   sao cho mt ngi cm nhn    v  gian  mc
xm (hoc m nh s gn nh nh tht. Mi phn  trong ma trn c
g  m phn t nh.
b) Mức xám của ảnh
Mức xám:  kt  ca s bin i tng ng   tr    1
im nh  1 g tr    th  xc nh trong [0, 255]
tu thu  tr m m m nh c biu din.
c thang gi tr mc    16, 32, 64, 128, 256 (Mc 256
lmc ph dng.  do: t k thut my   1 byte (8 bit)  biu din
mc m. Mc   1 byte biu din: 28 =256 mc, tc 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 mu RGB:

M pixel c biu din bng 3 g tr (R, G, B) trong  R, G, B  m
gi tr    bu biu din bng 1 byte. Khi  ta c m nh 24 bits.
P(x, y) = (R, G, B)
-

H mu CMY: l phn   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 cn thit trong x lnh. u tin, nh   th g ngoi
c thu nhn qua  thit b thu (n Camera, my chp nh). Tr  nh
thu qua Camera l c nh tng t. Gn   s pht trin ca cng ngh,
nh mu hoc en tr ng  ly ra t Camera, sau  n c chuyn tc tip
thnh nh s to thun li cho x  tip theo. y  nh s hin nay  m  d
gn g Mt   nh cng   tip nhn   tinh; c th qut t nh ch
ng my  nh. Hnh di y m   b  bn trong    nh.
1.3.2 Các giai đoạn xử lý ảnh
a)
-

Thu nhận ảnh (Image Acquisition)
nh  thu  nhu ng u kh nhau:m nh, my quay phim, my


-

M  bn  thng tin hnh nh   cu trc c lu 

trong my  c  hn  ra  thit b ngoi vi n  my in, mn 














 &




Hình 1.6 Các bước cơ bản trong xử lý ảnh
-

Gm hai tin h:

+ Bin  nng lng quang   nh nng l n.
+  h nng ng in th nh hoc ma trn .
b)
-

Tiền xử lý (Image Processing)
 q  nh s dng   thut  l nh  lm  nh tt  theo

mc s dng.
-

M 
              

 

18







c) Phân đoạn (Segmentation)
-

 qu tr nh phn chia  i dung cc  tng c n kho st ra  nh.

-

Ph chia  i ng tip  nhau.

-

Ph   i ng ring bit   i t con.

d) Biểu diễn ảnh (Image Representation)
u ra nh sau  n cha  im nh ca g nh (nh 
phon) ng v m  kt vi cc  ln cn. Vic bin  i c s liu
ny thnh dng ch h  c n thit cho   tip theo bng   Vic
chn  tnh cht  th hin nh gi  tr cn c tr ng (Feature Selection)
gn vi vic   c tnh  nh di dng c tg tin nh lng
hoc lm  s  phn bit   tng ny  i tng  trong ph m vi
nh nhn c.
V d: trong nhn dng k t trn phong  th, chng ta mi  
c trng ca t ng k   phn bit   ny   t 
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

Nhn dng nh   trnh  nh nh. Qu tr ny thg thu
c bng  so snh  mu chun  c h (hoc l)  tr c. N suy
 on theo  ngha trn c s nhn dng.
V d: mt lot ch s   gch ngang trn phong  th  th 
ni suy thnh m n thoi. nhiu ch pn loai nh k nhau v nh. Theo


-



-



              
             



19


f) Cơ sở tri thức (Knowledge Base)
N  n  tr nh  m  t  phc tp v ng t, 
ng ti, dung lng m nh, m trng thu nh phong   theo nhiu.
Trong nh iu  x  v phn tch nh ngoi vic  gin ha  ph
 to hc m bo tin  cho   ngi ta mong mu bt cc quy
 tip nhn  x  h theo  ca con ng Trong    l
 nhiu  hin nay  x  theo  ng php tr tu con  V

vy,    c s tri tc 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  liu X  ma trn bn  mu
map. Ma trn  liu c th  kiu  l uint8, uint16 hoc kiu double.
Ma trn bn  mu l m mng mx3 kiu double bao   g tr du
phy  nm gia 0 v 1. M   bn   ra cc gi tr m: red,
green v blue ca m mu  M nh ch s s dng nh  trc tip gia
gi tr  pixel  nh ti g tr trong bn  mu. Mu sc ca m pixel  nh
c   bng cch s ng  tr tng ng  X  x t m  tr
ch s c map.  tr 1 ch ra hng u tin, g tr 2 ch  ra   hai trong
n  mu 
M bn  mu ng  cha cng  nh ch s v c  ng
np  v nh khi s g hm imread   nh. Tuy nh ta  
gii h n khi s ng bn  mu mc nh, ta c th s dng bt  bn   u

b) nh cng  (Intensity Images)
M nh cng  l m ma tn  liu nh I m gi  ca  i din
cho cng  trong m s    ca nh. Matlab cha t nh cng
 n m ma trn   m phn t ma trn tng g  mt pixel
ca nh. Ma trn c th th u l double, uint8 hay uint16. Trong khi nh
  him khi c lu  bn  mu, Matlab s dng n  mu 
hin  

20




×