Luận văn đã giới thiệu được các bước thực hiện của việc trích chọn đặc trưng từ thuật toán PCA được thể hiện qua các mô hình trong bài; luận văn cũng đã giới thiệu được mạng Nơron, mô hì
Trang 5A Ô UẬ V
ê đề t i: Ậ D Ả XÚ O BẰ Ơ Á A
KẾ Ợ VỚ Ơ O
Ngành: Hệ thống thông tin
Họ và tên học viên: Nguyễn Thái Minh Anh
Người hướng dẫn khoa học: TS Nguyễn Thị Ngọc Anh
Cơ sở đào tạo: Trường Đại học Sư phạm - ĐHĐN
Tóm tắt:
Luận văn tập trung nghiên cứu về thuật toán trích chọn đặc trưng – Principal Component Analisis (PCA) và quá trình nhận dạng cảm xúc bằng mạng Nơron Bài toán đặt ra là làm thế nào để nhận dạng cảm xúc trên khuôn mặt người Với hai bộ dữ liệu JAFEE và FEI, cùng các cảm xúc như vui, buồn, ngạc nhiên và biểu cảm không có cảm xúc gì gọi là trung tính Hệ thống này có khả năng nhận dạng được các dạng cảm xúc cơ bản như vậy Luận văn đã giới thiệu được các bước thực hiện của việc trích chọn đặc trưng từ thuật toán PCA được thể hiện qua các mô hình trong bài; luận văn cũng đã giới thiệu được mạng Nơron, mô hình mạng Nơron, cách huấn luyện mạng bằng thuật toán lan truyền ngược, mô hình thể hiện quá trình học và nhận dạng của mạng Trên cơ sở đó, em tiến hành cài đặt chương trình trên Matlab Bài toán áp dụng nhằm minh họa những kiến thức nghiên cứu
đã trình bày trong 2 chương đầu Qua việc thực hiện, luận văn cũng góp phần giúp em vận dụng và củng cố lại kiến thức phần lớn về khai phá dữ liệu và một phần của trí tuệ nhân tạo đã học ở trường,
mở rộng thêm các kiến thức liên quan đến đề tài như xử lí, chuẩn hóa hình ảnh, ; rèn luyện kỹ năng
xử lí dữ liệu đối với từng bộ dữ liệu khác nhau, kỹ năng huấn luyện mạng Nơron và test ảnh nhìn thấy được hình ảnh nào được nhận dạng đúng và hình ảnh nào bị nhận dạng nhầm trong tập test của mình, học được cách khắc phục giải quyết một số vấn đề trục trặc trong quá trình thực hiện luận văn Những hạn chế của đề tài: thuật toán được xây dựng có quy mô còn khá đơn giản, đối với bộ dữ liệu JAFEE, chỉ nhận dạng được 3 cảm xúc: vui, buồn và ngạc nhiên, còn đối với bộ dữ liệu FEI tuy số lượng đầu vào nhiều hơn nhưng chỉ nhận đạng được 2 cảm xúc là vui vẻ và trung tính thôi; khi kiểm thử thực tế cho kết quả khá ổn nhưng chúng ta vẫn chưa thể đánh giá đó là kết quả cao được vì số hình ảnh trong
bộ dữ liệu còn quá ít; chưa phong phú các cảm xúc trên khuôn mặt người
Về ý nghĩa khoa học: luận văn đã đưa ra hệ thống nhận dạng Nghiên cứu nhận dạng cảm xúc bằng mạng Nơron sẽ phục vụ cho việc phát triển hệ thống nhận dạng
Về ý nghĩa thực tiễn: Luận văn sẽ góp phần xây dựng thêm cho hệ thống nhận dạng cảm xúc phục vụ cho đời sống con người
Hướng phát triển của đê tài: phát triển thêm việc xây dựng thuật toán với quy mô lớn hơn như là nhận diện 7 loại cảm xúc trở lên: vui, buồn, giận dữ, ngạc nhiên, sợ hãi, kinh tởm, lo lắng, trung lập, Hoặc nhận dạng những loại cảm xúc hỗn hợp như biểu cảm vừa hạnh phúc vừa ngạc nhiên hoặc vừa tức giận vừa buồn hoặc vừa sợ hãi vừa lo lắng,…
Phát triển hệ thống kết hợp vừa nhận dạng khuôn mặt người và nhận dạng luôn cả cảm xúc đang thể hiện trên mặt của họ Ví dụ như bắt một cảnh quay trong video có nhiều người thì chúng ta có thể nhận dạng được họ là ai và cảm xúc thể hiện của họ lúc đó đang như thế nào
Trang 7INFORMATION PAGE OF MASTER THESIS
Name of thesis: IDENTIFY HUMAN EMOTIONS BY PCA METHOD WITH COMBINATION
OF THE NEURAL NETWORK
Major: Information systems
Full name of Master student: Nguyen Thai Minh Anh
Supervisors: PhD Nguyen Thi Ngoc Anh
Training institution: University of Science And Education - The University Of Da Nang
Abstract:
The thesis focuses on researching the algorithm of extracting characteristics - Principal Component Analisis (PCA) and the process of emotional identification by Neural network The problem is how to identify emotions on people's faces With two sets of JAFEE and FEI data, the same emotions as happy, sad, surprised and expressive without emotion are called neutral This system is capable of identifying such basic emotions The thesis has introduced the implementation steps of extracting characteristic from the PCA algorithm shown in the models in the lesson; The thesis also introduced neural network, neural network model, how to train the network by reverse propagation algorithm, the model shows the learning process and identification of the network On that basis, I proceed to install Put the program on Matlab The problem applies to illustrate the research knowledge presented in the first two chapters Through implementation, the thesis also helps me to apply and reinforce the knowledge of a large part of data mining and a part of artificial intelligence learned in the school, expanding knowledge related to the topic such as processing, standardizing images, ; train data processing skills for each different data set, neural network training skills and image tests see which images are correctly identified and which images are mistakenly identified in their test set, learned how to overcome some problems during the dissertation process Limitations of the topic: the scale of the algorithm is quite simple, for JAFEE data set, only three emotions are identified: happy, sad and surprised, while for FEI data set though the number of inputs is higher but only the two emotions are fun and neutral; when the actual test results are quite good, we still cannot judge that the result is high because the number of images in the data set is too small; not yet many in emotions on the human face
Regarding the scientific meaning: the thesis has introduced the identification system Emotional identification research by Neural network will serve for the development of identification system
Regarding practical meaning: The thesis will contribute to building more for the emotional identification system to serve human life
The direction of the development of the genius: developing more algorithms to build on a larger scale such as identifying 7 or more emotions: happy, sad, angry, surprised, scared, disgusting, worried, neutral, Or identify mixed emotions like expressions that are both happy and surprising or both angry and sad or fearful and anxious,
Develop a combined system that identifies the human face and identifies the emotions that are being expressed on their faces For example, capturing a scene in a video with a lot of people, we can identify who they are and how their feelings are at the time
Trang 9MỤC LỤC
Ả Ơ .i
A OA ii
Ụ Ụ vii
DA Ụ Á Ữ V Ế Ắ .ix
DA Ụ Á BẢ x
DA Ụ Á Ì .xi
Ở ẦU 1
1 Lí do chọn đề tài 1
2 Mục tiêu và nhiệm vụ 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Mục đích và ý nghĩa đề tài 2
5 Phương pháp nghiên cứu 2
6 Bố cục luận văn 3
Ơ 1 Ổ QUA VỀ Ậ D Ả XÚ O 4
1.1.Mô tả bài toán nhận dạng cảm xúc 4
1.2 Hệ thống nhận dạng cảm xúc 5
1.3 Một số phương pháp nhận dạng cảm xúc khuôn mặt 7
1.3.1 Phương pháp sử dụng Action Units 7
1.3.2 Phương pháp dùng mô hình AAM kết hợp tương quan điểm 8
1.3.3 Phương pháp Support Vecto Machine (SVM) 9
1.3.4 Nhận dạng bằng phương pháp PCA truyền thống 9
Tổng kết Chương 1 11
Ơ 2 Ơ Ở Ý UYẾ 12
2.1 Phân tích thành phần chính Principal Component Analysis (PCA) 12
2.1.1 Ý tưởng chính 12
2.1.2 Tính toán các Eigenfaces 13
2.1.3 Biểu diễn các khuôn mặt có sẵn (tập huấn luyện) vào trong không gian vecto này 16
2.1.4 Nhận dạng khuôn mặt bằng các EIGENFACES 19
2.1.5 Vai trò của PCA trong xử lí tín hiệu nhiều chiều 20
2.3 Phương pháp nhận diện sử dụng Artipicial Neural Network (ANN) 21
2.3.1 Cấu trúc của ANN 21
2.3.2 Phân loại mạng Nơron 24
2.3.3 Thuật toán lan truyền ngược 25
Trang 102.3.4 Huấn luyện Neural Network 25
2.3.5 Sử dụng Neural Network 27
Tổng kết Chương 2 29
Ơ 3 XÂY DỰ UẬ OÁ Ậ D ẢM XÚC VÀ KẾ QUẢ 30
3.1 Cơ sở dữ liệu 30
3.1.1 Bộ dữ liệu JAFEE (Japanese Fermale Facial Expression) 30
3.1.2 Bộ dữ liệu FEI 31
3.2 Mô hình tổng quát 32
3.3 Kết quả lựa chọn Eigenvectos 34
3.4 Kết quả nhận dạng và đánh giá 35
3.4.1 Kết quả trên bộ dữ liệu JAFEE 35
3.4.2 Kết quả trên bộ dữ liệu FEI 37
3.5 Kết quả thực nghiệm trên các mô hình khác 39
3.6 Công cụ thử nghiệm Matlab 41
3.7 Xây dựng demo 42
Tổng kết Chương 3 46
KẾ UẬ 47
ỆU A K ẢO 49 QUYẾ Ị AO Ề TÀI LUẬ V (bản sao)
Trang 11DANH MỤC CÁC CHỮ VIẾT TẮT
ANN Artificial Neural Network
KNN K – nearest neighbors PCA Principal Component AnalysisSVM Support Vecto Machine AAM Active Appearance Model
Trang 131.5 Phương pháp AAM kết hợp tương quan điểm 8
2.2 Phương pháp phân tích thành phần chính (PCA) 13
2.4 Khuôn mặt huấn luyện được biểu diễn vào không gian vecto
2.6 Sơ đồ khối tổng quát của 1 Nơ-ron trong Neural Network 23
3.1 Khuôn mặt cảm xúc vui (HA), buồn (SA) và ngạc nhiên (SU)
3.2 Khuôn mặt cảm xúc vui (HA), buồn (SA) và ngạc nhiên (SU)
3.3 Một vài hình ảnh trong tập dữ liệu JAFEE 31
3.6 Sơ đồ khối quá trình thuật toán huấn luyện và kiểm thử 33
3.10 Sơ đồ Neural Network được sử dụng trong tập dữ liệu FEI 38
3.12a Cảm xúc trung tính bị nhận dạng nhầm thành vui 39 3.12b Cảm xúc vui bị nhận dạng nhầm thành trung tính 39
Trang 15MỞ ẦU
1 Lí do chọ đề tài
Chúng ta đã biết, công nghiệp 4.0 là xu hướng hiện thời trong việc tự động hóa và trao đổi dữ liệu trong công nghệ sản xuất Xã hội đang ở nền công nghiệp 4.0 ngày nay phần lớn các thiết bị điện tử đều phát triển theo xu hướng tự động hóa, thông minh, hiểu ý con người, các thiết bị thông minh phổ biến như smart phone, smart TV, smart watch, smart house, xe tự lái, máy in 3D, công nghệ nano, robot thế hệ mới,
Để làm được điều đó các thiết bị cảm biến, các thuật toán nhận dạng ra đời ngày càng hiện đại hơn, chính xác hơn, chúng có thể nhận biết hoạt động, hình dáng của con người và hoạt động theo ý muốn con người Thì bài toán “nhận dạng cảm xúc của con người” là một trong số đó.[1] Trong vài năm gần đây, cùng với sự phát triển về khoa học và công nghệ đặc biệt ở lĩnh vực trí tuệ nhân tạo, tương lai người máy đã trở thành một lĩnh vực nổi bậc nhằm cung cấp cho con người khả năng phục vụ của máy móc Điều này bắt đầu từ khả năng máy móc có thể tương tác được với con người Máy móc cần các kỹ năng trao đổi thông tin với con người và một trong những kỹ năng đó là khả năng hiểu được cảm xúc Cách tốt nhất để một người biểu thị cảm xúc là qua khuôn mặt Bài toán nhận dạng cảm xúc khuôn mặt đã được bắt đầu nghiên cứu từ những năm 1970 và kết quả của nó ngày càng cao hơn.[2]
Ứng dụng của nhận dạng cảm xúc trong cuộc sống hàng ngày là rất lớn, các hệ thống phát hiện trạng thái buồn ngủ dựa vào cảm xúc trên khuôn mặt được phát triển
để cảnh báo cho người lái xe khi thấy dấu hiệu buồn ngủ, mệt mỏi Các hệ thống kiểm tra tính đúng đắn của thông tin, các phần mềm điều khiển dựa vào cảm xúc, các thiết
bị hỗ trợ người tàn tật, [3]
Bản thân con người có thể nhận dạng cảm xúc khuôn mặt qua hình ảnh của mọi người một cách dễ dàng Thậm chí, ảnh đó có thể nằm trong một ảnh nền phức tạp Tuy nhiên, đối với hệ máy thì việc nhận dạng này là một công việc rất phức tạp và khó khăn Chính vì vậy, trong những năm gần đây, lĩnh vực nhận dạng khuôn mặt đã nhận được sự quan tâm nghiên cứu lớn từ các nhà khoa học nhằm tạo ra các hệ hỗ trợ quyết định phục vụ trong rất nhiều lĩnh vực của cuộc sống
Trong các cách biểu đạt ngôn ngữ của cơ thể, cảm xúc là cái thể hiện rõ nhất những gì mà người nghe cảm thấy Nhận dạng cảm xúc có nhiều ứng dụng phục vụ cho con người ví dụ như trong lĩnh vực y học có thể dùng hệ thống tương tác giữa người và máy, giúp những người bị tật hoặc khiếm khuyết có thể trao đổi được, dùng điệu bộ bàn tay, khuôn mặt, hoặc trong lĩnh vực an ninh có thể dùng hệ thống nhận dạng một người có phải tội phạm hay không thông qua các cảm biến nhịp tim, hơi thở,
Trang 16sắc thái,.v.v và còn nhiều những ứng dụng khác nữa Xuất phát từ nhưng yêu cầu
Để đạt được mục trên, cần phải thực hiện các nhiệm vụ sau:
- Thu nhận mặt: đây là giai đoạn tiền xử lý để tự động tìm ra vùng chứa mặt từ các ảnh đầu vào
- Dùng phương pháp PCA để chuẩn hóa và tách đặc trưng trên mặt
- Nhận dạng cảm xúc trên mặt người bằng mạng Nơron dựa trên kết quả của việc tách đặc trưng
3 ối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Những cảm xúc trên khuôn mặt của một hoặc nhiều người thông qua hình ảnh
3.2 Phạm vi nghiên cứu
- Nhận dạng các cảm xúc: vui, buồn, giận dữ và trung lập
4 Mục đích v ý hĩa đề tài
4.1 Mục đích của đề tài
- Nghiên cứu mạng Nơron nhân tạo
- Nghiên cứu thuật toán trích chọn đặc trưng PCA
- Ứng dạng mạng Nơron vào bài toán nhận dạng cảm xúc con người
4.2 Ý nghĩa của đề tài
- Về khoa học:
Đưa ra hệ thống nhận dạng Nghiên cứu nhận dạng cảm xúc bằng mạng Nơron
sẽ phục vụ cho việc phát triển hệ thống nhận dạng
- Về thực tiễ :
Đề tài sẽ góp phần xây dựng thêm cho hệ thống nhận dạng cảm xúc phục vụ
cho đời sống con người
5 hươ pháp hiê cứu
5.1 Phương pháp nghiên cứu lí thuyết
- Nghiên cứu tài liệu về cơ sở lí thuyết: mạng nơron nhân tạo (Artificial Neural Network - ANN), thuật toán trích chọn đặc trưng (Principal Component
Trang 17Analysis - PCA),
- Giáo trình Data Mining, Machine Learning
- Các đề tài, bài báo có liên quan về nhận dạng như nhận dạng hình ảnh, cảm xúc
và các thuật toán về nhận dạng như Decision Tree, SVM, Knn,
5.2 Phương pháp nghiên cứu thực nghiệm
- Cài đặt chương trình bằng phần mềm Matlab
- Nghiên cứu việc viết chương trình cho bài toán nhận dạng bằng ngôn ngữ lập trình Matlab
- So sánh kết quả thực nghiệm trên các phương pháp mạng Nơron, Decision Tree, SVM, Knn
6 Bố cục luậ vă
Ngoài phần mở đầu, kết luận Luận văn gồm 3 chương
Chương 1: Tổng quan về nhận dạng cảm xúc con người
Chương 2: Cơ sở lý thuyết
Chương 3: Nhận dạng cảm xúc bằng phương pháp PCA kết hợp ANN
Trang 18Ơ 1 TỔNG QUAN VỀ NHẬN D NG CẢ XÚ O I
1.1 Mô tả b i toá hậ dạ cảm xúc
Cảm xúc trên mặt là một quy luật rất quan trọng trong giao tiếp giữa người với người Merhrabin, một nhà tâm lý học, đã phát biểu rằng các ngôn ngữ có lời chỉ chiếm 7% thông điệp trong giao tiếp của con người, trong khi chiếm hơn 55% là những giao tiếp bằng các phương pháp không lời Những công nghệ giao tiếp tiến bộ nhanh chóng gần đây và khoa học máy tính đã cho chúng ta những hi vọng rằng cảm xúc trên mặt sẽ trở thành một giải pháp then chốt trong lĩnh vực giao diện người máy
và các hướng phát triển giao tiếp khác trong tương lai.[14]
Phân tích cảm xúc trên mặt bao gồm đo các chuyển động trên mặt và nhận dạng cảm xúc Cách tiếp cận thông thường của các hệ thống phân tích cảm xúc gồm 3 bước: thu nhận mặt, tách đặc trưng trên mặt và nhận dạng cảm xúc trên mặt
Thu nhận mặt là một giai đoạn xử lý để tự động tìm ra vùng chứa mặt từ các ảnh đầu vào hoặc chuỗi ảnh đầu vào Nó có thể là một bộ xác định mặt để tìm ra một mặt trong mỗi khung hình hoặc trước tiên xác định mặt trong khung hình đầu tiên và sau
đó thực hiện quá trình lưu vết mặt đó trên phần còn lại của đoạn băng Các chuyển động đầu, tìm kiếm đầu, lưu vết đầu và đánh giá tư thế có thể áp dụng nhiều trong một
hệ thống phân tích cảm xúc trên mặt
Sau khi đã định vị mặt, bước tiếp theo là tách và biểu diễn lại các thay đổi trên mặt bởi các cảm xúc trên mặt Trong phần tách đặc trưng trên mặt để phân tích cảm xúc, có 2 hướng chính thường được tiếp cận: các phương pháp dựa trên đặc trưng hình học và các phương pháp dựa trên vẻ bề ngoài Các thành phần trên mặt hoặc các điểm đặc trưng trên mặt được tách thành một vectơ đặc trưng để biểu diễn hình học khuôn mặt
Bài toán đặt ra là: Giả sử có một cơ sở dữ liệu ảnh về các cảm xúc của con người
đã được lưu trong máy, bài toán nhận dạng là làm sao để khi đưa ảnh khuôn mặt của
một người bất kì vào thì máy sẽ thu nhận mặt, tách đặc trưng trên mặt và nhận dạng cảm xúc trên mặt của người này trong cơ sở dữ liệu
Trang 19Hình 1.1 Mô hình bài toán nhận dạng cảm xúc trên mặt người
1.2 ệ thố hậ dạ cảm xúc
Hệ thống nhận dạng cảm xúc cơ bản như sau:
Hình 1.2 Hệ thống nhận dạng cảm xúc cơ bản
Tiền xử lí: Quá 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 Việc chuẩn hóa này khiến độ lệch giữa 2 điểm ảnh được giảm xuống làm quá trình trích chọn đặc trưng thêm chính xác
Trích chọn đặc trưng: là kỹ thuật sử dụng các thuật toán để lấy ra những thông
tin mang những đặc điểm riêng biệt của một người Trong bài này sử dụng phương pháp PCA, phương pháp này sẽ được trình bày cụ thể ở chương 2.[4]
Các khâu trong quá trình trích chọn đặc trưng:
- Đầu vào: Ảnh đã được chuẩn hóa
Ảnh tĩnh
Tiền xử lí
Trích chọn đặc trưng
Nhận dạng cảm xúc
Trang 20- Đầu ra: Vecto đặc trưng của ảnh đầu vào
Quá trình trích chọn đặc trưng được thể hiện qua lưu đồ sau
Hình 1.3 Quá trình trích chọn đặc trưng
Nhận dạng cảm xúc: Những đặc trưng sau khi được trích chọn sẽ đưa vào khối
nhận dạng để phân lớp đối tượng Trong đề tài này tôi dùng mạng nơron để nhận dạng các đối tượng
Trang 211.3 ột số phươ pháp hậ dạ cảm xúc khuô mặt
Có nhiều phương pháp phát hiện cảm xúc khuôn mặt đã được nghiên cứu để giải quyết bài toán này, điển hình là một số phương pháp sau:
Sử dụng các đơn vị chuyển động trên khuôn mặt (Action units-AU)
Sử dụng AAM (Active Appearance Model – AAM) kết hợp tương quan điểm
Sử dụng PCA ( Principal Component Analysis)
Sử dụng phương pháp học, huấn luyện mạng noron
Mỗi phương pháp đều có ưu và nhược điểm riêng Đối với phương pháp PCA kết hợp mạng noron thì cần một tập dữ liệu chuẩn để huấn luyện Việc xây dựng các tập huấn luyện này cũng tương đối khó khăn và tốn kém vì cần nhiều người làm mẫu, những người này phải diễn đạt cảm xúc tốt, ngoài ra còn cần sự đánh giá của các chuyên gia tâm lý Hiện nay có một số tập huấn luyện chuẩn thường được dùng đó là JAFFE (Japanese Female Facial Expression) hay Cohn-Kanade [7]
Các phương pháp dựa trên đặc trưng ảnh là sử dụng kĩ thuật phân tích thành phần chính PCA, sau đó huấn luyện bằng thuật toán học PCA được Karl Pearson tạo ra năm 1901 Đến những năm 80, Sirovich và Kirby đã phát triển kĩ thuật này để thể hiện khuôn mặt một cách hiệu quả Đưa ra sự giống nhau giữa nhiều hình ảnh khuôn mặt khác nhau, kĩ thuật này tìm ra những thành phần cơ bản của sự phân bố khuôn mặt thể hiện bằng các eigenvectos Từng khuôn mặt trong một tập hợp các khuôn mặt sau đó
có thể tính xấp xỉ bằng sự kết hợp tuyến tính giữa những eigenvecto lớn nhất, được biết tới như eigenfaces.[7]
1.3.1 Phương pháp sử dụng Action Units
Phương pháp Action Units (AU) này nhận dạng cảm xúc dựa trên các đơn vị chuyển động của khuôn mặt Có tất cả 64 Au, mỗi AU là sự kết hợp của một số các
cơ trên khuôn mặt Cảm xúc được nhận dạng bằng cách phát hiện tại một thời điểm
có bao nhiêu AU xuất hiện trên khuôn mặt và với các AU xuất hiện cùng nhau đó thì tương ứng với 1 loại cảm xúc [7]
Trang 22Hình 1.4 Phương pháp AU
1.3.2 Phương pháp dùng mô hình AAM kết hợp tương quan điểm
Phương pháp này sử dụng mô hình AAM để phát hiện khuôn mặt Sau đó dựa vào tỷ lệ giữa 2 mắt, miệng, mũi để nhận dạng cảm xúc Khó khăn của phương pháp này là việc xác định ngưỡng tỉ lệ để xác định cảm xúc.[7]
Hình 1.5 Phương pháp AAM kết hợp tương quan điểm
Trang 231.3.3 Phương pháp Support Vecto Machine (SVM)
Phương pháp SVM được Vladimir Vapnik đưa ra vào năm 1995 để giải quyết vấn đề nhận dạng mẫu hai lớp sử dụng nguyên tắc cực tiểu hóa rủi ro cấu trúc (Structural Risk Minimization) Đây là phương pháp tiếp cận phân loại văn bản rất hiệu quả Ưu điểm của SVM là giải thuật này được xây dựng trên ý tưởng cực tiểu rủi ro cấu trúc Nguồn gốc của SVM dựa trên sự chắc chắn về lỗi chính xác, có thể phân loại ngẫu nhiên các mẫu đối tượng được chọn mà lỗi được giữ sao cho nhỏ nhất Vì vậy, giải thuật SVM giúp giảm thiểu biên trên các lỗi chính xác và làm cho hệ thống tin cậy hơn, cho trước một tập huấn luyện, các ảnh được biểu diễn dưới dạng vecto Trong không gian vecto, mỗi vertor được biểu diễn bởi một điểm Phương pháp SVM sẽ tìm một siêu phẳng quyết định để phân chia không gian vecto thành hai lớp (khuôn mặt và không phải khuôn mặt) Chất lượng của siêu phẳng này phụ thuộc vào khoảng cách giữa các vecto, tức là phụ thuộc vào các đặc trưng của ảnh Support Vecto Machine đã được Osuna áp dụng đầu tiên để xác định khuôn mặt người
1.3.4 Nhận dạng bằng phương pháp PCA truyền thống
1.3.4.1 Tóm tắt
Phân tích thành phần chính (Principal Component Analysis – PCA) là kĩ thuật hữu ích trong các ứng dụng nhận dạng mặt và nén ảnh và là một kĩ thuật phổ biến để
tìm mẫu trong các dữ liệu nhiều chiều [7]
PCA 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 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
đó Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA
Nội dung và các bước thực hiện của PCA sẽ được trình bày cụ thể ở chương 2
1.3.4.2 Ưu, nhược điểm của thuật toán
u điểm
- Tìm được đặc tính 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 Nơron, cây quyết
định, Support Vecto Machine, để mang lại hiệu quả nhận dạng cao hơn
hược điểm
- PCA phân loại theo chiều lớn nhất của tập vecto 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
Trang 241.3.4.3 Đề xuất
PCA là phương pháp dùng để xây dựng đặc trưng khuôn mặt, nó là một nền tảng
để phát triển những thuật toán khác PCA nếu được áp dụng với những phương pháp khác như mạng Nơron thì có thể sẽ cho ra độ chính xác cao hơn
Trang 25Tổng kết hươ 1
Như vậy, chương này tôi đã phát biểu và đưa ra được mô hình chung của một bài toán nhận dạng và mô hình chung của hệ thống nhận dạng mà tôi sẽ làm trong đề tài này Bên cạnh đó, để khắc phục những nhược điểm của phương pháp nhận dạng cũ, tôi
đề xuất giải quyết bài toán theo hướng tiếp cận mới bằng phương pháp PCA kết hợp với mạng Nơron để nhận dạng Ở chương 2 tôi sẽ trình bày rõ về lí thuyết của PCA và mạng Nơron
Trang 26Hình 2.1 Hình ảnh minh họa cho PCA
Cùng là một chú lạc đà, tuy nhiên với các cách nhìn khác nhau (trục thông tin), chúng ta lại có những cách thu nhận thông tin khác nhau và cho ta những kết luận khác nhau [10]
Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vecto sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất” Tức Feature extraction nhằm mục
đích giữ lại một số thuộc tính mới từ các thuộc tính ban đầu [8]
Trang 27Hình 2.2 Phương pháp phân tích thành phần chính (PCA)
Tất nhiên, khi loại bỏ 1 số thành phần của x để thu được y thì sẽ gây ra sai số hay
còn gọi là lỗi Nên phương pháp PCA sẽ cố gắng tìm phép biến đổi tuyến tính T thỏa:
y=T.x sao cho trung bình bình phương lỗi (MSE) là bé nhất [8]
2.1.2 Tính toán các Eigenfaces
Phần này em sẽ sử dụng bộ dữ liệu thực tế Japanese Female Facial Expression
(JAFEE) để biểu diễn [5] Tổng hình ảnh trong bộ dữ liệu này 137, trong đó 110 ảnh dùng để huấn luyện và 27 hình ảnh dùng để test
Như vậy, tập huấn luyện có 110 hình ảnh, khi đó Các ảnh huấn luyện là I1, I2, …, I110 , gọi chung là Ii
Không gian n chiều với
Trang 28Hình 2.3 Các khuôn mặt huấn luyện
Bước 1: Chuyển các hình ảnh trong tập huấn luyện thành các vecto
Biểu diễn mọi ảnh Ii thành vecto i Mỗi hình ảnh có kích thước 256x256 pixel
M
Trang 29Cụ thể:
i là vecto một chiều (N2×1) đại diện cho mỗi ảnh
M là tổng số ảnh trong tập huấn luyện
Ψ là vecto trung bình (kích thước N2×1) của tập tất cả các i trên Ψ còn được gọi là vecto trung bình mặt của tập huấn luyện Nên Ψ là vecto có số chiều 65536x1 Bước 3:
Trừ vecto khuôn mặt trung bình:
Trong đó: [ 1 2 11 ] nên A sẽ có kích thước là N2xM
(65536x110) Ta thấy ma trận A kích thước 65536 x 110 và ma trận AT có kích thước
M x N2 (110 x 65536) Nên C sẽ có kích thước N2xN2 (65536 x 65536) Kích thước này quá lớn, có thể làm chậm hệ thống hoặc không đủ bộ nhớ để xử lí dữ liệu Giải pháp của chúng ta là phải làm giảm giảm số chiều của ma trận Covariance bằng cách
hoán đổi A và AT với nhau Lúc đó C =AT.A thì số chiều của C sẽ giảm còn MxM
(110x110)
Bước 5:
Tính các trị riêng (eigenvalue) và vecto đặc trưng (Eigenvecto) ui của ma trận hiệp phương sai
Giá trị riêng và vecto riêng của ma trận A được định nghĩa như sau:
Cho A là ma trận vuông cấp n trên trường số K (K= ) Số K được gọi là
giá trị riêng (gọi tắt là trị riêng) của ma trận A, nếu tồn tại một vecto ,
sao cho A = Khi đó vecto u được gọi là vecto riêng của ma trận A ứng với giá trị riêng
Ma Trận A.AT
và AT.A luôn có chung trị riêng và vecto đặc trưng thì có liên hệ với nhau bởi biểu thức ui = A.vi trong đó vecto vi có kích thước là M x 1 (110 x 1), ta
sẽ dễ dàng suy ra được các vecto riêng u i có kích thước N2x1 (65536x1)
Các trị riêng của ma trận AT.A sẽ được sắp xếp lại theo thứ tự giảm dần, và chỉ
lấy các trị riêng “non-zero”
Chú ý nên chuẩn hóa các vecto đặc trưng u i về vecto đơn vị ‖ ‖=1
Ta rút ra được các chú ý sau (theo TOÁN HỌC):
Trang 30 Ma trận A.A T
có thể có đến N 2 trị riêng (mỗi trị riêng sẽ ứng với vô số vecto
riêng – nó được gọi là “không gian riêng ứng với trị riêng nào đó”)
Ma trận AT.A có thể có đến M trị riêng
M trị riêng của ma trận AT.A (kèm với các vecto riêng tương ứng), sẽ ứng với
M trị riêng lớn nhất của A.A T (cái này quan trọng bởi ta đang đi tìm các hướng biến thiên quan trọng nhất) [8]
- Sắp xếp theo thứ tự dãy giảm dần các eigenvalues tìm được
- Theo dõi sự biến thiên của dãy trên, khi không còn biến thiên (hoặc xấp xỉ bằng không) thì lúc đó ta đã chọn đủ K
Cách 2: Chọn K theo công thức sau:∑
∑ > Threshold
2.1.3 Biểu diễn các khuôn mặt có sẵn (tập huấn luyện) vào trong không gian vecto này
Mỗi khuôn mặt itrong tập huấn luyện có thể được biểu diễn lại là 1 tổ hợp
tuyến tính của K vecto riêng lớn nhất [8]:
Trong đó:
Ta thống nhất gọi các “vecto riêng u i ” là các “E E FA E ” (khuôn mặt
riêng).Như vậy, bây giờ, mỗi khuôn mặt huấn luyệnisẽ được biểu diễn trong không
gian mới là 1 vecto như sau:
i T i T i T
i
u
u u u
.
.
3 2 1
TỌA ĐỘ của vecto ˆ
Trang 31Cụ thể ta có:
Hình 2.4 Khuôn mặt huấn luyện được biểu diễn vào không gian vecto mới
Hình này “tả thực” hơn Thật ra nó không thật SÁT với tổ chức dữ liệu, chỉ là mô
tả cho DỄ HÌNH DUNG Ví dụ: Eigenface có kthước N 2 x1, hình của ˆ , hình
eigenfaces…
Đây là các vecto (ảnh
khuôn mặt “gốc” ban đầu)
Chiếu các vào trong “không gian khuôn
mặt” ta được các vecto Tọa độ của
trong không gian này là vecto
Đây là các vecto cơ sở của không gian khuôn mặt
(được gọi là “EIGENFACE”)
Trang 32Mặt Ellipsoid định nghĩa bởi covariance matrix (các sample vecto tập trung chủ yếu ở trong này)
Trục dài nhất ám chỉ hướng biến thiên quan trọng nhất của dữ liệu (có variance – “phương sai” -
cao nhất) Đây chính là hướng của Eigenvecto ứng với eigenvalues lớn nhất
Gốc tọa độ chính là
Diễn giải hình học của phương pháp PCA (tìm các eigenvalue/vectos):
PCA chiếu dữ liệu theo hướng mà ở đó dữ liệu khác nhau nhiều nhất
Các hướng này được xác định bằng các eigenvectos của ma trận hiệp phương
sai (covariance matrix)
Ví dụ dễ hiểu về khả năng tại sao PCA lại có thể “giảm được chiều dữ liệu”:
Biến đổi (chiếu)
Vecto 2 chiều, trong
không gian với các cơ
sở là x1, x2
Vecto chỉ còn 1 chiều, trong không gian với cơ sở
là y1
Trang 332.1.4 Nhận dạng khuôn mặt bằng các EIGENFACES
Cho 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 & 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: [8]
Nếu er < Tr (Tr là 1 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
Chú ý:
Ta có thể sử dụng khoảng cách Euclid để tính er Tuy nhiên, người ta chứng mình
được rằng, kết quả sẽ tốt hơn nếu dùng khoảng cách “Mahalanobis” [8]
3 2 1
T K
T T T
u
u u u
Trang 34Hình 2.5 Mô hình quá trình nhận dạng cảm xúc khuôn mặt
2.1.5 Vai trò của PCA trong xử lí tín hiệu nhiều chiều
Dữ liệu có số chiều lớn, do đó cần phải tìm cách đưa dữ liệu về không gian có số chiều nhỏ hơn PCA là một trong những phương pháp như thế, nhưng hơn thế, PCA có nhiều đặc tính tốt:
- Giúp giảm số chiều dữ liệu
- Thay vì giữ lại các trục tọa độ của không gian cũ, PCA xây dựng một không gian mới ít chiều hơn nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương không gian cũ
- Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của không gian cũ
Input: hình ảnh
chứa cảm xúc
huyể hì h ả h
th h vecto khuô mặt
huẩ hóa vecto khuô mặt
ưa vecto khuô mặt
Trang 35- Trong không gian mới, các liên kết tiềm ẩn của dữ liệu có thể được khám phá,
mà nếu đặt trong không gian cũ thì khó phát hiên hơn (như hình minh họa 2.1)
2.3 hươ pháp hậ diệ sử dụ Artipicial Neural Network (ANN)
2.3.1 Cấu trúc của ANN
Mạng nơron nhân tạo được xây dựng trên cơ sở kế thừa cấu trúc và sự hoạt động của mạng nơron sinh học Sau đây chúng ta sẽ xem xét một cách tổng quan về cấu trúc và sự hoạt động của mạng nơron sinh học, từ đó có những hình dung về cấu trúc
và sự hoạt động của mạng nơron nhân tạo
Như đã biết bộ não người chứa đựng khoảng 1011
nơron liên kết với nhau ở mức cao, mỗi nơron có khoảng 104 liên kết tới các nơron khác Mỗi nơron có ba thành phần chính gồm: dendrites (vòi thu nhận tín hiệu), cell body (nhân nơron), axon (trục chuyển tín hiệu) Vòi nhận tín hiệu có hình cây để nhận các tín hiệu đưa vào trong nhân của nơron Nhân có nhiệm vụ tổng hợp các tín hiệu được thu nhận từ các vòi
và kích hoạt nó, nếu vượt một ngưỡng nào đó thì tín hiệu sẽ được chuyển tới axon và truyền đến các nơron khác Khớp nối giữa axon của một nơron với vòi của nơron khác gọi là synapse.[3]
Hình 2.6 Sơ đồ mạng nơron sinh học
Khi mới sinh ra bộ não người có cấu trúc đơn giản, và ngày càng được hoàn thiện bởi việc học của con người Đó là việc thiết lập các liên kết giữa các nơron với nhau
để biểu diễn tri thức của con người có được, từ đó xử lý các thông tin khác
Mạng nơron nhân tạo không tiếp cận theo cách liên kết phức tạp của não người Tuy nhiên chúng có 2 điểm chính tương tự nhau, đó là: xây dựng các khối đều là những phần tính toán đơn giản được kết nối với nhau ở mức cao; liên kết giữa các
Trang 36nơron để xác định chức năng của mạng
Mạng nơ-ron nhân tạo hay thường gọi ngắn gọn là mạng nơ-ron là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học Nó gồm có một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút Trong nhiều trường hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng tự thay đổi cấu trúc của mình dựa trên các
thông tin bên ngoài hay bên trong chảy qua mạng trong quá trình học [6]
Neural Network là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Neuron được gắn kết để
xử lý thông tin Neural Network giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết [2]
Cấu trúc cơ bản của 1 Neural Network gồm: một lớp vào (input layer), một lớp ra (output layer) và một hay nhiều lớp ẩn (hidden layer) Mỗi lớp chứa nhiều Neural Các Neural giữa các lớp liên kết với nhau Hình minh họa cho một mạng Neural:
Hình 2.7 Cấu trúc 1 Neural Network cơ bản
Trang 37Với mỗi Neural có cấu trúc như sau:
Giá trị đầu vào Trọng số weight
Hàm truyền Giá trị đầu ra
2 2
…
Giá trị bias
Hình 2.8 Sơ đồ khối tổng quát của 1 Nơ-ron trong Neural Network
Chi tiết về các thành phần của một Nơ-ron như sau:
Inputs : Mỗi Input tương ứng với 1 thuộc tính (attribute) của dữ liệu (patterns)
Connection Weights (Trọng số liên kết) Wij: Trọng số kết nối giữa đầu vào thứ
j với Nơ-ron i Đây là thành phần rất quan trọng của một mạng Nơ-ron, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ lớp này sang lớp khác) Quá trình học (Learning Processing) của mạng Nơ-ron thực ra là quá trình điều chỉnh các trọng số (Weight) của các input data để có được kết quả mong muốn [1]
Giá trị Bias( ): Hay còn được gọi là độ lệch, được đưa vào để thể hiện sự
thiên vị cho một thông số nào đầu vào nào đó trong mạng
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được
đưa vào mỗi Nơ-ron Hàm tổng của một Nơ-ron đối với n input được tính theo công thức sau:
∑ 1 + Hàm tổng (summation function) của một Neural cho biết khả năng kích hoạt (activation) của neuron đó còn gọi là kích hoạt bên trong (internal activation) Các Neural này có thể sinh ra một output hoặc không trong mạng Neural (nói cách khác rằng output của 1 Neural có thể được chuyển đến lớp tiếp theo trong mạng Neural hoặc không) Mối quan hệ giữa internal activation và kết quả (output) được thể hiện bằng hàm chuyển đổi (transfer function) [1]