Tải bản đầy đủ (.doc) (24 trang)

BÁO cáo bài tập lớn PHƯƠNG PHÁP TÍNH TOÁN mềm

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 (756.23 KB, 24 trang )

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

MỤC LỤC

1. Phép biến đổi Karhunen-Loève:...........................................................4
2. Thuật toán PCA:.................................................................................... 8
2.1. Giới thiệu chung về thuật toán :........................................................8
2.2. Nội dung thuật toán PCA:.................................................................9
3. Áp dụng PCA trong bài toán nhận dạng khuôn mặt :......................11
3.1. Giới thiệu chung về các phương pháp nhận dạng mặt người:.........11
3.2. Nhận dạng khuôn mặt dựa trên PCA:..............................................12
3.3 Các hàm hiển thị ảnh trong Matlab..................................................15
3.4 Các hàm khác được sử dụng trong đề tài.........................................17
4. Chương trình Demo:...........................................................................18
Tài liệu tham khảo................................................................................... 24

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

1


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Bài

Toán Nhận

Dạng Mặt Người

-----oOo-----


2.1. Giới thiệu
Trong thế giới ngày nay với sự phát triển mạnh mẽ của kỹ thuật số và mạng
toàn cầu, vấn đề đảm bảo an toàn về thông tin cũng như vật chất trở nên ngày
càng quan trọng và khó khăn. Thỉnh thoảng chúng ta lại nghe nói đến những vụ
đánh cắp thẻ tín dụng, đột nhập trái phép vào các hệ thống máy tính hay toà nhà
của cơ quan nhà nước, chính phủ. Hơn 100 triệu đô la là con số đã bị thất thoát ở
Mỹ vào năm 1998 do các vụ gian lận và xâm nhập nói trên (theo Reuters, 1999)
[5]. Trong đa số các vụ phạm pháp này, bọn tội phạm đã lợi dụng những khe hở cơ
bản trong quá trình truy cập vào các hệ thống thông tin và kiểm soát. Phần lớn
những hệ thống này không thực hiện quyền truy cập của người sử dụng dựa vào
thông tin “chúng ta là ai” mà chỉ dựa vào “chúng ta có gì”. Nói cách khác, thông
tin mà người sử dụng cung cấp cho hệ thống không đặc trưng được cho bản thân
họ, mà chỉ là những gì họ hiện đang sở hữu như số chứng minh nhân dân, chìa
khoá, mật mã, số thẻ tín dụng hoặc họ tên. Rõ ràng những thông tin hay vật dụng
này không mang tính đặc trưng mà chỉ mang tính xác thực đối với người sử dụng,
và nếu chúng bị đánh cắp hay sao chép thì kẻ trộm hoàn toàn có quyền truy
nhập, sử dụng dữ liệu hay phương tiện của chúng ta bất cứ lúc nào họ muốn. Hiện
nay, những công nghệ hiện đại đã cho phép việc xác thực dựa vào “bản chất” của
từng cá nhân. Công nghệ này dựa trên lĩnh vực được gọi là sinh trắc học. Kiểm
soát bằng sinh trắc học là những phương pháp tự động cho phép xác thực hay nhận
dạng một cá nhân dựa vào các đặc trưng sinh lý học của người đó như đặc điểm
vân tay, gương mặt, gen,… hoặc dựa trên những đặc điểm liên quan đến đặc
trưng hành vi như dạng chữ viết, cách gõ phím, giọng nói…Vì những hệ thống
nhận dạng bằng sinh trắc học s ử dụng thông tin sinh học của con người nên kết
quả chính xác và đặc biệt là rất khó bị
giả mạo.
Các đặc trưng sinh lý học là duy nhất ở mỗi người và rất hiếm khi thay đổi,

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội


2


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

trong khi đó đặc trưng hành vi có thể thay đổi bất thường do các yếu tố tâm lý
như căng thẳng, mệt mỏi hay bệnh tật. Chính vì lý do này, các hệ thống nhận
dạng dựa trên đặc trưng sinh lý tỏ ra ổn định hơn các hệ thống dựa vào đặc
trưng hành vi. Tuy nhiên, nhận dạng bằng các đặc trưng hành vi có ưu điểm là
dễ sử dụng và thuận tiện hơn : thay vì phải đặt mắt trước một máy quét điện tử
hay lấy ra một giọt máu, người sử dụng sẽ cảm thấy thoải mái hơn khi được yêu
cầu ký tên hay nói vào một micro.
Nhận dạng gương mặt là một trong số ít các phương pháp nhận dạng dựa vào
đặc trưng sinh lý cho kết quả chính xác cao đồng thời rất thuận tiện khi sử dụng.
Hơn nữa, trong số các đặc trưng sinh lý học, gương mặt của mỗi người là yếu tố
đầu tiên và quan trọng nhất cho việc nhận biết lẫn nhau cũng như biểu đạt cảm
xúc. Khả năng nhận dạng nói chung và khả năng nhận biết gương mặt người nói
riêng của con người thật đáng kinh ngạc. Chúng ta có khả năng nhận ra hàng
ngàn gương mặt của những người mình đã gặp, đã giao tiếp trong cuộc sống chỉ
bằng một cái nhìn thoáng qua, thậm chí sau nhiều năm không gặp cũng như những
sự thay đổi trên gương mặt do tuổi tác, cảm xúc, trang phục, màu tóc,…Do đó,
việc nghiên cứu các đặc tính của gương mặt người đã thu hút rất nhiều nhà triết
học, nhà khoa học qua nhiều thế kỷ, trong đó có cả Aristotle và Darwin [1].
Chính vì những lý do trên, từ những năm 1970, nhận dạng mặt người đã thu
hút sự quan tâm của nhiều nhà nghiên cứu trong các lĩnh vực như bảo mật, tâm lý
học, xử lý ảnh và thị giác máy tính. Ngày nay các chương trình máy tính về nhận
dạng mặt người đã tìm được những ứng dụng thực tế như [3] :
ƒ Nhận dạng tội phạm
Các hệ thống nhận dạng mặt người đã được tích hợp vào trong các hệ
thống kiểm soát sân bay và được sử dụng để tìm kiếm và nhận diện

những tên khủng bố hay bọn buôn bán ma tuý.
ƒ Kiểm soát truy cập vào các hệ thống máy tính trong môi trường cộng tác
Việc kiểm tra đăng nhập vào các hệ thống máy PC được kết hợp giữa
thông tin mật mã và / hoặc nhận dạng mặt người. Điều này giúp
người làm việc không cảm thấy bị rối bời trong các thủ tục truy cập
phức tạp đồng thời vẫn đảm bảo được độ tin cậy đối với thông tin

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

3


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

khách hàng và các bí mật trong kinh doanh.
ƒ Giải pháp bảo mật bổ sung cho các giao dịch rút tiền tự động (ATM)
Việc truy cập vào các máy rút tiền tự động và các dịch vụ khác của
ngân hàng được kiểm soát bởi các thông tin như số tín dụng (PIN),
giọng nói, tròng mắt kết hợp với nhận dạng gương mặt.
ƒ Đối sánh ảnh căn cước trong hoạt động của ngành luật pháp
Các cơ quan luật pháp có thể sử dụng các hệ thống nhận dạng mặt
người để đối sánh những mô tả của các nhân chứng với những tên tội
phạm được lưu trữ trong cơ sở dữ liệu.
ƒ Ứng dụng trong các giao tiếp người – máy
Sau khi xác định được người sử dụng và cảm xúc của họ tại thời điểm
đó, các hệ thống máy tính có thể có các ứng xử thích hợp.
Trong chương này trước tiên chúng ta sẽ điểm qua một số phương pháp đã
được sử dụng trong lĩnh vực nhận dạng mặt người. Sau khi đưa ra một mô hình
tiêu biểu cho một hệ thống nhận dạng mặt người và bàn luận về một số khó
khăn cho toàn bộ quá trình nhận dạng, chúng ta sẽ tập trung vào hai giai đoạn rút

trích đặc trưng và phân lớp với hai phương pháp : phân tích thành phần chính
(Principle Components Analysis –PCA) và mạng lượng hoá vector (Learning
Vector Quantization Network – LVQ).
1. Phép biến đổi Karhunen-Loève:
Các phép biến đổi Karhunen-Loève (KL) có liên quan với các giải thích cấu trúc dữ
liệu thông qua một số tuyến tính kết hợp của các biến. Giống như PCA, phép biến
đổi KL cũng là cách tối ưu cho dự án d - chiều điểm để giảm điểm chiều sao cho sai
số của dự án (tức là tổng của khoảng cách bình phương (SSD)) là tối thiểu
(Fukunaga, 1990).
Cho D {x1, x2, ..., xn} là một tập dữ liệu không gian d chiều, và X là đồng vị ma trận
dxd, nghĩa là X= (xij)nxd với xij là giá trị j thành phân của xi.
xi ( i =1,2,,n) là vector d chiều. Chúng có thể hiển thị không lỗi bằng phép tính
tổng vector tuyến tính độc lập như

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

4


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Các ma trận d × d cơ sở φ và chúng ta biết thêm có thể cho rằng những hàng φ hình
thức một bộ trực giao, nghĩa là:

Vì vậy, Y chỉ đơn giản là một biến đổi trực giao của X. φj được gọi là vectơ thứ j
tính năng và yij là thành phần thứ j của mẫu x i trong không gian tính năng này. Để
giảm bớt chiều, chúng ta chỉ chọn m(mXấp xỉ có thể được thu được bằng cách thay thế các thành phần của yj với hằng
chọn trước


Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

5


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Y(1,m) là ma trận nxm có được bằng cột m đầu tiên của Y, có nghĩa là
Y(1,m) = (yij)nxm và một ma trận n×(m−d)với (i, j) nhập từ bi,m+j.
Không mất tổng quát, chúng ta giả định rằng chỉ có các thành phần m đầu tiên của
mỗi yj được tính toán. Sau đó, các lỗi của các kết quả là xấp xỉ

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

6


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

7


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

2. Thuật toán PCA:
2.1. Giới thiệu chung về thuật toán :
PCA (Principle Components Analysic) là một thuật toán được sử dụng để tạo ra một
ảnh mới từ ảnh ban đầu. Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban

đầu nhưng vẫn mang những đặc trưng cơ bản nhất của ảnh cần nhận dạng.
PCA không cần quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận
dạng và mối quan hệ giữa các đặc điểm đó. Tất cả các chi tiết đó đều được thể hiện
ở ảnh mới được tạo ra từ PCA.
Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của
một tập hợp các vector trong không gian cho trước. Trong không gian mới, người ta
hi vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban đầu.

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

8


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Không gian mới (p1,p2) theo hướng phân bố mạnh nhất của các vector trong không gian
(x1, x2) tìm theo PCA

Ưu điểm của phương pháp PCA :
 Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần
phải xác định các thành phần và mối quan hệ giữa các thành phần đó.
 Thuật toán có thể thực hiện tốt với các cảnh có độ phân giải cao, do PCA sẽ thu
gọn ảnh thành một ảnh có kích thước nhỏ hơn.
 PCA có thể kết hợp với các phương pháp khác như mạng Nơron, Support
Vector Machinge… để mạng lại hiệu quả nhận dạng cao hơn.
Nhược điểm của PCA :
 PCA phân loại theo chiều lớn nhất của tập vector. Tuy nhiên, chiều phân bố lớn
nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài toán nhận dạng.
Đây là nhược điểm cơ bản của PCA.
 PCA rất nhạy với nhiễu.

2.2. Nội dung thuật toán PCA:
Không gian mới được tạo bởi PCA được cấu thành từ k vector đơn vị có chiều là N.
Mỗi vector được gọi là một Eigenface.

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

9


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Phép biến đổi :

W=

A=

với K<
W=T.A
Với T là ma trận chuyển đổi, T có kích thước K x N.
Gọi M là số ảnh đầu vào, mỗi ảnh được chuyển thành vector N chiều. Ta có tập
hợp đầu vào
X={x1, x2,…,xM} (xi € RN)
Trung bình của các vector đầu vào :

Xtb =
Sai lệch so với tâm:

Φi = xi - xtb

Gọi A=[ Φ1, Φ2,… ,ΦM ] ta có ma trận tương quan của A là :

C=

= A.AT

Gọi các giá trị riêng của C là : λ1, λ2,…, λn sắp xếp theo thứ tự giảm dần, tương ứng
với N vector riêng u1, u2,…, uN. Các vector riêng này trực giao từng đôi một, Mỗi
vector riêng ui được gọi là một eigenface. Tập hợp các vector ban đầu được biểu
diễn trong không gian tạo bởi n eugenface theo mô tả :

x-xtb = w1u1+ w2u2+…+ wNuN =
Chọn lấy K vector riêng u tương ứng với K giá trị riêng λ lớn nhất, ta có :

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

10


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

x-xtb = w1u1+ w2u2+…+ wNuN=

với K<
Vector các hệ số khai triển [w1, w2,…, wk] chính là biểu diễn mới của ảnh được tạo
ra trong không gian PCA. Ảnh mới vẫn giữ được các đặc điểm chính của ảnh đầu
vào.
Vector [w1, w2,…, wK] được tính theo công thức :


=

(x-xtb) = UT.(x-xtb)

Vấn đề cần giải quyết ở đây là ma trận tương quan C=A.A T có kích thước N2.
Với N=180x200=36000, khối lượng tính toán sẽ rất lớn. Do đó, để tính được các
eigenface mà không cần tính cả ma trận C, người ta đưa ra phương pháp tính nhanh
dựa vào vector riêng và giá trị riêng của ma trận L=AT.A có kích thước MxM với M
là số ảnh đầu vào.
Cách tính như sau :
Gọi vi , μi lần lượt là vector riêng và giá trị riêng của ma trận L :

AT.A.vi = μi. vi
Nhân cả 2 vế với A, ta có :

A.AT.A.vi = μi. A . vi
Ta thấy A.vi chính là vector riêng của C=A.AT ứng với giá trị riêng μi.
3. Áp dụng PCA trong bài toán nhận dạng khuôn mặt :
3.1. Giới thiệu chung về các phương pháp nhận dạng mặt người:
a. Các phương pháp nhận dạng khuôn mặt người :
Các phương pháp nhận dạng hiện nay có 2 loại :

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

11


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

 Nhận dạng dựa trên các đặc trưng phần tử trên khuôn mặt (Feature based face

recognition).
 Nhận dạng dựa trên xét tổng thể khuôn mặt (Apppearance base face recognition
)
b. Nhận dạng dựa trên mối quan hệ giữa các phần tử :
Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng
hình học của các chi tiết trên khuôn mặt ( như vị trí, diện tích, hình dạng của mắt,
mũi, miệng..), và mối quan hệ giữa chúng (như khoảng cách 2 mắt, khoảng cách 2
lông mày…)
Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận
biết khuông mặt. Hơn nữa, với việc xác định đặc tính và mối quan hệ, phương pháp
này có thể cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu, bị nghiêng, bị
xoay và ánh sáng thay đổi.
Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác định
mối quan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp. Mặt khác với ảnh
kích thước bé thì các đặc tính sẽ khó phân biệt.
c. Nhận dạng khuôn mặt dựa trên xét toàn diện khuôn mặt :
Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước RxC là một
vector trong không gian RxC chiều. Ta sẽ xây dựng một không gian mới có chiều
nhỏ hơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của một
khuôn mặt không bị mất đi. Trong không gian đó, các ảnh của cùng một người sẽ
được tập trung lại thành một nhóm gần nhau và cách xa các nhóm khác.
Thuật toán PCA ( Principle Components Analysis) thuộc nhóm này.
3.2. Nhận dạng khuôn mặt dựa trên PCA:
Kohonen đã đưa ra phương pháp dùng vector riêng để nhận dạng khuôn mặt,
ông dùng một mạng neural đơn giản để chứng tỏ khả năng của phương pháp này
trên các ảnh đã được chuẩn hóa. Mạng neural tính một mô tả của khuôn mặt bằng
cách xấp xỉ các vector riêng của ma trận tương quan của ảnh. Các vector riêng sau
Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

12



BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

này được biết đến với cái tên Eigenface. Kirby và Sirovich chứng tỏ các ảnh có các
khuôn mặt có thể được mã hóa tuyến tính bằng một số lượng vừa phải các ảnh cơ
sở. Tính chất này dựa trên biến đổi Karhunen-Lòeve, mà còn được gọi dưới một cái
tên khác là PCA và biến đổi Hotelling. Ý tưởng này được xem là của Pearson trình
bày đầu tiên vào năm 1901và sau đó là Hotelling vào năm 1933. Cho một tập các
ảnh huấn luyện có kích thước n x m được mô tả bởi các vector có kích thước m x
m, các vector cở sở cho một không gian con tối ưu được xác định thông qua lỗi
bình phương trung bình khi chiếu các ảnh huấn luyện vào không gian con này. Các
tác giả gọi tập các vector cơ sở tối ưu này là ảnh riêng sau đó gọi cho đơn giản là
vector riêng của ma trận hiệp phương sai được tính từ các ảnh khuôn mặt đã vector
hóa trong tập huấn luyện. Nếu cho 100 ảnh, mà mỗi khuôn mặt có kích thước
91x50 thì có thể chỉ dùng 50 ảnh riêng, trong khi vẫn duy trì được một khả năng
giống nhau hợp lý (giữ được 95% tính chất). Turk và Pentland áp dụng PCA để xác
định và nhận dạng khuôn mặt. Tương tự, dùng PCA trên tập huấn luyện ảnh các
khuôn mặt để sinh các ảnh riêng (còn gọi là eigenface) để tìm một không gian con
(không gian khuôn mặt) trong không gian ảnh. Các ảnh khuôn mặt được chiếu vào
không gian con này và được gom nhóm lại. Tương tự các ảnh không có khuôn mặt
dùng để huấn luyện cũng được chiếu vào cùng không gian con và gom nhóm lại.
Các ảnh khi chiếu vào không gian khuôn mặt thì không bị thay đổi tính chất cơ bản,
trong khi chiếu các ảnh không có khuôn mặt thì xuất hiện sự khác nhau cũng không
ít. Xác định sự có mặt của một khuôn mặt trong ảnh thông qua tất cả khoảng cách
giữa các vị trí trong ảnh và không gian ảnh. Khoảng cách này dùng để xem xét có
hay không có khuôn mặt người, kết quả khi tính toán các khoảng cách sẽ cho ta một
bản đồ về khuôn mặt. Có thể xác định được từ cực tiểu địa phương của bản đồ
này. Có nhiều nghiên cứu về xác định khuôn mặt, nhận dạng, và trích đặc trưng từ ý
tưởng vector riêng, phân rã, và gom nhóm. Sau đó Kim phát triển cho ảnh màu,

bằng cách phân đoạn ảnh để tìm ứng để không gian tìm kiếm bớt đi.
Bước đầu tiên trong nhận dạng khuôn mặt dựa trên PCA là trích chọn vector
đặc tính. Một bức ảnh về khuôn mặt được coi như một vector, nếu bức ảnh có kích
thước là w*h pixels thì không gian chứa vector này có số chiều là N=w*h. Mỗi
pixel sẽ được mã hóa bởi một thành phần của vector.
Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

13


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Khâu quan trọng nhất trong bài toán nhận dạng đó là trích chọn vector đặc tính. Các
bước trích chọn bao gồm :
i. Tạo một tập X gồm M ảnh (ảnh học), mỗi ảnh có kích thước N, các ảnh được
chuyển thành vector N chiều.

X = {x1, x2, …,xM }
ii. Tính trung bình của tập trên :

Xtb =
iii. Tính sai lệch của ảnh đầu vào với giá trị trung bình trên:

Φi = xi - xtb
iv. Tìm một tập M vector trực giao u biểu diễn phân bố mạnh nhất của tập dữ liệu
X. Tập các vector u được gọi là eigenface của tập dữ liệu học.
v. Xây dựng các ảnh mới vi theo M vector u :

vi = uit Φi
Ω=[v1, v2,… ,vM]T

Trong đó, vi = uit Φi là vector đặc tính của ảnh thứ I trong không gian mới. Ω ở đây
là tập các eigenface, các thành phần cơ bản cho bức ảnh cần nhận dạng.
Sau khi trích chọn được các vector đặc tính, cần đối chiếu vector này với cơ sở dữ
liệu, từ đó đưa ra kết quả nhận dạng. Trong bài toán, kết quả nhận dạng sẽ là nhận
biết được hoặc chưa nhận biết được.
Để thực hiện phân loại có rất nhiều phương pháp như khoảng cách Euclid, mạng
Noron… trong đó khoảng cách Euclid là phương pháp đơn giản nhất. Nó cho kết
quả tốt đối với trường hợp đối tượng đã được tạo thành các nhóm cách xa nhau.
Vector đặc tính của đối tượng được tạo thành các nhóm cách xa nhau.

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

14


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Vector đặc tính của đối tượng cần nhận dạng sẽ được so sánh lần lượt với vector
đặc tính của từng ảnh mẫu trong tập các ảnh học. Các khoảng cách ngắn nhất sẽ
được lưu lại:
εk= || Ω- Ωk || với k=1,..,M
Ở đây Ωk là vector của khuôn mặt thứ k trong CSDL. Nếu ε k nhỏ hơn một số được
xác định trước thì bức ảnh được nhận dạng là khuôn mặt thứ k trong CSDL.
3.3 Các hàm hiển thị ảnh trong Matlab
Để hiển thị ảnh, Matlab cung cấp 2 hàm cơ bản là image và imagesc. Ngoài ra,
trong Image Processing Toolbox cũng có hai hàm hiển thị khác là imview và
imshow
- Hàm image(x,y,c) hiển thị hình ảnh biểu diễn bởi ma trận c kích thước mxn lên hệ
trục tọa độ. x,y là các véctơ xác định vị trí của các điểm c(1,1) và c(m,n).
- Hàm imagesc có chức năng tương tự hàm image, ngoại trừ việc dữ liệu ảnh sẽ

được co giãn để sử dụng toàn bộ bản đồ màu hiện hành.
- Hàm imview cho phép hiển thị ảnh trên của sổ riêng nền Java, gọi là Image
Viewer.
- Hàm imshow cho phép hiển thị ảnh trên một Figure và tự động thiết lập giá trị các
đối tượng image, axes, figure để hiển thị hình ảnh.

dither
gray2ind
grayslice
im2bw
im2double
im2uint16
im2uint8
imapprox
ind2gray
ind2rgb
mat2gray

Các hàm chuyển đổi loại ảnh và kiểu dữ liệu ảnh
Tạo ảnh nhị phân hay ảnh RGB
Chuyển ảnh trắng đen thành ảnh indexed
Chuyển ảnh trắng đen thành ảnh indexed bằng lấy ngưỡng
Chuyển ảnh thành ảnh kiểu dữ liệu nhị phân
Chuyển ảnh thành ảnh kiểu dữ liệu double
Chuyển ảnh thành ảnh kiểu dữ liệu uint16
Chuyển ảnh thành ảnh kiểu dữ liệu uint8
Xấp xỉ ảnh indexed bằng cách giảm số màu
Chuyển ảnh indexed thành ảnh gray scale
Chuyển ảnh indexed thành ảnh RBG
Tạo ảnh gray scale từ ma trận


Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

15


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

rgb2ind
rgb2gray

Chuyển ảnh RBG thành ảnh indexed
Chuyển ảnh RBG thành ảnh gray scale
Các hàm truy xuất dữ liệu ảnh
imfinfo
Truy xuất thông tin ảnh
imread
Đọc ảnh từ file và xuất ra ma trận ảnh
imwrite
Lưu ma trận ảnh thành file ảnh
Các hàm biến đổi hình học
cp2tform
Định nghĩa phép biến đổi hình học từng cặp tương ứng
imcrop
Trích xuất một phần ảnh
imresize
Thay đổi kích thước ảnh
imrotate
Thực hiện phép quay ảnh
imtranform

Thực hiện phép biến đổi hình học tổng quát
maketform
Định nghĩa phép biến đổi hình học tổng quát
Bảng 3.3 Các hàm xử lý hình ảnh cơ bản trong Matlab

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

16


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

3.4 Các hàm khác được sử dụng trong đề tài


[filename,pathname]=uigetfile(filterspec,title): hiển thị hộp thoại chọn đường

dẫn file. Giá trị trả về tên file, và đường dẫn.

T=strcat(s1,s2,s3…): ghép các chuỗi lại với nhau, trả về chuỗi nối tiếp
s1s2s3…

strcmp(s1,s2): hàm so sánh, trả về 1 nếu s1 giống s2, ngược lại trả về 0

T=dir(pathname): Lấy thông tin của một Folder bao gồm: số file chứa trong
folder, tên file, ngày tạo, kích thước file…

S=int2str(x): Chuyển đổi số kiểu integer thành chuỗi ký tự

N=num2str(x): Chuyển đổi các số(bất kỳ có thể số nguyên hoặc thực) thành

chuỗi ký tự.

D=size(a): Trả về giá trị là ma trận có dạng [x,y] là kích thước của ma trận a

T=reshape(X,M,N): Trả về ma trận có kích thước MxN với các phần tử là các
phần tử nằm trong ma trận X.

mean(X): Ma trận X có kích thước MxN, hàm trả về ma trận có kích thước 1xN
mỗi phần tử là trung bình từng cột trong ma trận X

mean(X,dim): với dim là chiều lấy trung bình, nếu dim bằng 1 lấy trung bình
theo cột, nếu dim bằng 2 lấy trung bình theo hàng. Không có tham số dim thì mặc
định dim bằng 1.

double(X): Chuyển đổi gấp đôi chính xác giá trị ma trận X .

E=eig(X): Trả về một vector chứa các giá trị riêng của ma trận vuông X.
[V, D] = eig(X): tạo ra một ma trận đường chéo D của các giá trị riêng và một ma
trận V có các cột tương ứng là các vector riêng, do đó: X * V = V * D
• diag(V,K): Trong đó V là một vector với các thành phần N là một ma trận
vuông
kiểu N+ABS(K) với các phần tử của V trên đường chéo thứ K. K = 0 là đường chéo
chính, K> 0 là ở phía trên đường chéo chính và K <0 là ở phía dưới đường chéo
chính.
Diag(V):Giống như DIAG (V, 0) và đặt vector V trên đường chéo chính.
• Sort(X): Phân loại tăng dần hay giảm.
Đối với các vector, Sort(X) sắp xếp các phần tử của X thứ tự tăng dần.
Đối với ma trận, Sort(X) các loại mỗi cột của X thứ tự tăng dần.
Khi X là một mảng di động của chuỗi, Sort(X) sắp xếp các ký tự theo thứ tự bảng
mã ASCII.



Norm(X): Chuẩn hóa ma trận và vector X.

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

17


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Min(X): Trả về vị trí của phần tử nhỏ nhất của ma trận X.
4. Chương trình Demo:

Hình 4.0: Sơ đồ khối tổng quát của chương trình
Chương trình mô phỏng nhận dạng khuôn mặt sử dụng phương pháp PCA được viết
trên matlab và thiết kế trên giao diện người dùng GUI. Để mở chương trình bạn
khởi động chương trình Matlab. Ta chỉ đường dẫn
Nhom5\ChuongTrinh\DemoGUI sau đó mở file BTLTTM.fig ở chế độ GUI,
Run Figure. Như hình dưới đây:

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

18


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Hình 4.1: Mở chương trình trên Matlab


Hình 4.2: Giao diện chương trình chính

Đây chính là giao diện chính của chương trình gồm hai khung hiển thị hình ảnh và
hai nút nhấn Browse và Search. Để bắt đầu tìm kiếm ta cần load ảnh khuôn mặt
người cần kiểm tra bằng cách nhấn vào phím Browse. Hộp thoại mở file xuất hiện,
Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

19


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

bạn chọn file ảnh bạn muốn kiểm tra. Ở đây ta lấy ví dụ ảnh kiểm tra là ảnh “4.jpg”
như hình vẽ:

Hình 4.3: Chọn ảnh cần kiểm tra
Ảnh cần kiểm tra sẽ được đưa ra giao diện chương trình chính như hình:

Hình 4.4: Ảnh cần kiểm tra
Để kiểm tra xem khuôn mặt người trong ảnh cấn kiểm tra chúng ta nhấn nút Search
chương trình sẽ chạy và tìm trong CSDL bức ảnh có khuôn mặt giống với khuôn
mặt người trong ảnh cần kiểm tra. Hiển thị ra giao diện chương trình chính.

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

20


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM


Hình 4.5: Ảnh trung bình

Hình 4.6: Hình chiếu ảnh lên không gian ảnh

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

21


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Hình 4.7: Ảnh cần tìm
Chương trình sẽ tìm ra khuôn mặt gần giống nhất với khuôn mặt cấn kiểm tra. Và ở
đây kết quả tìm được là hình có tên “7.jpg”.
Thư mục TestDatabase chứa tập kiểm tra

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

22


BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Thư mục TrainDatabase (tập huấn luyện)

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

23



BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Tài liệu tham khảo

1. Nhập môn xử lý ảnh – Nguyễn Thanh Thủy, Lương Mạnh Bá
2. Face recognition using Principle Component Analysis - Kyungnam Kim
3. Tổng quan các phương pháp xác định khuôn mặt người – Phạm Thế Bảo
4. A tutorial on Principle Component Analysis - Lindsay I Smith, 2002
5.

Nhóm 3 – KHMT3K6 – Đại học Công nghiệp Hà Nội

24



×