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ó t
Trang 1ĐẠ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
TP.HCM, 12/2021
Trang 2MỤ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
Trang 3CHƯƠ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).
Trang 4CHƯƠ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ạ:
Trang 52.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ị
Trang 6Cho N giá trị x , x ,…, x1 2 n:
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 x , x ,…, x , khi đó, vector kỳ 1 2 n vọng và ma trận hiệp phương sai của toàn bộ dữ liệu được định nghĩa là:
Trang 7Ma 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
Trang 8- 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
Trang 9Bướ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,…
Trang 10CHƯƠ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
Trang 11- Đố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
Trang 12 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
Trang 13CHƯƠ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
Trang 144.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ả:
Trang 15CHƯƠ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
Trang 16[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