Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

lOMoARcPSD|21946182

Ứng dụng của PCA trong nhận dạng mặt người

Đại số tuyến tinh (Trường Đại học Công nghệ Thành phố Hồ Chí Minh)

Studocu is not sponsored or endorsed by any college or university


Downloaded by V?n Trí (leetriss1509@gmail.com)
lOMoARcPSD|21946182

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC ỨNG DỤNG

BÁO CÁO BÀI TẬP LỚN

ĐỀ TÀI 13
NÊU CƠ SỞ LÝ THUYẾT CỦA PCA
ỨNG DỤNG CỦA PCA VÀO NHẬN DẠNG KHUÔN MẶT

GVHD: Nguyễn Xuân Mỹ

LỚP L15 - NHÓM 13


1. Nguyễn Khánh Quỳnh MSSV:2112167
2. Nguyễn Thanh Sang MSSV:2114639
3. Trần Qúy Tài MSSV:2114701
4. Trần Lê Quân MSSV:2112132

TP.HCM, 12/2021

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

MỤC LỤC
CHƯƠNG I : GIỚI THIỆU......................................................................1
CHƯƠNG II: THUẬT TOÁN PCA.........................................................2
2.1.Giới thiệu về PCA:...........................................................................2
2.2.Khái niệm:........................................................................................3
2.3.Đặc tính:...........................................................................................3
2.4.Cơ sở toán học:................................................................................3
2.5.Các bước phân tích thành phần chính:.............................................6
2.6.Ứng dụng của phân tích thành phần chính trong lĩnh vực chuyên
môn:.......................................................................................................8
CHƯƠNG III: ỨNG DỤNG CỦA PCA TRONG NHẬN DIỆN KHUÔN
MẶT.........................................................................................................8
3.1.Ý tưởng chính:.................................................................................8
3.2.Ứng dụng của PCA trong nhận diện khuôn mặt:.............................8
3.3.Nhược điểm:.....................................................................................9
3.4.Các thử thách mà nhận diện khuôn mặt gặp phải:...........................9
3.5.Ứng dụng nhận diện khuôn mặt trong thực tế:..............................10
CHƯƠNG IV: PCA TRÊN PHẦN MỀM MATLAB.............................10
4.1.Sơ đồ khối:.....................................................................................10
4.2.Code PCA trong Matlab:................................................................12
CHƯƠNG V: KẾT LUẬN......................................................................13
TÀI LIỆU THAM KHẢO......................................................................13

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

CHƯƠNG I : 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 Internet,
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 những vụ đánh cắp thông tin, thẻ
tín dụng hay tài khoản ngân hàng, thậm chí còn đột nhập vào các hệ thống máy tính
của nhà nước, chính phủ. Hơn 100 triệu đô la đã bị thất thoát ở Mỹ năm 1998 do các
vụ xâm nhập phạm pháp này. Trong đa số các vụ xâm nhập, tội phạm đã lợi dụng
những lỗ hổng 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 các hệ thống truy cập 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 dùng cung cấp cho hệ thống không đặc trưng cho bản thân
họ, mà chỉ là những thứ họ hiện đang sỡ hữu như CMND/CCCD, chìa khoá, mật
khẩu, mã số thẻ tín dụng và họ tên. Rõ ràng là những vận dụng này không mang tính
đặc trưng cho người sỡ hữu 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ó thể truy cập và sử dụng
tất cả dữ liệu và phương tiện của chúng ta bất cứ khi nào chúng muốn. Hiện nay với
sự phát triển của công nghệ hiện đại đã cho phép việc xác thực dựa vào những đặc
trưng về “bản chất “ của bản thân.

Trong chương này chúng ta sẽ điểm qua một số phương pháp đã được sử dụng trong
lĩnh lực nhận dạng mặt người. Chúng ta sẽ tập trung phân tích phương pháp : phân
tích thành phần chính (Principle Compoments Analysis -PCA).

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

CHƯƠNG II: THUẬT TOÁN PCA

2.1.Giới thiệu về PCA:

Cùng là 1 chú lạc đà, tuy nhiên với các góc nhìn khác nhau (trục thông tin), chúng ta
có những cách thu nhận thông tin khác nhau và cho ta những kết luận khác nhau.

PCA là thuật toán tìm một không gian mới (với số chiều nhỏ hơn không gian cũ),
các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi trục, độ biến
thiên của dữ liệu trên đó là lớn nhất có thể.

Ví dụ minh hoạ:

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

2.2.Khái niệm:
Phân tích thành phần chính là một phương pháp được sử dụng thường xuyên khi
các nhà phân tích thống kê phải đối mặt với những bộ số liệu với số chiều lớn (big
data) để giảm thiểu chiều dữ liệu mà vẫn không mất đi thông tin và giữ lại được
những thông tin cần thiết cho việc xây dựng các mô hình băng một thuật
toán thống kê sử dụng phép biến đổi trực giao để biến đổi một tập hợp dữ liệu từ
một không gian nhiều chiều sang một không gian mới ít chiều hơn (2 hoặc 3 chiều)
nhằm tối ưu hóa việc thể hiện sự biến thiên của dữ liệu.
2.3.Đặc tính:
 Giúp giảm số chiều của dữ liệu.

 Thay vì giữ lại các trục toa độ của không gian cũ, PCA xây dụng một không
gian mới ít chiều hơn, nhmg lại có khả năng biểu diễn dữ liệu tốt tương
đương không gian cũ, nghĩa là đảm báo độ biến thiên (variabi lity) của đữ
liệu trên mỗi chiều mới.

 Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của không gian
cũ, do đó về mặt ngữ nghĩa, PCA xây dụng đặc trung mới dựa trên các đặc
tnng đã quan sát được. Điểm hay là những đặc trung này vẫn biểu diễn tốt
dữ liệu ban đầu.

 Trong không gian mới, các liên kết tiềm ẩn của dữ liệu có thể được khám
phá, mà nếu đặt trong không gian cũ thì khó phát hiện hơn, hoặc những liên
kết như thế không thể hiện rõ.
2.4.Cơ sở toán học:
 Kỳ vọng (mean):

Là giá trị mong muốn, nó đơn giản là trung bình cộng của toàn bộ các giá trị

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

Cho N giá trị x1, x2,…, xn:

 Phương sai (variance):

Là trung bình cộng của bình phương khoảng cách từ mỗi điểm tới kỳ vọng, phương
sai càng nhỏ thì các điểm dữ liệu càng gần với kỳ vọng, tức các điểm dữ liệu càng
giống nhau. Phương sai càng lớn thì ta nói dữ liệu càng có tính phân tán.

 Hiệp phương sai (covariance):

Là độ đo sự biến thiên cùng nhau của hai biến ngẫu nhiên (phân biệt với phương sai
– đo mức độ biến thiên của một biến). Nếu 2 biến có xu hướng thay đổi cùng nhau
(nghĩa là, khi một biến có giá trị cao hơn giá trị kỳ vọng thì biến kia có xu hướng
cũng cao hơn giá trị kỳ vọng), thì hiệp phương sai giữa hai biến này có giá trị dương.
Mặt khác, nếu một biến nằm trên giá trị kỳ vọng còn biến kia có xu hướng nằm dưới
giá trị kỳ vọng, thì hiệp phương sai của hai biến này có giá trị âm. Nếu hai biến này
độc lập với nhau thì giá trị bằng 0.

 Ma trận hiệp phương sai:

Cho N điểm dữ liệu được biểu diễn bởi các vector cột x1, x2,…, xn , khi đó, vector kỳ
vọng và ma trận hiệp phương sai của toàn bộ dữ liệu được định nghĩa là:

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

Ma trận hiệp phương sai là một ma trận đối xứng, hơn nữa, nó là một ma trận nửa
xác định dương.

Mọi phần tử trên đường chéo của ma trận hiệp phương sai là các số không âm.
Chúng cũng chính là phương sai của từng chiều của dữ liệu.

Các phần tử ngoài đường chéo thể hiện sự tương quan giữa thành phần thứ i và thứ j
của dữ liệu, còn được gọi là hiệp phương sai. Giá trị này có thể dương, âm hoặc
bằng 0. Khi nó bằng 0, ta nói rằng hai thành phần i, j trong dữ liệu là không tương
quan (uncorrelated).

Nếu ma trận hiệp phương sai là ma trận đường chéo, ta có dữ liệu hoàn toàn không
tương quan giữa các chiều.

Minh hoạ ma trận hiệp phương sai:

 Trị riêng (eigenvalue), vector riêng (eigenvector) của ma trận hiệp phương sai:

Cho một ma trận vuông , nếu số vô hướng và vector thoả mãn:

thì được gọi là một trị riêng của và được gọi là vector riêng tương ứng với trị riêng
đó.

- Trị riêng là nghiệm của phương trình đặc trưng.

- Một trị riêng có thể có nhiều vector riêng.

- Mỗi vector riêng chỉ ứng với một trị riêng duy nhất.

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

- Nếu x là một vector riêng của ứng với thì cũng là vector riêng ứng với trị riêng
đó.

- Mọi ma trận vuông bậc n đều có n trị riêng (kể cả lặp) và có thể là các số phức.

- Với ma trận đối xứng, tất cả các trị riêng đều là các số thực.

- Với ma trận xác định dương, tất cả các trị riêng của nó đều là các số thực dương.
Với ma trận nửa xác định dương, tất cả các trị riêng của nó đều là các số thực không
âm.

 Phương pháp giải tìm trị riêng, vector riêng:

Bước 1: Giải phương trình đặc trưng để tìm trị riêng:

Bước 2: Giải hệ phương trình tìm vector riêng tương ứng với trị riêng :

2.5.Các bước phân tích thành phần chính:

Bước 1: Tính giá trị trung bình của .

Bước 2: + Tính vectơ

+ Tính ma trận hiệp phương sai:

Bước 3: Tìm trị riêng của và sắp xếp theo giá trị giảm dần và tìm các vectơ riêng
đơn vị ứng với các trị riêng.

Bước 4: Chọn trị riêng ban đầu và vectơ riêng đơn vị ứng với các trị riêng này.
Lập ma trận có các cột là các vectơ riêng đã chọn. Ma trận là phép biến đổi cần
tìm.

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

Bước 5: Tính ảnh của vectơ .

Dữ liệu ban đầu được xấp xỉ bởi

Mỗi cột của chứa tọa độ của các hàng của ma trận trong cơ sở từ các cột của ma
trận .

Lưu ý:

- Ma trận là ma trận đối xứng thực và các trị riêng của là các số không âm.

- Ma trận luôn chéo hóa trực giao được:

+ Trên đường chéo của là phương sai của các vectơ . Phần tử là hiệp phương
sai của và .

+ Tổng các phần tử trên đường chéo của là phương sai của bảng dữ liệu. Giả sử
. Trên đường chéo của là các trị riêng của .

- Ma trận là ma trận trực giao. Mỗi trực giao tương ứng với một phép quay.

+ Các cột của ma trận tạo nên hệ trực chuẩn. Nếu ta chọn cơ sở trực chuẩn là
họ vectơ cột của ma trận thì ta xây dựng được hệ trục tọa độ mới dựa trên các
vectơ này và có một phép quay từ hệ trục tọa độ ban đầu sang hệ trục tọa độ mới.

- Nếu dữ liệu mẫu (sample data) thì .

- Nếu dữ liệu dân số (population data) thì .


2.6.Ứng dụng của phân tích thành phần chính trong lĩnh vực chuyên môn:
- Kinh tế: Sử dụng trong tính toán, dự đoán vĩnh vực chứng khoán cổ phiếu,…

- Sinh học: Thống kế và phân loại các mã gen tế bào phức tạp,…

- Kỹ thuật: Sử dụng trong các thuật toán hiện đại như: nhận diện khuôn mặt,…

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

CHƯƠNG III: ỨNG DỤNG CỦA PCA TRONG NHẬN DIỆN


KHUÔN MẶT

3.1.Ý tưởng chính:


Mục tiêu của phương pháp PCA là “ giảm số chiều” của 1 tập vector sao cho vẫn
đảm bảo được “ tối đa những thông tin quan trọng nhất”. Tức là Feature Extraction (
giữ k thuộc tính “mới”) chứ không phải Feature Selection ( giữ lại k thuộc tính
nguyên gốc ban đầu).

3.2.Ứng dụng của PCA trong nhận diện khuôn mặt:


-Tiền xử lý: Chuẩn hoá kích cỡ giữa ảnh trong cơ sở dữ liệu (CSDL)

-Tách khuôn mặt: khuôn mặt trên ảnh chụp được tách ra phần mặt, nó sẽ là các
khuôn mặt cần tìm và chức năng trích chọn đặc trưng sẽ sử dụng các ảnh được tách
ra này.

-Trích chọn đặc trưng: Tìm ra các đặc trưng chính của ảnh mặt, từ các đặc trưng
này hình thành các vector đặc trưng, các vector này sẽ được sử dụng để đối sánh sự
giống nhau giữa ảnh mặt cần tìm và ảnh mặt trong CSDL

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

- Đối sánh: Thực hiện việc so sánh giữa các vector đặc trưng để chọn ra độ tương tự
giữa ảnh cần tìm và ảnh trong CSDL.
3.3.Nhược điểm:
Trong những trường hợp sau, PCA Eigenfaces sẽ nhận dạng sai:

 Khác nhau về điều kiện ánh sáng.

 Khác nhau về điệu bộ (nghiêng đầu, nhảy,.. ).

 Cảm xúc ( cười to, nheo mắt, há miệng,… ).


3.4.Các thử thách mà nhận diện khuôn mặt gặp phải:
 Điều kiện sáng: là một trong những thách thức lớn nhất của nhận dạng mặt,
hiện tại chưa có phương pháp tốt cho ảnh chụp ở điều kiện ngoài trời.

 Sự thay đổi hướng khuôn mặt: kết quả với các ảnh có hướng thay đổi còn
khá khiêm tốn.

 Nhận diện khuôn mặt dựa trên video: đối với sự phát triển của phương tiện
đa truyền thông, thông tin mặt người trong các dữ liệu video là vô cùng
nhiều. Tuy nhiên hầu hết các phương pháp nhận dạng vẫn làm việc với ảnh
tĩnh được trích xuất từ dữ liệu video, vẫn chưa có phương pháp tốt tận dụng
hết ưu thế của dữ liệu video.

 Điều kiện lão hóa: việc nhận dạng khuôn mặt thay đổi theo thời gian thực sự
vẫn còn là một vấn đề lớn ngay cả đối với khả năng nhận dạng của con
người.

 Độ phân giải thấp: các ảnh thu được từ các camera giám sát thường có kích
thước và chất lượng rất thấp, các kết quả nghiên cứu về lĩnh vực này còn
chưa nhiều.

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

 Các hệ thống lớn: các cơ sở dữ liệu ảnh khuôn mặt được thử nghiệm bởi các
nhà nghiên cứu còn khá nhỏ (từ vài trăm tới vài chục nghìn ảnh mặt), tuy
nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL ảnh khuôn mặt của
cảnh sát có thể chứa từ hàng triệu đến hơn 1 tỉ ảnh.
3.5.Ứng dụng nhận diện khuôn mặt trong thực tế:
 Nhận dạng tội phạm.

 Thẻ căn cước, chứng minh thư nhân dân (Face Indentification).

 Hệ thống theo dõi, quan sát và bảo vệ.

 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.

 Giải pháp bảo mật bổ sung cho các giao dịch rút tiền tự động (ATM).

 Hệ thống tuơng tác giữa người và máy: giúp những người bị tật hoặc khiếm

 Kiểm tra trạng thái người lái xe có ngù gật, mất tập trung hay không, và hỗ trợ
thông báo khi cần thiết.

 khuyết có thể trao đổi.

 Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt
người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng
truyền hình.

 Ứng dụng trong việc giao tiếp giữa người với máy.

 Ứng dụng trong video phone.

 Phân loại trong lưu trữ hình ảnh trong điện thoại di động.

 Thiết kế điều khiển robot.

10

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

CHƯƠNG IV: PCA TRÊN PHẦN MỀM MATLAB

4.1.Sơ đồ khối:

BẮT ĐẦU

CHỌN NGẪU
NHIÊN 1 MA
TRẬN

NHẬP GIÁ TRỊ K


(số chiều còn lại sau khi
giảm)

MA TRẬN ĐÃ
GIẢM CHIỀU
11

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

4.2.Code PCA trong Matlab:


K = input("Nhap gia tri K: ");
disp('Ma tran Input:');
%X = rand(5,3);
X = [0.4898 0.2760 0.4984; 0.4456 0.6797 0.959; 0.6463
0.6551 0.3404; 0.7094 0.1626 0.5853;0.7547 0.1190 0.2238];
%X = [4 11; 8 4; 13 5; 7 14];
disp(X);
Xm = X - mean(X);
C=cov(Xm);
[V,D]=eig(C);
[~,ind] = sort(diag(D),"descend");
Vs = V(:,ind);
Uk = Vs(:,1:K);
Z = Xm*Uk
Khi chạy code và nhập giá trị K, ta sẽ cho ra được kết quả:

12

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

CHƯƠNG V: KẾT LUẬN

Mục đích của phân tích thành phần chính là rút ra thông tin chủ yếu chứa trong
bảng số liệu bằng cách xây dựng một biểu diễn đơn giản hơn sao cho đám mấy số
liệu được thể hiện rõ nhất. Cụ thể hơn, phân tích thành phần chính tức là đi tìm
những trục hay mặt phẳng “phản ánh” tốt nhất, trung thực nhất đám mây điểm
-biến, điểm - cá thể.

Nhận diện khuôn mặt bằng PCA là một trong ứng dụng tuyệt vời với những giá trị
mà nó mang lại. Nhờ có những ứng dụng ấy và sự tiến bộ trong khoa học công
nghệ, cuộc sống con người đã nâng cấp lên và không còn khó khăn như trước kia.

TÀI LIỆU THAM KHẢO


[1] Đại số Tuyến Tính – Đặng Văn Vinh. Đại Học Quốc Gia TP. Hồ Chí Minh,
Trường Đại Học Bách Khoa, 2020.

13

Downloaded by V?n Trí (leetriss1509@gmail.com)


lOMoARcPSD|21946182

[2] Phạm Thị Ngọc Yến, Lê Hữu Tình, “Cơ sở Matlab và ứng dụng”, NXB Khoa học &
Kỹ thuật

[3] Principal Component Analysis


https://machinelearningcoban.com/2017/06/15/pca/

[4] Face recognition using eigenfaces PCA algorithm

https://www.geeksforgeeks.org/ml-face-recognition-using-eigenfaces-pca-
algorithm/

[5] Tạp Chí Khoa Học ĐHQGHN - Phạm Văn Huấn, Khoa học tự nhiên và công
nghệ số 28.

14

Downloaded by V?n Trí (leetriss1509@gmail.com)

You might also like