6. Bố cục luận văn
2.3.5. Sử dụng Neural Network
Sau khi đã huấn luyện mạng bởi cơ sở dữ liệu ban đầu cho hiệu suất tốt và ổn định, lúc này khi muốn nhận dạng 1 đối tượng đã được huấn luyện thì chỉ cần đưa các giá trị đầu vào của đối tượng vào mạng, đầu ra sẽ là 1 giá trị, mà từ giá trị này có thể nhận dạng được đối tượng tùy vào giá trị đầu ra đã khai báo trong quá trình huấn luyện.
Sử dụng mạng Neural Network tức là chúng ta sử dụng thuật toán học truyền ngược có thể được chia thành hai giai đoạn: lan truyền, cập nhật trọng số.
Giai đoạn 1: Lan truyền
- Lan truyền thuận của một đầu vào của mô hình huấn luyện thông qua mạng nơ-ron để tạo ra các kích hoạt đầu ra của lan truyền này.
- Truyền ngược của các kích hoạt đầu ra của lan truyền thông qua mạng lưới nơ-ron sử dụng mục tiêu huấn luyện mô hình để tạo ra các delta (sai lệch giữa giá trị mục tiêu và giá trị đầu ra thực tế) và tất cả đầu ra và các nơ-ron ẩn.
Giai đoạn 2: cập nhật trọng số
Đối với mỗi khớp thần kinh, trọng số thực hiện theo các bước sau:
- Nhân các delta đầu ra và kích hoạt đầu vào để có được gradient của trọng số của nó.
- Trừ một tỷ lệ (tỷ lệ phần trăm) từ gradient của trọng số.
Tỷ lệ phần trăm này ảnh hưởng đến tốc độ và chất lượng học; nó được gọi
là tốc độ học. Tỷ lệ này càng lớn, thì tốc độ huấn luyện nơron càng nhanh; tỷ lệ này
càng thấp, thì việc huấn luyện càng chậm. Dấu của gradient của một trọng số chỉ ra chỗ mà sai số đang gia tăng, đây là lý do tại sao trọng số phải được cập nhật theo hướng ngược lại.[15]
Tổng kết hươ 2
Như vậy, chương này đã trình bày các lý luận, cơ sở lý thuyết và thuật toán chính để thực hiện đề tài. Việc sử dụng và cách thức thực hiện các cơ sở lý thuyết trên vào trong đề tài sẽ được trình bày trong chương 3.
Ơ 3
XÂY DỰNG THUẬT TOÁN NHẬN D NG CẢM XÚC VÀ KẾT QUẢ
3.1. ơ sở dữ liệu
Trong luận văn này, em đã sử dụng 2 bộ dữ liệu để thử nghiệm mô hình.
3.1.1. Bộ dữ liệu JAFEE (Japanese Fermale Facial Expression)
Cơ sở dữ liệu cho bài toán nhận dạng được phân thành tập huấn luyện (train) và tập kiểm tra (test) từ tập ảnh JAFFE (Japanese Female Facial Expression) hay Cohn- Kanade của Michael Lyons, Miyuki Kamachi và Jiro Gyoba cùng với Reiko Kubota. Những bức ảnh được chụp tại Khoa Tâm lý học tại Đại học Kyushu, Nhật Bản.
Cơ sở dữ liệu này gồm 137 hình ảnh. Mỗi hình ảnh được đặt tên theo thứ tự <Tên người>.<Cảm xúc>.<số thứ tự ảnh>. Trong đó, cảm xúc vui vẻ được biểu diễn là HA (Happy), cảm xúc buồn được biểu diễn là SA (Sad) và cảm xúc giận dữ được biểu diễn là SU (Surprise).
Tập dữ liệu gồm 10 người có tên lần lượt: KA, KL, KM, KR, MK, NA, TM, UY và YM. Mỗi người sẽ biểu diễn ba cảm xúc: vui (HA), buồn (SA) và ngạc nhiên (SU) qua các hình ảnh trong tập dữ liệu.
Trong đó tập dữ liệu huấn luyện (train) có 110 hình ảnh của 7 người KA, KL, KM, KR, MK và NA; tập dữ liệu kiểm tra (test) có 27 hình ảnh của 3 người có tên: TM, UY và YM.
Hình 3.1. Khuôn mặt cảm xúc vui (HA), buồn (SA) và ngạc nhiên (SU) của người mang tên KA
Hình 3.2. Khuôn mặt cảm xúc vui (HA), buồn (SA) và ngạc nhiên (SU) của người mang tên KL
Hình 3.3. Một vài hình ảnh trong tập dữ liệu JAFEE
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