Để trích chọn đặc trƣng của khuôn mặt giải thuật PCA đòi hỏi phải có 1 tập ảnh mặt cơ sở (giống nhƣ 1 tập ảnh mẩu ban đầu) để tạo ra không gian ảnh mặt. Ảnh cần trích chọn đặc trƣng sẽ nhƣ 1 vector trong không gian ảnh mặt, lấy hình chiếu của nó lên từng vector cơ sở trực giao của không gian, ta sẽ thu đƣợc tất cả các hệ số theo các hƣớng, đây chính là đặc trƣng PCA của nó. Nếu tập ảnh mặt cơ sở của nó càng lớn và đa dạng tức là số chiều của không gian mặt càng nhiều thì đặc trƣng PCA trích đƣợc càng đầy đủ và chính xác.
* Bƣớc 1: Thiết lập không gian ảnh mặt
Ta chuẩn bị tập ảnh mặt cơ sở để tạo không gian mặt. Giả sử các ảnh này là ảnh thang xám kích cỡ m*n pixels và tập ảnh có M ảnh.
Chuyển ảnh ngõ vào 2 chiều thành vector 1 chiều
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 41
Imagesmatrix = [imagevector1 imagevector2 … imagevectorM]T
Tính tập vector cơ sở trực giao của không gian mặt
Tìm các vector riêng (eigenvector) của không gian ảnh mặt. Do tập ảnh cơ sở có M ảnh nên ta cũng sẽ tìm đƣợc M eigenvector. Tới đây ta có thể giữ lại toàn bộ (nếu ta muốn có đặc trƣng PCA đầy đủ để có thể khôi phục lại nguyên vẹn ảnh gốc ban đầu) hoặc chỉ giữ lại 1 số vector có trị riêng lớn nhất (nếu muốn nén ảnh có mất mát thông tin). Tập các vector này sẽ đóng vai trò là tập hàm cơ sở trực giao đại diện cho không gian ảnh. Do dữ liệu là ảnh mặt nên ta sẽ gọi tập eigenvector là eigenfaces.
* Bƣớc 2: Tính đặc trƣng PCA của ảnh ngõ vào
Chiếu ảnh lên không gian mặt. Phép chiếu chính lá phép nhân ma trận giữa ảnh ngõ vào với tập vector cơ sở trực giao của không gian mặt. Kết quả là ta sẽ có 1 vector đặc trƣng PCA gồm M thành phần (tƣơng ứng với M eigenvector của không gian mặt).
Giải thuật thực hiện phương pháp PCA:
. Giải thuật cơ bản:
Cho tập ảnh Γ1, Γ2, Γ3 , … ΓM ảnh trung bình đƣợc tính:
Ảnh hiệu chỉnh:
Ma trận ảnh CSDL:
với A = [ φ1 φ2 … φM ]
Ma trận C này chính là ma trận covariance của tập ảnh mà từ đó ta mới tính ra đƣợc các eigenvector và eigenvaluẹ Do ma trận C là ma trận vuông m*n (bằng kích thƣớc ảnh) nên sẽ có tất cả m x n eigenvector. Nhƣng nếu M < m x n (M là số ảnh trong CSDL) thì chỉ có M eigenvector có ý nghĩa (sẽ đƣợc kiểm chứng ở phần sau), vì tổng giá trị riêng mà chúng chiếm có thể lên đến hơn 99%, các eigenvector còn lại sẽ có eigenvalue xấp xỉ = 0. Do đí ta sẽ giữ lại M eigenvector có giá trị riêng lớn nhất.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 42
M eignevector của tập CSDL un, n = 1 … M đƣợc tính (theo định nghĩa): Giá trị riêng (eigenvector):
Uk đƣợc chọn sao cho λk max.
Uk và λk là eigenvector và eigenvalue của ma trận C
Trong thực tế, M eigenfaces là đủ cho quá trình khôi phục ảnh, còn trong nhận dạng ta chỉ cần giữ lại M‟ <M eigenfaces có eigenvalue lớn nhất là cũng đủ. Nhƣ vậy, quá trình thiết lập CSDL chỉ đƣợc thực hiện 1 lần và đƣợc lƣu lạị Điều này làm tối ƣu hoá quá trình nhận dạng vì tập CSDL là rất lớn, thời gian tính toán rất lâụ
Cải tiến giải thuật PCA:
Trong toàn bộ giải thuật, việc tính eigenfaces tập vector cơ sở của không gian mặt) là vấn đề phức tạp nhất. Quá trình này chiếm rất nhiều thời gian và bộ nhớ vì ma trận ảnh CSDL C có kích thƣớc rất lớn. Cụ thể nhƣ sau:
Ta có tập ảnh CSDL gồm các kích thƣớc 54*46 pixels (khá nhỏ), ảnh này sau khi qua hàm lọc Gabor sẽ cho ra ảnh chập là vecto cột có 61824 hàng, nếu dùng ảnh này làm ngõ vào của PCA thì ma trận C sẽ có kích thƣớc là 61824*61824 (rất lớn). Chỉ riêng C đã chiếm rất nhiều bộ nhớ máy tính nên việc lƣu trữ và load lên là hầu nhƣ không thể, chƣa kể đến việc phải xử lý nó (bao gồm các phép nhân, nghịch đảo các ma trận rất phức tạp).
Vì thế ta phải tìm cách tính nhanh eigenfaces bằng cách giảm số chiều của ma trận C.
- Tính nhanh eigenfaces:
Thay vì tính eigenfaces cho ma trận C = AAT
ta sẽ thực hiện trên ma trận L = ATA với kích thƣớc giảm chỉ còn M*M (M là số ảnh ngõ vào).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 43
Chƣơng 3
PHƢƠNG PHÁP NHẬN DẠNG MẶT NGƢỜI MLP-PCA-GA