LỜI CAM ĐOAN Tôi xin cam đoan luận văn “nhận dạng mặt người bằng phương pháp phân tích thành phần chính PCA và phân tích khác biệt tuyến tính LDA” là công trình nghiên cứu của tôi với
Trang 1LÊ HOÀNG PHÚC
NHẬN DẠNG MẶT NGƯỜI BẰNG PHƯƠNG PHÁP
PHÂN TÍCH THÀNH PHẦN CHÍNH (PCA)
VÀ PHÂN TÍCH KHÁC BIỆT TUYẾN TÍNH (LDA)
LUẬN VĂN THẠC SỸ NGÀNH CÔNG NGHỆ THÔNG TIN
ĐỒNG THÁP, 3/2017
Trang 2LÊ HOÀNG PHÚC
NHẬN DẠNG MẶT NGƯỜI BẰNG PHƯƠNG PHÁP
PHÂN TÍCH THÀNH PHẦN CHÍNH (PCA)
VÀ PHÂN TÍCH KHÁC BIỆT TUYẾN TÍNH (LDA)
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.02.01
LUẬN VĂN THẠC SỸ NGÀNH CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS HOÀNG HỮU VIỆT
ĐỒNG THÁP, 3/2017
Trang 3LỜI CẢM ƠN
Tôi chân thành cảm ơn sự giúp đỡ của các Thầy Cô Khoa công nghệ thông tin Trường đại học Vinh đã tận tình giảng dạy các môn kiến thức chuyên đề CNTT, cùng với Thầy TS Hoàng Hữu Việt đã tận tình hướng dẫn
và giúp đỡ tôi hoàn thành luận văn này
Ngoài ra tôi chân thành cảm ơn các bạn học viên cao học K23 tại Đồng Tháp đã giúp tôi trong việc cung cấp tài liệu, trau đổi các vấn đề thuộc lĩnh vực mà tôi nghiên cứu, cảm ơn các cán bộ lãnh đạo nơi tôi công tác đã hỗ trợ cho tôi trong thời gian làm luận văn
Đồng Tháp, ngày 25 tháng 2 năm 2017
Học viên
Lê Hoàng Phúc
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “nhận dạng mặt người bằng phương pháp
phân tích thành phần chính (PCA) và phân tích khác biệt tuyến tính (LDA)”
là công trình nghiên cứu của tôi với sự hướng dẫn khoa học của TS Hoàng Hữu Việt, những tham chiếu trong luận văn được ghi rõ ở phần tài liệu tham khảo, các số liệu thực nghiệm được nghiên cứu thực tế trên cùng một môi trường thí nghiệm, các con số thống kê được ghi nhận một cách khách quan, trung thực và chưa được công bố dưới bất kỳ hình thức nào trước đây
Đồng Tháp, ngày 25 tháng 2 năm 2017
Học viên
Lê Hoàng Phúc
Trang 5MỤC LỤC
LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
MỤC LỤC 4
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT 6
DANH MỤC CÁC HÌNH VẼ - ĐỒ THỊ 7
MỞ ĐẦU 9
1 Lý do chọn đề tài 9
2 Mục tiêu nghiên cứu 10
2.1 Mục tiêu tổng quát 10
2.2 Mục tiêu cụ thể 10
3 Đối tượng và phạm vi nghiên cứu 10
3.1 Đối tượng nghiên cứu 10
3.2 Phạm vi nghiên cứu 11
4 Nội dung nghiên cứu 11
5 Cấu trúc của luận văn 12
CHƯƠNG 1: TỔNG QUAN 13
1.1 Đặt vấn đề 13
1.2 Tổng quan về hệ thống nhận dạng mẫu 14
1.2.1 Phân lớp bài toán nhận dạng 15
1.2.1.1 Học có giám sát (supervised learning) 16
1.2.1.2 Học không có giám sát (unsupervised learning) 16
1.2.2 Chu trình thiết kế hệ thống nhận dạng mẫu 17
1.2.3 Hướng tiếp cận hệ thống nhận dạng mặt người bằng phương pháp PCA 20 1.2.4 Hướng tiếp cận hệ thống nhận dạng mặt người bằng đặc trưng LDA 21
1.3 Tình hình nghiên cứu bài toán nhận dạng mặt người 22
CHƯƠNG 2: NHẬN DẠNG ẢNH MẶT NGƯỜI BẰNG PHƯƠNG PHÁP PCA VÀ LDA 25
2.1 Giới thiệu 25
2.2 Cơ sở toán học [7] 27
2.2.1 Độ lệch chuẩn (Standard deviation) 27
2.2.2 Phương sai (Variance) 28
2.2.3 Hiệp phương sai (Covariance) 29
2.2.4 Ma trận hiệp phương sai (Covariance matrix) 30
2.2.5 Vectơ riêng (Eigenvectors) 31
2.2.6 Trị riêng (Eigenvalues) 31
2.3 Thuật toán phân tích thành phần chính PCA 32
2.3.1 Thuật toán [6] 32
2.3.2 Các bước thực hiện thuật toán 33
Trang 62.3.3 Ưu nhược điểm của phương pháp PCA 40
2.4 Thuật toán phân tích khác biệt tuyến tính LDA 41
2.4.1 Thuật toán 42
2.4.2 Các bước của thuật toán [8] 44
2.4.3 Ưu nhược điểm của phương pháp LDA 46
CHƯƠNG 3: THIÊT KẾ HỆ THỐNG NHẬN DẠNG ẢNH MẶT NGƯỜI 47
3.1 Dữ liệu thử nghiệm 47
3.2 Nhận dạng với PCA 48
3.2.1 Mục tiêu: 48
3.2.2 Tiêu chí đánh giá: 48
3.2.3 Kết quả thử nghiệm: 48
3.3 Nhận dạng với LDA 53
3.3.1 Mục tiêu: 53
3.3.2 Tiêu chí đánh giá: 53
3.3.3 Kết quả thử nghiệm: 53
3.4 Thử nghiệm nhận dạng với tập huấn luyện thay đổi 56
3.4.1 Mục tiêu: 56
3.4.2 Tiêu chí đánh giá: 56
3.4.3 Kết quả thử nghiệm: 57
3.5 Một số nhận xét 58
KẾT LUẬN 60
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 62
PHỤ LỤC 64
Trang 72 LDA Linear Discriminant Analysis (Phân tích khác biệt tuyến tính)
3 ICA Independent Component Analysis (Phân tích thành phần độc
lập)
4 SVM Support Vector Machines (Máy Vector hỗ trợ)
5 LVQ Learning Vector Quantization neural network
8 ORL (Olivetti Research Laboratory, Surrey University): Cơ sở dữ
liệu ảnh dùng trong luận văn
Trang 8DANH MỤC CÁC HÌNH VẼ - ĐỒ THỊ Chương 1
Hình 1 1: Phân lớp nhận dạng mẫu 16
Hình 1 2: Chu trình thiết kế hệ thống nhận dạng mẫu 17
Hình 1 3: Phương pháp đánh giá mô hình đơn giản 19
Hình 1 4: Phương pháp đánh giá mô hình Random subsampling 19
Hình 1 5: Phương pháp đánh giá mô hình Cross-validation 20
Chương 2 Hình 2 1: Ý tưởng của mô hình thuật toán PCA 32
Hình 2 2: Phép chiếu trong hệ cơ sở v sang hệ cơ sở u 33
Hình 2 3: Các ảnh huấn luyện phải cùng kích thước và khuôn mặt nằm ở giữa ảnh 34
Hình 2 4: Mô tả không gian mặt 38
Hình 2 5: Minh họa các bước tính toán các vector chiếu và đo khoảng cách trong không gian mặt 40
Hình 2 6: Phân loại với LDA 42
Hình 2 7: Phân loại dựa trên between và within theo LDA 42
Chương 3 Hình 3 1: Ảnh của 1 người trong bộ dữ liệu 1 47
Hình 3 2: Ảnh của 1 người trong bộ dữ liệu 2 48
Hình 3 3: Biểu đồ biểu diễn sự tương quan tỷ lệ nhận dạng của 2 bộ dữ liệu 50
Trang 9Hình 3 4: Biểu đồ biểu diễn sự tương quan thời gian thực hiện của 2 bộ dữ liệu 50Hình 3 5: Các ảnh nhận dạng bị lỗi của bộ dữ liệu 1 ở tỷ lệ 95% của PCA 51Hình 3 6: Các ảnh nhận dạng bị lỗi của bộ dữ liệu 2 ở tỷ lệ 73.77% của PCA 53Hình 3 7: Các ảnh nhận dạng bị lỗi của bộ dữ liệu 1 ở tỷ lệ 95% của LDA 54Hình 3 8: Kết quả nhận dạng của LDA trên bộ dữ liệu 1 54Hình 3 9: Các ảnh nhận dạng bị lỗi của bộ dữ liệu 2 ở tỷ lệ 85.0% của LDA 56Hình 3 10: Kết quả nhận dạng của LDA trên bộ dữ liệu 2 56Hình 3 11: Biểu đồ biểu diễn sự tương quan tỷ lệ nhận dạng của PCA và LDA trên tập huấn luyện thay đổi 57
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Trong thời đại kỹ thuật số ngày nay, việc áp dụng công nghệ thông tin (CNTT) vào các lĩnh vực của đời sống xã hội chúng ta đã trở nên mạnh mẽ hơn bao giờ hết, từ những lĩnh vực công nghệ cao đến những vấn đề thuộc về phục vụ con người hằng ngày, từ những tiện ích xã hội đến những vấn đề bảo mật và an ninh quốc gia Một trong số tiện ích mà ngành CNTT mang lại đó
là việc dùng các phương tiện CNTT để nhận diện mặt người (Face Recognition), hiện tại cùng với đà phát triển của các thiết bị di động việc áp dụng nhận diện mặt người mang lại những lợi ích thiết thực như nhận diện người trong ảnh để liên kết với các thông tin cá nhân như: số điện thoại, nơi
ở, địa chỉ mạng xã hội cá nhân… Nhận diện gương mặt để mở khóa thiết bị Trong lĩnh vực an ninh thì sau sự kiện ngày 11/9 nhiều nước trên thế giới đã
áp dụng việc nhận diện cá nhân trong các nơi công cộng như sân bay, văn phòng chính phủ, kiểm tra hình ảnh trong hộ chiếu, chứng minh thư…
Để đáp ứng các nhu cầu đó hiện nay, nhiều phương pháp nhận dạng mặt người được đề xuất như PCA, LDA, ICA, SVM, mạng neuron…và đã đạt được nhiều thành tựu lớn Tuy nhiên xét về hiệu quả các thuật toán kể trên đều có những ưu và nhược điểm khác nhau vì vậy cần phải có một nghiên cứu đặc trưng của các mô hình từ đó phân tích các các ưu điểm và khắc phục các nhược điểm của các loại mô hình đó
Với nhận thức như trên, chúng tôi chọn đề tài: “Nhận dạng mặt người
bằng phương pháp phân tích thành phần chính (PCA) và phân tích khác biệt tuyến tính (LDA)” làm luận văn tốt nghiệp thạc sỹ ngành CNTT
Trang 112 Mục tiêu nghiên cứu
2.1 Mục tiêu tổng quát
Nghiên cứu và xây dựng thử nghiệm hệ thống nhận dạng mặt người bằng phương pháp phân tích thành phần chính (PCA) và phân tích khác biệt tuyến tính (LDA)
2.2 Mục tiêu cụ thể
Đề tài tập trung vào các mục tiêu cụ thể sau:
(i) Nghiên cứu tổng quan về bài toán nhận dạng mặt người
(ii) Nghiên cứu phương pháp PCA cho nhận dạng ảnh mặt người
(iii) Nghiên cứu phương pháp LDA cho nhận dạng ảnh mặt người
(iv) Cài đặt thử nghiệm 2 thuật toán gồm PCA và LDA cho nhận dạng ảnh mặt người
(v) Đánh giá hiệu quả của 2 thuật toán
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
(a) Nghiên cứu lý thuyết
- Nghiên cứu các tài liệu về bài toán nhận dạng mặt người đã công bố ở trong và ngoài nước;
- Nghiên cứu phương pháp PCA để xây dựng hệ thống nhận dạng ảnh mặt người;
- Nghiên cứu phương pháp LDA để xây dựng hệ thống nhận dạng ảnh mặt người;
- Nghiên cứu tài liệu về ngôn ngữ lập trình Matlab để cài đặt các thuật toán thử nghiệm
(b) Nghiên cứu thực nghiệm
Trang 12- Cài đặt thử nghiệm hệ thống nhận dạng ảnh mặt người bằng phương pháp PCA và LDA Đánh giá hiệu quả của 2 thuật toán nhận dạng
3.2 Phạm vi nghiên cứu
Bài toán nhận dạng mặt người mới xuất hiện cách đây không lâu, chỉ khoảng vài thập niên, nhưng đã có rất nhiều nghiên cứu về nó Cho tới nay, nhiều phương pháp nhận dạng mặt người được đề xuất như PCA, LDA, ICA, SVM,…và đã đạt được nhiều thành tựu lớn Trong phạm vi luận văn này, chúng tôi thử nghiệm giải quyết bài toán nhận dạng mặt người dựa trên tập dữ liệu ảnh mặt người đã được cho trước Hai hướng tiếp cận được thử nghiệm
để nhận ra đối tượng được đưa vào từ bức ảnh gồm
(i) Hệ thống nhận dạng ảnh mặt người dựa trên phương pháp PCA
(ii) Hệ thống nhận dạng ảnh mặt người dựa trên đặc trưng LDA
4 Nội dung nghiên cứu
- Nghiên cứu tổng quan lý thuyết nhận dạng mẫu và tình hình nghiên cứu bài toán nhận dạng mặt người
- Nghiên cứu lý thuyết phương pháp PCA để phân tích các thành phần chính và nhận dạng ảnh mặt người
- Nghiên cứu lý thuyết phương pháp LDA để trích rút đặc trưng và nhận dạng ảnh mặt người
- Nghiên cứu ngôn ngữ lập trình Matlab để cài đặt thử nghiệm 2thuật toán nhận dạng
- Lập trình thử nghiệm 2 thuật toán nhận dạng ảnh mặt người bằng phương pháp PCA và LDA
- Thử nghiệm và đánh giá các thuật toán nhận dạng
- Viết báo cáo luận văn
Trang 135 Cấu trúc của luận văn
Với mục tiêu chính là tìm hiểu, nghiên cứu và thực nghiệm 2 thuật toán về nhận dạng mặt người PCA và LDA nên cấu trúc luận văn bao gồm 3 chương: CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG MẪU
CHƯƠNG 2: NHẬN DẠNG ẢNH MẶT NGƯỜI BẰNG PHƯƠNG
PHÁP PCA VÀ LDA CHƯƠNG 3: THIÊT KẾ HỆ THỐNG NHẬN DẠNG ẢNH MẶT
NGƯỜI
Trang 14CHƯƠNG 1: TỔNG QUAN 1.1 Đặt vấn đề
Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành thị giác máy tính, và cũng được xem là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition)
Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặt trưng (feature extraction) của mỗi lĩnh vực Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức
và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người
So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn, ta có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng và ít đòi hỏi sự tương tác có kiểm soát hơn ,để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát
Hiện nay các phương pháp nhận dạng mặt được chia thành nhiều hướng theo các tiêu chí khác nhau: nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D (still image based FR) là phổ biến nhất, tuy nhiên tương lai có lẽ sẽ là 3D FR
vì việc bố trí nhiều camera 2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn, cũng có thể chia thành 2 hướng là: làm với dữ liệu ảnh và làm với dữ liệu video Trên thực tế người ta hay chia các phương pháp nhận dạng mặt ra làm 3 loại: phương pháp tiếp cận toàn cục (global, như Eigenfaces-PCA, Fisherfaces-LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (local feature based, như LBP, Gabor wavelets) và phương pháp
Trang 15lai (hybrid), là sự kết hợp của hai phương pháp toàn cục và local feature Phương pháp dựa trên các đặc điểm cục bộ đã được chứng minh là ưu việt hơn khi làm việc trong các điều kiện không có kiểm soát và có thể nói rằng lịch sử phát triển của nhận dạng mặt là sự phát triển của các phương pháp trích chọn đặc trưng (feature extractrion methods) được sử dụng trong các hệ thống dựa trên các đặc trưng cơ bản Các ứng dụng cụ thể của nhận dạng mặt dựa trên 2 mô hình nhận dạng: identification (xác định danh tính, bài toán 1-N), và verification (xác thực danh tính, bài toán 1-1) Trong bài toán identification, ta cần xác định danh tính của ảnh kiểm tra, còn trong bài toán verification ta cần xác định 2 ảnh có cùng thuộc về một người hay không
1.2 Tổng quan về hệ thống nhận dạng mẫu
Nhận dạng mẫu (pattern recognition) là một ngành thuộc lĩnh vực học máy (machine learning) Nói cách khác, nó có thể được xem là việc "cần thực hiện một tác động vào dữ liệu thô mà tác động cụ thể là gì sẽ tùy vào loại của
dữ liệu đó" Như vậy nó là một tập các phương pháp học có giám sát (supervised learning)
Nhận dạng mẫu nhằm mục đích phân loại dữ liệu là các mẫu dựa trên: hoặc là kiến thức tiên nghiệm hoặc dựa vào thông tin thống kê được trích rút
từ các mẫu có sẵn Các mẫu cần phân loại thường được biểu diễn thành các nhóm của các dữ liệu đo đạc hay quan sát được, mỗi nhóm là một điểm ở trong một không gian đa chiều phù hợp Đó là không gian của các đặc tính để dựa vào đó ta có thể phân loại
Một hệ thống nhận dạng mẫu hoàn thiện gồm một thiết bị cảm nhận (sensor) để thu thập các quan sát cần cho việc phân loại hay miêu tả; một cơ chế trích chọn đặc trưng (feature extraction) để tính toán các thông tin dưới dạng số hay dạng tượng trưng (symbolic) từ các dữ liệu quan sát được;
Trang 16và một bộ phân loại hay lược đồ mô tả nhằm thực hiện công việc phân loại thực sự dựa vào các đặc tính đã được trích chọn
Việc phân loại thường dựa vào sự có sẵn của một tập các mẫu mà đã được phân loại sẵn Tập các mẫu này được gọi là tập huấn luyện và chiến lược học nhằm phân loại mẫu vào một trong các lớp có sẵn được gọi là học có giám sát Việc học cũng có thể là không có giám sát, theo nghĩa là hệ thống không được cung cấp các mẫu được phân loại tiên nghiệm, mà nó phải tự đưa ra các lớp để phân loại dựa vào tính ổn định trong thống kê của các mẫu
Việc phân loại thường dùng một trong các hướng tiếp cận sau: thống
kê hay lí thuyết quyết định, cấu trúc Nhận dạng mẫu dùng thống kê là dựa vào các đặc tính thống kê của các mẫu, chẳng hạn rằng các mẫu được tạo mởi một hệ thống xác suất Nhận dạng dùng cấu trúc là dựa vào tương quan cấu trúc giữa các mẫu
Các ứng dụng phổ biến là nhận dạng tiếng nói tự động, phân loại văn bản thành nhiều loại khác nhau, ví dụ: những thư điện tử nào là spam/non-spam, nhận dạng tự động các mã bưu điện viết tay trên các bao thư, hay hệ thống nhận dạng danh tính dựa vào mặt người Ba ví dụ cuối tạo thành lãnh vực con phân tích ảnh của nhận dạng mẫu với đầu vào là các ảnh số
1.2.1 Phân lớp bài toán nhận dạng
Nhận dạng mẫu là một bài toán phân lớp các dữ liệu đầu vào thông qua các trích chọn các đặc trưng của dữ liệu hoặc các thuộc tính dữ liệu, quá trình phân lớp được mô tả ở hình (1.1)
Trang 17Hình 1 1: Phân lớp nhận dạng mẫu
1.2.1.1 Học có giám sát (supervised learning)
Dữ liệu (data):
- D = {d1; d2; … ; dn} là một tập n mẫu (examples)
- Mỗi mẫu di = (xi; yi); i = 1; 2; … ; n trong đó xi là một vector vào và yi
là đầu ra mong muốn (được đưa bởi người giám sát - teacher)
Mục tiêu (objective): học một hàm f : X → Y sao cho yi f (xi) với i = 1; 2; … ; n
Hai loại bài toán:
- Regression: (X rời rạc hoặc liên tục) và (Y liên tục)
- Classification: (X rời rạc hoặc liên tục) và (Y rời rạc)
1.2.1.2 Học không có giám sát (unsupervised learning)
Phân lớp không giám sát
Dựa trên phân bố
Phân lớp thống kê
Phương pháp
có tham số
Phương pháp không tham số
Trang 18- xi là một vector vào không có giá trị đầu ra mong muốn (không biết yi; i= 1;2;…;n)
Mục tiêu (objective): học mối quan hệ giữ các mẫu
Hai loại bài toán:
- Clustering: nhóm các mẫu có tính chất tương tự với nhau
- Density estimation: Tìm mật độ xác suất phân bố của các mẫu
1.2.2 Chu trình thiết kế hệ thống nhận dạng mẫu
Hình 1 2: Chu trình thiết kế hệ thống nhận dạng mẫu
Dữ liệu: Là quá trình thu thập mẫu, quá trình này có thể cần làm “sạch”
Học Đánh giá mô hình
Yêu cầu biết trước mẫu
Trang 19 Đổi tên (ví dụ hight → 2, normal → 1, low → 0 )
Chuẩn hóa (ví dụ chuẩn hóa các giá trị về [-1,1] hoặc [0,1])
Rời rạc hóa (ví dụ rời rạc (lấy mẫu) các giá trị liên tục)
Trừu tượng (ví dụ trộn các dạng giá trị với nhau, )
Trích chọn đặc trưng (feature selection):
Là phương pháp giúp giảm thiểu kích thước dữ liệu vì thông thường kích thước dữ liệu mẫu thường rất lớn vì vậy cần có phương pháp làm giảm kích thước của các mẫu phương pháp thông thường là trích chọn các đặc trưng của mẫu
Lựa chọn mô hình (model selection):
Sử dụng các kiến thức về các mẫu, phân tích sự tương quan để đoán mô hình
Học (learning):
Là quá trình huấn luyện từ đó có thể giải được các bài toán tối ưu: Linear programming, Gradient methods,
Đánh giá mô hình (evaluation)
- Phương pháp đơn giản: chia tập dữ liệu thành tập huấn luyện và tập
kiểm tra (xem hỉnh 1.3)
Ví dụ: 2/3 tập mẫu dùng huấn luyện, 1/3 tập mẫu dùng kiểm tra
Trang 20Hình 1 3: Phương pháp đánh giá mô hình đơn giản
- Các phương pháp phức tạp hơn: có 2 phương pháp
Random subsampling và Random subsampling
1 Random subsampling
Là việc lặp lại phương pháp đơn giản K lần
Hình 1 4: Phương pháp đánh giá mô hình Random subsampling
Tập dữ liệu
Tập huấn luyện
Tập thử nghiệm
Học (fit)
Đánh giá
Mô hình dự đoán
Trang 212 Cross-validation
Chia dữ liệu thành k nhóm tương đương Kiểm tra trên nhóm thứ i và huấn luyện trên tập còn lại
Hình 1 5: Phương pháp đánh giá mô hình Cross-validation
1.2.3 Hướng tiếp cận hệ thống nhận dạng mặt người bằng phương
pháp PCA
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)[2], 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
- Nhóm thứ nhất: Thử nghiệm
- Các nhóm còn lại: Huấn luyện
Trang 22sá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
Phép biến đổi tạo ra những ưu điểm sau đối với dữ liệu:
- Giảm số chiều của không gian chứa dữ liệu khi nó có số chiều lớn, không thể thể hiện trong không gian 2 hay 3 chiều
- Xây dựng những trục tọa độ mới, thay vì giữ lại các trục của không gian cũ, nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương, và đảm bảo độ biến thiên của dữ liệu trên mỗi chiều mới
- Tạo điều kiện để các liên kết tiềm ẩn của dữ liệu có thể được khám phá trong không gian mới, mà nếu đặt trong không gian cũ thì khó phát hiện
vì những liên kết này không thể hiện rõ
- Đảm bảo các trục tọa độ trong không gian mới luôn trực giao đôi một với nhau, mặc dù trong không gian ban đầu các trục có thể không trực giao
1.2.4 Hướng tiếp cận hệ thống nhận dạng mặt người bằng đặc trưng
LDA
Discriminant Analysis
[17] Discriminant Analysis (DA) là một phương pháp phân tích trong thống kê được dùng để phân loại các đối tượng (object) vào các nhóm dựa trên việc đo lường các đặc trưng của đối tượng DA tìm cách phân loại các đối tượng (người, sự vật, ) vào một trong hai hay nhiều lớp đã được xác định trước dựa vào các đặc trưng (feature) dùng để mổ tả đối tượng (ví dụ nhữ các đặc trưng dùng để mô tả đối tượng khách hàng là giới tính, tuổi, nghề nghiệp, thu nhập, ) Mục đích chính của DA là:
Trang 23 Tìm tập các thuộc tính tốt nhất để mô tả đối tượng Vấn đề này còn gọi
là trích chọn đặc trưng (feature extraction) hay lựa chọn đặc trưng (feature selection) Mục đích phần này là từ tập các thuộc tính mô tả đối tượng ban đầu (thường rất lớn, có thể hàng trăm thuộc tính) tìm ra tập các thuộc tính tốt nhất để biểu diễn cho đối tượng nhằm làm giảm
số chiều biểu diễn đối tượng tứ đó làm giảm chi phí tính toán nhưng chất lượng của mô hình không bị giảm đi
Tìm một mô hình tốt nhất để phân loại (classification) các đối tượng
1.3 Tình hình nghiên cứu bài toán nhận dạng mặt người
Với sự phát triển của hệ thống máy tính và chuyên ngành về thị giác, có rất nhiều phương pháp nhận dạng được nghiên cứu áp dụng Mục tiêu chung của các phương pháp này là xây dựng một mô hình phù hợp nhất có thể thể hiện chính xác nhất hình ảnh đầu vào Có khá nhiều nghiên cứu về mô hình nhận dạng kinh điển và gần đây Tuy nhiên, mô hình thành công nhất có thể
kể đến là mô hình thống kê
Có hai phương pháp nhận dạng phổ biến hiện nay là nhận dạng dựa trên đặc trưng của các phần tử trên khuôn mặt như biến đổi Gabor Wavelet và mạng Neural, SVM (Support Vector Machine),… và nhận dạng dựa trên xét tổng thể toàn khuôn mặt như phương pháp PCA, LDA, LFA
[2] Trong đó, PCA là phương pháp rút trích đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mạng lại hiệu quả tốt Nhận dạng khuôn mặt dùng PCA kết hợp với mạng Nơron là phương pháp mạng lại hiệu quả nhận dạng cao bởi nó phát huy được ưu điểm của PCA và mạng nơron Bên cạnh đó, nhận dạng dựa trên các phần đặc trưng của các phần tử trên khuôn mặt cũng được thu hút nhiều chuyên gia nghiên cứu
Trang 24Về tình hình nghiên cứu trong nươc có thể liệt kê một số công trình: [16]
- Trần Phước Long và Nguyễn Văn Lượng (2003), dùng mạng nơron để
dò tìm khuôn mặt trong ảnh, kết hợp với phương pháp PCA và biến đổi cosine rời rạc (DCT) để rút ra các đặc trưng là đầu vào cho bộ nhận dạng máy học SVM và mô hình Markov ẩn HMM
- Nguyễn Thành Thái (2006) đã kết hợp SVM (Support Vector Machine) và mạng Nơron để nhận dạng khuôn mặt người
- Nguyễn Quốc Bình (2011) đã nhận diện khuôn mặt bằng cách sử dụng giải thuật PCA để xây dựng chương trình quản lý nhân viên
- Võ Hoàng Minh, Trần Bình Long, Lê Hoàng Thái, Trần Hành (2011)
đã nhận dạng mặt người dùng Polar Cosine Transform và mạng Radial Basis Function
- Mai Hữu Lợi (2011) đã sử dụng thuật toán PCA để nhận dạng khuôn mặt người
- Từ Minh Hiển – Trần Thị Khánh Hòa (2012) sử dụng mạng Nơron và phương pháp phân tích thành phần chính để nhận dạng khuôn mặt Các đối tượng được nhận dạng bằng cách sử dụng hai thuật toán: phương pháp đối sánh dùng khoảng cách Euclides, Mahalanobis và dùng mạng Nơron
Đối với các công trình nghiên cứu ở nước ngoài có thể kể đến như: [14] Các nghiên cứu (Bledsoe, & cs., 1960; Goldstein, & cs., 1970), sử dụng tiếp cận dựa trên các đặc trưng như mắt, tai, màu tóc, độ dày môi để tự động nhận dạng
- Kirby và Sirovich (1988); Turk và Pentland (1991) áp dụng phương pháp phân tích thành phần chính (PCA) và thuật toán eigenfaces để nhận dạng khuôn mặt;
Trang 25- Zuo và cs (2006) đã kết hợp phương pháp PCA hai chiều với phân tích độc lập tuyến tính (LDA);
- Chen và Yaou Zhao (2006) kết hợp DCT và Hierarchical Radial Basis Function Network (HRBF);
- Sharif, Sajjad Mohsin, Muhammad Younas Javed, và Muhammad Atif Ali (2012) kết hợp thuật toán Laplacian of Gaussian (LoG) và DCT;
- Suhas, Kurhe Ajay B., và Dr Prakash Khanale B (2012) áp dụng PCA kết hợp với DCT theo hướng tiếp cận toàn diện;
- Sunil (2013) kết hợp PCA với DCT; Bouzalmat, Jamal Kharroubi và Arsalane Zarghili (2013) áp dụng thuật toán máy học SVM dựa trên LDA, để nhận dạng khuôn mặt người trên ảnh
Nhìn chung từ trước đến nay đã có rất nhiều công trình nghiên cứu đề cập đến vấn đề nhận dạng mặt người bằng nhiều thuật toán khác nhau, Hiện nay nhiều thuật toán cũng được phát triển để cải tiến cho phương pháp PCA
và LDA Việc đánh giá các thuật toán nhằm kiểm nghiệm lại tính hiệu quả là một công việc cần thiết nhằm tìm kiếm những cải tiến cũng như phát hiện những thuật toán mới nằm nâng cao hiệu suất trong lĩnh vực nhận dạng ảnh mặt người, tiến gần đến ứng dụng hiệu quả trong thực tế
Trang 26
CHƯƠNG 2:
NHẬN DẠNG ẢNH MẶT NGƯỜI BẰNG PHƯƠNG PHÁP
PCA VÀ LDA 2.1 Giới thiệu
Đối với nhận dạng ảnh mặt người ta không thể đối sánh điểm ảnh với điểm ảnh của 2 ảnh vì mỗi ảnh khi chụp ở từng thời điểm khác nhau đều có
độ sáng khác nhau, độ nét khác nhau, vị trí khuôn mặt ở mỗi bức ảnh sẽ không cùng vị trí cũng như bố cục, độ nghiêng … của ảnh sẽ không đồng nhất
sẽ dẫn đến việc nhận dạng không có ý nghĩa thực tiễn Để làm được điều này
ta cần phải áp dụng phương pháp nhận dạng bằng trích chọn đặc trưng, sau đó
ta tiến hành phân lớp các trích chọn đặc trưng này, trước đó ảnh phải qua quá trình tiền xữ lý nhằm mục đích chuẩn hóa các ảnh về các thông số tương ứng nhau
Trích chọn thuộc tính (Feature Extraction) là việc tìm ra một tập thuộc tính mới từ tập thuộc tính ban đầu nhằm nâng cao hiệu suất tính toán và độ chính xác phân lớp Các kỹ thuật trích chọn thuộc tính thường liên quan đến các phép biến đổi phi tuyến (non-linear) Principal Components Analysis (PCA) và Linear Discriminant Analysis (LDA) là hai kỹ thuật phổ biến dùng trong trích chọn thuộc tính
Khuôn mặt người có rất nhiều nét để nhận biết , nếu như ta gặp một người bạn sau một thời gian dài, ta có thể nhận ra ngay người đó dù những chi tiết
cụ thể trên người đó có thể thay đổi như da , mái tóc Ta nhận ra ngay người
đó không phải vì nhớ được đôi mắt , mũi , hay môi , tóc , lông mày mà ta nhận ra vì nhớ được diện mạo của người đó Tức là tồn tại một nét tổng thể nào đó để có thể nhận diện , các thuật toán PCA và LDA đều bắt đầu từ ý tưởng này
Trang 27PCA là một thuật toán được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban đầu nhưng vẫn mang những đặc trưng cơ bản nhất của ảnh cần nhận dạng PCA không cần quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm đó Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của một tập hợp các vector trong không gian cho trước Trong không gian mới, người ta hi vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban đầu
Phân tích thành phần chính (PCA) là thuật toán nhận dạng ảnh dựa trên những nét tổng thể của khuôn mặt
Ban đầu ta có một tập ảnh khuôn mặt gọi là tập ảnh huấn luyện (training set) Giả sử mỗi ảnh có kích thước M*N , ta coi mỗi bức ảnh này là một vector trong không gian M*N chiều Bây giờ mỗi khuôn mặt là một vector , ta thấy những vector này không phân bố ngẫu nhiên trong không gian ảnh mà phân bố theo một quy luật tương đối nào đó, ta có thể nói những vector này nằm trong một không gian còn gọi là không gian khuôn mặt Từ những vector trong tập huấn luyện , ta sẽ tìm một cơ sở trực chuẩn cho không gian khuôn mặt Những vector thuộc cơ sở này có thể coi là những vector mang những nét tổng thể đặc trưng về khuôn mặt
Linear Discriminant Analysis (LDA) là một nhánh của DA (Discriminant Analysis), phương pháp này phân loại dữ liệu bằng cách tìm hướng phân biệt nhất (most discriminative direction) Mục đích của LDA là tìm các hướng mà theo đó các lớp được phân chia tốt nhất thông qua việc khảo sát phân bố liên lớp (between-class scatter) và phân bố nội lớp (within-class scatter) Từ đó
Trang 28làm giảm số chiều trong khi giữ lại những thổng tin phân biệt các lớp nhiều nhất có thể
2.2 Cơ sở toán học [7]
2.2.1 Độ lệch chuẩn (Standard deviation)
Độ lệch chuẩn được sử dụng để đo lường mức độ phân tán của dữ liệu, kí hiệu là s
Ví dụ: Cho một tập dữ liệu X:
X=[1 2 4 6 12 15 25 45 68 67 65 98]
Quy ước: chúng ta dùng kí hiệu X để chỉ tập dữ liệu Để truy xuất đến từng phần tử trong tập dữ liệu, ta sử dụng chỉ số dưới, ví dụ X1 sẽ là định danh của phân tử thứ 1, X2 sẽ là định danh cho phần tử thứ 2
Trong xác suất, chúng ta còn có một khái niệm khác đó là giá trị trung bình, được tính theo công thức:
1
n i
i X X
n
(2 1)
Tuy nhiên, số trung bình chỉ cho chúng ta biết về giá trị trung bình của tập
dữ liệu, chứ không cho biết mức độ phân tán dữ liệu Bởi vì, 2 tập dữ liệu khác nhau, có thể có cùng một giá trị trung bình, nhưng mức độ phân tán dữ liệu thì lại hoàn toàn khác nhau
Ví dụ, có 2 tập dữ liệu [0 8 12 20] và [8 9 11 12] 2 tập này đều có giá trị trung bình là 10, nhưng rõ ràng tập 1, dữ liệu phân tán nhiều hơn so với tập 2
Để tính độ lệch chuẩn chúng ta sử dụng công thức sau: (2.2)
Trang 291( ) ( 1)
n i
Trong đó: X là giá trị trung bình
Ví dụ: cho tập dữ liệu X=[0 8 12 20] và Y=[8 9 11 12], tính độ lệch chuẩn Tính cho tập dữ liệu X:
- Tính giá trị trung bình
0 8 12 20
104
Y
Ta thấy sX>sY, điều này cho thấy tập X có độ phân tán dữ liệu lớn hơn tập
Y, mặc dù cả hai đều có chung giá trị trung bình là 10
2.2.2 Phương sai (Variance)
Cũng dùng để đo lường độ phân tán dữ liệu của một tập dữ liệu Thực sự, phương sai hoàn toàn tương tự với độ lệch chuẩn
Trang 30i X X s
2.2.3 Hiệp phương sai (Covariance)
Phương sai và độ lệch chuẩn đều dùng đo lường sự phân tán của dữ liệu
và 2 giá trị này chỉ dùng để tính toán cho 1 chiều Tuy nhiên, trong thực tế, các tập dữ liệu có nhiều chiều và việc phân tích xác suất với các tập dữ liệu này, người ta còn quan tâm đến việc xem xét xem có sự liên quan nào giữa các chiều của tập dữ liệu hay không? Ví dụ chúng ta có một tập dữ liệu chứa
số giờ dành cho ôn thi của tất cả các học sinh trong lớp và số điểm mà họ đạt được trong kì thi Và trong trường hợp này, chúng ta có thể thực hiện việc phân tích dữ liệu để xem xem liệu có sự liên quan nào giữa chiều cao của từng học sinh và số điểm mà chúng đạt được
Hiệp phương sai (Covariance) là một giá trị đo để xem xét mối liên hệ giữa 2 biến Kí hiệu là Cov(X,Y) với X,Y là 2 biến
Vậy ý nghĩa của hiệp phương sai là gì? chúng ta sẽ đi vào một ví dụ cụ thể
để thấy được điều đó
Giả sử chúng ta là một nhà khoa học, đi nghiên cứu xem có mối liên hệ nào giữa số giờ học chuẩn bị cho kì thi của các học sinh và điểm số của họ trong kì thi đó chúng ta sẽ đi hỏi từng học sinh về số giờ và điểm số Vậy là
dữ liệu chúng ta thu thập được có 2 chiều, chiều H là số giờ một học sinh chuẩn bị cho kì thi và chiều M là điểm số của họ Sau đó chúng ta
Trang 31tính Cov(H,M) Cov(H,M), hiệp phương sai giữa số giờ chuẩn bị cho kì thi và điểm số
Khi tính toán hiệp phương sai, người ta không quan tâm đến giá trị của nó
mà chỉ quan tâm đến dấu Bởi vì từ dấu của hiệp phương sai, chúng ta có thể rút ra nhiều kết luận có giá trị, Nếu:
Cov(H,M) > 0điều đó nói rằng cả 2 giá trị số giờ học và điểm số tăng cùng nhau, nghĩa là số giờ mà học sinh dành để ôn thi càng nhiều → điểm số của
họ càng cao
Cov(H,M) < 0 điều đó nói rằng cả 2 giá trị số giờ học và điểm số không tăng cùng nhau, số giờ học tăng → điểm số giảm
Cov(H,M) = 0 giữa điểm số và giờ học không có mối quan hệ gì
Đặc tính của hiệp phương sai đó là:
Chỉ tính toán cho dữ liệu 2 chiều
Cov(X,Y) = Cov(Y,X)
2.2.4 Ma trận hiệp phương sai (Covariance matrix)
Hiệp phương sai chỉ dùng để tính toán cho dữ liệu có 2 chiều Vậy đối với
dữ liệu có nhiều chiều (n>2), chúng ta có thể tính toán được rất nhiều hiệp phương sai (chọn từng cặp chiều trong n chiều, và tính toán hiệp phương sai cho 2 chiều đó) Ví dụ dữ liệu có 3 chiều x, y, z thì đối với dữ liệu này, chúng
ta có thể tính toán được: cov(x,y), cov(y,z), cov(x,z)
Ma trận hiệp phương sai là ma trận chứa tất cả các hiệp phương sai có thể được tạo ra Ví dụ, chúng ta có dữ liệu 3 chiều x,y,z thì ma trận hiệp phương sai sẽ là:
Trang 32cov( , ) cov( , ) cov( , )
cov( , ) cov( , ) cov( , )
cov( , ) cov( , ) cov( , )
2.2.5 Vectơ riêng (Eigenvectors)
Chúng ta sẽ đi xem xét ví dụ nhân 2 ma trận
được gọi là eigenvector
Eigenvector chỉ được tìm thấy cho ma trận vuông, với ma trận vuông n x n
sẽ có n eigenvector Nghĩa là, với ma trận vuông 3x3 sẽ có 3 eigenvector Eigenvector của một ma trận vuông n x n là vector mà khi nhân ma trận đó với eigenvector thì sẽ thu được 1 vector mà giá trị của từng phần tử tương ứng
sẽ bằng k lần so với giá trị của phần tử của eigenvector
Trang 34Hình 2 2: Phép chiếu trong hệ cơ sở v sang hệ cơ sở u
Khi loại bỏ một số thành phần của x để thu được y thì sẽ gây ra sai số nhất định Phương pháp PCA sẽ cố gắng tìm phép biến đổi tuyến tính T (ma
trận có kích thước KxN) thỏa: y=Tx sao cho trung bình bình phương lỗi (MSE
- Mean Squared Error) là bé nhất
2.3.2 Các bước thực hiện thuật toán
Phương pháp phân tích thành phần chính cho phép xác định các mẫu trong một tập dữ liệu và biểu diễn dữ liệu theo cách có thể làm nổi bật được
sự giống nhau và khác nhau giữa các mẫu Vì các mẫu có thể rất khó tìm ra trong dữ liệu nhiều chiều (do không thể biểu diễn trực quan bằng đồ họa), nên PCA [2] là một công cụ hữu hiệu để phân tích dữ liệu Phương pháp này bao gồm một số bước cơ bản sau:
2.3.2.1 Tính các khuôn mặt riêng (Eigenface) [8]
Bước 1:
Sử dụng M ảnh khuôn mặt I 1 , I 2 , …, I M là tập các khuôn mặt huấn luyện (training face), yêu cầu là các ảnh này phải có cùng kích thước và ảnh các nhân vật phải được đặt ở giữa ảnh, xem ví dụ ở hình 2.3
x=a 1 v 1 + a 2 v 2 + …a N v N
y=b 1 u 1 + b 2 u 2 +…b N u N
Phép chiếu Không gian N chiều
với hệ cơ sở v 1 , v 2 ,…, v N
Không gian K chiều với K<<N
với hệ cơ sở u 1 , u 2 ,…, u N