Đồ án Nhận dạng cảm xúc trên khuôn mặt (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Nhận dạng cảm xúc trên khuôn mặt (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
do_an_nhan_dang_cam_xuc_tren_khuon_mat_phan_1.pdf
Nội dung text: Đồ án Nhận dạng cảm xúc trên khuôn mặt (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG NHẬN DẠNG CẢM XÚC TRÊN KHUÔN MẶT GVHD: ThS. NGUYỄN DUY THẢO SVTH: NGÔ BÁ ĐẠI MSSV: 12141042 SVTH: BÙI TRỌNG TRÍ MSSV: 12141677 S K L 0 0 4 5 5 5 Tp. Hồ Chí Minh, tháng 01/2017
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: NHẬN DẠNG CẢM XÚC TRÊN KHUÔN MẶT GVHD:ThS.Nguyễn Duy Thảo SVTH: Ngô Bá Đại MSSV: 12141042 Bùi Trọng Trí MSSV: 12141677 Tp. Hồ Chí Minh - 1/2017
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: NHẬN DẠNG CẢM XÚC TRÊN KHUÔN MẶT GVHD: ThS. Nguyễn Duy Thảo SVTH : Ngô Bá Đại MSSV: 12141042 Bùi Trọng Trí MSSV: 12141677 Tp. Hồ Chí Minh - 1/2017
- PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1. Thông tin sinh viên Họ và tên: Ngô Bá Đại MSSV: 12141042 Tel: 0936 059 010 Email: ngobadaispk@gmail.com Họ và tên: Bùi Trọng Trí MSSV: 12141677 Tel: 0961 929 640 Email: 12141677@student.hcmute.edu.vn 2. Thông tin đề tài Tên của đề tài: NHẬN DẠNG CẢM XÚC TRÊN KHUÔN MẶT. Mục đích: Xây dựng hệ thống nhận dạng cảm xúc trên khuôn mặt trên máy tính rồi nhúng dữ liệu xuống kit Arduino hiển thị led đơn. Đồ án tốt nghiệp thực hiện tại: Bộ môn Điện Tử Công Nghiệp, Khoa Điện - Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh. Thời gian thực hiện: Từ ngày 10/10/2016 đến 4/1/2017. 3. Các nhiệm vụ cụ thể của đề tài Tìm hiểu Kit Arduino, phần mềm Matlab. Cài đặt Arduino trên Matlab. Tìm hiểu các thuật toán huấn luyện và nhận dạng cảm xúc trên khuôn mặt. Thiết kế, xây dựng hệ thống nhận dạng cảm xúc trên khuôn mặt. Thiết kế hệ thống ứng dụng trên kit Arduino. Viết sách đồ án. 4. Lời cam đoan của sinh viên Chúng tôi – Ngô Bá Đại và Bùi Trọng Trí cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của Thạc sỹ Nguyễn Duy Thảo. Các kết quả công bố là trung thực và không sao chép từ bất kỳ công trình nào khác. Tp.HCM, ngày 4 tháng 1 năm 2017 SV thực hiện đồ án Ngô Bá Đại Bùi Trọng Trí Xác nhận của Bộ Môn Tp.HCM, ngày 4 tháng 1 năm 2017 Giáo viên hướng dẫn (Ký ghi rõ họ tên và học hàm học vị)
- TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Khoa Điện - Điện Tử Độc lập - Tự do - Hạnh phúc Bộ Môn Điện Tử Công Nghiệp Tp. Hồ Chí Minh, ngày 10 tháng 10 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình này được đóng vào đồ án) Họ tên sinh viên 1: Ngô Bá Đại Lớp: 12141DT1C MSSV: 12141042 Họ tên sinh viên 2: Bùi Trọng Trí Lớp: 12141DT1D MSSV: 12141677 Tên đề tài: NHẬN DẠNG CẢM XÚC TRÊN KHUÔN MẶT Xác nhận Tuần/ngày Nội dung GVHD Tuần 1 Tìm đề tài Tuần 2 Tìm hiểu hoạt động Arduino và Matlab. Tuần 3 Cài đặt Matlab, cài Arduino, cài webcam trên Matlab. Tuần 4 Lập trình Arduino với các chân I/O để nhúng dữ liệu. Tuần 5 Lập trình và xây dựng bộ ảnh huấn luyện để nhận dạng. Tuần 6 Lập trình nhận dạng cảm xúc từ bộ ảnh huấn luyện. Tuần 7 Lập trình nhận dạng cảm xúc qua Camera. Tuần 8 Hiệu chỉnh toàn bộ chương trình. Tuần 9 Viết luận văn. Tuần 10 Chỉnh sửa, in đồ án. GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
- LỜI CAM ĐOAN Chúng tôi cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của Thạc sỹ Nguyễn Duy Thảo. Các kết quả công bố trong ĐATN “Nhận dạng cảm xúc trên khuôn mặt” là trung thực và không sao chép hoàn toàn từ công trình nào khác. Người thực hiện đề tài Ngô Bá Đạị Bùi Trọng Trí
- LỜI CẢM ƠN Trong quá trình làm đồ án tốt nghiệp, chúng em đã nhận được rất nhiều sự ủng hộ, giúp đỡ đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè. Chúng em xin gửi lời cảm ơn chân thành đến Th.S Nguyễn Duy Thảo - Trường Đại học Sư phạm Kỹ thuật Tp.HCM đã tận tình hướng dẫn chỉ bảo trong suốt thời gian làm luận án tốt nghiệp. Thầy đã tạo nhiều điều kiện và cho những lời khuyên quý báu giúp chúng em hoàn thành tốt khóa luận. Xin chân thành cảm ơn thầy cô giáo trong Trường Đại học Sư phạm Kỹ thuật Tp.HCM nói chung, các thầy cô trong Bộ môn Điện tử Công nghiệp nói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức quý báu và tạo điều kiện giúp đỡ trong suốt quá trình học tập trong những năm học vừa qua, giúp chúng em có được cơ sở lý thuyết vững vàng. Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp. Chúng em xin chân thành cảm ơn! Người thực hiện đề tài Ngô Bá Đại Bùi Trọng Trí
- MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan iv Lời cảm ơn v Mục lục vi Liệt kê hình ix Liệt kê bảng xi Tóm tắt xii CHƯƠNG 1. TỔNG QUAN 1 1.1. Đặt vấn đề 1 1.2. Mục tiêu 1 1.3. Nội dung nghiên cứu 2 1.4. Giới hạn 2 1.5. Bố cục 2 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 4 2.1 Giới thiệu phần cứng 4 2.1.1 Kit Ardunio 4 2.1.2 Kit Arduino Uno 4 2.2 Tổng quan về Matlab 6 2.3 Các cảm xúc trên khuôn mặt 8 2.4 Phương pháp nhận dang PCA-Eigenfaces 9 2.4.1 Phương pháp PCA 9 2.4.2 Eigenfaces trong nhận dạng cảm xúc trên khuôn mặt 12 2.4.3 Các bước cơ bản trong Eigenfaces 13 2.5 Các hàm xử lý trong Matlab 18 CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ. 20 3.1 Giới thiệu 20 3.2 Tổng quan về phần cứng 20
- 3.2.1 Tổng quan các khối chính 20 3.2.2 Board Arduino Uno R3 21 3.3 Thiết kế hệ thống 25 3.3.1 Thiết kế sơ đồ khối hệ thống 25 3.3.2 Thiết kế các khối hệ thống 27 3.4 Cài đặt các gói hỗ trợ phần cứng cho Matlab 30 3.4.1 Kết nối Arduino với Matlab 30 3.4.2 Cài đặt camera cho Matlab 33 CHƯƠNG 4. THI CÔNG HỆ THỐNG 35 4.1 Giới thiệu. 35 4.2 Thi công hệ thống 35 4.3 Lưu đồ giải thuật 36 4.4 Viết tài liệu hướng dẫn, sử dụng, thao tác 42 4.4.1 Tài liệu hướng dẫn sử dụng 42 4.4.2 Quy trình thao tác 42 CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 43 5.1 Kết quả 43 5.1.1 Tổng quan kết quả đạt được 43 5.1.2 Kết quả thực tế 43 5.2 Nhận xét và đánh giá 51 CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. 52 6.1 Kết luận . 52 6.2 Hướng phát triển 52 TÀI LIỆU THAM KHẢO PHỤ LỤC 55 ii
- LIỆT KÊ HÌNH Hình Trang Hình 2.1. Cấu trúc phần cứng của Arduino Uno 5 Hình 2.2. Không gian dữ liệu mới với các Eigen vector 13 Hình 2.3. Trích chọn đặc trưng. 14 Hình 3.1. Tổng quan các khối. 20 Hình 3.2. Sơ đồ nguyên lý board Arduino Uno R3 21 Hình 3.3. Sơ đồ chân ATmega328. 22 Hình 3.4. Cầu USB-to-UART 24 Hình 3.5. Bộ nguồn. 25 Hình 3.6. Sơ đồ quá trình tạo cơ sở dữ liệu huấn luyện 26 Hình 3.7. Sơ đồ quá trình nhận dạng 26 Hình 3.8. Sơ đồ nguyên lý khối ứng dụng 29 Hình 3.9. Hình ảnh khối ứng dụng. 29 Hình 3.10. Get Hardware Support Package. 30 Hình 3.11. Cửa sổ Support Package Installer. 31 Hình 3.12. Giao diện cài Package cho Arduino. 31 Hình 3.13. Đăng nhập cho cửa sổ MathWorks Account Log In. 32 Hình 3.14. Kết nối Arduino và Matlab thành công. 32 Hình 3.15. Cài đặt Camera cho Matlab. 33 Hình 3.16. Cài đặt Camera cho Matlab thành công. 34 Hình 4.1. Mô hình trong quá trình thực hiện. 35 Hình 4.2. Lưu đồ chương trình chính. 36 Hình 4.3. Lưu đồ chương trình huấn luyện ảnh. 37 Hình 4.4. Lưu đồ chương trình nhận dạng. 38 Hình 4.5. Lưu đồ chương trình xử lý ảnh chụp. 39 Hình 4.6. Lưu đồ chương trình trích đặc trưng. 40 Hình 4.7. Lưu đồ chương trình điều khiển thiết bị theo trạng thái. 41 Hình 4.8. Quy trình thao tác . 42 Hình 5.1. 60 ảnh huấn luyện từ ảnh chụp. 44 Hình 5.2. Nhận dạng thành công cảm xúc “vui” từ ảnh chụp 44 Hình 5.3. Nhận dạng thành công cảm xúc “buồn” từ ảnh chụp 45 Hình 5.4. Nhận dạng thành công cảm xúc “giận” từ ảnh chụp 45
- Hình 5.5. Nhận dạng thành công cảm xúc “ngạc nhiên” từ ảnh chụp. 46 Hình 5.6. 60 ảnh huấn luyện từ camera 47 Hình 5.7. Nhận dạng thành công cảm xúc “vui” từ camera 47 Hình 5.8. Nhận dạng thành công cảm xúc “buồn” từ camera. 48 Hình 5.9. Nhận dạng thành công cảm xúc “giận” từ camera. 48 Hình 5.10. Nhận dạng thành công cảm xúc “ngạc nhiên” từ camera. 49 Hình 5.11. Kết quả điều khiển ứng dụng Led 50 ii
- LIỆT KÊ BẢNG Bảng Trang Bảng 2.1. Thông số kỹ thuật của Arduino Uno 5 Bảng 2.2. Các hàm xử lý hình ảnh khác trong Matlab . 19 Bảng 5.1. Thống kê kết quả nhận dạng từ ảnh chụp . .50 Bảng 5.2. Thống kê kết quả nhận dạng từ camera .50
- TÓM TẮT Bài toán nhận dạng mới xuất hiện trong khoảng vài thập niên trở lại đây nhưng đã có rất nhiều nghiên cứu về nó. Cùng với các hình thức nhận dạng như: nhận dạng giọng nói, chữ viết, dấu vân tay, mống mắt thì bài toán nhận dạng cảm xúc trên khuôn mặt người là bài toán khá mới mẻ và đang được chú ý tới. Đề tài: “Nhận dạng cảm xúc trên khuôn mặt” nghiên cứu xây dựng hệ thống huấn luyện và nhận dạng, điều khiển ứng dụng trên kit Arduino tương ứng với các cảm xúc nhận dạng được. Các nội dung nghiên cứu bao gồm: Tìm hiểu kit Arduino; Tìm hiểu các giải thuật huấn luyện và nhận dạng; Xây dựng các thuật toán nhận dạng cảm xúc trên khuôn mặt. Đề tài được xây dựng chủ yếu trên phần mềm Matlab, nhận dạng cảm xúc từ ảnh chụp có sẵn hoặc ảnh lấy từ camera. Mô hình do nhóm thực hiện đã đạt được khoảng 95% mục tiêu do nhóm đặt ra. Hiệu suất nhận dạng cảm xúc cao nhất ở cảm xúc vui, thấp nhất ở cảm xúc buồn, điều khiển các ứng dụng trên kit Arduino. Tuy nhiên, việc nhận dạng còn phụ thuộc nhiều vào môi trường huấn luyện, nhận dạng còn chậm và chỉ nhận dạng cảm xúc với đúng người được huấn luyện. Chưa mở rộng nhận dạng cho khuôn mặt bất kỳ.
- CHƯƠNG 1. TỔNG QUAN Chương 1. TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ Trong những năm gần đây, mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ nhưng xử lý ảnh đang được nghiên cứu và phát triển với tốc độ nhanh chóng bởi các trung tâm nghiên cứu, trường đại học và học viện với rất nhiều ứng dụng trên các lĩnh vực khác nhau[1]. Đi cùng với sự phát triển đó, phần lớn các thiết bị điện tử đều dần phát triển theo hướng tự động hóa, thông minh, có thể giao tiếp, tương tác trực tiếp với người dùng. Đáp ứng được điều đó rất nhiều bài toán, giải thuật lần lượt giải quyết được vấn đề. Một trong số đó là bài toán nhận dạng, phát triển ngày càng hiện đại, chính xác, an toàn và bảo mật cao. Nói đến giao tiếp thì khuôn mặt là nơi con người thể hiện cảm xúc: tình cảm, suy nghĩ, thái độ Nên để con người và thiết bị điện tử có thể tương tác được với nhau thì bài toán phải xây dựng trên nền tảng chỉ ra những thay đổi cơ bản trên khuôn mặt đó. Cùng với các hình thức nhận dạng khác như: nhận dạng giọng nói, chữ viết, dấu vân tay, mống mắt thì bài toán nhận dạng cảm xúc trên khuôn mặt người đang được nhóm thực hiện đề tài quan tâm. Xuất phát từ mục tiêu tiếp cận, bổ sung các kiến thức mới, cũng như củng cố lại những kỹ năng kiến thức trong suốt quá trình học tập tại trường. Đồng thời nghiên cứu sâu hơn về ứng dụng của xử lý ảnh, nghiên cứu các thuật toán nhận dạng cảm xúc trên khuôn mặt và thực hiện nhận dạng cảm xúc rồi nhúng dữ liệu xuống kit Arduino[3]. Do đó, nhóm thực hiện đồ án chọn đề tài: “Nhận dạng cảm xúc trên khuôn mặt”. 1.2. MỤC TIÊU Mục tiêu của đề tài là xây dựng hệ thống nhận dạng cảm xúc trên khuôn mặt với đầu vào là ảnh cảm xúc khuôn mặt từ ảnh chụp sẵn hoặc ảnh chụp trực tiếp từ camera. Với từng cảm xúc nhận dạng được rồi nhúng dữ liệu điều khiển tương ứng xuống kit Arduino. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1
- CHƯƠNG 1. TỔNG QUAN 1.3. NỘI DUNG NGHIÊN CỨU Mục tiêu xây dựng hệ thống: “Nhận dạng cảm xúc trên khuôn mặt” như trên thì nhóm sẽ thực hiện những nội dung như sau : NỘI DUNG 1: Tìm hiểu kit Arduino. NỘI DUNG 2: Cài đặt nguồn thư viện cho kit Arduino, camera trên Matlab. NỘI DUNG 3: Tìm hiểu các thuật toán huấn luyện, nhận dạng cảm xúc trên khuôn mặt. NỘI DUNG 4: Xây dựng thuật toán tạo cơ sở dữ liệu huấn luyện cảm xúc. NỘI DUNG 5: Xây dựng hệ thống nhận dạng cảm xúc trên khuôn mặt, lập trình các ứng dụng nhúng dữ liệu được trên kit Arduino. NỘI DUNG 6: Đánh giá kết quả thực hiện. 1.4. GIỚI HẠN Mô hình gồm có kit Arduino Uno, máy tính Laptop để thực hiện hệ thống nhận dạng cảm xúc mặt người trên phần mềm Matlab sau đó nhúng dữ liệu xuống kit Arduino. 1.5. BỐ CỤC Đồ án tốt nghiệp: “Nhận dạng cảm xúc trên khuôn mặt” trình bày trong 6 chương với bố cục như sau: Chương 1: Tổng quan Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: Cơ sở lý thuyết. Giới thiệu tổng quan về Matlab, kit Arduino, các cảm xúc trên khuôn mặt. Giới thiệu về phép phân tích thành phần chính PCA-Eigenfaces và áp dụng vào bài toán nhận dạng cảm xúc trên khuôn mặt người. Giới thiệu các hàm xử lý trong Matlab. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2
- CHƯƠNG 1. TỔNG QUAN Chương 3: Thiết kế và Tính toán Phân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế về chương trình cho hệ thống nhận dạng cảm xúc trên khuôn mặt người được viết trên phần mềm Matlab. Hướng dẫn cài đặt các gói hỗ trợ phần cứng Arduino và camera trên phần mềm Matlab. Chương 4: Thi công hệ thống Xây dựng chương trình hoàn chỉnh cho toàn hệ thống, các hàm, các lưu đồ, các chương trình được sử dụng. Tạo tập tin huấn luyện. Viết tài liệu hướng dẫn sử dụng, quy trình thao tác. Chương 5: Kết quả, Nhận xét và đánh giá Nêu các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá kết quả thực thi được. Chương 6: Kết luận và Hướng phát triển Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2. CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU PHẦN CỨNG 2.1.1 Kit Arduino Arduino ra đời tại thị trấn Ivrea – Italy, được giới thiệu vào năm 2005 như một công cụ cho sinh viên tìm tòi, học hỏi, phát triển, nhưng đến nay Arduino đã được sử dụng rộng rãi trên thế giới và chứng tỏ được hiệu quả thông qua vô số ứng dụng từ người dùng. Arduino là một board mạch vi xử lý được dùng để tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hay các thiết bị khác. Một board Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung đã làm nên board mạch với nhiều thế mạnh hơn so với các vi điều khiển khác như: chạy được trên nhiều hệ điều hành khác nhau (Windows, Linux ), dễ dàng lắp ráp và mở rộng phần cứng, phát triển dựa trên nguồn mở, dễ dàng chia sẻ mã nguồn với nhau mà không phải lo lắng ngôn ngữ hay hệ điều hành đang sử dụng Arduino thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz, các board Arduino hiện tại được lập trình thông qua cổng USB. 2.1.2 Kit Arduino Uno Kit Arduino có nhiều phiên bản với tính năng và mục đích sử dụng khác nhau. Board Arduino Uno là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó. Arduino Uno là một board mạch vi điều khiển dựa trên chip Atmega328 với 14 chân vào/ra bằng tín hiệu số được đánh số từ 0 đến 13, trong đó 6 chân có thể tạo xung PWM được đánh dấu “~” trước mã số của chân, 6 chân nhận tín hiệu analog được đánh dấu từ A0 đến A5, có thể sử dụng như là 6 chân I/O số. Có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 30 mA. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Vi điều khiển Atmega328P họ 8 bit Điện áp hoạt động 5V Điện áp đầu vào 7-12V Điện áp đầu vào giới hạn 6-20V Số chân Digital I/O 14 (có 6 chân PWM) Số chân Analog 6 ( độ phân giải 10bit) DC current per I/O pin 20mA DC current for 3.3V pin 50mA Flash Memory 32KB (ATmega328P) SRAM 2KB (Atmega328P) EEPROM 1KB (Atmega328P) Clock Speed 16MHZ Length 68.6 mm Width 53.4 mm Weight 25 g Bảng 2.1. Thông số kỹ thuật Arduino Uno. Hình 2.1. Cấu trúc phần cứng của Arduino Uno. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Cổng USB(1): Cổng USB dùng để kết nối với máy tính và thông qua đó để upload chương trình cho Arduino từ máy tính, đồng thời cung cấp nguồn cho Arduino. Nguồn (2 và 4): Sử dụng jack cắm nguồn 2.1mm (cực dương ở giữa) hoặc có thể dùng chân Vin và GND để cấp nguồn cho Arduino. Board mạch hoạt động ở điện áp ngoài khoảng 5-12V, nhưng nếu cấp nguồn lớn hơn 5V thì ngõ ra chân 5V sẽ lớn hơn, không nên cấp nguồn lớn hơn 12V vì board sẽ nóng và dễ bị hỏng. Chân 5V và chân 3.3V là 2 chân lấy nguồn từ Arduino ra ngoài, không được cấp nguồn vào nó, sẽ làm hỏng. Chip Atmega328P(6): Có 32KB bộ nhớ flash trong đó có 0.5KB dùng cho bootloader, 2KB SRAM, 1KB EEPROM. Output và Input(3 và 5): Arduino có 14 chân Digital với các chức năng Input và Output. 2.2 TỔNG QUAN VỀ MATLAB Matlab (Matrix Laboratory ) là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks, là ngôn ngữ lập trình thực hành bậc cao được sử dụng nhiều để giải các bài toán kỹ thuật. Matlab tích hợp việc tính toán thể hiện kết quả cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện được lập trình sẵn cho phép người dùng có được những ứng dụng như: Tính toán các phép toán học thông thường, tính toán ma trận. Lập trình tạo ra những ứng dụng mới. Cho phép mô phỏng các mô hình thực tế. Phân tích, khảo sát, hiển thị dữ liệu. Với phần mềm đồ họa cực mạnh. Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn ngữ lập trình truyền thống như C, C++, và Fortran. Matlab là một hệ thống tương giao chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vector và có thể sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh gọi từ Matlab. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Matlab được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học. Matlab cung cấp giải pháp chuyên dụng gọi là Toolbox. Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file). Hệ thống Matlab gồm 5 phần chính: Ngôn ngữ Matlab: cho phép lập trình từ các ứng dụng nhỏ đến phức tạp. Đó là các ngôn ngữ cao về ma trận và mảng, các dòng lệnh, các hàm, cấu trúc dữ liệu vào. Môi trường làm việc: bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu. Nó cũng bao gồm các công cụ phát triển, quản lý, gỡ rối và định hình M-file. Xử lý đồ họa: bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động. Cung cấp các giao diện tương tác giữa người sử dụng và máy tính. Thư viện toán học: các hàm cơ bản như cộng, trừ, nhân, chia, sin, cos và các hàm phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library. Giao diện người dùng (Application Program Interface): cho phép viết chương trình tương tác với các ngôn ngữ khác C, Fortran BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7
- CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 2.3 CÁC CẢM XÚC TRÊN KHUÔN MẶT Cảm xúc trên khuôn mặt là một quy luật rất quan trọng trong giao tiếp giữa người với người. Những công nghệ giao tiếp tiến bộ nhanh chóng gần đây cùng với sự phát triển của khoa học máy tính đã cho chúng ta những hi vọng rằng cảm xúc trên khuôn mặt sẽ trở thành một giải pháp then chốt trong lĩnh vực giao diện người - máy và các hướng phát triển giao tiếp khác trong tương lai. Trong các cách biểu đạt ngôn ngữ cơ thể, cảm xúc là nơi thể hiện rõ nhất những gì mà người khác cảm nhận được. Qua nghiên cứu của nhà tâm lý học Mehrabian năm 1968 đã chỉ ra rằng khi một thông điệp từ một người chuyển tới người khác, phần từ ngữ chỉ chiếm 7% ảnh hưởng, 38% âm lượng của giọng nói, trong khi ngôn ngữ cơ thể của người nói chiếm tới 55% ảnh hưởng của thông điệp đó. Nhận dạng cảm xúc được ứng dụng trong rất nhiều lĩnh vực khác nhau như y học[4], tương tác giao diện giữa người và máy[5], chuyển động thân người Trong công trình nghiên cứu năm 1960, tiến sĩ, nhà tâm lý học Paul Ekman đã chỉ ra rằng mỗi người chúng ta đều có thể thể hiện 6 cảm xúc cơ bản trên khuôn mặt đó là: vui, buồn, tức giận, sợ hãi, ghê tởm và ngạc nhiên. Tuy nhiên mới đây các nhà khoa học thuộc Đại học Glasgow (Scoland) đã bác bỏ quan điểm này khi chỉ ra rằng chỉ có 4 biểu hiện cơ bản trên khuôn mặt chúng ra. Đó là vui, buồn, tức giận, ngạc nhiên (bao hàm sợ hãi). Trong đề tài đồ án tốt nghiệp này, chúng em xây dựng một hệ thống nhận dạng cảm xúc dựa trên 4 cảm xúc cơ bản trên đó là: vui, buồn, tức giận, ngạc nhiên và một trạng thái không có cảm xúc gọi “bình thường”. Các dấu hiệu nhận biết cảm xúc: Vui: Thông qua nét mặt rạng rỡ trên khuôn mặt với nụ cười tươi, hai khóe miệng giang rộng chính là dấu hiệu đơn giản để nhận biết được cảm xúc này. Điều này dễ tạo cho người khác cảm thấy gần gũi thân thiện. Buồn: Với biểu hiện của đôi mắt trùng xuống, lông mày hạ thấp, thần thái giảm, sầu não. Tức giận: Cảm xúc này được thể hiện qua khuôn mặt với lông mày kéo sát lại gần nhau, ánh mắt hung dữ, cau có, môi mím chặt, điều này khiến cho đối phương cảm giác sợ hãi khi nhìn trực diện. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8
- S K L 0 0 2 1 5 4



