1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn Đại số tuyến tính Đề tài cơ sở lý thuyết và Ứng dụng của phân tích pca vào nhận diện khuôn mặt

15 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ sở lý thuyết và ứng dụng của phân tích PCA vào nhận diện khuôn mặt
Tác giả Phạm Văn Chánh, Dặng Huy Hoàng, Nguyễn Thanh Nhơn, Trương Tấn Phúc, Nguyễn Thái Sơn, Lê Quốc Thắng, Hoàng Anh Thư
Người hướng dẫn TS. Đặng Văn Vinh, Th.S Bùi Thị Khuyên
Trường học Đại học Quốc gia TP.HCM, Trường Đại học Bách khoa, Khoa Cơ khí
Chuyên ngành Đại số tuyến tính
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 1,13 MB

Nội dung

Trong phần nội dung này chúng ta sẽ tìm hiểu về phân tích thành phân chính PCA và ứng dụng của nó vào nhận diện khuôn mặt... Một số khái niệm Thành phần chính là thành phần thể hiện đượ

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CƠ KHÍ

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

ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI: CƠ SỞ LÝ THUYẾT VÀ ỨNG DỤNG CỦA PHÂN TÍCH

PCA VÀO NHẬN DIỆN KHUÔN MẶT

Lớp L10-Nhóm 8

Sinh viên thực hiện:

Phạm Văn Chánh 2012709

Dặng Huy Hoàng 2111227

Nguyễn Thanh Nhơn 2114328

Trương Tấn Phúc 2112059

Nguyễn Thái Sơn 2114664

Lê Quốc Thắng 2110549

Hoàng Anh Thư 2114951

Giáo viên hướng dẫn:

TS.Đặng Văn Vinh

Th.S Bùi Thị Khuyên

Thành phố Hồ Chí Minh, tháng 4/2022

Trang 2

MỤC LỤC

CHƯƠNG 1: MỞ ĐẦU 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

I Một số khái niệm toán học sử dụng trong PCA 4

1 Các đặc trưng của vecto ngẫu nhiên 4

2 Trị riêng, vecto riêng của ma trận hiệp phương sai 4

II Cơ sở lý thuyết 5

1 Một số khái niệm 5

2 Các bước phân tích PCA: 6

CHƯƠNG 3: ỨNG DỤNG CỦA PCA VÀO NHẬN DIỆN KHUÔN MẶT 11

I Quy trình nhận dạng 11

1 Face detection (Phát hiện khuôn mặt): 11

2 Preprocessing (Tiền xử lý): 12

3 Feature extraction (Trích chọn đặc trưng): 12

4 Recognition (Nhận dạng): 12

II Ứng dụng PCA vào khuôn mặt 12

1 Ưu điểm 12

2 Nhược điểm 12

3 Ví dụ trong thực tế 12

4 Code 13

TÀI LIỆU THAM KHẢO 15

Trang 3

CHƯƠNG 1: MỞ ĐẦU

Với sự phát triển không ngừng của kĩ thuật số, khoa học công nghệ, có rất nhiều thuật toán, máy móc giúp con người giải quyết các khó khăn, làm những công việc đòi hỏi tốc độ xử lí cao, độ chính xác cao, hiệu suất, độ hiệu quả gấp nhiều lần so với con người làm

Ứng dụng “Nhận diện khuôn mặt” chắc chắn là một ứng dụng mang lại giá trị to lớn Việc tìm kiếm thông tin một người như quê quán, ngày sinh, sẽ rất mất thời gian và công sức.Vậy giải quyết vấn đề này thế nào ? Chắc chắn ứng dụng “Nhận diện khuôn mặt” là một câu trả lời

Ứng dụng nhận diện khuôn mặt giúp việc tìm kiếm thông tin dễ hơn qua khuôn mặt, hiệu quả rất tốt Trong nhiều năm, có nhiều công trình nghiên cứu thuật toán tìm kiếm bằng ảnh đen trắng, khả năng nhận diện kém, nhận diện được một người trong một khung hình và chỉ nhìn thẳng Cho đến ngày nay ứng dụng này ngày càng mở rộng, phổ biến và phát triển không ngừng, khả năng nhận diện và phạm vi rộng hơn.Và chúng ta có thể dễ dàng bắt gặp ứng dụng này qua chức năng mở khóa khuôn mặt trên điện thoại, trong doanh nghiệp, trường học hay là tìm kiếm tội phạm,

Trong phần nội dung này chúng ta sẽ tìm hiểu về phân tích thành phân chính PCA và ứng dụng của nó vào nhận diện khuôn mặt

Trang 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

I Một số khái niệm toán học sử dụng trong PCA

1 Các đặc trưng của vecto ngẫu nhiên

a) Kỳ vọng (mean, expected value)

 Ý nghĩa: giá trị “mong muốn”, biểu diễn giá trị trung bình của một biến

 Biểu diễn toán học:

Với biến x ngẫu nhiên rời rạc:

𝜇 = 𝑚𝑥 = 𝐸{𝑥} = 𝛴𝑝𝑖𝑥𝑖

b) Độ lệch chuẩn (Standard Deviation)

 Ý nghĩa: đo tính biến động mang tính thống kê Nó cho thấy sự chênh

lệch về giá trị của từng thời điểm đánh giá so với giá trị trung bình

 Biểu diễn toán học:

𝜎 = 𝑠 = 𝐸{𝑋(𝑡) − 𝑚𝑥(𝑡)}

c) Phương sai (variance)

 Ý nghĩa: phương sai của một biến ngẫu nhiên là thước đo sự phân tán

thống kê của biến đó, nó hàm ý các giá trị của biến đó thường ở cách giá trị

kỳ vọng bao xa

 Biểu diễn toán học:

𝑣𝑎𝑟(𝑋) = 𝜎2 = 𝑆2 = 𝐸 {(𝑋(𝑡) − 𝑚𝑥(𝑡))2}

d) Hiệp phương sai (covariance)

 Ý nghĩa: 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)

 Biễu diễn toán học:

𝑐𝑜𝑣(𝑋, 𝑌) = 𝐸 {(𝑋(𝑡) − 𝑚𝑥(𝑡)) (𝑌(𝑡) − 𝑚𝑦(𝑡))}

2 Trị riêng, vecto riêng của ma trận hiệp phương sai

a) Ma trận hiệp phương sai (covariance matrix)

Trang 5

X là vecto cột, một thành phần 𝑥𝑖 là biến ngẫu nhiên có phương sai xác định và 𝐸{𝑥𝑖} = 𝜇𝑖

⇒ Xây dựng ma trận hiệp phương sai (matrix covariance) với các thành phần 𝑠𝑖,𝑗 là hiệp phương sai:

𝑠𝑖,𝑗 = 𝑐𝑜𝑣(𝑋𝑖, 𝑋𝑗) = 𝐸{(𝑋𝑖 − 𝜇𝑖)(𝑋𝑗 − 𝜇𝑗)}

b) Trị riêng, vecto riêng

 Khái niệm:

Cho 𝐴 ∈ 𝐶𝑚𝑥𝑚 là một ma trận vuông

Vecto 𝑢 ∈ 𝐶𝑚 gọi là vecto riêng ứng với trị riêng 𝜆 ∈ 𝐶 nếu:

𝐴𝑢 = 𝜆𝑢

1 Một số khái niệm

Thành phần chính là thành phần thể hiện được tốt nhất sự khác biệt giữa các điểm dữ liệu trong bộ dữ liệu Có thể xét ví dụ sau trong không gian 3 chiều Ot1t2t3 Nếu chiếu 4 điểm A, B, C, D xuống 3 trục thì Ot1 là thành phần chính (vì toạ độ trên trục này của 4 điểm phân biệt)

Dimensionality Reduction (giảm chiều dữ liệu), nói một cách đơn giản, là việc đi tìm một hàm số, hàm số này lấy đầu vào là một điểm dữ liệu ban đầu

𝒙 ∈ ℝ𝑫 với D rất lớn, và tạo ra một điểm dữ liệu mới 𝒛 ∈ ℝ𝒌 có số chiều K<D là chỉ giữ lại K phần tử quan trọng nhất Tuy nhiên, việc làm này chắc chắn chưa phải tốt nhất vì chúng ta chưa biết xác định thành phần nào là thành phần quan trọng hơn Hoặc trong trường hợp xấu nhất, lượng thông tin

Trang 6

mà mỗi thành phần mang là như nhau, bỏ đi thành phần nào cũng dẫn đến việc mất một lượng thông tin lớn

Tuy nhiên, nếu chúng ta có thể biểu diễn các vector dữ liệu ban đầu trong một hệ cơ sở mới mà trong hệ cơ sở mới đó, tầm quan trọng giữa các thành phần là khác nhau rõ rệt, thì chúng ta có thể bỏ qua những thành phần ít quan trọng nhất

PCA chính là phương pháp đi tìm một hệ cơ sở mới sao cho thông tin của dữ

liệu chủ yếu tập trung ở một vài tọa độ, phần còn lại chỉ mang một lượng thông tin nhỏ Và để cho đơn giản trong tính toán, PCA sẽ tìm một hệ trực chuẩn mới để làm cơ sở

Hình 2.2.1 Ví dụ minh họa cho PCA trong phân tích hình ảnh

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 lại có những cách thu nhận khác nhau và kết luận khác nhau

Giả sử ta có bảng dữ liệu X=(𝑥1|𝑥2|⋯ |𝑥𝑁), với 𝑥𝑘, k=1,2,…, N là các véctơ trong không gian Euclide V

Các véctơ 𝑥1; 𝑥2; … ; 𝑋𝑁 xếp theo cột

Mục tiêu của chúng ta là chọn một phép biển dổi tuyến tính 𝑃 của 𝑉 sao cho phương sai của ảnh của 𝑋 qua phép biến đổi là lớn nhất

Bước 1 Tính giá trị trung bình X̅ của 𝑋

𝑿̅ = 𝒙𝟏+ 𝒙𝟐… + 𝒙𝑵

𝑵

Bước 2 Tính vectơ X̂= X − X̅

𝑿̂ = 𝒙𝒏− 𝑿̅

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

𝑁−1X𝑇X̂

Trang 7

Để đơn giản, ta xét phép biến đổi 𝑃 lên không gian một chiều được sinh

ra bởi véctơ đơn vị 𝑢1, tức là 𝑢1𝑇𝑢1 = 1

Phương sai của ảnh của 𝑋 qua phép biến đổi là

1

𝑁−1∑𝑁𝑛−1{𝑢1𝑇𝑥𝑛 − 𝑢1𝑇𝑥̅}2 = 𝑢1𝑇𝑆𝑢1, với

𝑠 = 1

𝑁−1∑𝑁𝑛−1(𝑥𝑛 − 𝑋̅)𝑇(𝑥𝑛 − 𝑋̅)

Bước 3 Tìm trị riêng của S và sắp xếp theo giá trị giảm dần

𝜆1 > 𝜆2 > ⋯ 𝜆𝑚 và tìm các véctơ riêng đơn vị ứng với các trị riêng

Bước 4 Chọn 𝑘 trị riêng ban đầu và 𝑘 véctơ riêng đơn vị ứng với trị riêng

này Lập ma trận A có các cột là các véc tơ riêng đã chọn Ma trận A là phép đổi cần tìm

Bước 5 Tính ảnh 𝐴𝑇X𝑇 của véctơ X̂

Dữ liệu X ban đầu được xấp xỉ bởi X≈ AX̂ +X̂

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

các cột của ma trận P

Lưu ý:

1/ Ma trận S là ma trận đối xứng thực và các trị riêng của S là các số thực

không âm

2/ Ma trận S luôn chéo hóa trực giao được

3/ Trên đường chéo của S là các phương sai của các véc tơ 𝑥1;𝑥;2; … ; 𝑥𝑁 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 S là phương sai của bảng dữ liệu Giả sử S=PDPT Trên đường chéo của D là các giá trị riêng của S Tổng các giá trị riêng của S bằng tổng các phần tử của S (bằng vết của S) 4/ Ma trận P là ma trận trực giao Mỗi ma trận trực giao tương ứng với một phép quay

Các cột của ma trận P tạo nên hệ trực chuẩn Nếu ta chọn cơ sở trực chuẩn

là họ véctơ cột của ma trận P, thì ta xây dựng được hệ trục tọa độ mới dựa trên các véctơ 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

5/ Nếu dữ liệu mẫu (sample data), thì S = 1

𝑁−1 ∙X𝑇X Nếu dữ liệu dân số (population data), thì S= 1

𝑁X𝑇X̂

Ví dụ phương pháp:

Trang 8

Cho một bộ dữ liệu Đổi hệ trục mới (gốc toạ độ

là kỳ vọng)

Tìm phương có phương sai lớn nhất Thực hiện tương tự với trục

vuông góc, ta có hệ trục toạ độ mới có phương sai lớn nhất:

Chiếu các điểm xuống trục hoành để giảm độ phức tạp của dữ liệu (bằng cách bỏ đi tung độ của điểm dữ liệu)

Ví dụ cụ thể:

Trang 11

CHƯƠNG 3: ỨNG DỤNG CỦA PCA VÀO NHẬN DIỆN

KHUÔN MẶT

1 Face detection (Phát hiện khuôn mặt):

Trang 12

Ảnh đầu vào là ảnh chứa đối tượng gồm một hoặc nhiều người, với gương mặt chính diện hoặc tương đối chính diện để

hệ thống có thể phát hiện Sau khi phát hiện được ví trí và kích thước của một hoặc nhiều khuôn mặt, những khuôn hình chứa mặt sẽ được cắt ra để tiến hành quá trình tiền xử lý

2 Preprocessing (Tiền xử lý):

Khối tiền xử lý sẽ xử lý những khuôn ảnh chứa mặt,chuẩn hóa kích thước ảnh trong cơ sở dữ liệu và ảnh cần nhận dạng cùng một kích thước đã định trước, làm giảm nhiễu, điều chỉnh độ sáng tối làm tăng chất lượng ảnh thuận tiện cho quá trình trích thuộc tính được chính xác và dễ dàng hơn

3 Feature extraction (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

4 Recognition (Nhận dạng):

Bước này 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

1 Ưu điểm

- 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 ả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 Noron, Support Vector Machine … để mang lại hiệu quả nhận

dạng cao hơn

2 Nhược điểm

- PCA phân loại theo chiều phân bố 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

3 Ví dụ trong thực tế

- Khóa khuôn mặt trên điện thoại

- Tìm kiếm, ngăn chặn tội phạm

- Hỗ trợ người khiếm thị

- Ứng dụng mạng xã hội

Trang 13

- Hỗ trợ điều tra pháp y

- Tìm người thân mất tích

4 Code

%% PCAexam.m

%% Principal Components Analysis

%% Step 1: Get some data

disp( '%% Step 1: Get some data' );

x0 = ([2.2 1 2 1.9 3 2.3 5 1.6 1.5 1.1])';

y0 = ([2 0.6 2.9 2.2 3.8 2.7 1.6 3.2 1.6 0.8])';

x = ([x0, y0]);

% plot data

subplot(2,2,1)

plot(x0,y0, 'k+' );

title( 'Original PCA data' );

line([0 0],[-1 4], 'Color' , 'r' , 'LineStyle' , ':' );

line([-1 4],[0 0], 'Color' , 'r' , 'LineStyle' , ':' );

grid on ;

axis([-1 4 -1 4]);

%% Step 2: Normal PCA

disp( '%%%%%%%%%%%%%%%%%%%%%%%%' );

disp( '%% Step 2: Normal PCA' );

mu_x0 = mean(x0); % mean of the x0 values

mu_y0 = mean(y0); % mean of the y0 values

std_x0 = std(x0); % std of the x0 values

std_y0 = std(y0); % std of the y0 values

n = size(x0); % n(1) number of the sample

x1 = (x0 - mu_x0)/(std_x0*sqrt(n(1)));

%normal PCA

y1 = (y0 - mu_y0)/(std_y0*sqrt(n(1)));

Xnorm = ([x1, y1]);

%% Step 3: Calculate the covariance matrix

disp( '%%%%%%%%%%%%%%%%%%%%%%%' );

disp( '%% Step 3: Calculate the covariance matrix' );

covar = cov(x1,y1);

%% Step 4: Calc the eigenvectors and eigenvalues

disp( '%%%%%%%%%%%%%%%%%%%%%%%' );

disp( '%% Step 4: Calculate the eigenvec and eigenval' );

[eivec, eival]=eig(covar);

% Plot data

subplot(2,2,2)

% new coordinates

t = -1:1;

tval1 = eivec(1,2)/eivec(1,1)*t;

tval2 = eivec(2,2)/eivec(2,1)*t;

plot(t,tval1, t, tval2)

legend( 'eivec1' , 'eivec2' );

hold on ;

% normal PCA data

plot(x1, y1, 'k+' );

title( 'Normal PCA data' );

line([0 0],[-1 1], 'Color' , 'r' , 'LineStyle' , ':' );

line([-1 1],[0 0], 'Color' , 'r' , 'LineStyle' , ':' );

grid on

hold off

axis([-1 1 -1 1]);

%% Step 5: Choosing components and forming a feature vector

disp( '%%%%%%%%%%%%%%%%%%%%%' );

disp( '%% Step 5: Choosing components and forming a feature

vector' );

Trang 14

respone = input( 'Number of new coordinates (1 or 2): ' );

dim = respone(1);

if (dim == 1)

eivalmax = max(diag(eival));

if eivalmax == eival(1,1)

fea_vector = eivec(:,1);

else

fea_vector = eivec(:,2);

end

end

if (dim == 2)

eivalmax = max(diag(eival));

if eivalmax == eival(1,1)

fea_vector = [eivec(:,1),eivec(:,1)];

else

fea_vector = [eivec(:,2),eivec(:,1)];

end

end

%% Step 6: Deriving the new data set

disp( '%%%%%%%%%%%%%%%%%%%%%%' );

disp( '%% Step 6: Deriving the new data set' );

Xfinal = ((fea_vector).')*((Xnorm).');

x2 = Xfinal(1,:);

if (dim == 1)

y2 = 0;

else

y2 = Xfinal(2,:);

end

%% (continue )

% Plot data when chosing one eigvalue

subplot(2,2,3)

plot(x1,0, 'k+' );

title( 'Final data when chosing one eigvalue' );

line([0 0],[-1 1], 'Color' , 'r' , 'LineStyle' , ':' );

line([-1 1],[0 0], 'Color' , 'r' , 'LineStyle' , ':' );

grid on ;

axis([-1 1 -1 1]);

% Plot data when chosing two eigvalues

subplot(2,2,4)

plot(x2,y2, 'k+' );

title( 'Final data when chosing two eigvalues ' );

line([0 0],[-1 1], 'Color' , 'r' , 'LineStyle' , ':' );

line([-1 1],[0 0], 'Color' , 'r' , 'LineStyle' , ':' );

grid on ;

axis([-1 1 -1 1]);

Trang 15

Hình ảnh sau khi chạy code

TÀI LIỆU THAM KHẢO

[1] Tuan Remy (24-5-2017) Thuat toan pca full Slideshare.net

[2] Đặng Văn Vinh (2019) GIÁO TRÌNH ĐẠI SỐ TUYẾN TÍNH NXB

Đại Học Quốc Gia Thành phố Hồ Chí Minh

[3] machinelearningcoban.com (2017) Bài 27: Principal Component

Analysis (phần 1/2)

[4] Thai Le Hoang (2021) Bài 4: Phân tích thành phần chính - Trí tuệ

nhân tạo - Nhận dạng youtube.com

[5]tapit.vn-https://tapit.vn/image-processing-he-thong-nhan-dang-khuon-mat-su-dung-pca/

[6] stackoverflow

Ngày đăng: 19/11/2024, 15:32

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w