YÊU CẦU CỦA HỆ THỐNG

Một phần của tài liệu Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN (Trang 41)

Hệ thống nhận dạng được cảm xúc trên khuôn mặt từ máy ảnh đến mặt người trong cự ly khoảng 1m.

Hệ thống nhận dạng được cảm xúc trong điều kiện môi trường đầy đủ ánh sáng, độ

tương phản thích hợp, khơng chịu ảnh hưởng bởi các yếu tố ngoại quan bên ngồi như:

nguồn sáng có cường độ cao, ánh nắng mặt trời...

Hệ thống nhận dạng được 7 loại cảm xúc cơ bản: “vui vẻ” (happy), “buồn” (sad), “sợ hãi” (scared), “giận dữ” (angry), “ngạc nhiên” (surprised), “khó chịu” (disgust) và “bình thường” (neutral).

3.2 MƠ HÌNH HỆ THỐNG 3.2.1 Sơ đồ khối của hệ thống

Hình 3.1: Sơ đồ khối của hệ thống.

Hình ảnh ngõ vào lấy từ video được quay bởi webcam máy tính. Qua q trình tiền xử lý, video được cắt ra thành những khung ảnh tĩnh. Các ảnh này tiếp tục được xử lý đưa về ảnh xám, nhận dạng và tách khuôn mặt khỏi ảnh bằng phương pháp Haar-like của OpenCV [13]. Qua giai đoạn xử lý, hình ảnh khn mặt trả về ma trận có tọa độ gồm chiều dài, chiều rộng và chiều cao, sau đó giảm độ phân giải của ảnh xuống phù hợp với mơ hình của mạng CNN và chuyển đổi ảnh xám sang ảnh nhị phân. Từ ảnh nhị phân, hệ thống sẽ lấy ra các đặc trưng riêng của từng cảm xúc. Tiếp theo, các đặc trưng đó sẽ được đưa vào mạng CNN

3.2.2 Mơ hình CNN sử dụng trong hệ thống

Hình 3.2: Kiến trúc mạng CNN được dùng trong hệ thống

Ảnh đầu vào là ảnh xám nhị phân chứa khn mặt người có kích thước 48x48. Ảnh qua xử lý trở thành ma trận 2 chiều được đưa vào mơ hình CNN. Quá trình huấn luyện trong CNN là sự kết hợp của các lớp như lớp chập, lớp ReLU, lớp MaxPooling, lớp chuẩn hóa (Batch normalization) và lớp chập tách biệt (Separable Conv2D). Lớp kết nối đầy đủ trong mơ hình CNN truyền thống được xóa bỏ trong mơ hình này. Với việc bỏ đi lớp kết nối đầy đủ giúp cắt giảm số lượng tham số ở cuối trong mơ hình CNN truyền thống nhằm

tăng tốc thời gian chạy thuật tốn và khái qt hóa tốt hơn (q cao số lượng tham số so với kích thước tập huấn luyện có thể gây ra quá khớp)

Đầu tiên, ảnh đầu vào được chập với 8 bộ lọc kích thước 3x3. Bộ lọc sẽ lần lượt được dịch chuyển với một bước trượt chạy dọc theo ảnh và quét toàn bộ ảnh. Tiếp theo, toàn bộ ảnh được thêm vào lớp chuẩn hóa giúp bình thường hóa đầu ra, các hệ số trở nên cân bằng hơn (không quá nhỏ hoặc quá lớn) vì thế sẽ giúp mơ hình dễ hội tụ hơn. Sau đó kích hoạt lớp ReLU được đính kèm để phi tuyến, sau q trình này thu được 8 ma trận phi tuyến có kích thước 24x24. Lớp chập và lớp chuẩn hóa thứ hai thực hiện tương tự, đầu ra sau xử lý vẫn là 8 ma trận có kích thước 24x24. Kết quả ở ngõ ra sau lớp chập thứ hai sẽ được xử lý độc lập ở khối A gồm: lớp chập tách biệt tích chập theo chiều sâu với 16 bộ lọc 3x3, sau đó được chuẩn hóa bởi lớp chuẩn hóa, kích hoạt lớp ReLU, thực hiện thêm một lần chập tách biệt với 16 bộ lọc 3x3 và lớp chuẩn hóa trước khi đưa vào lớp MaxPooling là một ma trận có kích thước 3x3 với bước trượt bằng 2, sau quá trình này thu được 16 ma trận có kích thước 12x12; ở nhánh cịn lại thêm một lượng tích chập với 16 bộ lọc 1x1, ở quá trình của nhánh này cũng thu được 16 ma trận có kích thước 12x12 với mục đích điều chỉnh trọng số của đặc trưng khi tính gộp kết quả với q trình tính chập tách biệt. Sau quá trình ở khối A thu được 16 ma trận có kích thước 12x12. Thực hiện tương tự và lặp lại ở khối A lần lượt với số lượng các bộ lọc 3x3 là 32, 64 và 128, kết quả sau khi qua các lần lặp lại ở khối A là 32 ma trận có kích thước 6x6, 64 ma trận có kích thước 3x3 và 128 ma trận có kích thước 2x2. Đem kết quả cuối cùng đem chập với 7 bộ lọc (tương ứng 7 loại cảm xúc). Kết quả tính tốn của CNN được chuyển vào khối giá trị trung bình tồn cục (chuyển kết quả 2D thành vector), kết quả này được xử lý qua một lớp softmax để trả về xác suất của từng loại cảm xúc.

3.3 TẬP DỮ LIỆU

3.3.1 Tập dữ liệu mẫu có sẵn

Các tập dữ liệu khác nhau chủ yếu về số lượng, chất lượng và độ sạch của hình ảnh. Tập dữ liệu FERC-2013 [2] có khoảng 35.000 hình ảnh trắng đen có độ phân giải thấp chỉ

được xử lý trước. Chỉ có phần hình vng có khn mặt khi nhận dạng được giữ lại, được thay đổi kích thước và được chuyển đổi thành một mảng có giá trị đen trắng là 48x48.

Hình 3.3: Một số hình ảnh trong tập dữ liệu mẫu

Tập dữ liệu với định dạng “.csv” chứa hai cột là cảm xúc và pixel. Cột cảm xúc có chứa các số từ 0 đến 6, đại diện cho 7 cảm xúc cơ bản hiện diện trong hình ảnh. Cột pixel chứa một chuỗi dữ liệu được bỏ trong dấu ngoặc kép cho mỗi hình ảnh. Nội dung của chuỗi này là các giá trị pixel được phân tách bằng dấu cách.

Bảng 3.1: Bảng phân loại số lượng cảm xúc trong tập dữ liệu mẫu FERC-2013

Cảm xúc Số lượng ( hình ảnh ) Tỉ lệ ( % ) Giận dữ 4954 13.81 Khó chịu 547 1.52 Sợ hãi 5121 14.27 Vui vẻ 8989 25.05 Buồn 6077 16.93 Ngạc nhiên 4002 11.15

Bình thường 6198 17.27

Tổng 35888 100

Hình 3.4: Biểu đồ số lượng cảm xúc trong tập dữ liệu mẫu FERC-2013

3.3.2 Tập dữ liệu riêng

Tập dữ liệu riêng được tạo ra nhằm mục đích kiểm tra độ chính xác của mơ hình CNN được huấn luyện. Tập dữ liệu riêng bao gồm: tập dữ liệu A và tập dữ liệu B. Trong đó, tập dữ liệu A là hình ảnh được lấy từ webcam máy tính. Tập dữ liệu bao gồm 8 người trong đó có 3 nữ và 5 nam. Mỗi hình ảnh là một cảm xúc với cường độ khác nhau và sự mở rộng các góc cạnh của khn mặt. Với số lượng người tham gia thực nghiệm trên, tập dữ liệu sẽ có 280 hình ảnh được chia cho 7 loại cảm xúc. Hình ảnh dùng cho quá trình kiểm tra là hình ảnh màu trong các điều kiện mơi trường khác nhau. Tập dữ liệu B là hình ảnh được lấy từ tập dữ liệu CK+ [10]. Tập dữ liệu bao gồm 700 hình ảnh được lựa chọn từ tập dữ liệu trên. Hình ảnh dùng cho quá trình kiểm tra là hình ảnh xám với những người được khảo sát có giới tính và màu da khác nhau. Số lượng hình ảnh trong tập dữ liệu riêng được thể hiện ở bảng 3.2 và hình 3.5.

Bảng 3.2: Bảng phân loại số lượng cảm xúc trong tập dữ liệu riêng Cảm xúc Tập mẫu A ( hình ảnh ) Tập mẫu B ( hình ảnh ) Cảm xúc Tập mẫu A ( hình ảnh ) Tập mẫu B ( hình ảnh ) Giận dữ 30 100 Khó chịu 10 10 Sợ hãi 30 60 Vui vẻ 80 150 Buồn 30 80 Ngạc nhiên 30 80 Bình thường 70 140 Tổng 280 620

3.4 QUÁ TRÌNH HUẤN LUYỆN VÀ KIỂM TRA 3.4.1 Q trình huấn luyện 3.4.1 Quá trình huấn luyện

Tập mẫu FERC-2013 [2] đã được phân loại và sắp xếp theo mục đích sử dụng cho việc huấn luyện và kiểm tra. Tập dữ liệu này là tập hợp hình ảnh của 7 cảm xúc đã được chuyển đổi thành ma trận nhị phân có kích thước 48x48 và có gắn nhãn.

Đầu tiên, cá nhân thực hiện sẽ khơi phục lại hình ảnh với kích thước 48x48 từ ma trận nhị phân trong tập mẫu với đuôi “.csv”, đồng thời gắn nhãn cảm xúc tương ứng với hình ảnh đó. Dữ liệu đã được xử lý ảnh được đưa vào mơ hình CNN tiến hành huấn luyện.

Sau quá trình huấn luyện, các trọng số và dữ liệu của mạng sẽ được lưu vào tập tin có đi là “.hdf5”. Tên tập tin này gồm các tham số sau: số lần huấn luyện được lặp lại, độ chính xác

Hình 3.6: Lưu đồ thuật tốn q trình huấn luyện.

3.4.2 Quá trình kiểm tra

Tập dữ liệu riêng được cá nhân thực hiện được đưa vào mạng, dựa vào các trọng số và dữ liệu trong tập tin, mạng sẽ dự đoán các cảm xúc và xuất ra ma trận dự đoán.

CHƯƠNG 4 KẾT QUẢ

4.1 KẾT QUẢ HUẤN LUYỆN VÀ KIỂM TRA

Độ chính xác qua kiểm tra dùng đánh giá mơ hình trong quá trình huấn luyện. Sau lần huấn luyện đầu tiên, độ chính xác qua kiểm tra đạt được là 43.59%, tiếp tục tiến hành huấn luyện 125 lần nhận được kết quả là 64,6%. Lấy kết quả so sánh với đề tài đã nghiên cứu [1] được thể hiện trong bảng 4.1 thấy được độ chính xác qua kiểm tra của cá nhân thực hiện là tốt hơn do mơ hình được huấn luyện với số lượng ảnh là 28709 hình và 125 lần huấn luyện.

Hình 4.1: Biểu đồ độ chính xác qua kiểm tra trong quá trình huấn luyện. Bảng 4.1: So sánh độ chính xác qua kiểm tra giữa hai mơ hình. Bảng 4.1: So sánh độ chính xác qua kiểm tra giữa hai mơ hình.

Mơ hình Mơ hình cá nhân thực hiện Mơ hình trong [1]

Độ chính xác kiểm tra ( % ) 64% 62%

Độ chính xác qua kiểm tra dùng để đánh giá mơ hình sau huấn luyện. Kết quả thể hiện trong hình 4.2. Đường chéo thuận trên ma trận đậm hơn so với các điểm còn lại thể hiện sự

tương quan giữa cảm xúc đầu vào và dự đốn có sự tương quan lớn. Các cảm xúc “vui”,

“bình thường” và “ngạc nhiên” có độ chính xác cao do tập mẫu có số lượng dùng huấn

luyện lớn, đồng thời đây cũng là các cảm xúc dễ làm, ít sự tương đồng với các cảm xúc khác. Cảm xúc “khó chịu” tuy có độ chính xác cao nhưng do cảm xúc này có số lượng tập

mẫu huấn luyện thấp, các tập riêng dùng để kiểm tra khơng nhiều, nên độ chính xác đạt

được khá cao lên đến 0.6. Ba cảm xúc còn lại bao gồm “giận dữ”, “sợ hãi” và “buồn” có tỉ lệ thấp do có nhiều sự tương đồng tại các điểm trên khuôn mặt dẫn đến việc kiểm tra gây nhầm lẫn, khiến cho sự đánh giá của máy tính sai lệch khá nhiều. Trong nghiên cứu [1], tác giả cho rằng để tăng độ chính xác lên đến 90% cần tập mẫu, tập kiểm tra phải nằm trong điều kiện lý tưởng của phịng thí nghiệm (ánh sáng hồn hảo, máy ảnh ngang tầm mắt và máy ảnh đối diện với các điểm nhận dạng trên khuôn mặt). Tuy tập dữ liệu của cá nhân thực hiện chưa đạt được các điều kiện như trên nhưng sau qua trình huấn luyện, cá nhân nhận thấy đường chéo trên ma trận tương quan đậm hơn so với nhưng điểm còn lại như vậy tập dữ liệu có thể được đánh giá là tương đối tốt.

Hình 4.3: Ma trận tương quan của mơ hình với ngõ vào là dữ liệu tập riêng

Kết quả kiểm tra tập riêng được thể hiện ở bảng 4.2 bên dưới. Đem kết quả sau khi

kiểm tra so sánh với đề tài đã nghiên cứu [1], độ chính xác qua kiểm tra của mơ hình của cá nhân thực hiện (trong tệp tin “_emotion_training.log”) và đề tài nghiên cứu [1] thể hiện ở bảng 4.3.

Bảng 4.2: Đánh giá tỉ lệ nhận dạng cảm xúc khi kiểm tra tập riêng.

Bảng 4.3: So sánh độ chính xác giữa hai mơ hình.

Mơ hình Mơ hình cá nhân thực hiện Mơ hình trong [1]

Độ chính xác ( % ) 62% 57%

4.2 ỨNG DỤNG NHẬN DẠNG CẢM XÚC THÔNG QUA KHUÔN MẶT TRÊN KIT RASPBERRY PI 4 RASPBERRY PI 4

Hình 4.4: Camera kết nối với kit raspberry Pi 4

Sau quá trình huấn luyện và kiểm tra mơ hình, cá nhân thực hiện lấy kết quả đạt được xây dựng một ứng dụng trên kit Raspberry Pi 4 với sự hỗ trợ thiết kế giao diện của bộ cơng cụ GUI Tkinter.

Hình 4.5: Giao diện của ứng dụng nhận dạng cảm xúc

- Nút nhấn “Chọn file” dùng để chọn file cần được nhận dạng, file được chọn với hai định dạng chính. Nếu là hình ảnh thì file đó có đi “.jpg” hoặc “.png”, nếu là video offline thì file có đi “.mp4”. Khi đã chọn được file, ứng dụng sẽ thông báo đến người dùng tin nhắn “Đã chọn file!!!”.

- Nút nhấn “Nhận dạng” dùng để nhận dạng cảm xúc cho file đã chọn ở nút nhấn “Chọn file”. Đối với hình ảnh sau khi nhận dạng được biểu diễn bằng cửa sổ và kết quả sẽ được lưu vào folder có tên “result”.

- Nút nhấn “Trực tuyến” dùng để nhận dạng cảm xúc đối với luồng video trực tuyến.

- Nút nhấn “Thốt” dùng để đóng ứng dụng.

Hình 4.6: Thơng báo khi đã chọn được file.

 Nhận dạng cảm xúc của 7 loại cảm xúc được nghiên cứu trong để tài này với những

Hình 4.7: Nhận dạng cảm xúc “ bình thường ”

Hình 4.8: Nhận dạng cảm xúc “ bình thường ”từ một ảnh bất kỳ được tải lên hệ thống Hình 4.7 và 4.8 miêu tả nhận dạng cảm xúc bình thường với độ chính xác khá cao lên Hình 4.7 và 4.8 miêu tả nhận dạng cảm xúc bình thường với độ chính xác khá cao lên đến 77.95% và 88.45% do các chi tiết biểu cảm cảm xúc bình thường trên khn mặt khá rõ ràng.

Hình 4.9: Nhận dạng cảm xúc “ vui vẻ ”

Hình 4.9 miêu tả nhận dạng cảm xúc vui vẻ với độ chính xác lên đến 93.98% do các chi tiết biểu cảm cảm xúc vui vẻ trên khuôn mặt khá chi tiết như miệng và các hàm răng được mở ra và giãn rộng, các chi tiết trên vùng má và lơng mày cũng có sự thay đổi như cong hơn nên hệ thống nhận dạng có độ chính xác tương đối tốt.

Hình 4.10: Nhận dạng cảm xúc “ ngạc nhiên ”

Hình 4.10 miêu tả nhận dạng cảm xúc ngạc nhiên với độ chính xác lên đến 67.6% do các chi tiết biểu cảm cảm xúc ngạc nhiên trên khuôn mặt khá cụ thể như lông mày nâng lên, mắt mở to, há miệng nên hệ thống nhận dạng có độ chính xác tương đối tốt so với tập mẫu đã huấn luyện.

1Hình 4.11: Nhận dạng cảm xúc “ buồn ”

Hình 4.11 miêu tả nhận dạng cảm xúc buồn với độ chính xác lên đến 63.47% do các chi tiết biểu cảm cảm xúc buồn trên khuôn mặt khá chi tiết như đi mí mắt trên sụp xuống, mắt mất tập trung,và diện tích bên trong mắt bị thu hẹp, ngồi ra gì má nâng cao lên. Các chi biểu cảm trên khuôn mặt cụ thể như đã huấn luyện nên hệ thống nhận dạng tương đối tốt.

Hình 4.12: Nhận dạng cảm xúc “ giận dữ ”

Hình 4.12 miêu tả nhận dạng cảm xúc giận dữ với độ chính xác lên đến 83.27% do các chi tiết biểu cảm cảm xúc giận dữ trên khuôn mặt khá rõ ràng như lông mày nhướng lên và kéo gần lại nhau và cong cao hơn, mí mắt trên kéo lên, mí mắt dưới căng, miệng hơi kéo sang hai bên và há rộng để hở một phần răng. Các cho tiết biểu cảm trong môi trường tốt và biểu cảm rõ ràng nên hệ thống nhận dạng có độ chính xác tương đối tốt.

Hình 4.13: Nhận dạng cảm xúc “ khó chịu ”

Hình 4.13 miêu tả nhận dạng cảm xúc khó chịu với độ chính xác lên đến 85.79% do các chi tiết biểu cảm cảm xúc khó chịu trên khn mặt khá rõ ràng như nhăn sống mũi và môi trên và mơi dưới được thu hẹp, hai mắt nhíu lại , vùng diện tích đơi mắt và miệng được thu hẹp khá lớn, bên cạnh đó lơng mày cũng có sự thay đổi như cong ở mức độ trung bình. Các chi tiết trên làm hệ thống nhận dạng có độ chính xác tương đối tốt.

Hình 4.14: Nhận dạng cảm xúc “ sợ hãi ”

Hình 4.14 miêu tả nhận dạng cảm xúc sợ hãi với độ chính xác chỉ 45.82% do đây là cảm xúc biểu cảm khó, dễ nhầm lẫn với nhiều cảm xúc khác. Ngoài ra các chi tiết biểu cảm gần có sự tương đồng với cảm xúc buồn.

 Nhận dạng cảm xúc sai đối với một số hình ảnh từ hình 4.15 đến hình 4.19.

Hình 4.15: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ buồn ” do biểu cảm

Một phần của tài liệu Nhận dạng cảm xúc thông qua khuôn mặt dùng mạng nơ ron tích chập CNN (Trang 41)

Tải bản đầy đủ (PDF)

(82 trang)