Giới thiệu về PCA 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ủ
Trang 1HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TIẾN ĐỘ TIỂU LUẬN
XỬ LÝ ẢNH VÀ THỊ GIÁC MÁY TÍNH
TÊN ĐỀ TÀI:
NHẬN DIỆN KHUÔN MẶT BẰNG THUẬT TOÁN PCA (Principal Component Analysis)
HỌC KỲ 2 – NĂM HỌC: 2023 – 2024
MÃ LỚP HỌC PHẦN: 010100086902 GIẢNG VIÊN: Trần Nguyên Bảo
Nhóm sinh viên thực hiện: Võ Thành Được
Thái Nhật Thiên
Đỗ Minh Nhật Ngô Văn Minh
Bùi Đăng Khoa
TP HCM, tháng 2 năm 2024
PHẦN 1 CƠ SỞ LÝ THUYẾT
Trang 2I Giới thiệu đề tài
Trong thời đại số hóa ngày nay, cùng với sự phát triển của xã hội, vấn đề an ninh, bảo mật đang được yêu cầu khắt khe tại mọi quốc gia trên thế giới Các hệ thống nhận dạng người, đồ vật,… được ra đời và phát triển ngày càng mạnh với độ tin cậy cao Từ những ứng dụng phổ biến như mở khóa điện thoại di động cho đến việc giám sát an ninh tại các cơ sở công cộng, nhận diện khuôn mặt đang trở thành một phần không thể thiếu của cuộc sống ngày nay Với cách tiếp cận đối tượng nhận diện theo phương pháp này, chúng ta có thể thu nhận được nhiều thông tin từ đối tượng hơn,
mà không cần tác động nhiều đến đối tượng cũng vẫn đảm bảo tính chính xác, an toàn và thuận tiện
Hiện nay có rất nhiều phương pháp khác nhau để nhận diện khuôn mặt của một người như phương pháp học máy và học sâu Tuy nhiên hai phương pháp này có nhược điểm khá lớn khi yêu cầu xây dựng một tập cơ sở dữ liệu lớn và đồng thời đòi hỏi việc tính toán, xử lý dữ liệu phải nhanh và chính xác Do đó hai phương pháp này
sẽ tốn rất nhiều thời gian và không đáp ứng được nhu cầu của khách hàng Vậy nhiệm
vụ đặt ra là nghiên cứu và xây dựng một phương pháp nhận diện khuôn mặt vừa có
độ chính xác cao mà còn khối lượng và thời gian tính toán lại ít
Để giải quyết vấn đề trên nhóm chúng em thông qua quá trình tìm hiểu và nghiên cứu xin đề xuất ra phương pháp nhận diện diện khuôn mặt bằng thuật toán PCA (Principal Component Analysis) Phương pháp PCA có đặc điểm giảm bớt số thành phần không cần thiết tạo ra hiệu quả tính toán nhanh mà vẫn đảm bảo được độ chính xác cao
Trang 3Do đó nhóm chúng em đã chọn đề tài “Nhận diện diện khuôn mặt bằng thuật toán PCA (Principal Component Analysis)” trên công cụ Matlab để nghiên cứu nhằm mục đích tìm hiểu bài toán nhận diện khuôn mặt, từ đó làm tiền đề có thể phát triển đề tài theo hướng xây dựng các hệ thống ứng dụng trong thực tiễn như: điểm danh, giám sát người ra vào, mở khóa điện thoại di động, an ninh tại các nơi công cộng,…
II Cơ sở lý thuyết
1 Thuật toán PCA (Principal Component Analysis)
1.1 Giới thiệu về PCA
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 họa:
Hình 1.1 Không gian mới trong PCA
1.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
(bigdata) để 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
Trang 4kê 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
1.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, nhưng 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 (variability) của dữ 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 trưng mới dựa trên các đặc trưng đã quan sát được Điểm hay là những đặc trưng 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õ
1.4 Cơ sở toán học
a) 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ị Cho N giá trị x1, x2,…, xn:
b) 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
Trang 5
c) 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
d) 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à:
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
Trang 6Cá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:
e) 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
- 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
Trang 7- 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
f) 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 :
1.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ộng
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
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
1.6 Ưu điểm, tại sao sử dụng PCA trong xử lý ảnh
a) Giảm kích thước ảnh
Trang 8- PCA có thể giảm kích thước ảnh một cách hiệu quả, giúp tiết kiệm dung lượng lưu trữ và thời gian xử lý
- Việc giảm kích thước ảnh không ảnh hưởng nhiều đến chất lượng ảnh, đặc biệt là khi chỉ cần giữ lại các đặc trưng quan trọng
b) Nâng cao hiệu quả xử lý ảnh
- PCA giúp loại bỏ các nhiễu và thông tin không cần thiết trong ảnh, giúp nâng cao hiệu quả của các thuật toán xử lý ảnh khác như phân loại ảnh, nhận dạng khuôn mặt,…
- PCA giúp tập trung vào các đặc trưng quan trọng của ảnh, giúp các thuật toán xử
lý ảnh dễ dàng phân tích và xử lý ảnh hơn
c) Tăng tốc độ xử lý ảnh
- Do PCA giúp giảm kích thước ảnh và loại bỏ các thông tin không cần thiết, nên tốc độ xử lý ảnh cũng được tăng lên
- Việc tăng tốc độ xử lý ảnh đặc biệt hữu ích trong các ứng dụng thời gian thực như giám sát video,…
d) Tăng khả năng khái quát hóa
- PCA giúp tách rời các đặc trưng chung của ảnh khỏi các biến thể ngẫu nhiên, giúp tăng khả năng khái quát hóa của các thuật toán học máy
- Việc tăng khả năng khái quát hóa giúp các thuật toán học máy có thể hoạt động hiệu quả hơn với các ảnh mới mà chưa từng gặp trước đây
e) Đơn giản và dễ sử dụng:
- PCA là một thuật toán đơn giản và dễ sử dụng, có thể được triển khai dễ dàng trong các ứng dụng xử lý ảnh
Trang 9- PCA có thể được kết hợp với các thuật toán xử lý ảnh khác để tạo ra các hệ thống
xử lý ảnh hiệu quả và mạnh mẽ
1.7 Database
PHẦN 2 DEMO CODE
Trang 101 Giao diện
Trang 112 Demo
Trang 14Tài liệu tham khảo
[1] Principal Component Analysis
https://machinelearningcoban.com/2017/06/15/pca/
https://www.geeksforgeeks.org/principal-component-analysis-pca/
https://www.analyticsvidhya.com/blog/2022/07/principal-component-analysis-beginner-friendly/