Thuật toán sử dụng cách tiếp cận lý thuyết thông tin trong việc mã hóa các ảnh mặt người và xác định các vector riêng tương ứng với giá trị riêng lớn nhất của ma trận hiệp phương sai của
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Vũ Việt Vũ
Thái Nguyên - 2014
Trang 3MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC TỪ VIẾT TẮT ii
DANH MỤC CÁC BẢNG ii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ iii
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
CHƯƠNG 1 TỔNG QUAN VỀ NHẬN DẠNG ẢNH MẶT NGƯỜI 3
1.1 Tổng quan về nhận dạng ảnh mặt người 3
1.2 Các hướng tiếp cận trong nhận dạng mặt người 4
1.2.1 Phương pháp trích chọn đặc trưng sử dụng mặt riêng (Eigenface) 4
1.2.2 Phương pháp trích chọn đặc trưng sử dụng mô hình Markov ẩn 5
1.2.3 Phương pháp phân tích thành phần chính 5
1.3 Bố cục luận văn 6
CHƯƠNG 2 TRÍCH CHỌN ĐẶC TRƯNG 7
2.1 Phương pháp phân tích thành phần chính - PCA 7
2.1.1 Cơ sở toán học 8
2.1.2 Phương pháp PCA 17
2.2 Phương pháp phân tách tuyến tính - LDA 24
2.3 Phương pháp xử lý hình thái 27
2.3.1 Biến đổi trúng-trượt (hit-or-miss) 29
2.3.2 Phép dãn ảnh và co ảnh tổng quát 33
2.3.3 Dãn và co ảnh đa mức xám 40
CHƯƠNG 3 MẠNG NƠRON 42
3.1 Giới thiệu mạng nơron 42
3.1.1 Nơron – đơn vị xử lý cơ bản 42
3.1.2 Liên kết giữa các nơron 43
3.1.3 Hàm kích hoạt và các quy tắc xác định tín hiệu ra 44
3.1.4 Quy tắc delta 45
3.2 Thuật toán học lan truyền ngược 46
Trang 4CHƯƠNG 4 THIẾT KẾ VÀ ĐÁNH GIÁ 52
4.1 Thiết kế hệ thống 52
4.1.1 Cơ sở dữ liệu ảnh 52
4.1.2 Môi trường cài đặt 53
4.1.3 Cài đặt 53
4.2 Kiểm thử và đánh giá 56
KẾT LUẬN 58
HƯỚNG PHÁT TRIỂN 59
TÀI LIỆU THAM KHẢO 60
DANH MỤC CÁC TỪ VIẾT TẮT LDA (Linear Discriminant Analysis): Phương pháp phân tách tuyến tính LMS (Least Mean Square): Phương pháp bình phương trung bình tối thiểu ORL (Olivetti Research Laboratory, Surrey University): Cơ sở dữ liệu ảnh dùng trong luận văn PCA (Principal Components Analysis): Phương pháp phân tích thành phần chính DANH MỤC CÁC BẢNG Bảng 2.1 Tính toán độ lệch chuẩn 10
Bảng 2.2 Tập dữ liệu hai chiều và tính toán hiệp phương sai 12
Bảng 4.1 Các module chính của chương trình 53
Trang 5DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 2.1 Ví dụ minh họa PCA 8
Hình 2.2 Dữ liệu và đồ thị biểu diễn dữ liệu 18
Hình 2.3 Đồ thị biểu diễn dữ liệu đã chuẩn hóa với các vector riêng 20
Hình 2.4 Ảnh gốc trong cơ sở dữ liệu ORL 23
Hình 2.5 Ảnh sau khi biến đổi theo PCA 23
Hình 2.6 Ví dụ minh họa LDA 24
Hình 2.7 Ảnh sau khi biến đổi theo LDA 27
Hình 2.8 Sự liên thông 28
Hình 2.9 Phép dãn ảnh nhị phân 32
Hình 2.10 Phép co ảnh nhị phân 32
Hình 2.11 Các toán tử đại số ảnh trên các mảng nhị phân 34
Hình 2.12 Lật và dịch một mảng nhị phân 34
Hình 2.13 Phép dãn ảnh tổng quát dựa theo phép cộng Minkowski 37
Hình 2.14 So sánh các kết quả của hai phép co ảnh 39
Hình 2.15 Phép dãn ảnh và co ảnh tổng quát với phần tử cấu trúc 55 40
Hình 2.16 Ảnh sau khi xử lý hình thái 41
Hình 3.1 Các thành phần cơ bản của mạng nơron nhân tạo 43
Hình 3.2 Một số dạng hàm kích hoạt của nơron 44
Hình 3.3 Mạng nơron l lớp 47
Hình 4.1 Ảnh gốc trong bộ ảnh ORL 52
Hình 4.2 Ảnh gốc được bổ sung ảnh gương 54
Hình 4.3 Giao diện chính của chương trình 56
Trang 6LỜI CẢM ƠN
Lời đầu tiên tôi xin bày tỏ lòng biết ơn sâu sắc tới TS Vũ Việt Vũ, công tác tại trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên, người đã tận tình hướng dẫn và giúp tôi hoàn thành luận văn tốt nghiệp này
Tôi cũng xin gửi lời cảm ơn chân thành đến các thầy cô giáo của trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên, cùng các thầy cô giáo của Viện Công nghệ thông tin - Viện khoa học Việt Nam đã nhiệt tình giảng dạy, truyền đạt kiến thức cho tôi trong suốt 2 năm học qua
Tôi xin cảm ơn sự động viên và giúp đỡ của tất cả những người thân trong gia đình, của các bạn bè, đồng nghiệp trong quá trình thực hiện luận văn này
Thái Nguyên, ngày 20 tháng 05 năm 2014
Học viên
Đỗ Duy Cốp
Trang 7LỜI CAM ĐOAN
Giáo viên hướng dẫn: TS Vũ Việt Vũ
Cơ quan công tác: Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
Tôi xin cam đoan luận văn “Nghiên cứu phương pháp nhận dạng ảnh
mặt người và ứng dụng” này là công trình nghiên cứu của riêng tôi Các số
liệu sử dụng trong luận văn là trung thực Các kết quả nghiên cứu được trình bày trong luận văn chưa từng được công bố tại bất kỳ công trình nào khác
Thái Nguyên, ngày 20 tháng 05 năm 2014
Học viên
Đỗ Duy Cốp
Trang 8CHƯƠNG 1 TỔNG QUAN VỀ NHẬN DẠNG ẢNH MẶT NGƯỜI
1.1 Tổng quan về nhận dạng ảnh mặt người
Xử lý ảnh là một lĩnh vực được quan tâm rất nhiều trong khoảng 10 năm trở lại đây Bài toán nhận dạng ảnh nhằm mục đích phát hiện và nhận dạng đối tượng trong ảnh Bài toán nhận dạng ảnh được ứng dụng trong nhiều lĩnh vực, đặc biệt là nhận dạng mặt người đã được ứng dụng trong các hệ thống bảo mật, nhận dạng người trên các bằng lái xe, hộ chiếu, nhận dạng người trong các hệ thống tương tác người-máy, trong lĩnh vực giải trí,…
Đặc biệt sau thảm họa ngày 11/9, các chính phủ trên toàn thế giới đã bắt đầu chú ý hơn tới các mức an ninh ở sân bay và biên giới Ngân sách hằng năm của các nước đã tăng lên nhiều cho các kỹ thuật hiện đại để xác định, nhận dạng và lần theo các đối tượng nghi vấn Nhu cầu tăng lên trong các ứng dụng này đã giúp các nhà khoa học có thêm quỹ để phát triển các dự án nghiên cứu Mặc dù việc nhận dạng mặt người không thể chính xác được như các phương pháp nhận dạng khác như nhận dạng vân tay, nhưng nó vẫn nhận được sự quan tâm lớn của các nhà nghiên cứu trong lĩnh vực thị giác máy Lý
do chủ yếu là trên thực tế, mặt người vẫn là cách truyền thống để con người nhận ra nhau
Một hệ thống nhận dạng mặt người điển hình bao gồm các thành phần chính như hình 1.1
Nhận dạng mặt người
Thông tin người được nhận dạng
Trang 91.2 Các hướng tiếp cận trong nhận dạng mặt người
Có hai hướng tiếp cận chính làm hạt nhân của các kỹ thuật phân tích đặc trưng mặt người: hướng tiếp cận hình học và hướng tiếp cận hình ảnh
Hướng tiếp cận hình học sử dụng việc ánh xạ không gian các đặc
trưng mặt người Mặt người được phân loại theo khoảng cách hình học, theo đường bao và theo các góc giữa các điểm
Hướng tiếp cận hình ảnh bao gồm việc xây dựng các mẫu từ những
đặc trưng mặt người Mẫu của các đặc trưng nổi bật, hoặc thậm chí
là toàn khuôn mặt được thiết lập, việc nhận dạng được thực hiện bằng cách duyệt các khuôn mặt rồi tìm mặt nào khớp nhất với mẫu
Hiện nay các hệ thống nhận dạng mặt người vẫn đang tiếp tục được phát triển Dưới đây là một số phương pháp trích chọn đặc trưng:
- Mặt riêng (Eigenface)
- Mô hình Markov ẩn
- Phân tích thành phần chính (PCA)
1.2.1 Phương pháp trích chọn đặc trưng sử dụng mặt riêng (Eigenface)
Thuật toán Eigenface rất phổ biến và được sử dụng rộng rãi do sự đơn
giản và hiệu quả tính toán Thuật toán sử dụng cách tiếp cận lý thuyết thông tin trong việc mã hóa các ảnh mặt người và xác định các vector riêng tương ứng với giá trị riêng lớn nhất của ma trận hiệp phương sai của ảnh Sau đó, đối với mỗi nhóm ảnh của một người, ta tính vector trung bình, một ngưỡng
sẽ được chọn để xác định khoảng cách chấp nhận được cực đại từ một ảnh đến nhóm ảnh giúp nhận dạng những ảnh mới
Trang 101.2.2 Phương pháp trích chọn đặc trưng sử dụng mô hình Markov ẩn
Mô hình Markov ẩn phân loại một đặc trưng mặt người bằng tính chất của
chuỗi Markov Một dãy ngẫu nhiên các biến lấy trên các giá trị điểm ảnh
tương ứng tạo nên chuỗi Markov, nếu xác suất để hệ thống đạt trạng thái x n+1 tại thời điểm n+1 chỉ phụ thuộc vào xác suất để hệ thống đạt trạng thái x n tại
thời điểm n Trong một chuỗi Markov, việc chuyển hệ thống từ trạng thái này
sang trạng thái khác tương ứng với một xác suất nào đó, nhưng kết quả của một ký hiệu ra lại xác định được trước Như vậy, kết quả là một phân bố xác suất của tất cả các ký hiệu ra tại mỗi trạng thái và kết quả này được dùng để
so sánh giữa hai khuôn mặt
1.2.3 Phương pháp phân tích thành phần chính
Trong phương pháp phân tích thành phần chính (PCA còn gọi là biến
đổi Karhunen-Loeve), tập dữ liệu được biểu diễn lại với số đặc trưng ít hơn đồng thời giữ được hầu hết các thông tin quan trọng nhất của dữ liệu PCA thường được sử dụng cùng phương pháp mặt riêng Tập con các vector riêng được dùng làm các vector cơ sở của một không gian con, trong đó ta có thể so sánh với các ảnh trong cơ sở dữ liệu để nhận dạng các ảnh mới Các vector cơ
sở này còn được gọi là các thành phần chính của cơ sở dữ liệu ảnh
Mạng nơron được sử dụng rộng rãi trong các hệ thống nhận dạng mặt
người Kỹ thuật mạng nơron mô phỏng hoạt động của các nơron trong bộ não người Mạng nơron có khả năng điều chỉnh các trọng số dựa trên các mẫu học trong quá trình huấn luyện Kết quả là mạng đạt được hiệu quả cao trong việc phân loại các lớp, dựa trên dữ liệu mẫu khả tách tuyến tính hoặc phi tuyến
Trang 111.3 Bố cục luận văn
Mặc dù các hệ thống nhận dạng mặt người hiện tại đã đạt được hiệu quả khá cao, tuy nhiên chúng vẫn còn hạn chế là chỉ tập trung vào một hay một vài phương pháp trích chọn đặc trưng Có hệ thống chỉ thực hiện nhận dạng dựa trên các đặc điểm về hình học của mặt người hoặc có hệ thống chỉ dựa trên các đặc điểm thống kê
Trong luận văn này, việc trích chọn đặc trưng sẽ được thực hiện dựa trên những đặc điểm thống kê của khuôn mặt (cụ thể là phương pháp phân tích thành phần chính – PCA và phương pháp phân tách tuyến tính – LDA) và những đặc điểm về hình thái của khuôn mặt Chương 2 trình bày chi tiết về các phương pháp trích chọn đặc trưng được lựa chọn để xây dựng chương trình Chương 3 trình bày về mạng noron với thuật toán học lan truyền ngược lỗi, được dùng để phân loại ảnh Chương 4 trình bày cụ thể việc thiết kế hệ thống và đánh giá hiệu quả thực hiện Cuối cùng là phần kết luận
Trang 12CHƯƠNG 2 TRÍCH CHỌN ĐẶC TRƯNG
Chương này sẽ trình bày về các phương pháp trích chọn đặc trưng được
sử dụng trong luận văn Mục đích thứ nhất của việc trích chọn đặc trưng là giảm số chiều của dữ liệu Dữ liệu ảnh mặt người có số điểm ảnh lớn (cỡ vài nghìn đến vài chục nghìn điểm ảnh), do đó cần có một phép biến đổi để giảm lượng thông tin sử dụng để biểu diễn, đồng thời không làm mất quá nhiều thông tin quan trọng Mục đích thứ hai của việc trích chọn đặc trưng là giúp phân biệt tốt hơn đối với các mẫu dữ liệu Các ảnh mặt người sẽ được biểu diễn trong một không gian mới sao cho có thể làm nổi bật được sự khác biệt giữa các ảnh với nhau Các phần sau sẽ trình bày về phương pháp phân tích thành phần chính, phương pháp phân tách tuyến tính và phương pháp xử lý hình thái ảnh mặt người
2.1 Phương pháp phân tích thành phần chính - PCA
Phương pháp phân tích thành phần chính [4] (PCA – Principal Components Analysis) là một kỹ thuật thống kê hữu ích trong các ứng dụng nhận dạng mặt người và nén ảnh, đồng thời đây cũng là một kỹ thuật phổ biến cho việc tìm kiếm các mẫu trong không gian dữ liệu có số chiều lớn
Mục đích của phương pháp phân tích này có thể diễn đạt ngắn gọn như sau: Ảnh gốc có kích thước 112×92 (10304 điểm ảnh) Những ảnh này cần được rút gọn sao cho lượng thông tin dùng để biểu diễn ảnh đó giảm đi, đồng thời không làm mất những đặc điểm quan trọng nhất của khuôn mặt Kết quả của việc phân tích này sẽ đạt được như hình 2.1
Trang 13Hình 2.1 Ví dụ minh họa PCA
Ảnh gốc cần 10304 giá trị để biểu diễn trong khi ảnh biến đổi chỉ cần 49 giá trị
2.1.1 Cơ sở toán học
a Lý thuyết thống kê
Các nhà thống kê thường quan tâm đến việc lấy mẫu trên một tập dữ liệu
Ví dụ về cuộc bầu cử, tập dữ liệu là toàn bộ dân số trong một đất nước, trong khi đó mẫu là một tập con của dân số nhà thống kê muốn đánh giá Một vấn
đề lớn của thống kê học là thông qua phương pháp đánh giá một mẫu của dân
số, kết quả thống kê cho phép đánh giá được xu hướng chính của toàn bộ dân
số
Xét một tập ví dụ X = [1 2 4 6 12 15 25 45 68 67 65 98] Chỉ số dưới của
ký hiệu X được dùng để trỏ tới một số cụ thể trong tập Ví dụ X 3 trỏ tới số thứ
ba trong X với giá trị là 4 Lưu ý rằng X 1 là số đầu tiên trong X Ngoài ra ký hiệu n còn được sử dụng để chỉ tổng số các phần tử trong tập X
Giá trị trung bình của mẫu là:
=∑ (2.1)
Trang 14Giá trị trung bình không thể hiện được nhiều về dữ liệu ngoại trừ điểm trung bình Ví dụ, hai tập sau có cùng một giá trị trung bình là 10, nhưng chúng hoàn toàn khác nhau:
[0 8 12 20] và [8 9 11 12]
Sự khác nhau đó là sự trải rộng của dữ liệu Độ lệch chuẩn của tập dữ
liệu sẽ đánh giá được sự trải rộng của dữ liệu Độ lệch chuẩn kí hiệu là s trong công thức (2.2) là khoảng cách trung bình từ điểm trung bình của dữ liệu đến các điểm Công thức tính như sau:
= ∑ ( )
( 1) (2.2)
Câu hỏi đặt ra: “Vì sao lại sử dụng giá trị (n1) mà không phải là n?”
Nguyên nhân là, nếu mẫu của tập dữ liệu được lấy là tập con của thế giới thực
thì phải sử dụng (n1) vì giá trị nhận được gần với độ lệch chuẩn hơn so với
sử dụng n Tuy nhiên, nếu tính độ lệch chuẩn cho toàn bộ dân số, giá trị cần dùng là n chứ không phải (n1)
Với hai tập dữ liệu trên, việc tính độ lệch chuẩn được thực hiện như bảng 2.1 Tập thứ nhất có độ lệch chuẩn lớn hơn do dữ liệu trải ra xa hơn so với điểm trung bình Một ví dụ khác, tập [10 10 10 10] cũng có điểm trung bình là
10, nhưng độ lệch chuẩn lại bằng 0, bởi vì tất cả các số là giống nhau Không
số nào chệch ra khỏi điểm trung bình
Phương sai là một hàm đo khác về sự trải rộng của dữ liệu trong một tập
Thực tế nó gần như giống hoàn toàn với độ lệch chuẩn:
Trang 15=∑ ( )( 1) (2.3)
Trang 16Như vậy đây chỉ là bình phương của độ lệch chuẩn s 2 là ký hiệu thường dùng cho phương sai của một mẫu Cả hai phương pháp này đều đánh giá độ trải rộng của dữ liệu Độ lệch chuẩn là phương pháp thông dụng hơn, bên cạnh đó phương sai cũng được sử dụng
Hai phương pháp trên chỉ sử dụng được cho dữ liệu một chiều Tuy nhiên, nhiều tập dữ liệu lại có nhiều hơn một chiều và mục đích của việc phân tích thống kê các tập dữ liệu này là nhằm tìm hiểu mối quan hệ giữa các chiều Ví
dụ, xét tập dữ liệu về chiều cao của các sinh viên trong một lớp và điểm số của họ về một môn học nào đó Ta có thể tiến hành phân tích thống kê xem ảnh hưởng của chiều cao sinh viên đến điểm số như thế nào
Độ lệch chuẩn và phương sai chỉ thực hiện trên một chiều, do đó chúng cũng chỉ có thể tính toán được cho mỗi chiều của tập dữ liệu một cách độc lập với các chiều khác Tuy nhiên, nếu có một phương pháp đánh giá được sự biến đổi của các chiều từ giá trị trung bình của mỗi chiều khác, khi đó sẽ rất hữu ích đối với việc thống kê dữ liệu
Hiệp phương sai là một phương pháp như vậy Hiệp phương sai luôn
đánh giá giữa hai chiều Để tính hiệp phương sai giữa một chiều với chính nó,
có thể sử dụng phương sai Với một tập dữ liệu ba chiều (x, y, z), ta có thể đánh giá hiệp phương sai giữa các chiều x và y, giữa y và z, giữa z và x
Công thức tính hiệp phương sai gần giống với công thức tính phương sai Công thức tính phương sai có thể được viết lại như sau:
( ) =∑ ( )( )
( 1) (2.4)
Tương tự, công thức tính hiệp phương sai được viết như sau:
Trang 17( , ) = ∑ ( )( )
( 1) (2.5)
Công thức (2.5) tương tự công thức (2.4), ngoại trừ ở nhân tử thứ hai, giá
trị của X được thay bằng giá trị của Y Việc này có thể được diễn đạt như sau:
“Với mỗi điểm dữ liệu, tính tích của độ sai khác giữa giá trị x và giá trị trung bình của x, với độ sai khác giữa giá trị y và giá trị trung bình của y Cộng tất
cả vào rồi chia cho (n1)”
Ví dụ với một nhóm sinh viên, xét tổng số giờ họ dành cho môn học A và
điểm số họ đạt được ở môn đó Khi đó bài toán có hai chiều, chiều thứ nhất là
H, số giờ học, chiều thứ hai là M, điểm số Bảng 2.2 là các số liệu và việc tính
toán cov(H,M), hiệp phương sai giữa thời gian học và điểm số
Bảng 2.2 Tập dữ liệu hai chiều và tính toán hiệp phương sai
Trang 183.92 4.08
13.92 2.08
8.92
23.42
6.42 30.58
1.42
12.42 12.58
30.42 22.58
20.42
115.23
6.93 338.83
0.11 48.69 51.33 423.45 46.97 182.15
Trung bình 133.29
Giá trị chính xác không quan trọng bằng dấu của nó (dương hay âm) Nếu giá trị là dương, nó chỉ ra rằng cả hai chiều cùng nhau tăng, nghĩa là một cách tổng quát, khi số giờ học tăng lên thì điểm số cũng tăng lên
Nếu giá trị là âm, khi đó một chiều tăng lên, một chiều giảm đi Giá trị hiệp phương sai âm cho thấy rằng chúng đối lập nhau, khi số giờ học tăng lên thì điểm số giảm đi
Trường hợp cuối cùng, nếu giá trị hiệp phương sai bằng 0, khi đó hai chiều độc lập với nhau
Kết quả điểm số tăng lên khi số giờ học tăng có thể dễ dàng nhận thấy bằng đồ thị Tuy nhiên, việc minh họa trực quan như vậy chỉ có thể thực hiện được khi dữ liệu có hai hoặc ba chiều Vì giá trị hiệp phương sai có thể được
Trang 19tính giữa hai chiều bất kỳ trong một tập dữ liệu, nên kỹ thuật này thường được
sử dụng để tìm mối liên hệ giữa các chiều trong các tập dữ liệu nhiều chiều
mà việc biểu diễn trực quan gặp khó khăn
Từ công thức tính cov(X,Y) trên, bằng cách đổi chỗ hai nhân tử
( )( ) ta suy ra cov(X,Y) = cov(Y,X)
Hiệp phương sai chỉ đánh giá được quan hệ giữa hai chiều Nếu dữ liệu có nhiều hơn hai chiều, có thể có nhiều hơn một giá trị hiệp phương sai được
tính Ví dụ, từ một tập dữ liệu ba chiều (x, y, z) ta có thể tính cov(x,y), cov(y,z)
và cov(z,x) Với một tập dữ liệu n chiều, sẽ có !
( )! giá trị hiệp phương sai khác nhau
Các giá trị hiệp phương sai giữa tất cả các chiều khác nhau được tính toán
rồi đưa vào một ma trận Ma trận hiệp phương sai của một tập dữ liệu n chiều
là:
× = , = , (2.6)
ở đây C nn là ma trận n hàng, n cột và Dim i là chiều thứ i Toàn bộ công thức trên có nghĩa là với một tập dữ liệu n chiều, ma trận hiệp phương sai của dữ liệu là ma trận n hàng, n cột (ma trận vuông) với phần tử tại hàng i, cột j là giá trị hiệp phương sai giữa hai chiều thứ i và thứ j
Ví dụ: Ma trận hiệp phương sai của một tập dữ liệu ba chiều, với các
chiều là x, y và z là ma trận có 3 hàng, 3 cột với các giá trị như sau:
=
( , ) ( , ) ( , )( , ) ( , ) ( , )( , ) ( , ) ( , )
(2.7)
Trang 20Một số điểm chú ý: Trên đường chéo chính, các giá trị chính là hiệp phương sai giữa một chiều và chính nó, đó là phương sai của chiều đó Điểm
thứ hai là, vì cov(a,b) = cov(b,a) nên ma trận hiệp phương sai là ma trận đối
xứng qua đường chéo chính
b Đại số ma trận
Phần này trình bày một số kiến thức cơ bản về đại số ma trận được dùng
trong PCA Đặc biệt trong đó sẽ xét các vector riêng và giá trị riêng của một
ma trận cho trước
Hai ma trận có thể được nhân với nhau, với điều kiện chúng có kích thước
phù hợp Vector riêng là một trường hợp đặc biệt của việc này Xét hai phép
nhân giữa một ma trận và một vector như sau:
Ví dụ vector thường và vetor riêng
Trong trường hợp thứ nhất, vector kết quả không phải là một bội số của vector gốc, trong khi đó ở trường hợp thứ hai, vector kết quả bằng đúng 4 lần vector gốc Vector 3
2 (trường hợp thứ hai) biểu diễn một mũi tên từ gốc (0,0) đến điểm (3,2) Ma trận bênh cạnh là ma trận vuông, có thể coi như một
ma trận biến đổi Nếu nhân ma trận này vào phía trái của vector, kết quả sẽ là một vector khác đã được biến đổi từ vị trí gốc của nó Vector này (và tất cả các bội số của nó, vì chiều dài của vector không ảnh hưởng đến kết quả) là một vector riêng của ma trận biến đổi đó
Trang 21Các vector riêng có một số tính chất Thứ nhất, vector riêng chỉ có thể được xác định được đối với các ma trận vuông Không phải mọi ma trận
vuông đều có vector riêng Nếu một ma trận nn có vector riêng thì số lượng
đó là n
Thứ hai, khi nhân vector riêng với một số nào đó, vector kết quả vẫn sẽ bằng đúng số lần như vậy của vector gốc Lý do là khi lấy một tỉ lệ nào đó của vector, chỉ đơn giản độ dài của nó bị thay đổi, không ảnh hưởng đến chiều của vector Cuối cùng, mọi vector riêng của một ma trận là trực giao, nghĩa là chúng vuông góc với nhau, bất kể dữ liệu có bao nhiêu chiều Điều này rất quan trọng bởi vì nó có ý nghĩa lớn khi biểu diễn dữ liệu theo các vector trực
giao này thay vì biểu diễn theo các trục x và y
2 × 3
2 =
64
Ví dụ về sự ổn định của vector riêng đối với việc lấy tỉ lệ
Giá trị riêng có quan hệ chặt chẽ với vector riêng Thực tế là ở ví dụ trên
đã xuất hiện một giá trị riêng Trong cả hai ví dụ trên, số lần vector gốc được tăng lên sau khi nhân với ma trận vuông luôn cố định, số lần này là 4 Vậy 4
là giá trị riêng ứng với vector riêng đó Không cần biết bội số nào của vector riêng đã được lấy trước khi đem nhân với ma trận vuông, vector kết quả nhận được luôn bằng 4 lần vector gốc
Hiện nay có rất nhiều thư viện toán học hỗ trợ việc tìm các vector riêng và giá trị riêng của các ma trận, ví dụ gói phần mềm newmat trên trang web http://webnz.com/robert/, hay các bộ công cụ trong thư viện lập trình của MATLAB
Trang 22Bước 1: Lấy dữ liệu
Để có thể vẽ đồ thị minh họa trực quan việc phân tích PCA theo từng bước, dữ liệu trong ví dụ sẽ có hai chiều Dữ liệu được cho ở hình 2.2
Bước 2: Hiệu chỉnh theo giá trị trung bình
Để tính PCA thuận lợi, các giá trị trên mỗi chiều của dữ liệu sẽ được trừ
đi giá trị trung bình của chiều đó Tất cả các giá trị x bị trừ đi ̅ (trung bình
giá trị x của tất cả các điểm) và tất cả các giá trị y bị trừ đi (trung bình giá trị
y của tất cả các điểm) Tập dữ liệu nhận được có giá trị trung bình là 0
Bước 3: Tính ma trận hiệp phương sai
Do dữ liệu có hai chiều nên kích thước của ma trận hiệp phương sai là 22 Ma trận thu được là:
= 0.616555556 0.6154444440.615444444 0.716555556
Vì các phần tử nằm ngoài đường chéo chính của ma trận là dương, nên hai
giá trị x và y cùng nhau tăng
Trang 23Dữ liệu gốc
Dữ liệu sau khi chỉnh
2.5 0.5 2.2 1.9 3.1 2.3
2
1 1.5 1.1
2.4 0.7 2.9 2.2 3.0 2.7 1.6 1.1 1.6 0.9
0.69
1.31 0.39 0.09 1.29 0.49 0.19
Trang 24Bước 4: Tính vector riêng và giá trị riêng của ma trận hiệp phương sai
Vì ma trận hiệp phương sai vuông nên có thể tính vector riêng và giá trị riêng của ma trận này Chúng cho biết những thông tin hữu ích về dữ liệu Hai vector riêng là 0.735178656
0.677873399 và
0.6778733990.735178656 , với hai giá trị riêng tương ứng là 0.0490833989 và 1.28402771
Điều lưu ý quan trọng rằng các vector riêng ở đây đều là vector đơn vị, nghĩa là độ dài của chúng bằng 1 Điều này rất quan trọng trong PCA Hầu hết các gói phần mềm toán học, khi tính vector riêng đều trả về kết quả là các vector đơn vị
Như trên đồ thị dữ liệu ở hình 2.3, dữ liệu có một mẫu chủ đạo (hướng theo một đường chéo) Ở phía trên của dữ liệu là hai vector riêng, chúng là những đường chéo hình chấm chấm Như đã trình bày ở phần vector riêng, chúng vuông góc với nhau Nhưng quan trọng hơn, chúng cung cấp thông tin
về các mẫu trong dữ liệu Một trong hai vector riêng nằm theo hướng phân bố chính của dữ liệu Vector riêng đó cho thấy mối quan hệ giữa dữ liệu với đường thẳng đó Vector riêng thứ hai cho thấy một mẫu khác, kém quan trọng hơn, là tất cả các điểm phân bố dọc theo đường chính nhưng cách đường chính một khoảng nào đó
Như vậy, bằng việc tính các vector riêng của ma trận hiệp phương sai, ta
có thể trích ra các đặc trưng của dữ liệu Các bước còn lại sẽ là việc biến đổi
dữ liệu sao cho nó được biểu diễn theo các đặc trưng đó
Trang 25Hình 2.3 Đồ thị biểu diễn dữ liệu đã chuẩn hóa với các vector riêng
Bước 5: Chọn các thành phần và xác lập vector đặc trưng
Các vector riêng và giá trị riêng tính được ở phần trước với các giá trị riêng khá khác nhau Vector riêng ứng với giá trị riêng cao nhất sẽ là thành phần chính của tập dữ liệu Trong ví dụ trên, vector riêng với giá trị riêng lớn hơn là vector trỏ dọc theo dữ liệu Nó mô tả mối quan hệ có ý nghĩa nhất giữa các chiều của dữ liệu
Một cách tổng quát, sau khi tìm được các vector riêng từ ma trận hiệp phương sai, bước tiếp theo là sắp xếp chúng theo giá trị riêng, từ cao đến thấp Nghĩa là các thành phần được sắp xếp theo thứ tự tầm quan trọng giảm dần Khi đó, các thành phần ít có ý nghĩa có thể được bỏ qua nếu cần Một số thông tin đã bị lược bỏ, nhưng vì giá trị riêng của chúng nhỏ nên dữ liệu không bị mất nhiều Khi bỏ qua một số thành phần, dữ liệu thu được sẽ có số
chiều ít hơn dữ liệu gốc Nói cách khác, nếu dữ liệu gốc có n chiều, sau khi
Trang 26tính được n vector riêng và giá trị riêng, p vector riêng đầu tiên được chọn, khi đó dữ liệu cuối cùng chỉ còn p chiều
Tiếp theo cần xác lập một vector đặc trưng, thực chất là tên gọi của một
ma trận các vector Vector này được xây dựng bằng cách lấy các vector riêng muốn giữ lại, rồi đặt chúng theo các cột để tạo thành ma trận:
_Đặ _ ư = ( ) (2.8)
Dữ liệu trong ví dụ trên có hai vector riêng, do đó có hai lựa chọn Có thể chọn cả hai cho vector đặc trưng:
0.677873399 0.7351786560.735178656 0.677873399hoặc có thể bỏ đi thành phần ít ý nghĩa hơn, kết quả chỉ còn một cột:
0.6778733990.735178656
Bước 6: Xác định tập dữ liệu mới
Bước này là bước cuối cùng trong PCA đồng thời là bước đơn giản nhất Sau khi các thành phần (vector riêng) được chọn để giữ lại trong dữ liệu và thiết lập vector đặc trưng, tiến hành chuyển vị vector và nhân vào phía trái tập
dữ liệu gốc đã chuyển vị
Dữ_liệu_cuối = Vector_Đặc_trưng Dữ_liệu_điều_chỉnh
trong đó:
Vector_Đặc_trưng là ma trận với các vector riêng trong các cột đã
chuyển vị sao cho chúng nằm theo các hàng, với vector riêng ý nghĩa nhất nằm trên cùng
Trang 27 Dữ_liệu_điều_chỉnh là dữ liệu đã được điều chỉnh theo giá trị trung
bình sau đó chuyển vị, nghĩa là các dữ liệu nằm trên mỗi cột, với mỗi hàng theo mỗi chiều khác nhau
Dữ_liệu_cuối là tập dữ liệu cuối cùng, với các điểm dữ liệu nằm theo
cột, còn các chiều là theo hàng
Kết quả là dữ liệu gốc được biểu diễn chỉ theo các vector đã chọn Tập dữ
liệu gốc có hai trục x, y và dữ liệu được biểu diễn theo chúng Dữ liệu cũng có
thể được biểu diễn theo bất kỳ trục nào trong số đó Nếu các trục này vuông góc với nhau thì việc biểu diễn là hiệu quả nhất Đó là tầm quan trọng của sự trực giao của các vector riêng Dữ liệu đã được biểu diễn theo hai vector riêng
thay vì biểu diễn theo các trục x và y Trong trường hợp tập dữ liệu mới được
giảm về số chiều, nghĩa là bỏ qua một số vector riêng, dữ liệu mới chỉ được biểu diễn theo các vector đã chọn
Bây giờ là việc áp dụng phân tích thành phần chính đối với tập dữ liệu ảnh Trong luận văn, tập dữ liệu ảnh được lấy từ cơ sở dữ liệu ORL (Olivetti Research Laboratory, Surrey University) Mỗi ảnh có kích thước 112×92, có thể được coi là một vector 10304 chiều, hoặc tương đương với một điểm trong không gian 10304 chiều Hình 2.4 là một số ảnh gốc trong cơ sở dữ liệu
Áp dụng PCA để giảm số chiều của không gian khổng lồ trên, kết quả thu được là các ảnh đã được biến đổi sau khi phân tích theo các thành phần đặc trưng, các vector riêng được chọn theo các giá trị riêng tương ứng có giá trị lớn hơn 10-3, số lượng vector riêng là 49, nghĩa là mỗi ảnh biểu diễn một điểm trong không gian 49 chiều (hình 2.5)
Trang 28Hình 2.4 Ảnh gốc trong cơ sở dữ liệu ORL
Hình 2.5 Ảnh sau khi biến đổi theo PCA
Trang 292.2 Phương pháp phân tách tuyến tính - LDA
Phương pháp PCA ở trên còn có nhược điểm là chỉ làm nổi bật lên các đặc trưng của từng ảnh mà chưa quan tâm đến các ảnh đó là của cùng một người hay của những người khác nhau Phương pháp phân tách tuyến tính [4] (LDA – Linear Discriminant Analysis) có thể khắc phục được những nhược điểm đó Nhiệm vụ chính của phương pháp là tính sự biến thiên giữa các ảnh của những người khác nhau và tính sự biến thiên giữa các ảnh của cùng một người, sau đó tìm một phép biến đổi để làm cực đại tỉ số của hai sự biến thiên trên Nghĩa là, tập ảnh huấn luyện sẽ được biến đổi sang một không gian mới sao cho sự khác nhau giữa các ảnh của những người khác nhau được tăng lên tối đa, còn sự giống nhau giữa các ảnh của cùng một người được làm cực tiểu Hình 2.8 là một ví dụ minh họa trực quan ý nghĩa của phép biến đổi này Hình 2.8(a) là một cách biến đổi không tốt khi các hình chiếu của các điểm thuộc hai lớp vẫn lẫn lộn với nhau; hình 2.8(b) là một cách biến đổi khá tốt khi hình chiếu của các điểm thuộc cùng một lớp gần nhau, còn hình chiếu của các điểm khác lớp xa nhau
Hình 2.6 Ví dụ minh họa LDA
Trang 30Thông thường trong phương pháp LDA, sự phân bố ngoại và sự phân bố nội được dùng làm tiêu chí để phân lớp Ma trận phân bố nội được tính như sau:
trong đó là giá trị trung bình của tất cả các lớp
Không gian mới của LDA được hình thành từ tập vector W = [W 1 , , W d], thỏa mãn
= arg max = (2.11)
Ma trận phân bố nội S w biểu diễn sự phân bố gần nhau của các ảnh trong
các lớp và ma trận phân bố ngoại S b mô tả sự tách biệt của các lớp Khi các
ảnh được chiếu lên các vector của W, các ảnh sẽ được phân bố gần nhau trong
Trang 31mỗi lớp và sẽ được tách biệt giữa các lớp, càng nhiều càng tốt Nói cách khác, các vector này cực tiểu hóa mẫu số và cực đại hóa tử số của công thức (2.11)
Nếu ma trận S w là khả nghịch, tỉ số ở công thức (2.11) sẽ đạt cực đại khi các
vector của W là các vector riêng của Đối với bài toán nhận dạng mặt
người, ma trận S w thường không khả nghịch, vì số lượng ảnh nhỏ hơn rất nhiều so với số chiều biểu diễn ảnh Có nhiều phương pháp khác nhau để giải quyết vấn đề của LDA như phương pháp giả nghịch đảo, phương pháp không gian con hoặc phương pháp không gian null
Trong luận văn này, phương pháp giả nghịch đảo được dùng để giải quyết vấn đề trên Vì ảnh gốc có kích thước 112×92, mỗi ảnh có thể coi là một điểm trong không gian 10304 chiều, số chiều này quá lớn để có thể thực hiện LDA nên trước hết cần sử dụng phương pháp PCA để giảm bớt số chiều của không gian này Sau đó, áp dụng phương pháp giả nghịch đảo với tập dữ liệu mới để
tìm ma trận biến đổi W
Để tính ma trận giả nghịch đảo , S w được phân tích như sau:
= (2.12)
trong đó:
= diag(1, , k) chứa các giá trị riêng dương của S w, nghĩa là các
phần tử trên đường chéo chính của là các giá trị riêng của S w, còn các phần tử khác đều bằng 0
k là hạng của S w
Q 1 chứa các vector riêng của S w tương ứng với k giá trị riêng dương
Khi đó ma trận giả nghịch đảo của S w là:
= (2.13)
Trang 32Cuối cùng, các vector riêng của ứng với các giá trị riêng dương chính
là các vector cột của ma trận biến đổi W
Hình 2.7 là một số ảnh sau khi biến đổi theo phương pháp phân tách tuyến tính
Hình 2.7 Ảnh sau khi biến đổi theo LDA
2.3 Phương pháp xử lý hình thái
Hai phương pháp PCA và LDA cho phép phân tích dựa trên các đặc điểm mang tính thống kê của ảnh Tuy nhiên, các phương pháp này chưa xét đến những đặc điểm về hình thái của mặt người
Xử lý ảnh về hình thái [5] là một phép xử lý trong đó dạng không gian hoặc cấu trúc của các đối tượng trong ảnh được chỉnh sửa Phép dãn ảnh và phép co ảnh là hai thao tác xử lý hình thái cơ bản Với phép dãn ảnh, một đối tượng sẽ nổi đều lên trong không gian, còn với phép co ảnh đối tượng sẽ co đều xuống Trong các phần sau, các kỹ thuật xử lý hình thái trước hết sẽ được