Nhận dạng ảnh mặt người sử dụng mạng Nơron Nhận dạng ảnh mặt người sử dụng mạng Nơron Nhận dạng ảnh mặt người sử dụng mạng Nơron luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2M ục lục
Lời cam đoan 1
Danh mục các từ viết tắt 2
Danh mục các bảng 3
Danh mục các hình vẽ, đồ thị 4
Lời cảm ơn 5
Chương 1: Mở đầu 6
1.1 Giới thiệu chung 6
1.2 Bố cục luận văn 8
Chương 2: Trích chọn đặc trưng 10
2.1 Phương pháp phân tích thành phần chính 10
2.1.1 Cơ sở toán học 11
2.1.2 Phương pháp PCA 20
2.2 Phương pháp phân tách tuyến tính 27
2.3 Phương pháp xử lý hình thái 30
2.3.1 Biến đổi trúng-trượt (hit-or-miss) 32
2.3.2 Phép dãn ảnh và co ảnh tổng quát 35
2.3.3 Dãn và co ảnh đa mức xám 42
Chương 3: Mạng nơron 44
3.1 Giới thiệu mạng nơron 44
3.1.1 Nơron – đơn vị xử lý cơ bản 44
3.1.2 Liên kết giữa các nơron 45
3.1.3 Hàm kích hoạt và các quy tắc xác định tín hiệu ra 46
3.1.4 Quy tắc delta 47
3.2 Thuật toán học lan truyền ngược 49
Chương 4: Thiết kế và đánh giá 54
4.1 Thiết kế hệ thống 54
4.1.1 Cơ sở dữ liệu ảnh 54
4.1.2 Môi trường cài đặt 55
4.1.3 Cài đặt 55
4.2 Kiểm thử và đánh giá 58
Kết luận 60
Trang 3L ời cam đoan
Tôi xin cam đoan luận văn “Nhận dạng ảnh mặt người sử dụng mạng
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
Võ Phúc Nguyên
Trang 4Danh 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
Trang 5Danh m ục các bảng
Bảng 2.1 Tính toán độ lệch chuẩn 13
Bảng 2.2 Tập dữ liệu hai chiều và tính toán hiệp phương sai 15Bảng 4.1 Các module chính của chương trình 55
Trang 6Danh m ục các hình vẽ, đồ thị
Hình 1.1 Mô hình hệ thống nhận dạng mặt người 6
Hình 2.1 Ví dụ minh họa PCA 11
Hình 2.2 Ví dụ vector thường và vetor riêng 18
Hình 2.3 Ví dụ về sự ổn định của vector riêng đối với việc lấy tỉ lệ 19
Hình 2.4 Dữ liệu và đồ thị biểu diễn dữ liệu 21
Hình 2.5 Đồ thị biểu diễn dữ liệu đã chuẩn hóa với các vector riêng 23
Hình 2.6 Ảnh gốc trong cơ sở dữ liệu ORL 26
Hình 2.7 Ảnh sau khi biến đổi theo PCA 26
Hình 2.8 Ví dụ minh họa LDA 27
Hình 2.9 Ảnh sau khi biến đổi theo LDA 30
Hình 2.10 Sự liên thông 31
Hình 2.11 Phép dãn ảnh nhị phân 34
Hình 2.12 Phép co ảnh nhị phân 35
Hình 2.13 Các toán tử đại số ảnh trên các mảng nhị phân 36
Hình 2.14 Lật và dịch một mảng nhị phân 37
Hình 2.15 Phép dãn ảnh tổng quát dựa theo phép cộng Minkowski 39
Hình 2.16 So sánh các kết quả của hai phép co ảnh 41
Hình 2.17 Phép dãn ảnh và co ảnh tổng quát với phần tử cấu trúc 5×5 42
Hình 2.18 Ảnh sau khi xử lý hình thái 43
Hình 3.1 Các thành phần cơ bản của mạng nơron nhân tạo 45
Hình 3.2 Một số dạng hàm kích hoạt của nơron 46
Hình 3.3 Mạng nơron l lớp 49
Hình 4.1 Ảnh gốc trong bộ ảnh ORL 54
Hình 4.2 Ảnh gốc được bổ sung ảnh gương 56
Hình 4.3 Giao diện chính của chương trình 57
Trang 7L ời cảm ơn
Tôi xin cảm ơn Viện Đào tạo Sau đại học, trường Đại học Bách khoa Hà
Nội đã tạo điều kiện cho tôi hoàn thành luận văn này
Tôi xin chân thành cảm ơn sự giúp đỡ của PGS TS Nguyễn Thanh Thủy, Viện Công nghệ thông tin và Truyền thông, trường Đại học Bách khoa Hà
Nội
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
Võ Phúc Nguyên
Trang 8Chương 1: Mở đầu
1.1 Gi ới thiệu chung
Hiện nay, cùng với sự phát triển như vũ bão của công nghệ thông tin nói chung và sự phát triển trong lĩnh vực thị giác máy nói riêng, các hệ thống phát
hiện và nhận dạng mặt người đang ngày càng có nhiều ứng dụng trong thực tế như vấn đề an ninh, nhận dạng người 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 dạng
mặt người
Người
nhận dạng
Trang 9Có 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
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
đặ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)
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
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
Trang 10thờ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
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
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
1.2 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 ững đặc điểm thống kê của khuôn mặt (cụ thể là phương pháp phân tích
Trang 11thà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 về các
phương pháp trích chọn đặc trưng 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
Phương pháp phân tích thành phần chính (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à:
𝑋𝑋� = ∑𝑛𝑛𝑖𝑖=1𝑛𝑛 𝑋𝑋𝑖𝑖 (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 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:
𝑠𝑠 = �∑ (𝑋𝑋𝑛𝑛 𝑖𝑖 − 𝑋𝑋�)2
𝑖𝑖=1
(𝑛𝑛 − 1) (2.2)
Câu hỏi đặt ra: “Vì sao lại sử dụng giá trị (n−1) 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 (n−1) 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 (n−1)
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:
𝑠𝑠2 =∑ (𝑋𝑋𝑛𝑛 𝑖𝑖 − 𝑋𝑋�)2
Trang 15Bảng 2.1 Tính toán độ lệch chuẩn Tập 1:
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
Trang 16Hai 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 𝑖𝑖 − 𝑋𝑋�)(𝑋𝑋𝑖𝑖 − 𝑋𝑋�)
(𝑛𝑛 − 1) (2.4) Tương tự, công thức tính hiệp phương sai được viết như sau:
𝑐𝑐𝑐𝑐𝑣𝑣(𝑋𝑋, 𝑌𝑌) = ∑ (𝑋𝑋𝑛𝑛𝑖𝑖=1 𝑖𝑖 − 𝑋𝑋�)(𝑌𝑌𝑖𝑖 − 𝑌𝑌�)
(𝑛𝑛 − 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:
Trang 17“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 (n−1)”
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
S ố giờ (H)
Điểm (M)
Trang 18−3.92 4.08
−13.92 2.08
−8.92 5.08 2.08 6.08
−23.42
−6.42 30.58
−1.42
−12.42 12.58
−30.42 22.58
−20.42 7.58 3.58 17.58
115.23
−6.93 338.83
−0.11 48.69 51.33 423.45 46.97 182.15 38.51 7.45 106.89
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
Trang 19Kế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 tí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ó (𝑛𝑛−2)!∗2𝑛𝑛! 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à:
ở đây C n ×n là ma trận n hàng, n cột và Dimi 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:
Trang 20𝐶𝐶 = �𝑐𝑐𝑐𝑐𝑣𝑣(𝑥𝑥, 𝑥𝑥) 𝑐𝑐𝑐𝑐𝑣𝑣(𝑥𝑥, 𝑦𝑦) 𝑐𝑐𝑐𝑐𝑣𝑣(𝑥𝑥, 𝑧𝑧)𝑐𝑐𝑐𝑐𝑣𝑣(𝑦𝑦, 𝑥𝑥) 𝑐𝑐𝑐𝑐𝑣𝑣(𝑦𝑦, 𝑦𝑦) 𝑐𝑐𝑐𝑐𝑣𝑣(𝑦𝑦, 𝑧𝑧)
𝑐𝑐𝑐𝑐𝑣𝑣(𝑧𝑧, 𝑥𝑥) 𝑐𝑐𝑐𝑐𝑣𝑣(𝑧𝑧, 𝑦𝑦) 𝑐𝑐𝑐𝑐𝑣𝑣(𝑧𝑧, 𝑧𝑧)� (2.7)
Mộ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
Hình 2.2 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 �32� (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ả
Trang 21cá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 đó
Cá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 n×n 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 (hình 2.3) 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
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
Trang 22http://webnz.com/robert/, hay các bộ công cụ trong thư viện lập trình của
một số bước cơ bản sau:
Bướ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.4
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à 2×2 Ma trận thu được là:
𝑐𝑐𝑐𝑐𝑣𝑣 = �0.616555556 0.6154444440.615444444 0.716555556�
Trang 23Vì 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
D ữ 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.7351786560.677873399 � và �−0.677873399−0.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.5, 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.5 Đồ 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:
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ị
trong đó:
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
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.6 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.7)
Trang 28Hình 2.6 Ảnh gốc trong cơ sở dữ liệu ORL
Hình 2.7 Ảnh sau khi biến đổi theo PCA
Trang 292.2 Ph ương pháp phân tách tuyến tính
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 (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.8 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:
𝑆𝑆𝑤𝑤 =𝑁𝑁 � ��𝑋𝑋1 𝑖𝑖𝑗𝑗 − 𝜇𝜇𝑗𝑗��𝑋𝑋𝑖𝑖𝑗𝑗 − 𝜇𝜇𝑗𝑗�𝑇𝑇
𝑖𝑖=1
𝐶𝐶 𝑗𝑗=1
(2.9)trong đó:
(2.10)
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 = [W1 , , W d], thỏa mãn
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 𝑆𝑆𝑤𝑤−1𝑆𝑆𝑏𝑏 Đố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:
𝑆𝑆𝑤𝑤 = 𝑄𝑄1Λ𝑄𝑄1𝑇𝑇 (2.12) trong đó:
• Λ = diag(λ 1, , λ k) chứa các giá trị riêng dương của Sw, 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 Sw, 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
Trang 32Khi đó ma trận giả nghịch đảo của Sw là:
𝑆𝑆𝑤𝑤+ = 𝑄𝑄1Λ−1𝑄𝑄1𝑇𝑇 (2.13)
Cuố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.9 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.9 Ả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 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