Bối cảnh và vấn đề nghiên cứu

Xử lý ảnh và thị giác máy tính là lĩnh vực khoa học kỹ thuật phát triển mạnh mẽ, đóng vai trò quan trọng trong việc tự động hóa quá trình phân tích dữ liệu thu nhận từ cảm biến hình ảnh (camera, webcam). Các hệ thống xử lý ảnh hiện đại được ứng dụng sâu rộng trong quốc phòng - an ninh, y sinh, phẫu thuật, robot học và các hệ sinh thái thông minh nhằm giảm tải sức lao động và nâng cao độ chính xác trong việc ra quyết định. Bên cạnh các công nghệ 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 mống mắt, bài toán nhận diện khuôn mặt và phân tích cảm xúc con người đang trở thành hướng tiếp cận trọng tâm trong giao tiếp người - máy (Human-Machine Interface).

Theo nghiên cứu tâm lý học của Albert Mehrabian (năm 1968) được tác giả trích dẫn, trong quá trình truyền tải thông điệp giao tiếp, từ ngữ chỉ đóng góp 7% tác động, âm lượng 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% hiệu quả truyền đạt. Khuôn mặt là nơi biểu lộ trực quan các trạng thái tâm lý nội tại như vui, buồn, ngạc nhiên hay giận dữ. Nhu cầu xây dựng các thiết bị điện tử có khả năng tự động hiểu được ý muốn và trạng thái cảm xúc của người dùng mà không cần thông qua các cơ cấu điều khiển trung gian bằng tay là động lực thực tiễn của đề tài.

Từ cơ sở thực tiễn đó, đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Điện tử Truyền thông tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã lựa chọn và thực hiện đề tài "Nhận dạng cảm xúc khuôn mặt người".

Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Nghiên cứu tổng quan các tài liệu, đồ án và công trình nghiên cứu tiền nhiệm liên quan đến xử lý ảnh và nhận dạng khuôn mặt.
  2. Xây dựng chương trình thu nhận và xử lý ảnh đầu vào từ hai nguồn: tập tin ảnh tĩnh lưu trữ sẵn trong bộ nhớ máy tính và ảnh chụp trực tiếp thời gian thực từ webcam.
  3. Thiết lập kết nối, cài đặt các gói thư viện phần cứng hỗ trợ (Hardware Support Package) để giao tiếp giữa phần mềm MATLAB và bo mạch vi điều khiển Arduino Uno qua cổng USB.
  4. Triển khai thuật toán trích chọn đặc trưng và nhận dạng cảm xúc khuôn mặt trên phần mềm MATLAB.
  5. Thiết kế, lắp ráp và thi công mô hình phần cứng gồm khối xử lý trung tâm, khối điều khiển Arduino Uno và các cơ cấu chấp hành ngoại vi (động cơ servo SG90, hệ thống đèn LED).
  6. Lập trình điều khiển thiết bị ngoại vi tương ứng với trạng thái cảm xúc nhận dạng được:
    • Cảm xúc vui (cười): Điều khiển động cơ servo quay để mở cửa.
    • Cảm xúc buồn (không cười): Điều khiển bật sáng đèn LED.
    • Cảm xúc ngạc nhiên: Điều khiển động cơ servo đóng cửa đồng thời tắt đèn LED.
  7. Chạy thử nghiệm thực tế, hiệu chỉnh toàn bộ hệ thống và đánh giá kết quả thực thi.

Đối tượng và phạm vi nghiên cứu của đồ án:

  • Đối tượng nghiên cứu: Ba trạng thái biểu cảm cơ bản trên khuôn mặt người bao gồm vui (nụ cười rạng rỡ), buồn (vùng trán nhăn, mắt chùng, không thần thái) và ngạc nhiên (lông mày nhô cao, mắt mở to, miệng mở tròn).
  • Phạm vi không gian và kỹ thuật: Hệ thống thực nghiệm kết hợp giữa phần mềm xử lý ảnh MATLAB trên máy tính cá nhân và kit vi điều khiển Arduino Uno; sử dụng webcam máy tính để chụp ảnh tĩnh trực diện ở cự ly tối ưu khoảng 50 cm trong điều kiện đủ sáng.
  • Phạm vi thời gian: Đồ án được triển khai thực hiện trong thời gian 15 tuần (từ tháng 03/2018 đến tháng 07/2018).

Cơ sở lý thuyết và phương pháp

Đồ án ứng dụng phương pháp phân tích thành phần chính kết hợp với không gian con Eigenfaces để thực hiện bài toán trích chọn đặc trưng và phân loại hình ảnh biểu cảm khuôn mặt.

1. Khung lý thuyết và mô hình toán học

  • Phương pháp Phân tích Thành phần Chính (Principal Component Analysis - PCA): Là thuật toán sử dụng phép biến đổi trực giao để chuyển đổi tập dữ liệu từ không gian ban đầu có số chiều lớn sang không gian mới có số chiều nhỏ hơn mà vẫn bảo toàn tối đa độ biến thiên của dữ liệu. Các trục tọa độ mới trong không gian PCA là tổ hợp tuyến tính trực giao đôi một của không gian cũ, giúp loại bỏ các thông tin dư thừa và phát hiện các mối liên kết tiềm ẩn.
  • Phương pháp Eigenfaces: Được phát triển dựa trên nghiên cứu của Turk và Pentland, áp dụng trực tiếp PCA vào nhận dạng khuôn mặt. Khuôn mặt được biểu diễn dưới dạng tổ hợp tuyến tính của $K$ vector riêng ($K \ll N$) tương ứng với các giá trị riêng lớn nhất của ma trận hiệp phương sai.
  • Các đại lượng toán học nền tảng:
    • Giá trị trung bình của tập dữ liệu: $\bar{X} = \frac{1}{n}\sum_{i=1}^{n} X_i$
    • Độ lệch chuẩn ($S$) và Phương sai ($s^2$): $s^2 = \frac{1}{n-1}\sum_{i=1}^{n} (X_i - \bar{X})^2$
    • Hiệp phương sai giữa hai biến $X$ và $Y$: $\text{Cov}(X,Y) = \frac{1}{n-1}\sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})$
    • Ma trận hiệp phương sai $C$: Ma trận vuông đối xứng chứa các hiệp phương sai giữa các chiều dữ liệu.
    • Giá trị riêng ($\lambda$) và Vector riêng ($u$): Thỏa mãn phương trình ma trận $A \cdot u = \lambda \cdot u$.
    • Khoảng cách Euclid (Euclidean Distance): Sử dụng để đo độ tương đồng giữa vector đặc trưng của ảnh cần nhận dạng ($I_{\text{nhan dang}}$) và các vector đặc trưng trong tập huấn luyện ($S_i$), từ đó phân loại cảm xúc theo mẫu có khoảng cách ngắn nhất.

2. Phương pháp nghiên cứu thực nghiệm

  • Xử lý tiền kỳ hình ảnh:
    • Thu nhận ảnh màu RGB từ tệp hoặc webcam, chuyển đổi sang ảnh mức xám (Grayscale) bằng hàm rgb2gray.
    • Hiệu chỉnh và chuẩn hóa kích thước ảnh về cùng độ phân giải cố định bằng hàm imresize.
    • Định vị vùng khuôn mặt và trích xuất vùng đặc trưng (miệng, mắt) thông qua Image Processing Toolbox bằng hàm regionprops.
  • Quy trình xây dựng cơ sở dữ liệu huấn luyện (Training Set):
    • Thu thập 390 mẫu ảnh phân bổ đều cho 3 trạng thái: 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.
    • Chuyển đổi mỗi bức ảnh thành một vector cột, nạp vào ma trận dữ liệu tổng thể kích thước $M \times N$.
    • Tính vector khuôn mặt trung bình $\Psi$ và trừ vector trung bình để thu được ma trận sai phân $A$.
    • Tính toán ma trận $A^T \cdot A$ (kích thước $M \times M$) để tìm các vector riêng $v_i$, sau đó suy ra vector riêng chuẩn hóa $u_i$ trong không gian ảnh ban đầu.
    • Lựa chọn $K$ vector riêng có giá trị riêng lớn nhất để tạo không gian cơ sở Eigenfaces và lưu trữ các trọng số đặc trưng vào tệp dữ liệu .mat hoặc .txt.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo mô hình tích hợp phần cứng - phần mềm, trong đó máy tính thực hiện các tác vụ tính toán thị giác máy tính phức tạp và truyền lệnh điều khiển xuống bo mạch Arduino Uno qua giao thức nối tiếp (Serial over USB).

1. Kiến trúc phần cứng và sơ đồ khối

Cấu trúc tổng thể của hệ thống gồm 4 khối chức năng chính:

  • Khối thu nhận hình ảnh (Camera/Webcam): Thu thập khung hình khuôn mặt trực tiếp từ người dùng.
  • Khối xử lý trung tâm (PC chạy MATLAB): Tiền xử lý ảnh, trích chọn đặc trưng bằng PCA, so khớp khoảng cách Euclid với cơ sở dữ liệu và gửi tín hiệu điều khiển xuống cổng giao tiếp.
  • Khối điều khiển (Arduino Uno): Nhận tín hiệu điều khiển số từ MATLAB, xuất xung điều khiển động cơ servo và cấp tín hiệu logic cho mạch đèn LED.
  • Khối cơ cấu chấp hành và nguồn cấp: Động cơ servo SG90 thực hiện đóng/mở cửa mô hình, hệ thống 4 đèn LED trắng/đỏ làm nhiệm vụ chiếu sáng hiển thị, khối nguồn 5V cung cấp năng lượng cho toàn hệ thống.
STT Tên linh kiện / Module Số lượng Chủng loại / Thông số kỹ thuật Ghi chú / Chức năng
1 Bo mạch vi điều khiển 1 Arduino Uno R3 (ATmega328P, 16 MHz, 14 Digital I/O, 6 PWM, Flash 32KB) Nhận lệnh từ MATLAB, điều khiển thiết bị
2 Động cơ servo 1 TowerPro SG90 (Điện áp 5V, góc quay $0^\circ - 180^\circ$) Cơ cấu chấp hành đóng/mở cửa
3 Đèn phát quang (LED) 4 LED trắng, LED đỏ (Dòng định mức 15 mA, sụt áp 0.7V) Tải hiển thị trạng thái chiếu sáng
4 Cảm biến hình ảnh 1 USB Webcam tích hợp trên máy tính Thu nhận dữ liệu khuôn mặt đầu vào

2. Thiết kế mạch và tính toán thông số

  • Mạch điều khiển động cơ servo SG90: Sử dụng 3 đường dây kết nối: dây đỏ nối nguồn 5V của Arduino, dây đen nối mass (GND), dây vàng nhận tín hiệu điều khiển điều chế độ rộng xung (PWM) từ chân digital có ký hiệu ~ trên Arduino Uno.
  • Mạch điều khiển đèn LED: Kết nối cực dương (Anode) của LED với chân Digital Output của Arduino Uno thông qua điện trở hạn dòng $R$, cực âm (Cathode) nối mass (GND). Điện trở hạn dòng được tính toán theo công thức: $$R = \frac{V_{\text{nguon}} - V_{\text{led}}}{I_{\text{led}}} = \frac{5\text{V} - 0.7\text{V}}{0.015\text{A}} \approx 286.7,\Omega$$
  • Cài đặt gói hỗ trợ phần cứng trên MATLAB:
    • Giao tiếp Arduino: Cài đặt MATLAB Support Package for Arduino Hardware từ Add-Ons, kiểm tra kết nối qua dòng lệnh a = arduino.
    • Giao tiếp Camera: Cài đặt USB Webcam Support Package và OS Generic Video Interface, sử dụng các hàm webcamlist, cam = webcam(), preview(cam), và snapshot(cam).

Nội dung chính theo từng chương

Chương 1. Tổng quan

Chương 1 giới thiệu lý do lựa 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 bối cảnh phát triển của các hệ thống thông minh và tự động hóa. Tác giả xác định rõ mục tiêu chế tạo hệ thống nhận dạng 3 trạng thái cảm xúc (vui, buồn, ngạc nhiên), kết nối phần mềm MATLAB với phần cứng Arduino Uno để điều khiển đóng mở cửa và bật tắt đèn. Chương này cũng nêu rõ các giới hạn kỹ thuật của mô hình và phác thảo bố cục tổng thể gồm 6 chương của khóa luận.

Chương 2. Cơ sở lý thuyết

Chương 2 trình bày chi tiết các nền tảng kỹ thuật và toán học làm cơ sở cho đồ án:

  • Giới thiệu cấu trúc phần cứng của kit Arduino Uno (chip ATmega328P họ 8-bit, xung nhịp 16 MHz, bộ nhớ Flash 32KB, SRAM 2KB, EEPROM 1KB, điện áp hoạt động 5V, 14 chân Digital I/O và 6 chân Analog).
  • Tổng quan về môi trường tính toán số MATLAB, cấu trúc hệ thống MATLAB và các Toolbox chuyên dụng.
  • Phân tích cơ sở tâm lý học và các dấu hiệu nhận biết đặc trưng trên khuôn mặt của 3 trạng thái cảm xúc: vui (nụ cười, nét mặt rạng rỡ), buồn (trán nhăn, mắt chùng, không thần thái), ngạc nhiên (lông mày nhô cao, mắt mở to, miệng mở tròn).
  • Trình bày toàn diện lý thuyết phân tích thành phần chính (PCA) và phương pháp Eigenfaces: từ các khái niệm độ lệch chuẩn, phương sai, hiệp phương sai, ma trận hiệp phương sai, vector riêng, giá trị riêng đến 6 bước xây dựng tập huấn luyện và thuật toán so khớp khoảng cách Euclid.
  • Tổng hợp bảng danh mục các hàm xử lý ảnh và truy xuất dữ liệu trong MATLAB như: imshow, imagesc, image, rgb2gray, imresize, imcrop, imrotate, regionprops, princomp, imread, imwrite, strcat, textscan.

Chương 3. Tính toán và thiết kế

Chương 3 tập trung vào thiết kế hệ thống phần mềm và phần cứng:

  • Xây dựng sơ đồ khối toàn hệ thống và sơ đồ chi tiết cho hai quy trình độc lập: Quá trình tạo dữ liệu huấn luyện (Training Phase) và Quá trình nhận dạng thực thi (Recognition Phase).
  • Thiết kế chi tiết từng khối: khối lấy ảnh đầu vào (sử dụng 2 tập mẫu 390 ảnh từ tệp có sẵn và webcam), khối xử lý ảnh đầu vào, khối tạo lập cơ sở dữ liệu định dạng .mat/.txt, khối so sánh Eigenfaces và khối xuất tín hiệu điều khiển.
  • Hướng dẫn quy trình từng bước cài đặt các gói hỗ trợ phần cứng (Hardware Support Packages) trên môi trường MATLAB để tương tác trực tiếp với bo mạch Arduino Uno và thiết bị Webcam thông qua cổng giao tiếp máy tính.

Chương 4. Thi công hệ thống

Chương 4 mô tả toàn bộ quá trình thi công thực tế và lập trình hệ thống:

  • Liệt kê bảng danh mục linh kiện, module phần cứng sử dụng trong mô hình thực nghiệm (Arduino Uno, Servo SG90, 4 LED trắng/đỏ, Webcam).
  • Hướng dẫn chi tiết kỹ thuật đấu nối mạch điều khiển động cơ servo SG90 và mạch hạn dòng cho đèn LED với Arduino Uno.
  • Trình bày lưu đồ giải thuật của chương trình chính, sơ đồ khối quy trình nhận dạng, sơ đồ chương trình xử lý ảnh chụp và sơ đồ trích chọn đặc trưng.
  • Thiết kế giao diện đồ họa người dùng (GUI mô phỏng) trên MATLAB và biên soạn tài liệu hướng dẫn vận hành hệ thống qua 5 bước: khởi động thiết bị, chạy giao diện mô phỏng, mở camera (Open Camera) căn chỉnh khuôn mặt trực diện ở khoảng cách 50 cm, kích hoạt nhận dạng (Result) và quan sát phản hồi cơ cấu chấp hành.

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 thu được sau 3 tháng triển khai:

  • Thể hiện các hình ảnh giao diện chính, giao diện chương trình mô phỏng khi nạp dữ liệu ảnh có sẵn và khi chụp trực tiếp từ webcam.
  • Minh chứng các trường hợp nhận dạng thành công cho từng loại cảm xúc: nhận dạng cảm xúc "vui" (điều khiển servo mở cửa), nhận dạng cảm xúc "buồn" (điều khiển bật đèn LED), nhận dạng cảm xúc "ngạc nhiên" (điều khiển servo đóng cửa và tắt đèn LED).
  • Đánh giá tổng quan độ chính xác nhận dạng đạt trên 80% cho từng trạng thái cảm xúc trong điều kiện thực nghiệm tiêu chuẩn.

Chương 6. Kết luận và hướng phát triển

Chương 6 tổng kết các kết quả đạt được đối với mục tiêu ban đầu, chỉ ra những ư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, đồng thời phân tích các mặt hạn chế còn tồn tại và đề xuất các định hướng nghiên cứu mở rộng trong tương lai.


Kết quả và đóng góp

1. Kết quả thực nghiệm chính

  • Xây dựng hoàn chỉnh bộ cơ sở dữ liệu huấn luyện gồm 390 mẫu ảnh khuôn mặt 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).
  • Triển khai thành công thuật toán trích chọn đặc trưng PCA - Eigenfaces và phân loại bằng 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ả ba trạng thái cảm xúc khi thử nghiệm với ảnh chụp sẵn và ảnh chụp trực tiếp từ webcam trong điều kiện khoảng cách 50 cm, ánh sáng ổn định.
  • Tích hợp thành công giao tiếp giữa MATLAB và kit vi điều khiển Arduino Uno để đ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 dạng đặc trưng Tác vụ điều khiển phần cứng tương ứng
Vui Nụ cười, nét mặt rạng rỡ Điều khiển động cơ servo SG90 quay để mở cửa
Buồn Trán nhăn, mắt chùng, không cười Xuất tín hiệu kích hoạt 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 Điều khiển động cơ servo đóng cửa, đồng thời tắt đèn LED

2. Đóng góp của đề tài

  • Hiện thực hóa mô hình liên kết trực tiếp giữa thuật toán xử lý ảnh trên máy tính (MATLAB) với phần cứng điều khiển nhúng giá thành thấp (Arduino Uno) thông qua gói Hardware Support Package.
  • Cung cấp tài liệu kỹ thuật chi tiết về quy trình thu thập dữ liệu, chuẩn hóa hình ảnh, tính toán không gian vector riêng Eigenfaces và thiết kế giao diện đồ họa tương tác cho bài toán nhận diện cảm xúc.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế của đồ án

  • Số lượng trạng thái cảm xúc còn hẹp: Mô hình mới chỉ tập trung phân loại 3 trạng thái biểu cảm cơ bản (vui, buồn, ngạc nhiên), chưa mở rộng sang các trạng thái cảm xúc phức tạp khác như giận dữ, sợ hãi, khinh bỉ hay trạng thái trung tính.
  • Phụ thuộc vào điều kiện môi trường: Thuật toán PCA nhạy cảm với sự thay đổi của điều kiện ánh sáng môi trường; yêu cầu người dùng phải hướng khuôn mặt trực diện vào camera ở cự ly cố định (khoảng 50 cm), không bị che khuất và không có góc nghiêng lớn.
  • Tốc độ xử lý: Hệ thống thực hiện chụp ảnh tĩnh từ luồng webcam để xử lý từng khung hình độc lập, chưa tối ưu hóa để nhận dạng liên tục theo thời gian thực (Real-time Video Stream) ở tốc độ khung hình cao.

2. Hướng nghiên cứu tiếp

  • Mở rộng quy mô cơ sở dữ liệu huấn luyện với số lượng mẫu lớn hơn, đa dạng hóa đối tượng và góc chụp để nâng cao độ bền vững của mô hình.
  • Nghiên cứu nhận dạng bổ sung các trạng thái cảm xúc khác nhằm đáp ứng yêu cầu thực tế trong các ứng dụng nhà thông minh hoặc y tế.
  • Khảo sát và ứng dụng các thuật toán học máy, mạng nơ-ron tích chập (CNN) hoặc các mô hình học sâu (Deep Learning) để nâng cao độ chính xác trong điều kiện ánh sáng phức tạp và góc quay tự do.
  • Tối ưu hóa mã nguồn để thực hiện nhận dạng thời gian thực liên tục trên luồng video và nghiên cứu nhúng toàn bộ thuật toán xử lý ảnh lên các vi xử lý/kit nhúng chuyên dụng có hiệu năng cao.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho các đối tượng và nội dung học thuật sau:

  • Đối tượng thụ hưởng: Sinh viên, học viên chuyên ngành Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử, Khoa học Máy tính hoặc Công nghệ Thông tin đang thực hiện đồ án tốt nghiệp, khóa luận hoặc các tiểu luận chuyên ngành về xử lý ảnh, thị giác máy tính và hệ thống nhúng.
  • Nội dung đáng tham khảo:
    • Cơ sở toán học và quy trình 6 bước triển khai thuật toán PCA và không gian con Eigenfaces trong việc giảm chiều dữ liệu và nhận dạng mẫu.
    • Phương pháp xây dựng giao diện người dùng (GUI) trên MATLAB kết hợp các hàm xử lý ảnh chuyên dụng trong Image Processing Toolbox.
    • Kỹ thuật kết nối, cấu hình và lập trình điều khiển phần cứng Arduino Uno từ môi trường MATLAB thông qua MATLAB Support Package for Arduino.
    • Các lưu đồ giải thuật phân tích hình ảnh, quy trình trích chọn đặc trưng và các công thức tính toán mạch điện tử cơ bản (mạch phân áp, tính điện trở hạn dòng cho LED).

Câu hỏi thường gặp

1. Hệ thống trong đồ án nhận dạng được những trạng thái cảm xúc nào và kích hoạt thiết bị ngoại vi ra sao?

Hệ thống nhận dạng 3 trạng thái cảm xúc trên khuôn mặt người và điều khiển các thiết bị ngoại vi qua Arduino Uno như sau: khi phát hiện cảm xúc "vui", động cơ servo SG90 quay để mở cửa; khi phát hiện cảm xúc "buồn", hệ thống bật sáng đèn LED; khi phát hiện cảm xúc "ngạc nhiên", động cơ servo đóng cửa đồng thời tắt đèn LED.

2. Thuật toán xử lý ảnh cốt lõi được sử dụng để nhận dạng cảm xúc trong đồ án là gì?

Thuật toán cốt lõi là Phân tích Thành phần Chính (PCA) kết hợp phương pháp Eigenfaces. Thuật toán thực hiện giảm số chiều của tập ảnh khuôn mặt, xây dựng không gian vector riêng đại diện cho các biến thiên đặc trưng lớn nhất và sử dụng khoảng cách Euclid để so khớp vector ảnh thử nghiệm với tập ảnh mẫu đã được huấn luyện.

3. Quy mô tập dữ liệu huấn luyện và các bước tiền xử lý ảnh trong đề tài được tiến hành như thế nào?

Cơ sở dữ liệu huấn luyện gồm 390 bức ảnh, chia đều cho 3 cảm xúc (130 ảnh vui, 130 ảnh buồn, 130 ảnh ngạc nhiên) từ hai nguồn: ảnh chụp lưu sẵn và ảnh chụp từ webcam. Các bước tiền xử lý bao gồm: chuyển đổi ảnh màu RGB sang ảnh mức xám bằng hàm rgb2gray, chuẩn hóa kích thước ảnh bằng hàm imresize và xác định vị trí khuôn mặt/vùng miệng bằng hàm regionprops.

4. Phần mềm MATLAB giao tiếp và điều khiển kit phần cứng Arduino Uno bằng phương thức nào?

MATLAB giao tiếp với Arduino Uno thông qua cổng USB bằng cách cài đặt gói hỗ trợ MATLAB Support Package for Arduino Hardware. Sau khi thiết lập đối tượng kết nối qua lệnh a = arduino, MATLAB có thể đọc/ghi trực tiếp các chân Digital I/O và phát xung PWM để điều khiển góc quay của động cơ servo cũng như trạng thái logic của đèn LED mà không cần nạp code riêng biệt từ Arduino IDE.

5. Điều kiện môi trường thực nghiệm tối ưu để hệ thống đạt độ chính xác trên 80% là gì?

Hệ thống đạt tỷ lệ nhận dạng trên 80% khi người dùng ngồi đối diện trực tiếp với webcam máy tính ở khoảng cách tối ưu khoảng 50 cm, trong môi trường ánh sáng đầy đủ và đồng đều, khuôn mặt không bị che khuất và biểu cảm rõ nét theo các đặc trưng chuẩn của từng trạng thá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" đã nghiên cứu và ứng dụng thành công phương pháp PCA - Eigenfaces trên nền tảng phần mềm MATLAB để phân loại 3 trạng thái cảm xúc khuôn mặt (vui, buồn, ngạc nhiên). Hệ thống đã kết nối hoàn chỉnh khối xử lý thị giác máy tính với bo mạch điều khiển Arduino Uno để thực thi các tác vụ tự động hóa ngoại vi như đóng/mở cửa bằng servo và bật/tắt đèn LED. Với tỷ lệ nhận dạng thực nghiệm đạt trên 80% trong điều kiện chuẩn, công trình là tài liệu tham khảo có giá trị thực tiễn cho sinh viên kỹ thuật trong việc tích hợp giữa xử lý ảnh số và hệ thống điều khiển nhúng.