6. Bố cục luận văn
3.1.2. Bộ dữ liệu FEI
Cơ sở dữ liệu khuôn mặt FEI là cơ sở dữ liệu khuôn mặt của Brazil có chứa một bộ hình ảnh khuôn mặt được chụp từ tháng 6 năm 2005 đến tháng 3 năm 2006 tại Phòng thí nghiệm trí tuệ nhân tạo của FEI ở São Bernardo do Campo, São Paulo, Brazil. [11] Database này gồm có 100 người với 200 hình ảnh, kích cỡ mỗi ảnh là 162x193 pixel, trong đó tập train có 150 hình ảnh và tập test có 50 hình ảnh, mỗi người 2 hình ảnh biểu cảm khuôn mặt trung tính và khuôn mặt mỉm cười, các hình ảnh này đã được thực hiện một chuỗi các bước xử lý hình ảnh để tự động chuẩn hóa, cân bằng và cắt ảnh mặt trước.
Hình 3.4. Một số mẫu trong The FEI face database
Hình 3.5. Một số hình ảnh trong tập dữ liệu FEI
3.2. ô hì h tổ quát
Mô hình tổng quát các bước thực hiện huấn luyện và kiểm thử được thể hiện như sau:
Hình 3.6. Sơ đồ khối quá trình thuật toán huấn luyện và kiểm thử.
ập ả h huấ luyệ : Cơ sở dữ liệu là tập hợp ảnh của các loại cảm xúc trên khuôn mặt người, tùy vào bộ dữ liệu được chọn.
rích rút đặc trư : Ảnh trong tập huấn luyện sẽ được tiền xử lý: bằng cách giảm số chiều thông qua thuật toán PCA, sau khi dùng PCA để giảm số chiều thì K vecto riêng ứng với K trị riêng lớn nhất được giữ lại.
Tức là từ ma trận C=AT.A được trình bày ở chương 2, ta tính các vectos riêng và giá trị riêng tương ứng của nó. Sau đó, sắp xếp các giá trị riêng thành một dãy giảm dần, theo dõi sự biến thiên cho đến khi xấp xỉ bằng 0 thì lúc đó ta chọn đủ K.
Học máy ( uấ luyệ eural etwork): Các thuộc tính sau khi được trích ra từ tập ảnh training được đưa vào 1 Neural Network có cấu trúc gồm: 1 lớp vào, 1 lớp ẩn, 1 lớp ra. Trong đó: số Neural lớp vào là số K thành phần kết quả được chọn của PCA, số Neural lớp ra là số cảm xúc cần nhận dạng. Số Neural trong lớp ẩn có thể điều chỉnh được, dựa trên kết quả có thể chọn số Neural cho hiệu năng cao nhất có thể.
3.3. Kết quả lựa chọ Eigenvectos
Bảng 3.1. Kết quả lựa chọn số eigenvectos của bộ dữ liệu JAFEE
ố Ei e vectos
The JAFEE database ộ chí h xác (%) ốc độ xử lí (sec) 15 81,1 0.035 20 81,1 0.031 25 81,1 0.034 30 90,5 0.047 35 90,5 0.072 40 95,2 0.097 45 95,2 0.119 48 95,2 0.105 50 95,2 0.112 52 90,5 0.121 55 85,7 0.125 57 85,7 0.133
Bảng 3.2. Kết quả lựa chọn số eigenvectos cảu bộ dữ liệu FEI
ố Ei e vectos The FEI database ộ chí h xác (%) ốc độ xử lí (sec) 15 95,6 0,016 20 95,6 0,018 25 93,3 0,024 30 93,3 0,030 35 95,6 0,039 40 93,3 0,041 45 95,6 0,052 48 97,8 0,055 50 97,8 0,056 52 95,6 0,062 55 91,1 0,068 57 91,1 0,067
hậ xét: 2 bảng kết quả trên cho thấy số lượng vecto đặc trưng sau khi trích chọn PCA và tốc độ xử lí của CPU có sự ảnh hưởng lớn đến độ chính xác của bài toán nhận dạng. Với bộ dữ liệu JAFEE, ta chọn số vecto đặc trưng là 48 tương ứng với 95,2% thông tin dữ liệu gốc được giữ lại, cho ra dộ chính xác cao và tốc độ xử lí cũng nhanh hơn. Tương tự như vậy với bộ dữ liệu FEI, khi chọn số lượng vecto đặc trưng là 50 tương ứng vói 97,8% thông tin dữ liệu gốc được giữ lại thì cho ra kết quả tối ưu nhất.
Số lượng eigenvectos này cũng chính là số input của mô hình nhận dạng ANN. Kết quả nhận dạng được trình bày ở mục 3.4
3.4. Kết quả hậ dạ v đá h iá
3.4.1. Kết quả trên bộ dữ liệu JAFEE
Bảng kết quả thử nghiệm mạng Nơron khi thay đổi số lớp ẩn trong mạng Nơ-ron của bộ dữ liệu JAFEE
Bảng 3.2. Bảng kết quả thử nghiệm khi thay đổi hidden layer của mạng Nơron
ố eural lớp ẩ hứ tự thực hiệ ố mẫu khô hợp lệ ỉ lệ 10 Lần 1 5/27 80% Lần 2 5/27 80% Lần 3 6/27 77,8% 20 Lần 1 8/27 70,3% Lần 2 7/27 74% Lần 3 6/27 77,8% 30 Lần 1 5/27 80% Lần 2 3/27 88,9% Lần 3 5/27 80% 40 ầ 1 2/27 92,6% ầ 2 1/27 96,3% ầ 3 2/27 92,6% 50 Lần 1 7/27 74% Lần 2 8/27 70,3% Lần 3 5/27 80% 60 Lần 1 4/27 85% Lần 2 5/27 80% Lần 3 5/27 80%
Nhận xét: Số Neural trong lớp ẩn có ảnh hưởng đến hiệu năng của hệ thống. Số Neural càng lớn thì có nghĩa mạng có kích thước lớn với số lượng lớn các trọng số. Mạng có kích thước càng lớn thì hiệu năng càng cao, nhưng khi số lượng Neural quá lớn so với quy mô của bài toán cần giải quyết cũng làm giảm hiệu năng của hệ thống. Từ Bả kết quả cho thấy số lượng neural là 40 cho kết quả kiểm thử ổn định và cao (trung bình 93,8%). Nên trong mạng này em sử dụng số Neural là 40.
Hình 3.8. Sơ đồ Neural Network được sử dụng
Hình 3.7 trên thể hiện ba cảm xúc, nhãn số 1 tương ứng với cảm xúc vui, nhãn số
2 tướng ứng với cảm xúc buồn và nhãn số 3 là cảm xúc ngạc nhiên. Với đường chéo trong hình là số ảnh và tỷ lệ có kết quả nhận diện đúng của từng loại cảm xúc, những giá trị nằm ngoài đường chéo là số ảnh và tỷ lệ nhận diện nhầm của cảm xúc này thành cảm xúc khác. Ví dụ: trên hình 3.8 có 1 ảnh là cảm xúc vui nhưng bị nhận dạng nhầm thành cảm xúc buồn. Một trong số 2 ảnh nhận diện nhầm này được thể hiện trong Hình
3.9.
Hình 3.10. Hình ảnh bị nhận diện nhầm
hậ xét:
Có thể thấy tỷ lệ nhận diện nhầm bé (tỷ lệ nhận diện nhầm là 1.8% trong tập test), chủ yếu tập trung ở những hình của các loại cảm xúc khuôn mặt được biểu cảm gần giống nhau. Như Hình 3.9 là cả khuôn mặt ngạc nhiên và buồn của cùng một người
đều có khuôn miệng thể hiện gần như nhau.
Các hình ảnh mang biểu cảm rõ ràng, đặc biệt khác hoàn toàn với các cảm xúc khác thường cho tỷ lệ nhận diện đúng cao hơn.
3.4.2. Kết quả trên bộ dữ liệu FEI
Bảng kết quả thử nghiệm mạng Nơron khi thay đổi số lớp ẩn trong mạng Nơ-ron của bộ dữ liệu FEI
Bảng 3.3. Bảng kết quả thử nghiệm khi thay đổi hidden layer của mạng Nơron
ố eural lớp ẩ
hứ tự thực hiệ
ố mẫu
khô hợp lệ iệu suất
3
Lần 1 4/100 96%
Lần 2 6/100 94%
Lần 3 7/100 93%
ầ 2 4/100 96% ầ 3 4/100 96% 10 Lần 1 7/100 93% Lần 2 6/100 94% Lần 3 6/100 94% 15 Lần 1 7/100 93% Lần 2 4/100 96% Lần 3 8/100 92%
Từ Bảng kết quả cho thấy số lượng neural là 5 cho kết quả kiểm thử khá cao (trung bình 96,3%). Nên trong mạng này em sử dụng số Neural là 5.
Hình 3.11. Sơ đồ Neural Network được sử dụng trong tập dữ liệu FEI
Hình 3.12. Confusion matrix for ANN
Hình 3.11 trên thể hiện 2 cảm xúc, nhãn số 1 tương ứng với cảm xúc vui, nhãn số
kết quả nhận diện đúng của từng loại cảm xúc, những giá trị nằm ngoài đường chéo là số ảnh và tỷ lệ nhận diện nhầm của cảm xúc này thành cảm xúc khác. Ví dụ: trên hình
3.12a có 1 ảnh là cảm xúc trung tính nhưng bị nhận dạng nhầm thành vui và hình 3.12b có 1 ảnh biểu cảm khuôn mặt vui thì bị nhận dạng nhầm là trung tính.
Hình 3.13a. Cảm xúc trung tính bị nhận dạng nhầm thành vui
Hình 3.13b. Cảm xúc vui bị nhận dạng nhầm thành trung tính
3.5. Kết quả thực hiệm trên các mô hình khác
Hình 3.15. Kết quả thực nghiệm trên mô hình SVM
Hình 3.16. Kết quả thực nghiệm trên mô hình KNN
Bộ dữ liệu JAFEE thử nghiệm trên mô hình SVM, KNN và Decision Tree và cho ra kết quả dộ chính xác như bảng sau:
Bảng 3.4. Bảng kết quả thử nghiệm trên các mô hình
Các mô hình PCA+SVM PCA+Decision Tree PCA+KNN PCA+ANN ộ chí h
xác 38,7% 68,6% 86,1% 93,8%
hậ xét: Bảng kết quả trên được thử nghiệm trên bộ dữ liệu JAFEE. Thuật toán PCA kết hợp lần lượt với các mô hình: SVM cho kết quả chỉ 38,7%, mô hình Decision Trê cho kết quả 68,6%, mô hình KNN cho kết quả 86,1% và cuối cùng là ANN, cho kết quả 93,8%. Vậy ta thấy, việc nhận dạng bằng thuật tóan PCA kết hợp với ANN cho độ chính xác cao nhất.
3.6. ô cụ thử hiệm atlab
MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.
Hình 3.17. Logo Matlab
MATLAB là một công cụ có ngôn ngữ hiệu năng cao cho tính toán kỹ thuật. Môi trường của nó được tích hợp khả năng tính toán, trực quan và lập trình rất thích hợp để giải quyết các bài toán liên quan nhiều đến các vấn đề toán học.
MATLAB là một hệ thống tương tác mà các dữ liệu cơ bản là các mảng, các ma trận. Điều này cho phép giải quyết các bài toán mất ít thời gian hơn rất nhiều nếu giải bằng các công cụ ngôn ngữ không tương tác khác như C hoặc Java.
Đặc trưng của MATLAB là các thư viện chuyên dụng gọi là Toolboxes. Các thư viện chuyên dụng này chứa tâp hợp các hàm của MATLAB (file.m) mà nó có thể mở rộng MATLAB để giải quyết các bài toán đặc biệt. Các thư viện đó bao gồm các lĩnh vực: xử lý tín hiệu số, hệ thống điều khiển, logic mờ, …
MATLAB rất phù hợp cho những nghiên cứu cơ bản, trong phạm vi của luận văn này, với bộ công cụ mạng noron, MATLAB được sử dụng để xây dựng một hệ thống nhận dạng cảm xúc. Hơn nữa, MATLAB cũng có các thành phần cho phép các công cụ lập trình khác truy cập, nhằm khai thác khả năng của MATLAB. Do đó, một hệ thống nhận dạng cảm xúc mặt người hoàn toàn có thể sử dụng lại những kết quả của MATLAB như những thành phần chương trình cơ bản.
3.7. Xây dự demo
- Giao diện chính của chương trình
Hình 3.18. Giao diện chính
Chương trình được sử dụng trong Matlab như sau:
Hình 3.19. Giao diện mô phỏng
Hình 3.20. Giao diện mô phỏng (cảm xúc vui)
Hình 3.22. Trường hợp không tìm thấy khuôn mặt
Khi ta đưa vào hệ thống nhận dạng một khuôn mặt bất kì, có kích cỡ khác với ban đầu đưa vào hệ thống, thì hệ thống sẽ thông báo là “Không chứa khuôn mặt”
Nút Open Data cso chức năng mở ra bảng kết quả lưu lại lịch sự nhận dạng của hệ thống, thời gian, ngày giờ cùng với cảm xúc được hệ thoogns nhận dạng rõ ràng.
Tổng kết hươ 3
Tuy hệ thống xây dựng còn đơn giản nhưng đã cơ bản giải quyết được bài toán nhận diện ở quy mô nhỏ. Hiệu suất của hệ thống khá cao với tỉ lệ nhận dạng 93,8% trung bình của nhiều lần huấn luyện, khi test với đầu vào là ảnh cùng chung kích cỡ với ảnh của tập huấn luyện. Ngoài ra mô hình này cũng đã được áp dụng trên các bộ dữ liệu khác cũng cho ra kết quả cũng cao và khi so sánh kết quả thử nghiệm trên các mô hình khác như SVM, KNN, Decision Tree thì kết quả của PCA kết hợp ANN vẫn là cao nhất.
KẾT LUẬN
Kết luận
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.
ướng phát triể đề 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.
Hệ thống nhận dạng được các hình ảnh khuôn mặt có góc nghiêng, hình ảnh quay ngang chỉ một phần mặt, hình ảnh khuôn mặt có đeo kính,…
TÀI LIỆU THAM KHẢO
[1] Campo, São Paulo, Brazil, The FEI face database (2006), Phòng thí nghiệm trí tuệ
nhân tạo của FEI ở São Bernardo.
[2] Nguyễn Văn Chức, “Tổng quan về Mạng Neuron (Neural Network)”, từ http://bis.net.vn/forums/t/482.aspx
[3] Nguyễn Thị Ngọc Hân (2016), Mạng Nơron và ứng dụng mạng Nơron trong nhận
dạng cảm xúc trên khuôn mặt người.
[4] Từ Minh Hiển, Trần Thị Khánh Hoa (2012), Nhận dạng khuôn mặt người bằng mạng Nơron và phương pháp phân tích thành phần chính.
[5] Michael Lyons, Miyuki Kamachi và Jiro Gyoba cùng Reiko Kubota, Japanese Female Facial Expression hay Cohn-Kanade, Khoa Tâm lý học tại Đại học Kyushu, Nhật Bản.
[6] Vương Nguyễn (2010), Tổng quan về mạng Nơ ron nhân tạo, Trích dẫn từ trang
web https://vi.scribd.com/document/45779785/m%E1%BA%A1ng-noron
[7] Đinh Xuân Nhất (2010), Nghiên cứu các thuật toán nhận dạng cảm xúc trên ảnh
2D.
[8] Lê Hoàng Thanh, Dò tìm và nhận dạng khuôn mặt người bằng Eigenfaces.
[9] Nguyễn Thị Thanh Vân (2016), Nghiên cứu nhận dạng biểu cảm mặt người trong
tương tác người máy.
[10] Đặng Tuấn Vũ, theo trang web https://rpubs.com/vudt1993/257891, tháng 3 năm 2012
[11] Trích dẫn từ trang web https://vi.wikipedia.org/wiki/Mạng_nơ-ron_nhân_tạo