1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

83 84 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 83
Dung lượng 5,61 MB

Cấu trúc

  • NCKH LETTER.pdf (p.1)

  • SKC007412.pdf (p.2-82)

  • 4 BIA SAU LETTER.pdf (p.83)

Nội dung

TỔNG QUAN

TÌNH HÌNH NGHIÊN CỨU

Trí tuệ nhân tạo hiện đang được coi là công nghệ cốt lõi của cuộc cách mạng công nghiệp 4.0, không chỉ tại Việt Nam mà trên toàn thế giới Nhiều quốc gia nhận thấy sự phát triển tất yếu và tác động sâu rộng của trí tuệ nhân tạo đến mọi lĩnh vực trong đời sống xã hội, từ kinh tế đến quân sự và chính trị Để đảm bảo phát triển kinh tế - xã hội và mang lại thịnh vượng cho quốc gia, các nước đang áp dụng hiệu quả thành tựu của trí tuệ nhân tạo và tự động hóa, đồng thời đưa ra các giải pháp phù hợp nhằm thích ứng với quá trình chuyển đổi mạnh mẽ của cuộc cách mạng công nghiệp 4.0.

Sau hơn 30 năm đổi mới, Việt Nam đã phát triển mạnh mẽ, trở thành nền kinh tế hội nhập và hấp dẫn đầu tư trong khu vực Trong bối cảnh phát triển và hội nhập quốc tế, cùng với sự bùng nổ của cuộc cách mạng công nghiệp 4.0, Việt Nam đang tập trung vào phát triển công nghệ trí tuệ nhân tạo, được dự báo sẽ là ngành công nghệ đột phá trong 10 năm tới Chính phủ xác định trí tuệ nhân tạo là mũi nhọn cần được nghiên cứu và phát triển Bộ Khoa học và Công nghệ đang tích cực định hướng và thúc đẩy phát triển công nghệ này, bao gồm việc phê duyệt các chương trình khoa học trọng điểm nhằm hỗ trợ nghiên cứu và ứng dụng trí tuệ nhân tạo, đồng thời kết nối các nhà nghiên cứu, doanh nghiệp và nhà đầu tư.

Trí tuệ nhân tạo gắn liền với công nghệ sinh trắc học, một trong những lĩnh vực phát triển chủ chốt trong công nghiệp hiện đại Công nghệ này sử dụng các đặc tính vật lý và sinh học riêng biệt của từng cá nhân như cảm xúc, võng mạc, khuôn mặt và vân tay để nhận diện Bên cạnh ứng dụng trong hệ thống bảo mật, các nhà khoa học cũng đang nghiên cứu các đặc điểm cảm xúc trên khuôn mặt con người.

Việc nhận diện cảm xúc trên khuôn mặt là yếu tố quan trọng trong việc phát triển các loại robot tương tác với con người Xác định cảm xúc từ khuôn mặt không phải là nhiệm vụ đơn giản, và nhiều nghiên cứu đã đề xuất các phương pháp khác nhau để thực hiện điều này Trong nghiên cứu của Kaustubh Dewoolkar, tác giả đã sử dụng kỹ thuật xử lý ảnh để chuyển đổi ảnh màu sang ảnh xám, từ đó trích xuất các đặc điểm chính và so sánh với các đặc điểm đã biết nhằm xác định cảm xúc trên khuôn mặt.

Trong nghiên cứu năm 2015 của Young Hoon Jo, tác giả đã xác định cảm xúc của từng cá nhân dựa trên các đặc điểm và khoảng cách giữa các thành phần trên khuôn mặt Bằng cách phân chia khuôn mặt thành các vùng khác nhau, tác giả đã phân tích đặc điểm của từng phần để nhận diện các lớp cảm xúc Tuy nhiên, phương pháp này chỉ chính xác khi các đặc điểm được coi là tiêu chuẩn Hiện nay, việc áp dụng mạng nơ-ron xoắn tích chập đã mở ra những tiến bộ mới trong việc xác định và nhận dạng cảm xúc trên khuôn mặt con người.

LÝ DO CHỌN ĐỀ TÀI

Cảm xúc đóng vai trò quan trọng trong giao tiếp phi ngôn ngữ và hiểu biết hành vi con người Việc nhận diện cảm xúc có thể thực hiện qua văn bản, hội thoại, cử chỉ cơ thể và đặc biệt là biểu cảm khuôn mặt, vì đây là phương pháp phổ biến và hiệu quả nhất Do đó, tôi đã lựa chọn nghiên cứu về chủ đề này.

Nghiên cứu "Nhận dạng cảm xúc thông qua khuôn mặt sử dụng mạng nơ-ron tích chập CNN" nhằm phát triển khả năng nhận diện cảm xúc của con người từ khuôn mặt Đề tài này tập trung vào việc ứng dụng mô hình mạng nơ-ron tích chập trên máy tính và kit Raspberry Pi 4 để cải thiện khả năng phân tích và hiểu biết cảm xúc.

MỤC TIÊU ĐỀ TÀI

Đề tài này nhằm nghiên cứu mô hình mạng nơ-ron tích chập (CNN) để kiểm tra hiệu quả nhận dạng cảm xúc từ khuôn mặt Hệ thống sẽ nhận diện 7 loại cảm xúc, bao gồm: "vui vẻ", "buồn", "sợ hãi", "giận dữ", "ngạc nhiên", "khó chịu" và "bình thường" Ngoài ra, nghiên cứu cũng tập trung vào việc sử dụng kit Raspberry Pi 4 và ngôn ngữ Python, cũng như áp dụng thuật toán phát hiện khuôn mặt từ camera hoặc ảnh và các bước xử lý ảnh Hệ thống sẽ được cài đặt và hoạt động trên máy tính nhúng Raspberry Pi 4.

PHƯƠNG PHÁP NGHIÊN CỨU

Bài viết này nghiên cứu mô hình mạng nơ-ron tích chập, bao gồm kiến trúc, quy trình đào tạo, trích xuất đặc trưng và thuật toán phân loại nhận dạng Mục tiêu là xây dựng và huấn luyện mô hình mạng nơ-ron tích chập nhằm kiểm tra hiệu quả trong việc nhận dạng cảm xúc.

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

Cảm xúc là trạng thái trải nghiệm tích cực hoặc tiêu cực, liên quan đến hoạt động của hệ thống thể lý và tâm lý, dẫn đến những thay đổi về sinh lý, hành vi và suy nghĩ của con người hoặc động vật Do đó, đề tài nghiên cứu này hướng đến mọi người trong cuộc sống hàng ngày.

Đề tài nghiên cứu tập trung vào thuật toán nhận dạng cảm xúc cho luồng video trực tuyến, đồng thời cũng có khả năng nhận dạng cảm xúc từ ảnh và video được tải lên hệ thống Việc nhận dạng cảm xúc cho luồng video trực tuyến được thực hiện trong điều kiện ánh sáng đầy đủ, với gương mặt chính diện và khoảng cách nhận dạng khuôn mặt khoảng 1m Dữ liệu huấn luyện cho máy học được lấy từ tập dữ liệu FERC-2013.

BỐ CỤC ĐỀ TÀI

Dựa trên mục tiêu cụ thể đã trình bày trong phần trước, đề tài được phân thành năm chương với các nội dung cụ thể như sau:

Chương 1: Tổng quan: Trong chương này, em sẽ trình bày khái quát về xu hướng phát triển cũng như tình hình nghiên cứu hiện nay, lý do chọn đề tài, xác định mục tiêu cần thực hiện trong đề tài, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu của đề tài

Chương 2: Cơ sở lý thuyết: Nội dung chương này là giới thiệu về quá trình xử lý ảnh, mạng nơ ron nhân tạo, tìm hiểu cấu trúc, hoạt động từng lớp của mạng nơ-ron tích chập Trình bày các đặc trưng của mặt người, phương pháp tiếp cận đặc trưng khuôn mặt và biểu cảm của khuôn mặt khi bày tỏ cảm xúc

Chương 3: Thiết kế hệ thống 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 trên kit raspberry Pi 4: Trong chương này, em sẽ lên kế hoạch sử dụng tập mẫu, diễn giải các thông số của mô hình, quá trình huấn luyện, quá trình kiểm tra và thiết kế một hệ thống nhận dạng cảm xúc thông qua khuôn mặt dùng mô hình mạng nơ-ron tích chập

Chương 4: Kết quả: Chương này sẽ trình bày các kết quả đạt được của quá trình huấn luyện, quá trình kiểm tra mô hình và ứng dụng nhận dạng cảm xúc thông qua khuôn mặt

Chương 5: Kết luận và hướng phát triển: Trong chương này sẽ trình bày những kết quả của đề tài nghiên cứu đã đạt được, nêu ra một số hướng nghiên cứu tiếp theo và phát triển đề tài.

CƠ SỞ LÝ THUYẾT

TỔNG QUAN VỀ QUÁ TRÌNH XỬ LÝ ẢNH

Xử lý ảnh là một lĩnh vực khoa học đang phát triển mạnh mẽ, liên quan đến việc xử lý tín hiệu từ hình ảnh đầu vào để tạo ra hình ảnh hoặc các đặc tính liên quan Các chủ đề chính bao gồm phục hồi hình ảnh, nâng cao chất lượng và nén hình ảnh Sự phát triển của xử lý ảnh mang lại nhiều lợi ích cho cuộc sống, với ứng dụng rộng rãi trong viễn thám, y tế, nghiên cứu pháp y, dệt may, khoa học vật liệu, quân sự, công nghiệp điện ảnh, xử lý tài liệu, công nghệ đồ họa và in ấn.

Có hai phương pháp có sẵn trong xử lý ảnh đó là xử lý ảnh tương tự và xử lý ảnh kỹ thuật số

Xử lý ảnh tương tự là quá trình thao tác trên các tín hiệu tương tự, bao gồm cả tín hiệu hai chiều Phương pháp này sử dụng điện để xử lý hình ảnh bằng cách thay đổi các tín hiệu điện.

Xử lý ảnh kỹ thuật số là quá trình sử dụng thuật toán máy tính để cải thiện hình ảnh trong môi trường số Ba lợi ích chính của phương pháp này bao gồm chất lượng hình ảnh luôn được duy trì ở mức cao, chi phí xử lý thấp và khả năng kiểm soát toàn bộ các khía cạnh của quá trình xử lý.

Hình 2.1: Quy trình xử lý ảnh

Quá trình thu nhận ảnh là bước đầu tiên và quyết định trong xử lý ảnh, nơi ảnh đầu vào được thu thập từ các thiết bị như máy ảnh, cảm biến và máy quét Những tín hiệu này sẽ được số hóa, và việc lựa chọn thiết bị thu nhận phụ thuộc vào đặc tính của đối tượng cần xử lý Các thông số quan trọng cần xem xét bao gồm độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận ảnh của thiết bị.

Tiền xử lý ảnh là bước quan trọng nhằm cải thiện độ tương phản, khử nhiễu, khử bóng và khử độ lệch, giúp nâng cao chất lượng ảnh Quá trình này chuẩn bị cho các bước xử lý phức tạp hơn sau này và thường được thực hiện thông qua các bộ lọc chuyên dụng.

Phân đoạn ảnh là bước quan trọng trong xử lý ảnh, giúp phân tích ảnh thành các thành phần có tính chất tương đồng dựa trên biên hoặc các vùng liên thông, như màu sắc hoặc mức xám Mục tiêu của phân đoạn ảnh là tạo ra một mô tả tổng quát về các yếu tố khác nhau trong ảnh thô, nhằm giảm thiểu lượng thông tin khổng lồ trong ảnh, từ đó chỉ trích xuất những đặc trưng cần thiết cho các ứng dụng Quá trình này bao gồm việc phân vùng ảnh và chọn lọc các đặc tính chính.

Kết quả của bước phân đoạn ảnh thường là dữ liệu điểm ảnh thô, chứa biên của một vùng ảnh hoặc tập hợp các điểm ảnh thuộc về vùng đó Việc chuyển đổi dữ liệu thô này thành dạng phù hợp cho xử lý máy tính là rất cần thiết Câu hỏi đầu tiên là nên biểu diễn vùng ảnh dưới dạng biên hay dạng vùng hoàn chỉnh Biểu diễn dạng biên phù hợp cho các ứng dụng chú trọng đến đặc trưng hình dạng bên ngoài, như góc cạnh và điểm uốn Ngược lại, biểu diễn dạng vùng thích hợp cho các ứng dụng khai thác tính chất bên trong, như vân ảnh hoặc cấu trúc xương Lựa chọn cách biểu diễn là một phần trong việc chuyển đổi dữ liệu ảnh thô, và cần có phương pháp mô tả dữ liệu đã chuyển đổi để làm nổi bật các tính chất quan tâm, thuận tiện cho việc xử lý sau này.

Nhận dạng và giải thích là bước cuối cùng trong quá trình xử lý ảnh Nhận dạng ảnh đơn giản là gán nhãn cho các đối tượng trong ảnh, chẳng hạn như nhận dạng chữ viết, nơi các mẫu chữ cần được tách ra và gán đúng các ký tự tương ứng Giải thích là công đoạn gán nghĩa cho các đối tượng đã được nhận biết, giúp hiểu rõ hơn về nội dung của hình ảnh.

2.1.2 Điểm ảnh Để có thể xử lý ảnh bằng máy tính thì cần thiết phải tiến hành số hóa ảnh Quá trình số hóa được gọi là quá trình biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí và độ sáng Khoảng các giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng [16] Mỗi một điểm như vậy gọi là điểm ảnh PEL: Picture Element hay gọi tắt là Pixel, trong khuôn khổ ảnh hai chiều mỗi Pixel tương ứng với cặp tọa độ (x, y) Điểm ảnh là một phần tử của ảnh số tại toạ độ với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh Để dễ hiểu hơn về Pixel thì ta có thể quan sát Hình 2.2 dưới đây

Hình 2.2: Ví dụ về pixel ảnh

2.1.3 Độ phân giải Độ phân giải [17] của ảnh là mật độ điểm ảnh trên một ảnh số được hiển thị Theo định nghĩa trên, khoảng cách giữa các điểm ảnh phải được chọn sao cho lúc quan sát bằng mắt thường vẫn cảm nhận được sự liên tục của bức ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều Ví dụ: Độ phân giải của ảnh trên màn hình CGA là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200, nguyên nhân là cùng một độ phân giải nhưng diện tích màn hình rộng hơn thì sự liên tục của hình ảnh kém hơn, có thể quan sát Hình 2.3 dưới đây để thấy rõ hơn sự thay đổi độ mịn của hình ảnh theo kích thước

Hình 2.3: Sự thay đổi độ mịn của hình ảnh theo kích thước

Mục đích: Tăng cường các thuộc tính cảm nhận, làm cho ảnh tốt lên theo một ý nghĩa nào đó, tiện phục vụ cho các xử lý tiếp theo

Các thao tác: Thay đổi độ tương phản, lọc nhiễu, thay đổi màu sắc, cường độ sáng, lọc nhiễu, nội suy, làm trơn ảnh

- Các phương pháp thao tác trên điểm

- Các thao tác không gian

Mục đích: Khôi phục lại ảnh ban đầu, loại bỏ các biến dạng ra khỏi ảnh tùy theo nguyên nhân gây ra biến dạng g(x,y) = ∫ ∫ ∞ ℎ(𝑥, 𝑦; 𝛼, 𝛽)

Hàm 𝜂 (x, y) thể hiện nhiễu cộng, trong khi f(a,ò) đại diện cho đối tượng Ảnh thu nhận được mô tả bởi hàm g(x,y), và h(x,y;a,ò) là đáp ứng xung của hệ thống, còn được gọi là hàm tán xạ điểm.

Mục đích: Tìm ra các đặc trưng của ảnh, xây dựng quan hệ giữa chúng dựa vào các đặc trưng cục bộ

Các thao tác: Tìm biên, tách biên, làm mảnh đường biên, phân vùng ảnh, phân loại đối tượng

Các phương pháp: Phương pháp phát hiện biên cục bộ, dò biên theo quy hoạch động, phân vùng theo miền đồng nhất, phân vùng dựa theo đường biên

Mục đích: Giảm không gian lưu trữ, thuận tiện cho việc truyền thông

Phương pháp: Nén không mất thông tin, nén mất thông tin

- Nén không mất thông tin nén chính xác: Khai thác các thông tin dư thừa

Nén mất thông tin là quá trình loại bỏ các dữ liệu dư thừa và không cần thiết, giúp giảm kích thước tệp mà vẫn giữ được chất lượng chấp nhận được Một số chuẩn nén phổ biến hiện nay bao gồm JPEG cho hình ảnh và MPEG cho video, trong đó có các phiên bản nâng cao như JPEG-2000 và MPEG-4.

Nhận dạng ảnh là quá trình mô tả và xác định đối tượng cần phân tích, thường được thực hiện sau khi trích xuất các đặc tính của đối tượng đó.

Có 2 kiểu mô tả đối tượng:

- Mô tả theo tham số

- Mô tả theo cấu trúc nhận dạng theo cấu trúc, ứng dụng: Nhận dạng đối tượng, mặt, vân tay, văn bản Ứng dụng:

- Nhận dạng đối tượng, mặt, vân tay, văn bản

Nhận dạng chữ in hoặc đánh máy là công nghệ quan trọng giúp tự động hóa quá trình đọc tài liệu, từ đó nâng cao tốc độ và chất lượng thu nhận thông tin từ máy tính.

- Nhận dạng chữ viết tay với một số ràng buộc.

KHUÔN MẶT VÀ CẢM XÚC

2.2.1 Đặc trưng của mặt người :

Khuôn mặt đóng vai trò quan trọng trong giao tiếp xã hội, giúp truyền tải bản sắc và cảm xúc Chúng ta có khả năng nhận diện khuôn mặt quen thuộc ngay cả sau nhiều năm, bất chấp sự thay đổi về tuổi tác, kiểu tóc hay kính mắt Tuy nhiên, ảnh khuôn mặt còn gặp phải nhiều vấn đề như độ sáng, độ mờ, độ nhiễu, độ phân giải và góc chụp, ảnh hưởng đến khả năng nhận diện.

Khuôn mặt của một người chứa đựng nhiều thông tin quan trọng về danh tính, bao gồm giới tính, màu da, hướng nhìn, chủng tộc, hành vi, sức khỏe, độ tuổi và cảm xúc Những yếu tố này có thể được khai thác để hiểu rõ hơn về cá nhân đó.

Hình 2.4: Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt

2.2.2 Phương pháp tiếp cận đặc trưng khuôn mặt :

Trong lý thuyết thông tin, việc trích xuất và mã hóa thông tin liên quan đến hình ảnh khuôn mặt là rất quan trọng Phương pháp đơn giản để giải nén thông tin từ hình ảnh khuôn mặt là theo dõi sự thay đổi trong tập hợp hình ảnh và tính đối lập của các trạng thái biểu cảm Để xác định các thuộc tính chủ yếu của khuôn mặt, ta xử lý hình ảnh như một vector trong không gian đa chiều Các vector đặc trưng riêng được sắp xếp theo sự biến đổi giữa các hình ảnh khuôn mặt, tạo thành một tập hợp các đại lượng thể hiện sự biến đổi này Mỗi vùng ảnh đóng góp vào từng vector đặc trưng, cho phép hiển thị chúng dưới dạng ma trận gọi là mặt riêng.

2.2.3 Biểu cảm khuôn mặt khi bày tỏ cảm xúc :

Sự tương tác giữa con người và máy tính sẽ trở nên tự nhiên hơn khi máy tính có khả năng nhận biết và phản ứng với giao tiếp phi ngôn ngữ, đặc biệt là cảm xúc của con người Cảm xúc có thể được phân loại thành bảy loại cơ bản: vui vẻ, buồn, sợ hãi, tức giận, bất ngờ, khó chịu và bình thường Khuôn mặt đóng vai trò quan trọng trong việc thể hiện những cảm xúc này, với các cơ mặt có thể thay đổi linh hoạt Con người có khả năng nhận diện những tín hiệu cảm xúc ngay cả khi chúng được thể hiện một cách tinh tế, đồng thời xử lý thông tin qua tai và mắt.

 Bình thường: mắt nhìn thẳng, môi mím lại, cơ mặt không có sự thay đổi nhiều

 Vui vẻ: khi bày tỏ cảm xúc vui vẻ trên khuôn mặt sẽ xuất hiện nếp nhăn ở đuôi mắt, gò má nâng lên, thay đổi từ cơ vùng mắt

 Buồn: đuôi mí mắt trên sụp xuống, mắt mất tập trung, kéo nhẹ xuống

 Giận dữ: lông mày hạ xuống và kéo gần lại nhau, trừng mắt, môi mím lại

 Ngạc nhiên: lông mày nâng lên, mắt mở to, há miệng

 Sợ hãi: lông mày nhướng lên và kéo gần lại nhau, mí mắt trên kéo lên, mắt dưới căng, miệng hơi kéo sang hai bên

 Khó chịu: nhăn mũi và môi trên nâng lên.

MẠNG NƠ-RON TÍCH CHẬP

Mạng nơ-ron tích chập là một trong những mô hình học sâu phổ biến nhất hiện nay, nổi bật với khả năng nhận dạng và phân loại hình ảnh với độ chính xác vượt trội, thậm chí tốt hơn cả con người trong nhiều trường hợp Mô hình này đang được phát triển và ứng dụng rộng rãi trong các hệ thống xử lý ảnh lớn của Facebook, Google và Amazon, phục vụ cho nhiều mục đích như tự động tìm kiếm ảnh và gợi ý sản phẩm cho người tiêu dùng.

Mạng nơ-ron tích chập ra đời nhằm cải tiến cách thức học thông tin trong ảnh của mạng nơ-ron nhân tạo truyền thống Các mạng nơ-ron truyền thẳng gặp hạn chế lớn do sử dụng liên kết đầy đủ giữa các điểm ảnh, dẫn đến khối lượng tính toán phức tạp khi kích thước ảnh tăng Điều này cũng tạo ra sự dư thừa, vì thông tin chủ yếu nằm ở sự phụ thuộc giữa các điểm ảnh gần nhau, không cần thiết phải quan tâm đến các điểm ảnh ở xa Mạng nơ-ron tích chập với kiến trúc mới cho phép xây dựng liên kết chỉ từ một phần cục bộ trong ảnh, kết nối đến node trong lớp tiếp theo, giúp tối ưu hóa quá trình học và giảm thiểu khối lượng tính toán.

2.3.1 Mạng nơ-ron nhân tạo

Mạng ANN (Artificial Neural Network) là một phương pháp mô hình hóa hiệu quả cho các bài toán phi tuyến, lấy cảm hứng từ hoạt động của hệ thống thần kinh sinh vật Với cấu trúc gồm nhiều nơ-ron liên kết, ANN có khả năng xử lý thông tin tương tự như bộ não con người Nó học hỏi từ kinh nghiệm, ghi nhớ và áp dụng kiến thức để dự đoán dữ liệu chưa biết Khả năng học của ANN chủ yếu dựa vào kỹ thuật lan truyền ngược, giúp cải thiện độ chính xác trong các dự đoán.

Mạng nơ-ron nhân tạo (ANN) bao gồm các nơ-ron (PE) nhận và xử lý dữ liệu để tạo ra kết quả duy nhất Kết quả từ một nơ-ron có thể được sử dụng làm đầu vào cho các nơ-ron khác Lớp ẩn trong ANN chứa các nơ-ron nhận dữ liệu từ lớp trước và chuyển đổi chúng cho các lớp xử lý tiếp theo Một ANN có thể có nhiều lớp ẩn, cho phép xử lý thông tin phức tạp hơn.

Hình 2.6: Quá trình xử lý thông tin trong mạng

Ngõ vào x1, x2, , xN đại diện cho các thuộc tính đầu vào của dữ liệu, thường được biểu diễn dưới dạng vector N chiều Trọng số liên kết Wk1, Wk2, , WkN của nơ-ron k phản ánh tầm quan trọng của dữ liệu đầu vào trong quá trình xử lý thông tin Trong quá trình học, các trọng số này được cập nhật liên tục nhằm đạt được kết quả mong muốn.

Ngõ ra: yk là tín hiệu ngõ ra của nơ-ron, mỗi nơ-ron tương ứng một ngõ ra

Hàm tổng trong mạng nơ-ron (ANN) tính tổng trọng số của tất cả các đầu vào, từ đó xác định khả năng kích hoạt của nơ-ron, hay còn gọi là kích hoạt bên trong Các nơ-ron này có thể tạo ra một hoặc không có ngõ ra, nghĩa là ngõ ra của một nơ-ron có thể được chuyển đến lớp tiếp theo trong mạng hoặc không Công thức tính hàm tổng nơ-ron đối với n ngõ vào được sử dụng để thực hiện quá trình này.

Hình 2.7: Hàm tổng của một và nhiều nơ-ron đối với n input

Ngưỡng (còn gọi là một độ lệch – bias): Ngưỡng bk thường được đưa vào như một thành phần của hàm truyền

Hàm truyền là một thành phần quan trọng trong mạng nơ-ron, giúp giới hạn phạm vi đầu ra của mỗi nơ-ron Hàm này nhận đầu vào kích hoạt từ hàm tổng và so sánh với ngưỡng đã được xác định.

2.3.2 Mạng nơ-ron tích chập

Hình 2.8: Sự khác nhau giữa cấu trúc ANN và CNN

Mô hình ANN đã được áp dụng rộng rãi trong nhận dạng, nhưng gặp khó khăn với dữ liệu lớn như hình ảnh Dữ liệu hình ảnh có kích thước lớn, biểu diễn dưới dạng width x height x depth, dẫn đến đầu vào của mạng CNN là một tensor ba chiều Ví dụ, một bức ảnh xám 48x48 pixels tạo ra vector đặc trưng 2304 chiều, trong khi ảnh màu cùng kích thước có kích thước lên tới 6912 chiều Điều này yêu cầu một mô hình phức tạp với nhiều trọng số Wk, làm cho việc xử lý ảnh lớn trở nên khó khăn Hơn nữa, việc kết nối tất cả các điểm ảnh vào một nút trong mạng là không cần thiết, vì sự phụ thuộc chủ yếu giữa các điểm ảnh lân cận Do đó, mạng nơ-ron tích chập CNN ra đời với kiến trúc mới, chỉ kết nối một phần cục bộ của ảnh đến một nút trong lớp tiếp theo, giúp cải thiện hiệu suất xử lý hình ảnh.

Mô hình mạng nơ-ron tích chập (CNN) bao gồm các lớp chính để thực hiện phân lớp hiệu quả, bao gồm lớp chập (Convolutional), lớp kích hoạt RELU và lớp gộp (Pooling) Các đặc trưng được học từ dữ liệu giúp cải thiện khả năng phân loại của mô hình.

Pooling và lớp kết nối đầy đủ (Fully connected) là hai thành phần quan trọng trong mạng nơ-ron Việc sắp xếp số lượng và thứ tự giữa các lớp này sẽ tạo ra các mô hình khác nhau, phù hợp với từng loại bài toán cụ thể.

Hình 2.9: Quá trình thực hiện của mạng CNN

2.3.2.2 Các lớp trong mô hình Đặc trưng (feature): CNN so sánh hình ảnh theo từng mảnh Các mảnh mà nó tìm được gọi là các đặc điểm Bằng cách tìm ở mức thô các đặc điểm khớp nhau ở cùng vị trí trong hai hình ảnh, CNN nhìn ra sự tương đồng tốt hơn nhiều so với việc khớp toàn bộ bức ảnh

Hình 2.10: CNN tìm những điểm tương đồng trên bức ảnh

Mỗi đặc điểm trong hình ảnh được coi như một hình ảnh mini, tạo thành một mảng hai chiều nhỏ Các đặc điểm này tương ứng với những khía cạnh chung của bức ảnh Đối với hình ảnh X, các đặc điểm như đường chéo và hình chữ thập sẽ được CNN nắm bắt, giúp nhận diện các yếu tố quan trọng trong hầu hết các hình ảnh X Những đặc điểm này thường liên quan đến phần cánh và phần trung tâm của bất kỳ hình ảnh X nào.

Lớp chập bao gồm “Convolutional 2D” tích chập 2 chiều sẽ cho phép bộ lọc (filters) di chuyển theo 2 chiều (theo cả chiều ngang và chiều dọc) và “Convolutional 3D” tích chập

Bộ lọc 3 chiều cho phép di chuyển trong cả chiều sâu của hình ảnh, giúp CNN xác định các đặc điểm mà không biết chính xác vị trí khớp Khi xử lý một hình ảnh mới, CNN thử nghiệm các đặc điểm ở mọi vị trí có thể Để tính toán sự khớp của một đặc điểm trên toàn ảnh, lớp này sử dụng bộ lọc nhỏ (thường là 3×3 hoặc 5×5) áp lên vùng ảnh và thực hiện tích chập với giá trị điểm ảnh trong vùng cục bộ Bộ lọc sẽ được dịch chuyển theo bước trượt để quét toàn bộ ảnh.

Hình 2.11: Chập ma trận ảnh với bộ lọc 3x3

Nguyên tố trọng tâm của nhân chập được đặt lên điểm ảnh cần xét, thay thế điểm ảnh đó bằng tổng trọng số của nó và các điểm ảnh lân cận Khi áp dụng bộ lọc 3x3 lên bức ảnh 48x48, ta nhận được một ảnh mới cũng có kích thước 48x48, là kết quả của tích chập Số lượng bộ lọc trong lớp sẽ tương ứng với số ảnh đầu ra được truyền vào lớp tiếp theo Quá trình tích chập được lặp lại, tạo ra một mảng hai chiều mới từ kết quả của mỗi lần tích chập Bản đồ các phần khớp nhau này là phiên bản đã được lọc từ hình ảnh gốc, thể hiện vị trí của các đặc điểm trong ảnh Các giá trị gần 1 cho thấy sự khớp mạnh, trong khi giá trị gần -1 chỉ ra sự khớp mạnh với âm bản của đặc điểm.

0 cho thấy không khớp với bất kỳ loại nào

Lớp này thường được cài đặt ngay sau lớp chập Lớp này sử dụng hàm kích hoạt f

(x) = max (0, x) nhằm chuyển toàn bộ giá trị âm trong kết quả lấy từ lớp chập thành giá trị

0 Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến cho mô hình Tương tự như trong mạng truyền thẳng, việc xây dựng dựa trên các phép biến đổi tuyến tính sẽ khiến việc xây dựng đa tầng đa lớp trở nên vô nghĩa Có rất nhiều cách để khiến mô hình trở nên phi tuyến như sử dụng các hàm kích hoạt sigmoid, tanh… nhưng f (x) = max (0, x) hàm dễ cài đặt, tính toán nhanh mà vẫn hiệu quả [7]

Hình 2.12: Ví dụ về lớp RELU

Giới thiệu máy tính nhúng kit Raspberry Pi

Raspberry Pi là một loại máy tính nhúng có kích thước bằng thẻ tín dụng, được phát triển bởi Raspberry Pi Foundation tại Anh Mục đích chính của nó là thúc đẩy giáo dục về khoa học máy tính cơ bản trong các trường học và các nước đang phát triển.

Hình 2.17: Hình ảnh thực tế kit Raspberry Pi

Kit Raspberry Pi là một máy tính nhỏ gọn, kích thước tương đương với một thẻ ATM, tích hợp đầy đủ các thành phần cần thiết như CPU, GPU, RAM, khe cắm thẻ microSD, Wifi, Bluetooth và 4 cổng USB, giúp bạn dễ dàng sử dụng như một máy vi tính.

Chi tiết thông số kĩ thuật:

- Broadcom BCM2837 chipset running at 1.2 GHz 64-bit quad-core ARM Cortex- A53

- Hỗ trợ trên ARM GNU/Linux và cả Windows 10 IoTs

- Kết nối màn hình hiển thị DSI

- Kích thước: 85mm x 56mm x 17 mm.

Xử lý ảnh với Python

2.5.1 Giới thiệu ngôn ngữ lập trình Python:

Python là ngôn ngữ lập trình thông dịch hướng đối tượng, mang tính chất bậc cao và ngữ nghĩa động Ngôn ngữ này hỗ trợ module và gói, khuyến khích việc lập trình module hóa và tái sử dụng mã Trình thông dịch Python cùng thư viện chuẩn được cung cấp dưới dạng mã nguồn hoặc nhị phân miễn phí cho tất cả các nền tảng, cho phép phân phối tự do.

Một vài đặc điểm về ngôn ngữ Python:

- Ngữ pháp đơn giản, dễ đọc

- Vừa hướng thủ tục, vừa hướng đối tượng

- Hỗ trợ module và hỗ trợ gói

- Xử lý lỗi bằng ngoại lệ

- Kiểu dữ liệu động ở mức cao

- Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình

- Có khả năng tương tác với các module khác viết trên C/C++ hoặc Java cho Jython, hoặc Net cho IronPython

- Có thể nhúng vào ứng dụng như một giao tiếp kịch bản

Một số ưu điểm của ngôn ngữ Python:

Python dễ dàng kết nối với nhiều thành phần khác nhau như COM, NET (IronPython, Python for NET), CORBA và Java Ngoài ra, Python cũng được hỗ trợ bởi Internet Communications Engine (ICE) cùng với nhiều công nghệ kết nối khác Người dùng có thể viết các thư viện bằng C/C++ để nhúng vào Python và ngược lại, tạo ra sự linh hoạt trong phát triển ứng dụng.

Python là ngôn ngữ lập trình đa nền tảng, hỗ trợ nhiều hệ điều hành như Windows, Linux/Unix, OS/2, Mac, và Amiga Nó cũng có phiên bản cho NET, máy ảo Java và điện thoại di động như Nokia Series 60 Với Python, mã nguồn có thể chạy nhất quán trên tất cả các nền tảng mà không cần thay đổi.

Python là một ngôn ngữ lập trình đơn giản và dễ học, nhờ vào hệ thống thư viện chuẩn phong phú cùng với nhiều thư viện mã nguồn mở được cộng đồng lớn chia sẻ rộng rãi trên internet.

Python là một ngôn ngữ lập trình mã nguồn mở, cho phép người dùng cài đặt và phân phối tự do, bao gồm cả việc sử dụng trong các dự án thương mại Giấy phép của Python được quản lý bởi Python Software Foundation.

2.5.2 Các thư viện sử dụng trong Python

Trong bài viết này, chúng tôi sẽ khám phá việc sử dụng bộ phân lớp Haar-Cascade từ thư viện OpenCV, kết hợp với Keras và backend TensorFlow Bên cạnh đó, các thư viện cơ bản cho deep learning như Numpy và Imutils cũng sẽ được sử dụng để hỗ trợ quá trình phát triển mô hình.

Hình 2.18: Cấu trúc thư viện OpenCV

OpenCV là thư viện mã nguồn mở hàng đầu cho thị giác máy tính, xử lý ảnh và máy học, cung cấp hàng ngàn thuật toán tối ưu hóa Thư viện này là công cụ phổ biến cho nhiều ứng dụng trong lĩnh vực thị giác máy tính, từ hình ảnh xem đường của Google đến các chương trình nghệ thuật tương tác, nhận diện khuôn mặt, rô-bốt và xe hơi tự lái.

Trong bài viết này, OpenCV được áp dụng để thực hiện các thao tác đọc và xử lý ảnh cơ bản Đặc biệt, thư viện Haar-Cascade được sử dụng để phát hiện vị trí khuôn mặt, giúp cải thiện tốc độ xử lý Tuy nhiên, do độ chính xác tương đối kém, Haar-Cascade chỉ phù hợp cho những tình huống yêu cầu tốc độ xử lý cao mà không cần độ chính xác quá cao.

Keras là thư viện mã nguồn mở hàng đầu cho mạng nơ-ron nhân tạo, được phát triển vào năm 2015 bởi François Chollet, một kỹ sư nghiên cứu tại Google Là một API bậc cao, Keras có thể tích hợp với các thư viện học sâu nổi tiếng như TensorFlow, Microsoft Cognitive Toolkit và Theano Thư viện này nổi bật với nhiều ưu điểm, giúp đơn giản hóa việc xây dựng và triển khai các mô hình học sâu.

 Dễ sử dụng, xây dựng model nhanh

 Có thể run trên cả cpu và gpu

 Hỗ trợ xây dựng CNN , RNN và có thể kết hợp cả 2

Cấu trúc của Keras có thể được chia ra thành 3 phần chính:

 Hàm chức năng để dựng bộ xương cho model

 Hàm chức năng dùng để tiền dữ liệu

 Hàm chức năng ở trong bộ xương của model

NumPy, viết tắt của "Numeric Python" hoặc "Numerical Python", là một mô-đun mã nguồn mở cho Python, cung cấp khả năng biên dịch nhanh cho các phép toán số học Nó mở rộng ngôn ngữ Python với các cấu trúc dữ liệu mạnh mẽ, cho phép tính toán hiệu quả với các mảng và ma trận đa chiều, bao gồm cả các ma trận và mảng lớn Ngoài ra, NumPy còn cung cấp một thư viện phong phú các hàm toán học cao cấp để xử lý các ma trận và mảng.

NumPy được phát triển dựa trên hai mô-đun Python trước đó về xử lý mảng, đó là Numeric và Numarray Numeric, mặc dù cung cấp hiệu suất cao và tính toán số học, đã trở nên lỗi thời Trong khi đó, Numarray là một phiên bản viết lại hoàn chỉnh của Numeric nhưng cũng không còn được hỗ trợ NumPy kết hợp những ưu điểm của cả hai mô-đun này, được xây dựng trên mã nguồn của Numeric và các tính năng của Numarray, mang lại hiệu suất và khả năng tính toán vượt trội cho người dùng Python.

 Triển khai hiệu quả các mảng đa chiều

 Được thiết kế để tính toán khoa học

THIẾT KẾ HỆ THỐNG 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 TRÊN KIT RASPBERRY PI

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

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ảm xúc hoạt động hiệu quả trong môi trường có đủ ánh sáng và độ tương phản phù hợp, đồng thời không bị ảnh hưởng bởi các yếu tố bên ngoài như nguồn sáng mạnh hay ánh nắng mặt trời.

Hệ thống nhận dạng có khả năng xác định 7 loại cảm xúc cơ bản, bao gồm vui vẻ, buồn, sợ hãi, giận dữ, ngạc nhiên, khó chịu và bình thường, giúp phân tích và hiểu rõ hơn về tâm trạng của con người.

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 được trích xuất từ video quay bằng webcam máy tính Sau khi tiến hành tiền xử lý, video được chia thành các khung hình tĩnh Các khung hình này sau đó được chuyển đổi thành ảnh xám và sử dụng phương pháp Haar-like của OpenCV để nhận diện và tách khuôn mặt khỏi ảnh.

Trong quá trình xử lý, hình ảnh khuôn mặt được chuyển đổi thành ma trận tọa độ với chiều dài, chiều rộng và chiều cao, sau đó giảm độ phân giải để phù hợp với mô hình mạng CNN và chuyển đổi từ ảnh xám sang ảnh nhị phân Từ ảnh nhị phân, hệ thống trích xuất các đặc trưng riêng của từng cảm xúc, sau đó đưa vào mạng CNN để so sánh với dữ liệu đã huấn luyện trước và dự đoán cảm xúc trong hình ảnh Cuối cùng, mô hình xuất ra hình ảnh đã được gắn nhãn cảm xúc.

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

Hệ thống CNN sử dụng ảnh đầu vào là ảnh xám nhị phân kích thước 48x48 chứa khuôn mặt người, được chuyển thành ma trận 2 chiều để xử lý Quá trình huấn luyện bao gồm các lớp như lớp chập, lớp ReLU, lớp MaxPooling, lớp chuẩn hóa và lớp chập tách biệt, trong đó lớp kết nối đầy đủ đã được loại bỏ để giảm số lượng tham số, tăng tốc độ chạy và cải thiện khả năng khái quát Ảnh đầu vào được chập với 8 bộ lọc 3x3, sau đó được chuẩn hóa và kích hoạt bằng lớp ReLU, tạo ra 8 ma trận phi tuyến kích thước 24x24 Quá trình này lặp lại ở lớp chập thứ hai, tiếp theo là khối A với lớp chập tách biệt và lớp chuẩn hóa, tạo ra 16 ma trận kích thước 12x12 Nhánh còn lại cũng thực hiện chập với 16 bộ lọc 1x1, cho ra 16 ma trận 12x12 Quá trình lặp lại khối A với số lượng bộ lọc tăng dần dẫn đến kết quả cuối cùng là 32 ma trận 6x6, 64 ma trận 3x3 và 128 ma trận 2x2 Cuối cùng, kết quả được chập với 7 bộ lọc tương ứng với 7 loại cảm xúc, chuyển đổi thành vector qua khối giá trị trung bình toàn cục và xử lý bằng lớp softmax để trả về xác suất cho từng loại cảm xúc.

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 có sự khác biệt về số lượng, chất lượng và độ sạch của hình ảnh Tập dữ liệu FERC-2013 chứa khoảng 35.000 hình ảnh trắng đen độ phân giải thấp, chỉ tập trung vào khuôn mặt thể hiện cảm xúc tự nhiên Trong quá trình kiểm tra, hình ảnh được xử lý trước bằng phương pháp phân loại Cascade dựa trên tính năng Haar của OpenCV Chỉ phần hình vuông chứa khuôn mặt được nhận dạng sẽ được giữ lại, sau đó được thay đổi kích thước và chuyển đổi thành mảng giá trị đen trắng có kích thước 48x48.

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

Dữ liệu được lưu trữ trong định dạng ".csv" bao gồm hai cột: cảm xúc và pixel Cột cảm xúc chứa các giá trị từ 0 đến 6, tương ứng với 7 cảm xúc cơ bản có trong hình ảnh Trong khi đó, cột pixel bao gồm một chuỗi dữ liệu được đặt trong dấu ngoặc kép, đại diện cho các giá trị pixel được phân tách bằng dấu cách cho mỗi hình ảnh.

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ệ ( % )

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

Tập dữ liệu riêng được xây dựng để kiểm tra độ chính xác của mô hình CNN đã được huấn luyện, bao gồm hai phần: tập dữ liệu A và tập dữ liệu B Tập dữ liệu A chứa hình ảnh từ webcam của máy tính, với sự tham gia của 8 người, trong đó có 3 nữ và 5 nam Mỗi hình ảnh thể hiện một cảm xúc khác nhau với cường độ biến đổi và các góc cạnh khuôn mặt được mở rộng, tạo nên sự đa dạng cho tập dữ liệu.

Bài viết đề cập đến việc phân loại 280 hình ảnh theo 7 loại cảm xúc, sử dụng hình ảnh màu trong các điều kiện môi trường khác nhau cho quá trình kiểm tra Tập dữ liệu B được lấy từ CK+ và bao gồm 700 hình ảnh được chọn lọc Hình ảnh kiểm tra là hình ảnh xám, với người được khảo sát có giới tính và màu da đa dạng Số lượng hình ảnh trong từng tập dữ liệu được trình bày rõ ràng trong 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 )

Hình 3.5: Biểu đồ phân loại số lượng cảm xúc trong tập dữ liệu riêng.

QUÁ TRÌNH HUẤN LUYỆN VÀ KIỂM TRA

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

Sau khi hoàn thành quá trình huấn luyện, trọng số và dữ liệu của mạng sẽ được lưu trữ trong tệp có đuôi ".hdf5" Tên tệp này sẽ bao gồm các tham số như số lần lặp lại của quá trình huấn luyện và độ chính xác đạt được.

Hình 3.6: Lưu đồ thuật toán quá trình huấn luyện

Dữ liệu cá nhân được đưa vào mạng để dự đoán cảm xúc, dựa trên trọng số và thông tin trong tập tin, từ đó tạo ra ma trận dự đoán.

Hình 3.7: Lưu đồ thuật toán quá trình kiểm tra

KẾT QUẢ

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

Độ chính xác qua kiểm tra mô hình trong quá trình huấn luyện đã cho thấy sự cải thiện đáng kể Sau lần huấn luyện đầu tiên, độ chính xác đạt 43,59%, nhưng sau 125 lần huấn luyện, kết quả nâng lên 64,6% So sánh với nghiên cứu trước đó [1] trong bảng 4.1, kết quả của cá nhân thực hiện cho thấy độ chính xác tốt hơn nhờ vào việc huấn luyện với 28.709 hình ả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

Mô hình cá nhân thực hiện cho thấy độ chính xác kiểm tra đạt 64% và 62%, được sử dụng để đánh giá hiệu quả của mô hình sau quá trình huấn luyện Kết quả này được minh họa trong hình 4.2, trong đó đường chéo thuận trên ma trận có màu sắc đậm hơn, cho thấy sự tương quan mạnh mẽ giữa cảm xúc đầu vào và dự đoán Các cảm xúc như "vui" cũng được nhấn mạnh trong kết quả này.

Cảm xúc “bình thường” và “ngạc nhiên” có độ chính xác cao nhờ vào tập mẫu huấn luyện lớn và sự khác biệt rõ ràng với các cảm xúc khác Mặc dù cảm xúc “khó chịu” cũng đạt độ chính xác cao, nhưng do số lượng mẫu huấn luyện hạn chế, độ chính xác chỉ đạt khoảng 0.6 Ba cảm xúc còn lại là “giận dữ”, “sợ hãi” và “buồn” có tỷ lệ chính xác thấp do sự tương đồng trên khuôn mặt, dẫn đến nhầm lẫn trong đánh giá Nghiên cứu [1] chỉ ra rằng để đạt độ chính xác 90%, mẫu huấn luyện cần phải được thực hiện trong điều kiện lý tưởng như ánh sáng hoàn hảo và máy ảnh ở vị trí thích hợp Mặc dù tập dữ liệu cá nhân chưa đạt các điều kiện lý tưởng, nhưng qua quá trình huấn luyện, sự cải thiện trong ma trận tương quan cho thấy tập dữ liệu có thể được đánh giá là tương đối tốt.

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

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 trình bày trong bảng 4.2, cho phép so sánh với nghiên cứu trước đó [1] Độ chính xác của mô hình được thực hiện bởi cá nhân trong tệp tin “_emotion_training.log” cũng được thể hiện trong bảng 4.3, cho thấy sự tương quan với đề tài nghiên cứu [1].

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%

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

 Hình ảnh thực tế của mô hình:

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

Sau khi hoàn thành quá trình huấn luyện và kiểm tra mô hình, cá nhân đã xây dựng thành công một ứng dụng trên kit Raspberry Pi 4, sử dụng bộ công cụ GUI Tkinter để thiết kế giao diện.

Hình 4.5: Giao diện của ứng dụng nhận dạng cảm xúc Giao diện của của ứng dụng gồm 4 nút nhấn tương ứng với 4 chức năng như sau:

Nút nhấn “Chọn file” cho phép người dùng chọn file cần nhận dạng, với hai định dạng chính: hình ảnh có đuôi “.jpg” hoặc “.png”, và video offline có đuôi “.mp4” Sau khi chọn file thành công, ứng dụng sẽ hiển thị thông báo “Đã chọn file!!!” để xác nhận.

- 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 “Thoá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 ảnh từ hình 4.7 đến hình 4.14

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 cho thấy khả năng nhận dạng cảm xúc bình thường với độ chính xác ấn tượng, đạt tới 77.95% và 88.45% Điều này được giải thích bởi các chi tiết biểu cảm cảm xúc trên khuôn mặt rất rõ ràng.

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

Hình 4.9 cho thấy hệ thống nhận dạng cảm xúc vui vẻ đạt độ chính xác lên đến 93.98% Điều này được hỗ trợ bởi các chi tiết biểu cảm rõ ràng trên khuôn mặt, như miệng mở rộng và hàm răng lộ ra, cùng với sự thay đổi ở vùng má và lông mày, giúp cải thiện độ chính xác của hệ thống nhận dạng.

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

Hình 4.10 cho thấy hệ thống nhận dạng cảm xúc ngạc nhiên đạt độ chính xác 67.6% Điều này nhờ vào các đặc điểm biểu cảm rõ ràng như lông mày nâng lên, mắt mở to và miệng há, giúp cải thiện độ chính xác khi so sánh với tập mẫu đã được huấn luyện.

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

Hình 4.11 cho thấy hệ thống nhận dạng cảm xúc buồn đạt độ chính xác 63.47%, nhờ vào các đặc điểm biểu cảm rõ ràng như đuô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, cùng với việc gò má nâng cao Những biểu cảm này đã được huấn luyện kỹ lưỡng, giúp hệ thống nhận dạng hoạt động hiệu quả.

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

Hình 4.12 cho thấy nhận dạng cảm xúc giận dữ đạt độ chính xác 83.27%, nhờ vào các đặc điểm biểu cảm rõ ràng trên khuôn mặt như lông mày nhướng lên và kéo gần lại, mí mắt trên nâng cao, mí mắt dưới căng, và miệng mở rộng để lộ răng Các yếu tố môi trường thuận lợi và biểu cảm rõ ràng đã góp phần nâng cao độ chính xác của hệ thống nhận dạng này.

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

Hình 4.13 cho thấy hệ thống nhận dạng cảm xúc khó chịu đạt độ chính xác 85.79%, nhờ vào các biểu cảm rõ ràng trên khuôn mặt như nhăn sống mũi, thu hẹp môi trên và dưới, cùng với hai mắt nhíu lại Khu vực mắt và miệng bị thu hẹp đáng kể, trong khi lông mày cũng có sự thay đổi với độ cong trung bình Những chi tiết này góp phần nâng cao độ chính xác của hệ thống nhận dạng.

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

Hình 4.14 cho thấy rằng việc nhận diện cảm xúc sợ hãi chỉ đạt độ chính xác 45.82%, do đây là một cảm xúc khó nhận diện và thường bị nhầm lẫn với nhiều cảm xúc khác Thêm vào đó, các chi tiết biểu cảm của sợ hãi có sự tương đồng với cảm xúc buồn, làm cho việc phân biệt trở nên thách thức hơ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 không rõ ràng

Hình 4.16: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ sợ hãi ” do cường độ sáng quá cao và ảnh được nhận dạng bị ngược sáng

Hình 4.17: Không nhận dạng được khuôn mặt do góc nghiêng và các đặc trưng trên khuôn mặt bị mất

Hình 4.18: Nhận dạng cảm xúc “ bình thường ” thành cảm xúc “ sợ hãi ” do cường độ ánh sáng trên khuôn mặt yếu

Hình 4.19 minh họa quá trình nhận dạng cảm xúc từ "bình thường" thành "buồn" khi khuôn mặt bị thay đổi góc nghiêng, dẫn đến việc khuôn mặt không nằm ngang tầm và chính diện với camera.

Nhận xét: Trong quá trình nhận dạng cảm xúc , các cảm xúc có thể bị nhận dạng sai do các ảnh hưởng sau:

- Điều kiện cường độ sáng quá thấp hoặc quá cao

- Sự nhẫm lẫn giữa các cảm xúc có đặc điểm tương đối giống nhau

- Biểu cảm không rõ ràng

- Khuôn mặt không nằm ngang tầm và chính diện với webcam.

Ngày đăng: 07/01/2022, 20:25

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Dan Duncan, Gautam Shine, Chris English, “Facial Emotion Recognition in Real time”, Stanford University, 2016 Sách, tạp chí
Tiêu đề: Facial Emotion Recognition in Real time
[2] Competition “Challenges in Representation Learning: Facial Expression Recognition Challenge”,https://www.kaggle.com/c/challenges-in-representationlearning-facial-expression-recognition-challenge, [Ngày truy cập 29/12/2019] Sách, tạp chí
Tiêu đề: Challenges in Representation Learning: Facial Expression Recognition Challenge
[3] Anand S. Rao, Gerard Verweij. “Sizing the prize: What’s the real value of AI for your business and how can you capitalize”. PwC report, 2017 Sách, tạp chí
Tiêu đề: Sizing the prize: What’s the real value of AI for your business and how can you capitalize
[4] Kaustubh Dewoolkar, Gaurav Bhole, Arjun Mehta, Abhishek Choudhari, “Facial expression recognition using image processing”, Bachelor of Engineering, Rizvi College of Engineering, 2013-2014 Sách, tạp chí
Tiêu đề: Facial expression recognition using image processing
[5] Moon Hwan Kim, Yuong Hoon Jo, “Emotion Detection Algorithm Using Frontal Face Image”, KINTEX, Gyeonggi-Do, Korea, Fer. 2014 Sách, tạp chí
Tiêu đề: Emotion Detection Algorithm Using Frontal Face Image
[6] Nguyễn Thị Thanh Vân, “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”, PhD thesis, Đại học Hàng Hải Việt Nam. Hải Phòng, 2016 Sách, tạp chí
Tiêu đề: 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
[7] Alex Krizhevsky, Ilya Sutskever and Geoffrey E. Hinton, “ImageNet Classification with Deep Convolutional Neural Networks”, University of Toronto, Aug. 2010 Sách, tạp chí
Tiêu đề: ImageNet Classification with Deep Convolutional Neural Networks
[8] Keiron O’Shea and Ryan Nash, “An Introduction to Convolutional Neural Networks”, Aberystwyth University, Dec. 2015 Sách, tạp chí
Tiêu đề: An Introduction to Convolutional Neural Networks
[9] Khanh Nguyen and Hieu Pham, “Những Vấn đề Cơ bản về Mạng Neuron”, University of Maryland and Stanford University, Stanford Sách, tạp chí
Tiêu đề: Những Vấn đề Cơ bản về Mạng Neuron
[10] Patrick Lucey và cộng sự, “The Extended Cohn-Kanade Dataset (CK+): A complete dataset for action unitand emotion-specified expression”, in 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition – Workshops, San Francisco, CA, USA, 09 August 2010 Sách, tạp chí
Tiêu đề: The Extended Cohn-Kanade Dataset (CK+): A complete dataset for action unitand emotion-specified expression
[11] Lương Mạnh Bá, Nguyễn Thanh Thủy, “Nhập môn xử lý ảnh số”. Hà Nội, Việt Nam: Nhà xuất bản khoa học kỹ thuật, 2006 Sách, tạp chí
Tiêu đề: Nhập môn xử lý ảnh số
Nhà XB: Nhà xuất bản khoa học kỹ thuật
[12] Saad ALBAWI,TareqAbedMOHAMMED, “Understanding of a Convolutional Neural Network”. Department of Computer Engineering Faculty of Engineering and Architecture Istanbul Kemerburgaz University Istanbul, Turkey,2017 Sách, tạp chí
Tiêu đề: Understanding of a Convolutional Neural Network
[13] N. Kwak, “Introduction to Convolutional Neural Networks ( CNNs)”, 2016 Sách, tạp chí
Tiêu đề: Introduction to Convolutional Neural Networks ( CNNs)
[14] R. E. Turner, “Lecture 14 : Convolutional neural networks for computer vision”, 2014 Sách, tạp chí
Tiêu đề: Lecture 14 : Convolutional neural networks for computer vision
[15] Neeraj Kumar, Alexander C Berg, Peter N Belhumeur, and Shree K Nayar. “Attribute and simile classifiers for face verification”. In Computer Vision, 2009 IEEE 12th International Conference oti, pages 365-372. IEEE, 2009 Sách, tạp chí
Tiêu đề: Attribute and simile classifiers for face verification
[16] Richard F.Lyon. “A Brief History of ‘Pixel’”, FoveonInc., 2820 San Tom as Expressway, Santa Clara CA 95051 Sách, tạp chí
Tiêu đề: A Brief History of ‘Pixel’
[17] Robin Milner, Mads Tofte, Robert Harper. “The Definition of Standard ML”, Lab oratory for Foundations of Computer Science Department of Computer Science University of Edinburgh Sách, tạp chí
Tiêu đề: The Definition of Standard ML
[18] Florian Schroff, Dmitrv Kalcnichenko, and James Philbin. “Facenet: A unified embedding for face recognition and clustering In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition”, pages 815-823,2015 Sách, tạp chí
Tiêu đề: Facenet: A unified embedding for face recognition and clustering In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition

HÌNH ẢNH LIÊN QUAN

Hình 2.3: Sự thay đổi độ mịn của hình ảnh theo kích thước - 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
Hình 2.3 Sự thay đổi độ mịn của hình ảnh theo kích thước (Trang 22)
Hình 2.4: Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt - 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
Hình 2.4 Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt (Trang 25)
Hình 2.6: Quá trình xử lý thông tin trong mạng - 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
Hình 2.6 Quá trình xử lý thông tin trong mạng (Trang 27)
Hình 2.7: Hàm tổng của một và nhiều nơ-ron đối với n input. - 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
Hình 2.7 Hàm tổng của một và nhiều nơ-ron đối với n input (Trang 28)
Hình 2.9: Quá trình thực hiện của mạng CNN - 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
Hình 2.9 Quá trình thực hiện của mạng CNN (Trang 30)
Hình 2.10: CNN tìm những điểm tương đồng trên bức ảnh - 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
Hình 2.10 CNN tìm những điểm tương đồng trên bức ảnh (Trang 30)
Hình 2.11: Chập ma trận ảnh với bộ lọc 3x3 - 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
Hình 2.11 Chập ma trận ảnh với bộ lọc 3x3 (Trang 31)
Hình 2.15: Ví dụ minh họa lỗi quá khớp trong CNN - 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
Hình 2.15 Ví dụ minh họa lỗi quá khớp trong CNN (Trang 35)
Hình 2.16: Kỹ thuật Drop-out giải quyết vấn đề overfitting - 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
Hình 2.16 Kỹ thuật Drop-out giải quyết vấn đề overfitting (Trang 36)
Hình 2.17: Hình ảnh thực tế kit Raspberry Pi - 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
Hình 2.17 Hình ảnh thực tế kit Raspberry Pi (Trang 37)
Hình 2.18: Cấu trúc thư viện OpenCV - 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
Hình 2.18 Cấu trúc thư viện OpenCV (Trang 40)
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 - 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
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 (Trang 45)
Hình 3.3: Một số hình ảnh trong tập dữ liệu mẫ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
Hình 3.3 Một số hình ảnh trong tập dữ liệu mẫu (Trang 45)
Hình 3.4: Biểu đồ số lượng cảm xúc trong tập dữ liệu mẫu FERC-2013 - 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
Hình 3.4 Biểu đồ số lượng cảm xúc trong tập dữ liệu mẫu FERC-2013 (Trang 46)
Hình 3.6: Lưu đồ thuật toán quá trình huấn luyện. - 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
Hình 3.6 Lưu đồ thuật toán quá trình huấn luyện (Trang 49)

TỪ KHÓA LIÊN QUAN

w