OpenCV là một 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. Nó chứa hàng ngàn thuật toán tối ưu hoá, trong đó cung cấp một bộ công cụ phổ biến cho các ứng dụng về thị giác máy tính. OpenCV đang được sử dụng trong rất nhiều ứng dụng, từ khâu hình ảnh xem đường của Google tới việc chạy các chương trình nghệ thuật tương tác, nhận diện khuôn mặt, hay rô-bốt, xe hơi tự lái.
Trong đề tài này, OpenCV được sử dụng cho các thao tác đọc, xử lý ảnh cơ bản, phần cài đặt thuật toán có thể sử dụng thư viện Haar-Cascade trong việc phát hiện vị trí khuôn mặt để cải thiện tốc độ xử lý của bài toán. Tuy nhiên, với độ chính xác tương đối kém của nó thì Haar-Cascade chỉ được áp dụng ở công đoạn đòi hỏi tốc độ xử lý cao mà không yêu cầu quá cao về độ chính xác.
Thư viện Keras
Keras là một thư viện được phát triển vào năm 2015 bởi François Chollet, là một kỹ sư nghiên cứu lĩnh vực học sâu tại google. Nó là một thư viện mã nguồn mở hàng đầu cho mạng nơ-ron nhân tạo được viết bởi ngôn ngữ python. Keras là một API bậc cao có thể sử dụng chung với các thư viện học sâu nổi tiếng như tensorflow(được phát triển bởi google), Microsoft Cognitive Toolkit (được phát triển bởi microsoft), theano (người phát triển chínhYoshua Bengio). Keras có một số ưu điểm như :
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. Thư viện Numpy
NumPy là một từ viết tắt của "Numeric Python" hoặc "Numerical Python". Nó là một mô-đun mở rộng mã nguồn mở cho Python, cung cấp các chức năng biên dịch nhanh cho các thao tác toán học và số. Hơn nữa, NumPy làm phong phú ngôn ngữ lập trình Python với các cấu trúc dữ liệu mạnh mẽ để tính toán hiệu quả các mảng và ma trận đa chiều. Việc thực hiện thậm chí là nhằm vào ma trận và mảng khổng lồ. Bên cạnh đó các mô-đun cung cấp một thư viện lớn các chức năng toán học cấp cao để hoạt động trên các ma trận và mảng.
NumPy dựa trên hai mô đun Python trước đó về xử lý các mảng. Một trong số đó là Numeric. Numeric cũng giống NumPy như một môđun Python cho hiệu suất cao, tính toán số học, nhưng nó là lỗi thời ngày nay. Một bản tiền nhiệm khác của NumPy là Numarray, là một bản viết lại hoàn chỉnh của Numeric nhưng cũng không được ủng hộ. NumPy là sự sáp nhập của cả hai, nghĩa là nó được xây dựng trên mã của Numeric và các tính năng của Numarray.
Ưu điểm của việc sử dụng Numpy với Python:
Tính toán theo mảng
Triển khai hiệu quả các mảng đa chiều
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
3.1 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 cảm xúc trong điều kiện môi trường đầy đủ ánh sáng, độ tương phản thích hợp, không chịu ảnh hưởng bởi các yếu tố ngoại quan bên ngoài như: nguồn sáng có cường độ cao, ánh nắng mặt trời...
Hệ thống nhận dạng được 7 loại cảm xúc cơ bản: “vui vẻ” (happy), “buồn” (sad), “sợ hãi” (scared), “giận dữ” (angry), “ngạc nhiên” (surprised), “khó chịu” (disgust) và “bình thường” (neutral).
3.2 MÔ HÌNH HỆ THỐNG3.2.1 Sơ đồ khối của hệ thống 3.2.1 Sơ đồ khối của hệ thống