Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin và kỹ thuật số phát triển mạnh mẽ, xử lý ảnh số đã và đang trở thành một trong những lĩnh vực then chốt thu hút sự quan tâm nghiên cứu tại các trường đại học, viện nghiên cứu và trung tâm công nghệ. Sự phát triển của các cảm biến quang học (camera, webcam) cho phép con người thu thập và phân tích dữ liệu thị giác nhằm tự động hóa các quy trình đưa ra quyết định trong quân sự, y sinh học, giám sát an ninh, hệ thống tương tác thông minh và robot. Bên cạnh các phương thức sinh trắc học truyền thống như nhận dạng vân tay, giọng nói, chữ viết hay võng mạc, bài toán nhận dạng cảm xúc khuôn mặt người (Facial Emotion Recognition) đóng vai trò đặc biệt quan trọng trong việc nâng cao khả năng giao tiếp tự nhiên giữa người và máy (Human-Computer Interaction - HCI).
Theo nghiên cứu tâm lý học của Albert Mehrabian (1968) được tác giả trích dẫn, trong quá trình truyền đạt thông điệp trực tiếp giữa người với người, phần ngôn ngữ từ ngữ chỉ đóng góp 7% mức độ tác động, âm lượng và ngữ điệu giọng nói chiếm 38%, trong khi ngôn ngữ cơ thể và biểu cảm khuôn mặt chiếm tới 55%. Khuôn mặt là vị trí thể hiện đa dạng và rõ nét nhất các trạng thái tâm lý bên trong của con người như vui, buồn, ngạc nhiên, giận dữ hay phẫn nộ. Với xu hướng phát triển của các thiết bị điện tử thông minh có khả năng tự động hóa và thích ứng với trạng thái người dùng mà không cần thiết bị điều khiển trung gian, đồ án tốt nghiệp "Nhận dạng cảm xúc khuôn mặt người" của nhóm tác giả Nguyễn Thị Đài Trang và Hà Tiến Dương (ngành Kỹ thuật Điện tử - Truyền thông, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) được triển khai nhằm giải quyết bài toán phân tích biểu cảm khuôn mặt và ứng dụng điều khiển thiết bị ngoại vi tương ứng.
Mục tiêu nghiên cứu
Mục tiêu tổng quát của đề tài là xây dựng một hệ thống hoàn chỉnh kết nối giữa máy tính xử lý phần mềm (MATLAB) và phần cứng điều khiển (kit vi điều khiển Arduino Uno) để nhận dạng biểu cảm khuôn mặt người từ ảnh tĩnh hoặc luồng hình ảnh trực tiếp từ webcam. Đồng thời, hệ thống tự động xuất tín hiệu điều khiển trạng thái của cơ cấu chấp hành (động cơ servo và đèn LED) tương ứng với từng trạng thái cảm xúc nhận dạng được:
- Khi nhận dạng được cảm xúc Vui (nụ cười, nét mặt rạng rỡ): Hệ thống điều khiển động cơ servo thực hiện tác vụ mở cửa.
- Khi nhận dạng được cảm xúc Buồn (vẻ mặt trầm lặng, trán nhăn, mắt chùng): Hệ thống điều khiển bật sáng đèn LED.
- Khi nhận dạng được cảm xúc Ngạc nhiên (lông mày nhô cao, mắt mở to, miệng mở tròn): Hệ thống điều khiển động cơ servo đóng cửa và ngắt nguồn tắt đèn LED.
Nhiệm vụ nghiên cứu
Để hoàn thành mục tiêu nêu trên, các nhiệm vụ cụ thể được nhóm tác giả xác định và thực hiện theo 8 nội dung:
- Tìm hiểu, tổng hợp các tài liệu chuyên ngành và các công trình nghiên cứu tiền nhiệm liên quan đến xử lý ảnh và nhận dạng biểu cảm khuôn mặt.
- Xây dựng thuật toán xử lý dữ liệu ảnh đầu vào thu nhận từ camera máy tính hoặc từ tệp dữ liệu lưu trữ sẵn.
- Cài đặt các gói thư viện và gói hỗ trợ phần cứng (Hardware Support Package) để thiết lập giao tiếp giữa Arduino và phần mềm MATLAB.
- Xây dựng mô hình toán học và giải thuật nhận dạng cảm xúc khuôn mặt dựa trên phương pháp trích xuất đặc trưng.
- Thiết kế sơ đồ nguyên lý, lựa chọn linh kiện và lắp ráp các khối điều khiển, chấp hành vào mô hình phần cứng thực tế.
- Lập trình giải thuật nhận dạng trên MATLAB và viết mã nguồn nhúng dữ liệu xuống kit vi điều khiển Arduino.
- Vận hành thử nghiệm mô hình thực nghiệm, tiến hành hiệu chỉnh tham số và đánh giá sai số.
- Thống kê, phân tích kết quả nhận dạng và đánh giá mức độ hoàn thành của hệ thống.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Các đặc trưng hình học và mật độ điểm ảnh biểu diễn 03 trạng thái cảm xúc cơ bản trên khuôn mặt người (vui, buồn, ngạc nhiên), cùng cơ chế giao tiếp, điều khiển giữa MATLAB và Arduino Uno.
- Phạm vi không gian và thiết bị: Nghiên cứu thực nghiệm trong môi trường phòng thí nghiệm với nguồn thu hình ảnh là webcam tích hợp/cắm ngoài của máy tính cá nhân. Khoảng cách thu nhận ảnh tối ưu được xác lập là 50 cm tính từ khuôn mặt người đến ống kính webcam, trong điều kiện ánh sáng ổn định (không quá tối hoặc chói gắt).
- Phạm vi dữ liệu: Bộ dữ liệu huấn luyện gồm 390 hình ảnh tĩnh chuẩn hóa (130 ảnh cảm xúc vui, 130 ảnh cảm xúc buồn, 130 ảnh cảm xúc ngạc nhiên) được chụp và xử lý ở độ phân giải thống nhất 600x800 pixel.
- Thời gian thực hiện: Đồ án được hoàn thành trong thời gian 15 tuần (từ tuần tìm đề tài đến tuần nghiệm thu và in ấn, nộp ngày 05 tháng 07 năm 2018).
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình nhận dạng
Khóa luận áp dụng phương pháp Phân tích Thành phần Chính (Principal Component Analysis - PCA) kết hợp với kỹ thuật Mặt riêng (Eigenfaces) do Turk và Pentland phát triển. Đây là một phương pháp trực giao kinh điển trong thị giác máy tính và nhận dạng mẫu, cho phép chuyển đổi một tập hợp các quan sát từ không gian điểm ảnh đa chiều (không gian gốc $N$ chiều) sang một không gian trực giao có số chiều thấp hơn rất nhiều (không gian $K$ chiều, với $K \ll N$) mà vẫn bảo toàn tối đa phương sai và các đặc trưng biến thiên cốt lõi của dữ liệu gốc.
Mô hình toán học của PCA trong đề tài được xây dựng trên các đại lượng thống kê:
- Giá trị trung bình ($\bar{X}$):
$$\bar{X} = \frac{1}{n} \sum_{i=1}^{n} X_i$$
- Độ lệch chuẩn ($S$) và Phương sai ($S^2$): Đo lường mức độ phân tán của dữ liệu:
$$S = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n} (X_i - \bar{X})^2}, \quad S^2 = \frac{1}{n-1}\sum_{i=1}^{n} (X_i - \bar{X})^2$$
- Hiệp phương sai ($Cov(X,Y)$) và Ma trận hiệp phương sai ($C$): Đo lường mối tương quan giữa các chiều dữ liệu:
$$Cov(X,Y) = \frac{1}{n-1}\sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})$$
Với dữ liệu đa chiều, ma trận hiệp phương sai cấp $N^2 \times N^2$ thể hiện toàn bộ các quan hệ phân tán chéo giữa các điểm ảnh.
Phương pháp nghiên cứu thực nghiệm
Nghiên cứu được triển khai theo phương pháp thiết kế kỹ thuật kết hợp thực nghiệm phân loại mẫu:
- Chuẩn hóa dữ liệu đầu vào: Toàn bộ ảnh màu đầu vào (RGB) được chuyển đổi sang thang độ xám (grayscale) thông qua hàm
rgb2gray() và điều chỉnh kích thước thống nhất bằng hàm imresize(). Vùng mặt và miệng được phân đoạn, định vị bằng công cụ trích chọn vùng regionprops().
- Xây dựng không gian Eigenfaces:
- Biến đổi mỗi ảnh kích thước điểm ảnh thành vector cột.
- Tính toán vector khuôn mặt trung bình $\Psi$ từ tập huấn luyện gồm $M$ ảnh: $\Psi = \frac{1}{M}\sum_{n=1}^{M} \Gamma_n$.
- Xác định vector sai sai lệch của từng ảnh: $\Phi_i = \Gamma_i - \Psi$.
- Thành lập ma trận sai lệch $A = [\Phi_1, \Phi_2, \dots, \Phi_M]$. Thay vì trực tiếp giải bài toán trị riêng của ma trận hiệp phương sai $C = A A^T$ có kích thước rất lớn ($N^2 \times N^2$), nhóm tác giả áp dụng giải thuật gián tiếp thông qua việc tìm các vector riêng $v_i$ của ma trận $A^T A$ (kích thước $M \times M$).
- Tính toán và chuẩn hóa các vector riêng của không gian ảnh: $u_i = A v_i$ với $|u_i| = 1$.
- Lựa chọn $K$ thành phần chính ứng với các giá trị riêng lớn nhất để thiết lập ma trận không gian đặc trưng.
- Phân loại cảm xúc bằng khoảng cách Euclid: Ảnh cần nhận dạng sau khi trừ vector khuôn mặt trung bình sẽ được chiếu vào không gian con $K$ chiều để thu được vector trọng số đặc trưng $\Omega$. Khoảng cách Euclid giữa $\Omega$ và các vector đặc trưng $\Omega_k$ trong tập dữ liệu huấn luyện được tính toán theo công thức:
$$\varepsilon_k = |\Omega - \Omega_k|2 = \sqrt{\sum{j=1}^{K} (\Omega(j) - \Omega_k(j))^2}$$
Trạng thái cảm xúc của ảnh đầu vào được gán cho nhãn của mẫu huấn luyện có khoảng cách $\varepsilon_k$ nhỏ nhất.
Thiết kế và thi công hệ thống
Kiến trúc hệ thống
Hệ thống được tổ chức thành 4 khối chức năng chính liên kết chặt chẽ với nhau:
| Khối chức năng |
Phần cứng / Nền tảng |
Nhiệm vụ kỹ thuật |
| Khối thu nhận ảnh |
Webcam máy tính (USB/tích hợp) |
Thu nhận luồng hình ảnh thời gian thực hoặc trích xuất khung hình tĩnh phục vụ xử lý. |
| Khối xử lý trung tâm (PC) |
Máy tính chạy MATLAB & Image Processing Toolbox |
Thực hiện tiền xử lý ảnh, biến đổi không gian PCA, so sánh khoảng cách Euclid và phát lệnh điều khiển qua cổng nối tiếp. |
| Khối điều khiển |
Kit Arduino Uno (ATmega328P) |
Nhận dữ liệu trạng thái từ MATLAB qua giao tiếp Serial/USB, phân giải lệnh và xuất tín hiệu điều khiển ra các chân I/O. |
| Khối chấp hành & Nguồn |
Động cơ Servo SG90, 4 đèn LED (trắng, đỏ), Nguồn 5V |
Thực thi các chuyển động cơ học (mở/đóng cửa mô hình) và trạng thái hiển thị quang học (bật/tắt đèn). |
Thiết kế và thi công phần cứng
Phần cứng được lắp ráp từ các linh kiện và module tiêu chuẩn:
- Kit vi điều khiển Arduino Uno: Trang bị chip ATmega328P kiến trúc 8-bit, xung nhịp 16 MHz, bộ nhớ Flash 32 KB, SRAM 2 KB, EEPROM 1 KB; cung cấp 14 chân Digital I/O (trong đó 6 chân hỗ trợ điều chế độ rộng xung PWM) và 6 chân Analog.
- Động cơ Servo SG90: Điều khiển mở/đóng góc quay cửa mô hình, kết nối với chân cấp nguồn 5V (dây đỏ), chân nối đất GND (dây đen) và chân phát xung điều khiển PWM (dây vàng) trên Arduino.
- Mạch đèn LED: Kết nối chân Anode của 4 LED qua điện trở hạn dòng tới các chân Digital Output của Arduino, chân Cathode nối về GND. Điện trở hạn dòng $R$ được nhóm tính toán theo công thức:
$$R = \frac{V_{cc} - V_{LED}}{I_{LED}} = \frac{5\text{V} - 0.7\text{V}}{15\text{mA}} = \frac{4.3}{0.015} \approx 286.67\ \Omega$$
Nhóm sử dụng mức điện áp hoạt động chuẩn 5V và dòng định mức 15mA qua LED với điện áp rơi $V_{LED} = 0.7\text{V}$.
Cấu hình phần mềm và giao tiếp hệ thống
Để thiết lập môi trường lập trình và liên lạc giữa máy tính và phần cứng, hệ thống tích hợp các gói phần mềm bổ trợ trên MATLAB:
- Gói MATLAB Support Package for Arduino Hardware: Cho phép MATLAB khởi tạo đối tượng điều khiển
a = arduino để trực tiếp đọc/ghi tín hiệu lên các chân Digital/PWM của Arduino mà không cần nạp code C++ thủ công qua Arduino IDE.
- Gói MATLAB Support Package for USB Webcams / OS Generic Video Interface: Hỗ trợ các hàm
webcamlist, cam = webcam(), preview(cam) và snapshot(cam) nhằm phục vụ trích xuất ảnh chụp từ luồng video trực tiếp.
- Xây dựng giao diện người dùng (GUI): Thiết kế bảng điều khiển trực quan gồm các nút chức năng Open Camera, Show Image, Add Image, Open Data, Result, Close và hai khung hiển thị hình ảnh (
Axes1 cho video/webcam và Axes2 cho ảnh phân tích).
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương này giới thiệu lý do chọn đề tài, tính cấp thiết của bài toán nhận dạng cảm xúc khuôn mặt trong kỷ nguyên tự động hóa, mục tiêu tích hợp phần mềm MATLAB với phần cứng Arduino để điều khiển thiết bị ngoại vi, xác định các nội dung thực hiện cụ thể, giới hạn phạm vi nghiên cứu ở 3 trạng thái biểu cảm (vui, buồn, ngạc nhiên) và phác thảo cấu trúc toàn bộ đồ án gồm 6 chương.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày tổng quan cấu trúc phần cứng vi điều khiển Arduino Uno (thông số chip ATmega328P, các chân Digital, Analog, nguồn 5V/3.3V), tổng quan về môi trường tính toán số và các khối chức năng của MATLAB. Chương này đi sâu phân tích cơ sở tâm lý học của cảm xúc khuôn mặt, các biểu hiện hình học của 3 trạng thái cảm xúc, nền tảng toán học của PCA (độ lệch chuẩn, phương sai, ma trận hiệp phương sai, vector riêng, giá trị riêng), các bước triển khai thuật toán Eigenfaces của Turk & Pentland và danh mục các hàm xử lý ảnh quan trọng trong Image Processing Toolbox của MATLAB (rgb2gray, imresize, regionprops, princomp).
Chương 3: Tính toán và thiết kế
Chương 3 tập trung phân tích và thiết kế sơ đồ khối toàn hệ thống, xác định quy trình công nghệ chia làm hai nhánh độc lập: quá trình tạo dữ liệu huấn luyện và quá trình nhận dạng trực tiếp. Tác giả trình bày chi tiết thiết kế khối lấy mẫu đầu vào (bộ 390 ảnh kích thước chuẩn 600x800), khối tiền xử lý, khối lưu trữ cơ sở dữ liệu định dạng .mat và .txt, khối trích chọn đặc trưng và khối xuất tín hiệu điều khiển. Đồng thời, chương này hướng dẫn từng bước cài đặt các gói hỗ trợ phần cứng (Support Package) cho Arduino và Camera trên nền tảng MATLAB.
Chương 4: Thi công hệ thống
Chương 4 mô tả quá trình thi công thực tế phần cứng, bao gồm danh mục linh kiện (Arduino Uno, Servo SG90, 4 LED, Webcam), sơ đồ đấu nối dây chi tiết giữa Arduino với Servo và LED cùng công thức tính điện trở hạn dòng $R \approx 286.67\ \Omega$. Tác giả trình bày các lưu đồ giải thuật: lưu đồ chương trình chính, lưu đồ nhận dạng, lưu đồ xử lý ảnh chụp và lưu đồ trích xuất đặc trưng. Cuối chương là tài liệu hướng dẫn vận hành chi tiết 5 bước trên giao diện phần mềm mô phỏng.
Chương 5: Kết quả, nhận xét và đánh giá
Chương 5 công bố các kết quả thực nghiệm đạt được sau hơn 3 tháng nghiên cứu. Nội dung bao gồm giao diện chương trình chính và chương trình mô phỏng, trực quan hóa tập dữ liệu huấn luyện 390 ảnh và các minh chứng nhận dạng thành công trên cả hai chế độ: ảnh chụp lưu sẵn và ảnh chụp trực tiếp qua webcam. Tác giả cung cấp số liệu thống kê về độ chính xác phân loại và kiểm chứng khả năng điều khiển các cơ cấu chấp hành (động cơ servo mở/đóng cửa, đèn LED bật/tắt) tương ứng với từng trạng thái cảm xúc.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết toàn bộ các kết quả đạt được về mặt lý thuyết và thực nghiệm, đánh giá các ưu điểm về tính trực quan và khả năng kết nối phần cứng - phần mềm, chỉ rõ các hạn chế tồn tại về số lượng cảm xúc nhận dạng và sự phụ thuộc vào điều kiện ngoại cảnh, từ đó đề xuất các định hướng nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả thực nghiệm
Đồ án đã thiết kế, lập trình và chế tạo thành công mô hình phần cứng kết hợp phần mềm nhận dạng cảm xúc khuôn mặt với các kết quả cụ thể:
- Xây dựng hoàn chỉnh cơ sở dữ liệu mẫu gồm 390 ảnh khuôn mặt được chuẩn hóa đồng nhất về độ phân giải và thang xám, chia đều cho 3 nhóm biểu cảm.
- Triển khai thành công giải thuật trích xuất đặc trưng PCA - Eigenfaces và phân loại khoảng cách Euclid trên phần mềm MATLAB.
- Hệ thống đạt tỷ lệ nhận dạng chính xác trên 80% đối với cả 3 loại cảm xúc (vui, buồn, ngạc nhiên) trên cả tập dữ liệu ảnh lưu sẵn và ảnh chụp trực tiếp từ webcam.
- Thiết lập thành công giao tiếp thời gian thực giữa MATLAB và Arduino Uno qua cổng nối tiếp, điều khiển chính xác các cơ cấu chấp hành theo đúng kịch bản đề ra:
| Trạng thái cảm xúc |
Dấu hiệu nhận biết chính |
Tác vụ điều khiển Arduino thực thi |
| Vui |
Khuôn mặt rạng rỡ, xuất hiện nụ cười rõ nét. |
Điều khiển động cơ Servo SG90 quay mở cửa mô hình. |
| Buồn |
Vùng trán nhăn, mắt chùng xuống, không cười, vẻ mặt trầm. |
Điều khiển cấp nguồn bật sáng hệ thống đèn LED. |
| Ngạc nhiên |
Lông mày nhô cao, mắt mở to, miệng mở tròn, hàm dưới trề. |
Điều khiển động cơ Servo đóng cửa và ngắt nguồn tắt đèn LED. |
Đóng góp của đề tài
- Tích hợp liên ngành: Kết hợp thành công giữa thuật toán thị giác máy tính, nhận dạng mẫu (xử lý ảnh trên PC) với kỹ thuật điều khiển nhúng thời gian thực (Arduino) trong một hệ thống hoàn chỉnh có phản hồi vật lý.
- Hiện thực hóa mô hình đào tạo: Cung cấp tài liệu thiết kế chi tiết, lưu đồ giải thuật, sơ đồ đấu nối và hướng dẫn vận hành GUI cụ thể, tạo tiền đề thực nghiệm cho các nghiên cứu tiếp theo về giao tiếp người - máy.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài
- Số lượng trạng thái cảm xúc: Hệ thống mới chỉ phân loại được 3 trạng thái biểu cảm cơ bản (vui, buồn, ngạc nhiên), chưa bao quát hết các trạng thái tâm lý phức tạp khác của con người như giận dữ, sợ hãi, khinh bỉ hay trạng thái trung tính.
- Độ nhạy với điều kiện môi trường: Giải thuật PCA - Eigenfaces dựa trên cường độ điểm ảnh toàn cục nên độ chính xác nhận dạng bị ảnh hưởng đáng kể bởi sự thay đổi của cường độ ánh sáng, góc nghiêng khuôn mặt hoặc khoảng cách chụp không chuẩn xác (tối ưu tại khoảng cách 50 cm, chụp trực diện).
- Hạn chế thuật toán: Phương pháp Eigenfaces cổ điển có độ phân tán dữ liệu lớn và độ bền vững thấp hơn so với các phương pháp trích chọn đặc trưng cục bộ hoặc học sâu hiện đại khi có nhiễu nền.
Hướng phát triển trong tương lai
- Thu thập và mở rộng tập dữ liệu huấn luyện với số lượng mẫu lớn hơn, đa dạng về đối tượng người dùng, góc nhìn và điều kiện ánh sáng.
- Mở rộng phạm vi nhận dạng thêm nhiều trạng thái cảm xúc phức tạp khác.
- Nghiên cứu ứng dụng các giải thuật phân loại và trích chọn đặc trưng nâng cao (như mạng nơ-ron tích chập - CNN, SVM hoặc các bộ biến đổi cục bộ) để nâng cao độ chính xác và khả năng thích ứng thời gian thực.
- Hoàn thiện mô hình phần cứng độc lập, tối ưu hóa tốc độ xử lý để có thể nhúng trực tiếp lên các vi xử lý chuyên dụng hoặc máy tính nhúng (như Raspberry Pi) mà không cần phụ thuộc vào máy tính cá nhân.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo hữu ích cho:
- Sinh viên ngành Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử và Công nghệ Thông tin: Có thể tham khảo phương pháp kết nối phần cứng Arduino với phần mềm MATLAB thông qua các gói Hardware Support Package, cách lập trình giao tiếp nối tiếp và xây dựng giao diện điều khiển GUI.
- Người nghiên cứu về Xử lý ảnh và Thị giác máy tính cơ bản: Cung cấp các công thức toán học tường minh, ví dụ tính toán số liệu cụ thể cho từng bước của thuật toán PCA (tính ma trận hiệp phương sai, tìm trị riêng, vector riêng và chuẩn hóa vector) cùng hệ thống hàm xử lý ảnh chuẩn trong Image Processing Toolbox.
- Các dự án phát triển hệ thống Nhà thông minh (Smart Home) hoặc Tương tác Người - Máy (HCI): Cung cấp giải pháp mẫu về việc sử dụng biểu cảm khuôn mặt làm tín hiệu đầu vào điều khiển các thiết bị dân dụng (cửa tự động, hệ thống chiếu sáng).
Câu hỏi thường gặp
1. Hệ thống sử dụng thuật toán nào để trích xuất đặc trưng và nhận dạng cảm xúc?
Hệ thống sử dụng phương pháp Phân tích Thành phần Chính (PCA - Principal Component Analysis) kết hợp kỹ thuật Mặt riêng (Eigenfaces) để trích xuất vector đặc trưng và giảm chiều dữ liệu, sau đó sử dụng thước đo khoảng cách Euclid để so sánh vector ảnh cần nhận dạng với cơ sở dữ liệu huấn luyện nhằm tìm ra cảm xúc có khoảng cách ngắn nhất.
2. Tập dữ liệu huấn luyện của đồ án gồm bao nhiêu ảnh và được phân chia như thế nào?
Tập dữ liệu huấn luyện của đồ án bao gồm tổng cộng 390 hình ảnh, được chia đều cho 3 trạng thái cảm xúc: 130 ảnh cảm xúc vui, 130 ảnh cảm xúc buồn và 130 ảnh cảm xúc ngạc nhiên. Toàn bộ ảnh được chuẩn hóa về độ phân giải 600x800 pixel và chuyển về ảnh xám.
3. Tác giả tính toán giá trị điện trở hạn dòng cho mạch đèn LED như thế nào?
Tác giả áp dụng công thức định luật Ohm: $R = \frac{V_{cc} - V_{LED}}{I_{LED}}$. Với điện áp nguồn cấp $V_{cc} = 5\text{V}$, điện áp sụt trên LED $V_{LED} = 0.7\text{V}$, và dòng điện định mức $I_{LED} = 15\text{mA}$ ($0.015\text{A}$), giá trị điện trở tính toán được là:
$$R = \frac{5 - 0.7}{0.015} \approx 286.67\ \Omega$$
4. Khi nhận dạng thành công từng cảm xúc, hệ thống điều khiển các cơ cấu chấp hành hoạt động ra sao?
Khi phát hiện cảm xúc Vui, Arduino điều khiển động cơ servo SG90 quay để mở cửa. Khi phát hiện cảm xúc Buồn, Arduino xuất tín hiệu bật sáng 4 đèn LED. Khi phát hiện cảm xúc Ngạc nhiên, Arduino điều khiển động cơ servo đóng cửa đồng thời ngắt tín hiệu để tắt đèn LED.
5. Điều kiện thực nghiệm để hệ thống nhận dạng đạt độ chính xác tối ưu là gì?
Hệ thống hoạt động tốt nhất khi khuôn mặt người đối diện trực diện với webcam máy tính ở khoảng cách chuẩn xấp xỉ 50 cm, trong môi trường có ánh sáng đầy đủ và ổn định (không quá tối và không bị chói lóa). Độ chính xác phân loại trong điều kiện này đạt trên 80% cho từng loại cảm xúc.
Kết luận
Đồ án tốt nghiệp "Nhận dạng cảm xúc khuôn mặt người" của sinh viên Nguyễn Thị Đài Trang và Hà Tiến Dương đã xây dựng thành công mô hình tích hợp giữa xử lý ảnh trên nền tảng MATLAB và điều khiển cơ cấu chấp hành qua kit vi điều khiển Arduino Uno. Bằng việc ứng dụng phương pháp toán học PCA - Eigenfaces và khoảng cách Euclid trên bộ dữ liệu 390 ảnh chuẩn hóa, hệ thống đạt tỷ lệ nhận dạng chính xác trên 80% đối với 3 trạng thái cảm xúc (vui, buồn, ngạc nhiên). Công trình đã minh chứng tính khả thi của việc ứng dụng biểu cảm khuôn mặt vào điều khiển thiết bị tự động hóa thực tế (cửa và đèn chiếu sáng), đồng thời cung cấp tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho các nghiên cứu giao tiếp người - máy ở bậc đại học.