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, 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ự
Trang 1TRƯỜNG ĐẠI HỌC VINH _
NGUYỄN THỊ THANH HOÀI
Trang 2TRƯỜNG ĐẠI HỌC VINH _
NGUYỄN THỊ THANH HOÀI
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS HOÀNG HỮU VIỆT
Nghệ An, 2017
Trang 3LỜ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 và mạng neural” 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
Tác giả
Nguyễn Thị Thanh Hoài
Trang 4đỡ, động viên, tạo mọi điều kiện thuận lợi để tôi hoàn thành nhiệm vụ học tập
và cuốn luận văn này
Nghệ An, ngày 10 tháng 3 năm 2017
Tác giả
Nguyễn Thị Thanh Hoài
Trang 5MỤC LỤC
Trang
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH
LỜI NÓI ĐẦU 1
CHƯƠNG 1 TỔNG QUAN 6
1.1 Đặt vấn đề 6
1.2 Tổng quan về hệ thống nhận dạng mẫu 7
1.2.1 Phân lớp bài toán nhận dạng 7
1.2.2 Chu trình thiết kế hệ thống nhận dạng mẫu 9
1.2.3 Thiết kế hệ thống nhận dạng mặt người 10
1.3 Tình hình nghiên cứu bài toán nhận dạng mặt người 12
1.3.1 Tình hình nghiên cứu trong nước 12
1.3.2 Tình hình nghiên cứu ngoài nước 12
CHƯƠNG 2 PHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN CHÍNH 13
2.1 Cơ sở lý thuyết 13
2.1.1 Giới thiệu 13
2.1.2 Các đại lượng toán học của phương pháp PCA 15
2.2 Thuật toán PCA cho nhận dạng ảnh mặt người 17
2.3 Ví dụ các bước của thuật toán 22
CHƯƠNG 3 MẠNG NEURAL NHÂN TẠO 31
3.1 Giới thiệu về mạng neural 31
3.1.1 Lịch sử phát triển 31
Trang 63.1.2 Các ứng dụng của mạng neural 32
3.2 Kiến trúc mạng neural 33
3.2.1 Mô hình neural 33
3.2.2 Mô hình mạng neural nhân tạo 36
3.2.3 Mạng neural một lớp 39
3.2.4 Mạng neural đa lớp 40
3.2.5 Mạng neural hồi quy (recurent networks) 42
3.3 Mạng Perceptron một lớp 43
3.3.1 Kiến trúc mạng 43
3.3.2 Luật học cho mạng 46
3.3.3 Hạn chế của mạng 47
3.4 Mạng Perceptron nhiều lớp và thuật toán lan truyền ngược 48
3.4.1 Kiến trúc mạng Perceptron nhiều lớp 48
3.4.2 Thuật toán lan truyền ngược (back-propagation) 49
3.4.3 Ví dụ phân lớp với mạng Perceptron nhiều lớp 49
CHƯƠNG 4 THIẾT KẾ HỆ THỐNG NHẬN DẠNG ẢNH MẶT NGƯỜI 52
4.1 Cơ sở dữ liệu cho thử nghiệm 52
4.2 Nhận dạng với PCA 53
4.3 Nhận dạng với MPL sử dụng đặc trưng PCA 57
4.3.1 Thử nghiệm với mạng MPL 2 tầng 57
4.3.2 Thử nghiệm với mạng MPL 3 tầng 59
4.4 Một số nhận xét và đề xuất 61
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 64
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
MLP (Multilayer Perceptron): Mạng Perceptron nhiều lớp
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
Trang 8DANH MỤC CÁC BẢNG
Trang
Bảng 2.1 Biểu diễn của 6 ảnh bởi 6 ma trận số liệu 4x6 22
Bảng 2.2 Biểu diển vector cột của mặt ảnh và giá trị trung bình 23
Bảng 2.3 Biểu diển vector cột của mặt ảnh và giá trị trung bình 24
Bảng 2.4 Ma trân hiệp phương sai C 25
Bảng 2.5 Ma trận vector riêng C 25
Bảng 2.6 Ma trận giá trị riêng C 26
Bảng 2.7 Ma trận vector riêng của C theo thứ tự giảm dần 26
Bảng 2.8 Ma trận giá trị riêng theo thứ tự giảm dần 26
Bảng 2.9 Ma trận vector riêng u i 26
Bảng 2.10 Các vector đặc trưng (eiggent face) của 6 ảnh 27
Bảng 2.11 Lấy vector đặc trưng của 4 ảnh 28
Bảng 2.12 Biểu diễn ma trận ảnh I7 28
Bảng 2.13 Biểu diễn vector I7 thành cột và trờ ảnh trung bình 28
Bảng 2.14 Biểu diễn vetor riêng I7 29
Bảng 2.14 Khoảng cách giữa I7 với 6 ảnh trong tập huấn luyện 30
Bảng 3.1 Một số hàm truyền của mạng neural 37
Bảng 4.1 Kết quả của các thử nghiệm với bộ dữ liệu 1 và bộ dữ liệu 2 54
Bảng 4.2 Kết của các thử nghiệm với mạng neural 2 tầng 58
Bảng 4.3 Kết của của các thử nghiệm với mạng neural 3 tầng 59
Trang 9DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Chu trình hệ thống nhận dạng mẫu 9
Hình 1.2 Hệ thống nhận dạng mặt người cơ bản 11
Hình 2.1 Ví dụ vector thường và vetor riêng 15
Hình 2.2 Ví dụ về sự ổn định của vector riêng đối với việc lấy tỉ lệ 16
Hình 2.3 Biểu diễn vector của ảnh mặt người 17
Hình 2.4 Dạng của vector của mặt được tạo từ bức ảnh của khuôn mặt 17
Hình 3.1 Cấu tạo của tế bào neural sinh học 34
Hình 3.2 Mô hình neural nhân tạo 35
Hình 3.3 Mô hình mạng neural một đầu vào 36
Hình 3.4 Mô hình neural nhiều đầu vào 38
Hình 3.5 Mô hình neural nhiều đầu vào 39
Hình 3.6 Kiến trúc mạng neural một lớp 40
Hình 3.7 Mạng neural một lớp S neural R đầu vào 40
Hình 3.8 Mạng neural truyền thẳng nhiều lớp 42
Hình 3.9 Khối trễ 43
Hình 3.10 Khối tích phân 43
Hình 3.11 Mạng hồi quy 43
Hình 3.12 Mạng Perceptron 44
Hình 3.13 Mạng Perceptron một neural hai đầu vào 45
Hình 3.14 Mạng Perceptron nhiều neural 46
Hình 3.15 Mạng Perceptron nhiều lớp 48
Hình 3.16 Đường biên quyết định 51
Hình 4.1 Ảnh của 1 người 52
Hình 4.2 Ảnh của 2 người 53
Hình 4.3 Các ảnh nhận dạng bị lỗi của bộ dữ liệu 1 ở tỷ lệ 95% 54
Hình 4.4 Các ảnh nhận dạng bị lỗi của bộ dữ liệu 2 ở tỷ lệ 73.7% 57
Hình 4.5 Mạng MPL 2 tầng cho trường hợp K = 10 59
Hình 4.6 Mạng neural 3 tầng 60
Trang 10LỜI NÓI ĐẦU
1 Lý do chọn đề tài
Trong thế giới ngày nay, cùng với sự phát triển mạnh mẽ của khoa học,
kỹ thuật số và mạng máy tính toàn cầu, vấn đề đảm bảo an toàn về thông tin,
cơ sở vật chất của các cá nhân, tập thể và cả của quốc gia nói chung ngày trở nên quan trọng và nhiều khó khăn Đặc biệt trong những năm ngần đây, tình hình thế giới gặp rất nhiều bất ổn, nhất là nạn khủng bố ngày càng tinh vi Do vậy 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, 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í…
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 nhận dạng vân tay, nhận dạng mống mắt 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
Xử lý ảnh là một trong những lĩnh vực ngày càng được phổ biến trong đời sống xã hội Không chỉ dừng lại ở việc xử lý những vết nhòe, tái chế và phục hồi các ảnh cũ, ngày nay các kỹ phương pháp xử lý ảnh đã mang lại
Trang 11những tiến bộ vượt bậc như nhận dạng vân tay, nhận dạng khuôn mặt, nhận dạng đối tượng khi nó kết hợp với lĩnh vực trí tuệ nhân tạo Mặt khác vấn đề
an ninh bảo mật đang được yêu cầu khắc khe tại mọi quốc gia trên thế giới Các hệ thống xác định nhận dạng con người được ra đời với độ tin cậy cao Một trong nhưng bài toàn nhận dạng con người được quan tâm nhất hiện nay
đó là nhận dạng qua khuôn mặt
Trong thế kỷ 20 có rất nhiều mô hình tính toán mô phỏng bộ não của người được nghiên cứu trong đó có mạng neural Mạng neural có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, nhận dạng, điều khiển
và được ứng dụng trong nhiều lĩnh vực của công nghệ thông tin
Một mạng neural nhân tạo bao gồm một tập các đơn vị xử lý cơ bản, gọi là neural, chúng truyền thông tin bằng cách gửi các tín hiệu cho nhau qua các kênh kết nối có trọng số Mỗi neural thực hiện một công việc tương đối đơn giản: nhận tín hiệu từ các neural lân cận hoặc từ nguồn bên ngoài, tính toán tín hiệu ra rồi truyền sang cho các neural khác Ngoài việc xử lý này, nhiệm vụ thứ hai của neural là điều chỉnh lại các trọng số Hệ thống sẽ được thực hiện song song vì nhiều neural có thể thực hiện tính toán ở cùng thời điểm
Các phương pháp nhận dạng mặt người 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 sóng Wavelet (Gabor Wavelet) và mạng neural (Neural Network) [1], Support Vector Machine (SVN),… 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 Phân tích thành phần chính (Principal Component Analysis - PCA) [10], phương pháp Phân tích sự khác biệt tuyến tính (Linear Discriminant Analysis - LDA) [4, 9], phương pháp Phân tích đặc điểm vùng
(Local Feature Analysis - LFA) Về bản chất, PCA là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh mà không làm mất đi các đặc trưng
Trang 12chính trên khuôn mặt Nhận dạng khuôn mặt dùng PCA kết hợp với mạng neural là phương pháp mang 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 neural
Với nhận thức như trên, tôi chọn đề tài: “Nhận dạng khuôn mặt người bằng phương pháp phân tích thành phần chính và mạng neural” làm luận
văn tốt nghiệp thạc sỹ ngành Công nghệ thông tin
2 Mục tiêu
2.1 Mục tiêu tổng quát
Nghiên cứu bài toá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 và mạng neural; cài đặt thử nghiệm thuật toán nhận dạng ảnh mặt người
2.2 Mục tiêu cụ thể
Đề tài tập trung vào 4 mục tiêu chính sau:
(i) Nghiên cứu tổng quan về bài toán nhận dạng
(ii) Nghiên cứu phương pháp PCA để trích rút đặc trưng của ảnh mặt người
(iii) Nghiên cứu mạng neural để xây dựng bộ phân lớp nhận dạng (iv) Cài đặt thử nghiệm thuật toán nhận dạng ảnh mặt người và đưa ra một số đánh giá hiệu quả của 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 để trích chọn đặc trưng ảnh mặt người cho hệ thống nhận dạng
Trang 13- Nghiên cứu mạng neural để xây dựng bộ phân lớp của hệ thống nhận dạng
- Nghiên cứu tài liệu về ngôn ngữ lập trình Matlab để cài đặt thuật toán thử nghiệm
(b) Nghiên cứu thực nghiệm
- Cài đặt thử nghiệm ứng dụng nhận dạng ảnh mặt người bằng phương pháp PCA và mạng neural và đánh giá hiệu quả của thuật toán đã để xuất
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ó Các nghiên cứu ban đầu rất đơn giản, ảnh đen trắng và chỉ có một khuôn mặt chụp thẳng, sau này mở rộng ra cho ảnh màu, ảnh có nhiều khuôn mặt với nhiều góc độ khác nhau, ảnh động, ảnh từ các đoạn Video và môi trương xung quanh cũng đi từ đơn giản đến phức tạp
Trong phạm vi luận văn này, tôi tập trung 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 Hệ thống nhận dạng sẽ thực hiện quá trình tiền xử lý để nâng cao chất lượng ảnh, trích rút đặc trưng của ảnh bằng phương pháp PCA và đưa tập đặc trưng đã xác định vào mạng neural để nhận ra đối tượng được đưa vào từ bức ảnh
4 Phương pháp nghiên cứu
Trang 145 Cấu trúc luận văn
Bố cục của luận văn gồm 4 chương với các nội dung như sau:
Chương 1: Tổng quan Tìm hiểu nghiên cứu lý thuyết tổng quan về
bài toán nhận dạng mẫu: phân lớp bài toán nhận dạng, chu trình thiết kế hệ thống nhận dạng mẫu và thiết kế hệ thống nhận dạng mặt người
Chương 2: Phương pháp phân tích thành phần chính Tìm hiểu cơ
sở lý thuyết của phương pháp PCA, thuật toán PCA nhận dạng ảnh mặt người
và ví dụ thể hiện các bước của thuật toán
Chương 3: Mạng Neural nhân tạo Giới thiệu cơ sở lý thuyết về
mạng Neural: lịch sử phát triễn mạng, ứng dụng mạng và các loại kiến trúc của mạng Neural
Chương 4: Thiết kế hệ thống nhận dạng ảnh mặt người Thực hiện
xây dựng cơ sở dữ liệu cho thực nghiệm Thực nghiệm nhận dạng ảnh mặt người với PCA, nhận dạng với mạng Neural và cuối cùng là so sánh và đánh giá hiệu quả của các phương pháp nhận dạng đó
Trang 15CHƯƠNG 1 TỔNG QUAN
1.1 Đặt vấn đề
Nhận dạng mẫu là một ngành thuộc lĩnh vực học máy [14] 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ận dạng mẫu nhằm mục đích phân loại dữ liệ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 để 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 rút đặc trưng để tính toán các thông tin dưới dạng số hay dạng tượng trưng từ các dữ liệu quan sát được; và một bộ phân loại 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 rút
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 đánh nhãn 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ê, cú pháp 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
Trang 16Cá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, 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 Tổng quan về hệ thống nhận dạng mẫu
1.2.1 Phân lớp bài toán nhận dạng
Nhận dạng mẫu thường được phân thành 3 lớp bài toán:
a Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một
hàm từ dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu vào và đầu ra mong muốn Đầu ra của một hàm có thể là một giá trị liên tục, hay có thể là dự đoán một nhãn phân loại cho một đối tượng đầu vào
Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện Để đạt được điều này, chương trình học phải tổng quát hóa từ các
dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lí"
Học có giám sát có thể tạo ra 2 loại mô hình Phổ biến nhất, học có giám sát tạo ra một mô hình toàn cục để ánh xạ đối tượng đầu vào đến đầu ra mong muốn Tuy nhiên, trong một số trường hợp, việc ánh xạ được thực hiện dưới dạng một tập các mô hình cục bộ
b Học không có giám sát là một phương pháp của ngành học
máy nhằm tìm ra một mô hình mà phù hợp với các quan sát Nó khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu vào là không biết trước Trong học không có giám sát, một tập dữ liệu đầu vào được thu thập Học không có giám sát thường đối xử với các đối tượng đầu vào như là một tập các biến ngẫu nhiên Sau đó, một mô hình mật độ kết hợp sẽ được xây dựng cho tập dữ liệu đó
Trang 17Học không có giám sát có thể được dùng kết hợp với suy diễn Bayes để cho ra xác suất có điều kiện cho bất kì biến ngẫu nhiên nào khi biết trước các biến khác
Học không có giám sát cũng hữu ích cho việc nén dữ liệu: về cơ bản, mọi giải thuật nén dữ liệu hoặc là dựa vào một phân bố xác suất trên một tập đầu vào một cách tường minh hay không tường minh
Một dạng khác của học không có giám sát là gom nhóm dữ liệu nó đôi khi không mang tính xác suất
c Học tăng cường là một lĩnh vực con của học máy, nghiên cứu cách
thức một agent trong một môi trường nên chọn thực hiện các hành động nào
để cực đại hóa một khoản thưởng nào đó về lâu dài Các thuật toán học tăng cường cố gắng tìm một chiến lược ánh xạ các trạng thái của thế giới tới các hành động mà agent nên chọn trong các trạng thái đó
Môi trường thường được biểu diễn dưới dạng một quá trình quyết định Markov trạng thái hữu hạn (Markov Decision Process - MDP), và các thuật toán học tăng cường cho ngữ cảnh này có liên quan nhiều đến các kỹ thuật quy hoạch động Các xác suất chuyển trạng thái và các xác suất thu lợi trong MDP thường là ngẫu nhiên nhưng lại tĩnh trong quá trình của bài toán Khác với học có giám sát, trong học tăng cường không có các cặp dữ liệu vào/kết quả đúng, các hành động gần tối ưu cũng không được đánh giá đúng sai một cách tường minh Hơn nữa, ở đây hoạt động trực tuyến được quan tâm, trong đó có việc tìm kiếm một sụ cân bằng giữa khám phá và khai thác tri thức hiện có Do đó, học tăng cường đặc biệt thích hợp cho các bài toán có
sự được mất giữa các khoản thưởng ngắn hạn và dài hạn Học tăng cường đã được áp dụng thành công cho nhiều bài toán, trong đó có điều khiển robot, điều vận thang máy, viễn thông, các trò chơi backgammon và cờ vua
Trang 181.2.2 Chu trình thiết kế hệ thống nhận dạng mẫu
- Làm sạch: là làm giảm nhiễu và loại bỏ các dư thừa dữ liệu
- Tiền xử lý: sử dụng các phương pháp đổi tên, chuẩn hoá, rời rạc hoá
và trừu tượng hoá
Dữ liệu vào (Data)
Trích chọn đặc trưng (Feature selection)
Lựa chọn mô hình (Model selection)
Học (Learning)
Đánh giá mô hình (Evaluation)
Trang 19Trích chọn đặc trưng:
Kích thước của các mẫu đưa vào thường rất lớn Mục đích làm giảm kích thước của mẫu thì phải trích chọn các đặc trưng của mẫu
Lựa chon mô hình:
Sử dụng các kiến thức về các mẫu, phân tích sự tương quan để đoán
Sử dụng các phương pháp đánh giá đơn giản như: chia tập dữ liệu
thành tập huấn luyện và tập kiểm tra
1.2.3 Thiết kế hệ thống nhận dạng mặt người
Nhiệm vụ của hệ thống nhận dạng mặt người là xử lý tự động thông tin
từ các ảnh để tìm ra độ tương tự giữa các khuôn mặt và đưa ra quyết định về tính đồng nhất giữa chúng [1, 15] Cấu trúc của hệ thống nhận dạng mặt người được thể hiện như hình 1.2
a Tiền xử lý:
Qua trình tiền xử lí đối với khuôn mặt nhằm nâng cao chất lượng ảnh, chuẩn hóa dữ liệu, kích thước ảnh giúp cho việc tìm kiếm được hiệu quả hơn Các ảnh trong nghiên cứu này là tương đối tốt nên ta không cần dung các thuật toán nâng cao chất lượng ảnh Các công việc trong bước tiền xử lý có thể là: Chuẩn hóa kích cỡ giữa ảnh trong cơ sở dữ liệu (CSDL) và ảnh cầm tìm, hiệu chỉnh độ sáng, tối của ảnh; lọc nhiễu, chuẩn hóa về vị trí, tư thế ảnh mặt Việc chuẩn hoá ảnh tốt khiến độ lệch giữa 2 điểm ảnh được giảm xuống làm cho việc trích rút đặc trưng thêm chính xác
Trang 20Hình1.2 Hệ thống nhận dạng mặt người cơ bản
b Tách khuôn mặt:
Chức năng này làm nhiệm vụ xác định vị trí, kích cỡ của một hoặc nhiều khuôn mặt trên ảnh chụp từ đó tách ra phần mặt Phần ảnh mặt đươc tách ra thường nhỏ hơn nhiều so với ảnh chụp ban đầu, nó sẽ là các khuôn mặt cần tìm và chức năng trích chọn đặc trưng sẽ sử dụng các ảnh được tách
Trang 21d Đối sánh (comparison) - nhận dạng khuôn mặt:
Những đặc trưng sau khi được trích rút sẽ đưa vào khối nhận dạng để phân lớp đối tượng Thực hiện việc so sánh giữa các vector đặc trưng để chọn
ra độ tương tự giữa ảnh cần tìm và ảnh trong CSDL Ảnh chân dung mặt người cho giấy tờ xuất nhập cảnh và đi đường thỏa mãn các yêu cầu của tiêu chuẩn quốc tế quy định
1.3 Tình hình nghiên cứu bài toán nhận dạng mặt người
1.3.1 Tình hình nghiên cứu trong nước
Đối với nghiên cứu nhận dạng ảnh mặt người trong nước hiện nay đang trong quá trình nghiên cứu và thử nghiệm, chưa thấy có công trình nào đạt kết quả cao được công bố
1.3.2 Tình hình nghiên cứu ngoài nước
Hiện nay trên thế giới đã có rất nhiều công trình sử dụng phương pháp phân tích thành phần chính và mạng neural để nhận dạng mặt người và đã được ứng dụng nhiều trong thực tiễn Một số công trình nghiên cứu của các tác giả nỗi tiếng đã được biết đến như: Byung-Joo Oh [4], Kresimir Delac [9], Lindsay I Smith [10], Volkan Akalin [15]…
Trang 22CHƯƠNG 2 PHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN CHÍNH
Chương này trình bày về cơ sở lý thuyết của phương pháp phân tích thành phần chính (PCA) [10], các đại lượng toán học của phương pháp PCA, thuật toán PCA cho nhận dạng mặt người và ví dụ cụ thể thực hiện các bước thuật toán
2.1 Cơ sở lý thuyết
2.1.1 Giới thiệu
Nội dung chính của hướng tiếp cận nhận dạng mặt người dựa trên xét toàn diện khuôn mặt là xem mỗi ảnh có kích thước MN là một vector trong không gian MN chiều Ta sẽ xây dựng một không gian mới có chiều nhỏ hơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của một khuôn mặt không bị mất đi Trong không gian đó, các ảnh của cùng một người sẽ được tập trung lại thành một nhóm gần nhau và cách xa các nhóm khác
Hai phương pháp thường được sử dụng là PCA và LDA Trong khuôn khổ đồ án này, tôi sẽ sử dụng thuật toán PCA
Phương pháp PCA 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 Thuật toán này đượ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 rất nhiều so với ảnh đầu vào và 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 đó
Trang 23Phương pháp phân tích thành phần chính là một trong 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
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 hy 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
Ưu điểm của phương pháp PCA:
Tìm được các đặc trưng tiêu biểu của đối tượng cần nhận dạng mà không cần phải xác định các thành phần và mối quan hệ giữa các thành phần đó
Thuật toán có thể thực hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu gọn ảnh thành một ảnh có kích thước nhỏ hơn
PCA có thể kết hợp với các phương pháp khác như mạng Neural,
Support Vector Machine… để mạng lại hiệu quả nhận dạng cao hơn
Nhược điểm của PCA:
PCA phân loại theo chiều lớn nhất của tập vector Tuy nhiên, chiều phân bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài toán nhận dạng Đây là nhược điểm cơ bản của PCA
PCA rất nhạy với độ nhiễu khá cao
Trang 242.1.2 Các đại lượng toán học của phương pháp PCA
a) Các đại lương 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ố và các đại lượng thống kê thường dùng: Giá trị trung bình, Độ lệch chuẩn, Phương sai, Hiệp phương sai [10]
b) 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ư hình 2.1
1 1 2
3 2
12 2
3 1 2
3 2
Hình 2.1 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 23 (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ên 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à
Trang 25mộ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 đó 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.1) 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
3 2
24 4
6 1 2
3 2
Hình 2.2 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à trên hình 2.2 đã 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 (hình 2.2)
Trang 262.2 Thuật toán PCA cho nhận dạng ảnh mặt người
Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất” Phương pháp
PCA sẽ giữ lại K thuộc tính “mới” từ M các thuộc tính ban đầu (K<M)
Trong thuật toán PCA, một ảnh mặt người kích thước M N được biểu diễn bởi 1 vector cột có kích thước (M N) x 1 như hình 2.3
Áp dụng PCA vào trích chọn vector đặc trưng cho bài toán nhận dạng mặt người:
Hình 2.3 Biểu diễn vector của ảnh mặt người
Một bức ảnh về khuôn mặt được coi như là một vector, nếu bức ảnh có kích thước là M N pixels thì không gian chứa vector này có số chiều là M N Mỗi pixel sẽ được mã hóa bởi một thành phần của vector Việc xây dựng các vector này từ một hình ảnh được thực hiện bởi một nối đơn giản - các hàng của hình ảnh được đặt mỗi bên cạnh nhau, như thể hiện trên hình 2.4
Hình 2.4 Dạng của vector mặt được tạo từ bức ảnh của khuôn mặt
Khâu quan trọng nhất trong bài toán nhận dạng đó là trích chọn vector đặc tính Trong phần này, chúng tôi sẽ trình bày các bước trích chọn vector đặc tính mang những đặc tính riêng của mặt cần nhận dạng theo thuật toán sau:
D = M N
Trang 27a) Thuật toán huấn luyện bộ dữ liệu tìm tập vector riêng
Bước 1: Nhận các khuôn mặt từ cơ sở dữ liệu
Sử dụng các ảnh khuôn mặt I1, I2,… I n (tập các khuôn mặt huấn luyện)
với khuôn mặt phải chính diện và tất cả ảnh phải cùng kích thước
Giả sử có M ảnh, khi đó i=1, 2,…, M Sau đó tương ứng với mỗi ảnh I i
ta biểu thành vector i
Bước 2: Tính toán giá trị trung bình
Giá trị vector khuôn mặt trung bình theo công thức:
- Ψ là vector trung bình (kích thước D×1) của tập tất cả các Γ i trên;
Ψ còn được gọi là vector trung bình mặt của tập luyện
Bước 3: Trừ đi giá trị trung bình
Sai số của các ảnh so với giá trị vector mặt trung bình được tính toán theo công thức (2.2):
n M
Trang 28- nlà giá trị sai số được tính ở công thức (2.2)
Bước 5: Tính các giá trị riêng và vector đặc trưng của ma trận hiệp phương sai
Để tính các giá trị riêng và vector đặc trưng của ma trận hiệp sai ta phải
tính với ma trận C hay chính là tính cho ma trận AA T Tuy nhiên điều này là
không khả thi, do C là ma trận D×D nên số chiều là quá lớn, khối lượng tính toán là vô cùng nhiều (đặc biệt khi kích thước ảnh luyện lớn thì N lớn, D và D×D là cực kì lớn)
(u i = Av i) tương
ứng với M giá trị riêng
Chuẩn hóa các vector đặc trưng u i về vector đơn vị:
Bước 6: trích chọn K vector đặc trưng
Để giảm thiểu tối đa số chiều cũng như giảm độ phức tạp tính toán, ta
chỉ giữ lại K vector đặc trưng (tương ứng K giá trị riêng lớn nhất) Khi đó mỗi khuôn mặt sau khi trừ đi giá trị trung bình sẽ được đại diện bởi K vector đặc
Trang 29Mỗi khuôn mặt huấn luyện i sẽ được biểu diễn bởi một vector
1
2
3
, 1, 2, , M,
i w
trong đó wi j (j=1…K) là các trọng số tương ứng với K vector đặc trưng, i
là vector đại diện cho khuôn mặt i trong tập huấn luyện
Sau khi thực hiện các bước trên ta tìm được các eigenface, các ảnh trong tập cơ sở dữ liệu sẽ được chiếu lên không gian các eigenface này để tạo ra vector đặc tính Vector này có kích thước nhỏ hơn nhiều so với kích thước ảnh nhưng vẫn mang nhiều nhất thông tin chứa trong ảnh Tiếp đến chúng ta cần đối chiếu vector này với cơ sở dữ liệu, từ đó đưa ra kết quả nhận dạng Trong bài toán, kết quả nhận dạng sẽ là nhận biết được hoặc chưa nhận biết được
Để thực hiện phân loại có rất nhiều phương pháp như khoảng cách Euclide, mạng Noron, SVM,… trong đó khoảng cách Euclide là phương pháp đơn giản nhất Nó cho kết quả tốt đối với trường hợp đối tượng đã được tạo thành các nhóm cách xa nhau Vector đặc tính của đối tượng cần nhận dạng sẽ được so sánh lần lượt với vector đặc tính của từng ảnh mẫu trong tập các ảnh học Các khoảng cách ngắn nhất sẽ được lưu lại l
l r
e min trong đó e r
là vector của mặt thứ k trong cơ sở dữ liệu Nếu e k nhỏ hơn ngưỡng được xác
định trước thì bức ảnh được nhận dạng là mặt thứ k trong cơ sở dữ liệu
b) Thuật toán nhận dạng ảnh mặt người
Trang 30Cho 1 ảnh khuôn mặt chưa biết là ai (tất nhiên cũng phải giống tập
mẫu - chính diện và cùng kích thước) Chú ý, giai đoạn nhận dạng này giống
hệt giai đoạn biểu diễn ảnh khuôn mặt trong tập mẫu Ta thực hiện lần lượt các bước sau:
Bước 1: Chuẩn hóa :
r
Tức ta tìm khuôn mặt thứ l trong tập mẫu có khoảng cách gần nhất với
khuôn mặt cần nhận dạng
Bước 4: So sánh khoảng cách ngưỡng và rút ra kết luận
Nếu e r r (rlà một ngưỡng chấp nhận được nào đó): Tức ảnh khuôn
mặt cần xác định “đủ gần” với ảnh của người thứ l trong tập mẫu Khi đó, ta kết luận đó chính là khuôn mặt của người thứ l
3 2 1
T K
T T T
u
u u u
Trang 312 1
) (
i i K
2.3 Ví dụ các bước của thuật toán
Trong phần này chúng tôi mô tả các bước thực hiện thuật toán bằng các
ma trận số liệu Toàn bộ dữ liệu của các bước được tính bằng Matlab
a) Tìm tập đặc trưng của bộ dữ liệu huấn luyện
Giả sử rằng có 6 ảnh được biểu diễn bởi 6 ma trận số liệu 4x6 như sau:
Bảng 2.1 Biểu diễn của 6 ảnh bởi 6 ma trận số liệu 4x6
Trang 32Sáu ma trận này được biểu diển thành các vector cột I1, I2, I3, I4, I5, I6:
Bảng 2.2 Biểu diễn vector cột của mặt ảnh và giá trị trung bình
Trang 33Bước 1: Tính ảnh mặt trung bình như cột "Itb" ở bảng 2.2
1.1667 0.6667 -1.1667 0.8333 1.3333 -2.1667 -2.1667 0.5000 4.6667 -2.6667 2.1667 -4.5000 0.6667 -1.3333
2.1667 -4.3333 5.8333 -2.1667 -3.6667 -1.1667 2.8333 0.5000 -1.3333 2.3333 2.1667 -1.5000 2.6667 -1.3333
-0.8333 -2.3333 -3.1667 -2.1667 -3.6667 3.8333 -0.1667 1.5000 -3.3333 0.3333 -0.8333 -0.5000 -0.3333 3.6667
-4.8333 2.6667 -3.1667 1.8333 3.3333 4.8333 -3.1667 -0.5000 -2.3333 2.3333 1.1667 2.5000 -5.3333 -1.3333
6.8333 7.3333 4.1667 6.1667 5.6667 4.1667 4.1667 4.5000 5.3333 6.6667 3.8333 7.5000 7.3333 4.3333
Trang 34-0.6667 3.5000 3.1667 2.3333 0.8333 -3.3333 -3.3333 -2.6667 2.6667 -2.5000
1.3333 4.5000 -1.8333 -1.6667 -4.1667 -4.3333 0.6667 2.3333 3.6667 -3.5000
-1.6667 -2.5000 -2.8333 2.3333 -3.1667 3.6667 0.6667 4.3333 -5.3333 -0.5000
-4.6667 -1.5000 3.1667 -1.6667 0.8333 -3.3333 3.6667 1.3333 -2.3333 0.5000
6.6667 3.5000 5.8333 7.6667 5.1667 5.3333 5.3333 5.6667 6.3333 5.5000
Bước 4: Tính giá trị riêng của C
Bảng 2.5 Ma trận vector riêng C
-0.4082 -0.3159 -0.4704 0.1269 -0.7038 -0.0284 -0.4082 0.0309 0.6137 0.6545 -0.0631 -0.1530 -0.4082 0.6390 0.1398 -0.5097 -0.2228 -0.3097 -0.4082 -0.4575 -0.1376 -0.1813 0.5234 -0.5461 -0.4082 0.4234 -0.4929 0.3146 0.4180 0.3708
Trang 35Bước 5: Sắp xếp các vector riêng giảm dần theo giá trị riêng
Bảng 2.7 Ma trận vector riêng của C theo thứ tự giảm dần
-0.0284 -0.7038 0.1269 -0.4704 -0.3159 -0.4082 -0.1530 -0.0631 0.6545 0.6137 0.0309 -0.4082 -0.3097 -0.2228 -0.5097 0.1398 0.6390 -0.4082 -0.5461 0.5234 -0.1813 -0.1376 -0.4575 -0.4082 0.3708 0.4180 0.3146 -0.4929 0.4234 -0.4082 0.6664 0.0484 -0.4049 0.3473 -0.3199 -0.4082
Bảng 2.8 Ma trận giá trị riêng theo thứ tự giảm dần
Trang 361.5663 -4.6980 -2.3873 -1.0136 -1.2577 0.0000 2.2096 -4.6101 -1.4759 3.8470 -0.4691 0.0000 6.3720 4.0736 -1.2548 -0.1933 0.1596 -0.0000 -3.6018 2.3224 4.1811 1.1910 -1.2517 0.0000 0.2879 -0.0820 -1.7716 -3.7655 0.3040 0.0000 -3.2836 -6.3813 -3.1759 -1.9588 1.3812 0.0000 2.0025 0.0790 -3.1894 -5.0933 -4.6047 0.0000 -0.9003 1.8284 -4.3187 -0.0556 0.1590 -0.0000 3.3931 -1.7246 2.6953 0.4367 -3.9442 0.0000 -5.3654 -1.0059 1.3512 -3.4207 -0.0818 0.0000 1.6442 0.6191 2.4810 -2.7916 1.5160 -0.0000 -4.8259 -1.9284 3.9408 -0.1278 -0.8832 0.0000 -5.0432 1.6713 -4.6057 -0.2471 -0.0041 0.0000 1.2314 -2.0573 -4.1061 3.0719 0.8874 -0.0000 0.4367 -1.9087 -1.5822 -4.5215 2.9244 -0.0000 0.8848 -5.8227 1.2111 2.9461 0.0240 0.0000 1.9966 -3.6067 7.3251 -3.3937 1.0792 -0.0000 3.8217 0.5849 -1.6666 -2.4425 -3.9551 0.0000 2.2814 7.0178 0.7311 0.5806 -0.0901 -0.0000 -6.2326 -2.8099 -3.2914 -0.3858 -2.3686 0.0000 2.4764 -4.7214 3.1020 -0.6441 -1.7432 0.0000
Bước 7: W = u T
A
Các cột là các vector đặc trưng (eigent face) của các ảnh
Bảng 2.10 Các vector đặc trưng (eigent face) của 6 ảnh
-9.0443 -48.7427 -98.6791 -174.0061 118.1374 212.3347 -206.1976 -18.4765 -65.2857 153.3412 122.4494 14.1692 28.5476 147.2562 -114.6899 -40.7973 70.7738 -91.0904
Trang 37-73.0246 95.2755 21.7021 -21.3536 -76.5208 53.9214 -28.0655 2.7410 56.7764 -40.6481 37.6155 -28.4193 0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000
Ví dụ: Lấy K = 4 vector đặc trưng
Bảng 2.11 Lấy 4 vector đặc trưng
K = 4
-9.0443 -48.7427 -98.6791 -174.0061 118.1374 212.3347 -206.1976 -18.4765 -65.2857 153.3412 122.4494 14.1692 28.5476 147.2562 -114.6899 -40.7973 70.7738 -91.0904 -73.0246 95.2755 21.7021 -21.3536 -76.5208 53.9214 Trên đây là các bước mô tả ví dụ quá trình thực hiện trích chọn đặc
trưng từ 6 bức ảnh bất kì được đưa vào nhận dạng Vậy với K=4 tức ta chỉ lấy
4 vector đặc trưng trong 6 vector đặc trưng đã được trích chọn ở trên
b) Nhận dạng ảnh mặt người dựa trên đặc trưng PCA và độ đo khoảng cách
Giả sử ma trận ảnh I cần được nhận dạng với số liệu sau:
Bước 1: Biểu diễn thành vector cột - như cột I7 của bảng 2.13
Bước 2: Trừ ảnh trung bình - như cột I7-Itb
Bảng 2.13 Biểu diễn vector I7 thành cột và trừ ảnh trung bình