1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn Đại số tuyến tính phân tích pca Để nhận diện khuôn mặt

21 1 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 đề Phân tích PCA để nhận diện khuôn mặt
Tác giả Đoàn Võ Việt Khôi, Giang Huy Tuấn, Hà Kim Chi, Hồ Anh Duy, Hồ Thành Duy, Hồ Nguyễn Đăng Khoa, Hồ Nguyễn Thảo Nguyên, Hoàng Phong, Hoàng Thế Huy
Người hướng dẫn Nguyễn Xuân Mỹ
Trường học Trường Đại học Bách khoa TP.HCM, Đại học Quốc gia TP Hồ Chí Minh
Chuyên ngành Đại số tuyến tính
Thể loại Bài tập lớn
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 2,07 MB

Nội dung

Khái niệm cơ bản: - Phương pháp phân tích thành phần chính PCA là phương pháp biến đổi từ một không gian nhiều chiều thành một không gian mới ít chiều, cụ thể là giảm chiều dữ liệu từ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM -

ĐH QUỐC GIA TP HỒ CHÍ MINH -

BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 3:

PHÂN TÍCH PCA ĐỂ NHẬN DIỆN KHUÔN

MẶT Giảng viên hướng dẫn: Nguyễn Xuân Mỹ

Lớp: L04 - Nhóm 03 Ngày 08 tháng 05 năm 2024

Trang 2

1

Danh sách sinh viên

Trang 3

2

MỤC LỤC

MỤC LỤC - 2

LỜI MỞ ĐẦU - 3

CƠ SỞ LÝ THUYẾT, KHÁI NIỆM VÀ THUẬT TOÁN - 4

I CƠ SỞ LÝ THUYẾT - 4

1 Khái niệm cơ bản: 4

2 Áp dụng lí thuyết để phân tích đề tài: 4

II ỨNG DỤNG CỦA PCA TRONG THỰC TẾ - 9

1 Biến đổi Gen và Phân tích Biến dị Di truyền 9

2 Tối Ưu Hóa Mô Hình Trong Tài Chính 10

3 Công Nghệ Nhận Diện Khuôn Mặt 10

4 Xử Lý Tín Hiệu và Giảm Nhiễu 10

5 Cải Thiện Dữ liệu Đầu Vào Cho Mô Hình Học Máy 10

III ỨNG DỤNG PCA VÀO NHẬN DIỆN KHUÔN MẶT: -11

1 Khái niệm: 11

2 Giá trị cốt lõi: 11

3 Thuật toán PCA trong nhận diện khuôn mặt 12

4 Code Matlab nhận diện khuôn mặt 16

5 Kết quả 18

DANH MỤC TÀI LIỆU THAM KHẢO -19

LỜI CẢM ƠN -20

Trang 4

3

LỜI MỞ ĐẦ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 đề về đảm bảo an toàn về thông tin cũng như vật chất ngày càng trở nên quan trọng và khó khăn Một trong những phương pháp đơn giản nhất nhưng cũng là bài toán phức tạp nhất đó là xác định một người thông qua khuôn mặt từ đó cập nhật thông tin để đảm bảo an toàn thống tin cũng như tìm kiếm tội phạm

Trong nhiều năm qua có rất nhiêu công trình nghiên cứu về bài toán nhận dạng khuôn mặt người từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay Các nghiên cứu đi từ bài toán đơn giản, mội ảnh chỉ có một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thể thẳng đứng trong ảnh đen trắng Cho đến ngày hôm nay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cùng một ảnh, có nhiều tư thế thay đối trong ảnh Không những vậy mà còn

mở rộng phạm vi từ môi trường xung quanh khá đơn giản cho đến môi trường xung quanh rất phức tạp nhằm đáp ứng nhu cầu của con người

Từ đây ta có được mục tiêu của đề tài “Nhận dạng mặt người bằng thuật toán PCA” là hiểu được cơ sở lí thuyết và thực hiện chương trình tìm kiế , nhận mdạng một bức ảnh có khuôn mặt một người nào đó trong tập ảnh cơ sở giống với khu n mặt của ngườiô đó trong bức ảnh cần kiểm tra bằng một ngôn ngữ lập trình (có thể là Matlab hoặc phần mềm khác)

Trang 5

4

I CƠ SỞ LÝ THUYẾT

1 Khái niệm cơ bản:

- Phương pháp phân tích thành phần chính ( PCA ) là phương pháp biến đổi từ một không gian nhiều chiều thành một không gian mới ít chiều, cụ thể là giảm chiều

dữ liệu từ D về K< D là chỉ giữ lại K là 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à quan trọng hơn Hoặc trong trường hợp xấu nhất, lượng thông tin 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 cái mà có 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

- Mục tiêu của chúng ta là tìm ra K chiều mà có thể đảm bảo rằng các dữ liệu khi được biểu diễn, không bị trùng lặp, không bị mất mát thông tin ( tách biệt nhau hoàn toàn )

2 Áp dụng lí thuyết để phân tích đề tài:

- PCA là phương pháp biến đổi giúp giảm số lượng lớn các biến có tương quan với nhau thành tập ít các biến sao cho các biến mới tạo ra là tổ hợp tuyến tính của những biến cũ không có tương quan lẫn nhau

- Ví dụ, chúng ta có 1000 biến ban đầu có tương quan tuyến tính với nhau, khi

đó chúng ta sử dụng phương pháp PCA xoay chiều không gian cũ thành chiều không gian mới mà ở đó chỉ còn 10 biến không có tương quan tuyến tính mà vẫn dữ được nhiều nhất lượng thông tin từ nhóm biến ban đầu

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

Trang 6

5

(Ảnh minh họa 2 góc chiếu của lạc đà) (Nguồn: RPubs)

( Ảnh minh họa khuôn mặt từ 3 chiều xuống 2 chiều )

- Lấy một ví dụ về việc có hai camera đặt dùng để chụp một con người, một camera đặt phía trước người và một camera đặt trên đầu Rõ ràng là hình ảnh thu được từ camera đặt phía trước người mang nhiều thông tin hơn so với hình ảnh nhìn

Trang 7

6

từ phía trên đầu Vì vậy, bức ảnh chụp từ phía trên đầu có thể được bỏ qua mà không

có quá nhiều thông tin về hình dáng của người đó bị mất

V y ta có th k ậ ể ể đến m t số c tính của PCA như sau: ộ đặ

- Giúp giảm số chiều dữ liệu Giúp visualization khi dữ liệu có quá nhiều chiều- thông tin

- Do dữ liệu ban đầu có số chiều lớn (nhiều biến) thì PCA giúp chúng ta xoay trục tọa độ, xây dựng một trục tọa độ mới đảm bảo độ biến thiên của dữ liệu và giữ lại được nhiều thông tin nhất mà không ảnh hưởng tới chất lượng của các mô hình dự báo (Maximize the variability)

- Do PCA giúp tạo 1 hệ trục tọa độ mới nên về mặt ý nghĩa toán học, PCA giúp chúng ta xây dựng những biến factor mới là tổ hợp tuyến tính của những biến ban đầu

- Trong không gian mới, có thể giúp chúng ta khám phá thêm những thông tin quý giá mới khi mà tại chiều thông tin cũ những thông tin quý giá này bị che mất

Và m t s h n ch cộ ố ạ ế ủa PCA:

- Chỉ làm việc với dữ liệu numeric

- Nhạy cảm với các điểm outlier ( điểm dị biệt có thể làm méo mó tính chuẩn hóa của các dữ liệu )

- Không phù hợp với các mô hình phi tuyến, do PCA hoàn toàn dựa trên các biến đổi tuyến tính

Các bước tiến hành PCA:

- Phương pháp PCA sẽ "chiếu" (biểu diễn) dữ liệu đa chiều lên một không gian

có cơ sở trực giao thức, nếu ta xem mỗi cơ sở trong không gian mới là một biến thì hình ảnh của dữ liệu gốc trong không gian mới này sẽ được biểu diễn thông qua các biến độc lập tuyến tính

- Vấn đề là nếu chuyển dữ liệu ban đầu sang không gian mới thì những thông tin đáng quan tâm của dữ liệu ban đầu liệu có bị mất? Để giải quyết vấn đề này phương pháp PCA sẽ tìm không gian mới với tiêu chí cố gắng phản ánh được càng nhiều thông tin gốc càng tốt và thước đo cho khái niệm "thông tin" ở đây là phương sai Một điểm hay nữa là các biến trong không gian mới độc lập nên ta có thể tính toán được tỷ lệ giải thích phương sai của từng biến mới đối với dữ liệu điều này cho phép

Trang 8

7

ta cân nhắc việc chỉ dùng số ít các biến để giải thích dữ liệu Nói 1 cách ngắn gọn, mục tiêu của phương pháp PCA là tìm 1 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 dữ liệu là lớn nhất có thể (maximize the variability) Bước 1: Tính giá trị trung bình 𝑋 của X

Bước 2: Tính véctơ 𝑋 = X − 𝑋

Tính ma trận hiệp phương sai: S = 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 > ⋯ > λm

và tìm các véctơ riêng đơn vị ứng với các trị riêng

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

Bước 5: Tìm ảnh 𝐴𝑇𝑋𝑇 c a vecto ủ 𝑋

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

Mỗi cột của A𝑋𝑇 chứa tọa độ của các hàng của ma trận ấy 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à phương sai của các véctơ x1; x ; ; x2 N Phần tử sij,

là hiệp phương sai của xi và x j.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 = PD𝑃𝑇.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 ban đầu sang hệ trục tọa độ mới

Trang 9

8

Nếu dữ liệu mẫu (sample data), thì S = 𝑁−1 𝑋𝑇𝑋

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

Ý nghĩa ma trận hiệp phương sai

Ma trận hiệp phương sai của tập hợp m biến ngẫu nhiên là một ma trận vuông hạng (m x m) trong đó các phần tử nằm trên đường chéo ( từ trái sang phải, từ trên xuống dưới ) lần lượt là phương sai tương ứng của các biến này, trong khi các phần

tử còn lại ( không nằm trên đường chéo ) là các hiệp phương sai của đôi một hai biến ngẫu nhiên khác nhau trong tập hợp

Các phần tử trên đường chéo chính của ma trận hiệp phương sai lần lượt là các phương sai của các mẫu dữ liệu theo từng chiều trong không gian m chiều

Ma trận hiệp phương sai có tính chất đối xứng qua đường chéo chính

Có thể tạm hiểu rằng, độ lớn về giá trị của mỗi phần tử cxy trong ma trận hiệp phương sai thể hiện mức độ tương quan (thể hiện bởi phép nhân vô hướng, tiếng Anh: dot product) về độ lệch (thao tác trừ cho giá trị trung bình => tạm gọi nó là "độ lệch") của các mẫu dữ liệu theo chiều xx (dòng thứ x trong ma trận hiệp phương sai)

và chiều yy (cột thứ y trong ma trận hiệp phương sai)

Trang 10

9

II ỨNG DỤNG CỦA PCA TRONG THỰC TẾ

Phân tích thành phần chính PCA ( Principal Component Analysis ), các components ( thành ph ần ) ở đây ta nói thực chất là các vectors độc lập tuyến tính được chọn sao cho khi chiếu các điểm dữ liệu lên vector đó thì các điểm

dữ liệu có sự variance lớn nhất ( biển động nhiều nhất, phương sai lớn nhất )

Xết một cách nhìn khác thì PCA cũng là một bài toán chuyển hệ tọa độ như hình bên dưới

Trong thực tế, PCA là một công cụ kỹ thuật phổ biến trong việc giảm kích thước dữ liệu mà vẫn giữ được các đặc tính quan trọng nhất của dữ liệu ban đầu Dưới đây là một số ứng dụng thực tế của PCA

1 Biến đổi Gen và Phân tích Bi n d Di truy n ế ị ề

Phát hiện Xu Hướng Trong Dữ liệu Sinh học: Trong di truyền học, PCA được

sử dụng để xác định và phân tích các xu hướng và biến đổi trong các bộ gene Ví dụ,

nó có thể giúp phân tích sự khác biệt và tương đồng di truyền giữa các quần thể khác nhau

Trang 11

10

Trực quan Hóa Dữ liệu Phức tạp: PCA giúp giảm số chiều của dữ liệu ditruyền thành vài thành phần chính, giúp các nhà khoa học có thể trực quan hóa dễ dàng hơn và nhận diện các mẫu hoặc cấu trúc nổi bật trong dữ liệu

2 Tối Ưu Hóa Mô Hình Trong Tài Chính

Phân Tích Rủi Ro và Đầu Tư: Trong quản lý danh mục đầu tư, PCA được ứng dụng để tối ưu hóa mô hình rủi ro bằng cách phân tích các nguyên nhân chính dẫn đến sự biến động của giá cổ phiếu

Dự báo và Phân tích Thị Trường: PCA cũng giúp trong việc dự báo tài chính bằng cách làm nổi bật các thành phần có ảnh hưởng lớn đến xu hướng thị trường, qua

đó cung cấp cái nhìn sâu sắc về các yếu tố có ảnh hưởng đến chuyển động của thị trường

3 Công Ngh ệ Nhận Di n Khuôn M tệ ặ

Năng Cao Hiệu Quả Nhận Diện: Trong công nghệ nhận diện khuôn mặt, PCAgiúp giảm bớt chiều dữ liệu của hình ảnh và giữ lại những đặc điểm hữu ích nhất cho việc nhận diện Điều này không chỉ cải thiện tốc độ xử lý mà còn cải thiện độ chính xác của hệ thống

Tối Ưu Hóa Bộ Nhớ và Hiệu Suất: Bằng cách sử dụng PCA, dữ liệu hình ảnh

có thể được nén mà không mất quá nhiều thông tin có giá trị, qua đó cải thiện hiệu suất của hệ thống trong việc lưu trữ và xử lý

4 X Lý Tín Hi u và Gi m Nhi uử ệ ả ễ

Xử Lý Tín Hiệu Âm Thanh và Hình Ảnh: PCA được dùng trong việc giảm nhiễu trên tín hiệu âm thanh và hình ảnh, giúp cải thiện chất lượng của các tín hiệu này bằng cách loại bỏ các thành phần không cần thiết hoặc gây rối

5 Cải Thi n D ệ ữ liệu Đầu Vào Cho Mô Hình H c Máy ọ

Trong học máy và thị giác máy tính, PCA tập trung thông tin quan trọng vàtăng tốc quá trình học của mô hình học máy

Trang 12

Nhận diện khuôn mặt sử dụng PCA trong phương pháp khuôn mặt riêng, giúp cho việc giảm kích thước của cơ sở dữ liệu cho nhận diện ảnh thông qua loại bỏ các vector riêng bằng không và các vector riêng ứng với các giá trị riêng rất nhỏ, đồng thời làm nổi bật nét đặc trưng ảnh, tăng khả năng phân biệt ảnh do việc giảm mối tưong quan giữa các chiều trong tập dữ liệu ảnh huấn luyện, hay nói cách khác làm căng không gian vector ảnh huấn luyện, nhờ đó mà bằng cách tính khoảng cách ngắn nhất với ảnh cần nhận dạng ta có thể dễ dàng tìm được ảnh tương tự trong cơ sở dữ liệu Trong phương pháp này ảnh được lưu trữ như các vector đặc trưng trong cơ sở

dữ liệu, được thực hiện bằng cách ánh xa mỗi ảnh huấn luyện vào không gian khuôn mặt riêng Các đặc trưng này có thể có hoặc không liên quan với các đặc trưng thuộc

về khuôn mặt như mắt, mũi, miệng hay tóc Ảnh nhận diện được chiếu vào không gian khuôn mặt riêng và so sánh với ảnh trong cơ sở dữ liệu

Phương pháp khuôn mặt riêng là một phương pháp hiệu quả được sử dụng trong nhận diện khuôn mặt do tính đơn giản, tốc độ nhanh và khả năng học của nó Các khuôn mặt riêng là các thành phân chính của một sự phân bố khuôn mặt, hay nói cách khác, nó là các vector riêng của ma trận hiệp phương sai của ảnh khuôn mặt nơi

mà mỗi ảnh khuôn mặt N×N pixels được coi như một điểm trong không gian N2chiều Mỗi ảnh huấn luyện tương ứng với một vector riêng, cũng như ta có thể coi các vector riêng như một loại khuôn mặt Các khuôn mặt cũng có thể biểu diễn gần đúng bằng cách sử dụng khuôn mặt riêng tốt nhất, tương ứng với các giá trị riêng lớn nhất, đại diện cho phương sai lớn nhất giữa tập các ảnh

2 Giá tr cị ốt lõi:

- Mục tiêu: “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất”

Trang 13

12

3 Thuật toán PCA trong nh n di n khuôn m t ậ ệ ặ

3.1 Biể diễn lại khuôn mặt u

Tập huấn luyện với n ảnh kích thước M × N được biểu diễn lại thành n vector kích thước MN × 1 Mỗi khuôn mặt được kí hiệu bởi x1, x2,… xn Ví dụ ảnh có kích thước 2 × 2 được biểu diễn như sau:

[255 0

1 32] = [

2551032]

Mỗi khuôn mặt sẽ được chụp nhiều ảnh ở các góc độ khác nhau để tăng tính chính xác

3.2 Tìm nh trung bình và nh trung bình chu n hóaả ả ẩ

Ảnh khuôn mặt trung bình là trung bình cộng các ảnh được tính bởi công thức:

𝜓 = 1

𝑛∑ 𝑥𝑖𝑛

𝑖=1 Ảnh trung bình chuẩn hóa là sự khác biệt giữa ảnh gốc và ảnh trung bình:

ϕi = xi – ψ Việc lấy ảnh trung bình chuẩn hóa giúp cho việc tính ma trận hiệp phương sai ở bước sau dễ dàng hơn

3.3 Tìm ma trận hiệp phương sai

Ta coi vector ảnh là một vector ngẫu nhiên Giả sử ta có là một ma trận vớiA các cột là các vector Như vậy để tính mối tương quan giữa các chiều của vector ϕiảnh ngẫu nhiên ta có công thức tính ma trận hiệp phương sai sau:

𝐴 = [𝜙1, 𝜙 , … , 𝜙2 𝑛]

C = A × A T

Ma trận có kích thước (M × N) × (M × N) rất lớn gây khó khăn cho việcC tính toán Thay vào đó ta sẽ tính A AT , ma trận này chỉ có kích thước n x n Nhưng ta cần tính toán các vector riêng của ma trận nên ta sẽ biến đổi công thức như sau:C

Ngày đăng: 13/11/2024, 14:01

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

TÀI LIỆU LIÊN QUAN

w