Perancangan Pengenalan Emosi melalui Ekspresi pada Wajah Menggunakan Convolutional Neural Network (CNN)
طراحی شناسایی هیجان از طریق بیان چهره با استفاده از شبکه عصبی پیچشی (CNN)
چکیده
Pengenalan emosi melalui ekspresi wajah merupakan salah satu bidang penelitian dalam computer vision dan artificial intelligence yang berkembang pesat. Kemampuan sistem dalam mengenali ekspresi wajah manusia dapat diterapkan pada berbagai bidang, seperti pendidikan, pelayanan publik, kesehatan, sistem keamanan, hingga interaksi manusia dengan komputer (Human Computer Interaction). Penelitian ini bertujuan merancang sistem pengenalan emosi manusia secara real-time menggunakan algoritma Convolutional Neural Network (CNN). Dataset yang digunakan terdiri atas tujuh kategori emosi, yaitu angry, disgust, fear, happy, neutral, sad, dan surprise. Proses penelitian meliputi preprocessing dataset, augmentasi data menggunakan ImageDataGenerator, pelatihan model CNN menggunakan TensorFlow Keras, penyimpanan bobot model, serta implementasi deteksi emosi secara real-time menggunakan webcam dan OpenCV. Model CNN dibangun menggunakan beberapa lapisan konvolusi, fungsi aktivasi ReLU, Max Pooling, Dropout, Flatten, Fully Connected Layer, serta Softmax sebagai lapisan klasifikasi. Hasil penelitian menunjukkan bahwa model mampu mengenali ekspresi wajah secara real-time dengan tingkat akurasi yang baik serta mampu mengklasifikasikan tujuh kategori emosi berdasarkan citra wajah yang diperoleh dari kamera. Sistem yang dikembangkan diharapkan dapat menjadi dasar pengembangan aplikasi pengenalan emosi pada berbagai bidang yang membutuhkan interaksi otomatis antara manusia dan komputer. Facial Emotion Recognition (FER) is an application of computer vision and artificial intelligence that enables a system to automatically recognize facial expressions. This study aims to design and implement a real-time system for recognizing seven emotion categories based on a Convolutional Neural Network (CNN) using a webcam. The dataset consists of seven classes: angry, disgust, fear, happy, neutral, sad, and surprise. Images are processed in grayscale format with a size of 48 × 48 pixels and augmented using ImageDataGenerator. The CNN model is built with convolutional layers, ReLU, Max Pooling, Dropout, Flatten, a fully connected layer, and Softmax, using the Adam optimizer, a batch size of 64, and 50 epochs. Evaluation was based on training accuracy, validation accuracy, training loss, and validation loss. The results show that the model achieved a training accuracy of 95.10% and a validation accuracy of 93.40%, with a training loss of 0.19 and a validation loss of 0.27 at the 50th epoch. The implementation of OpenCV and the Haar Cascade enables real-time face detection and emotion classification via a webcam. Black Box Testing confirmed that all the application’s main functions operate as designed. This study contributes to the field by integrating CNNs with webcams; however, testing on independent datasets as well as measurements of FPS and latency are required in future research.
شناسایی هیجان از طریق بیان چهره یکی از حوزههای پژوهشی در بینایی ماشین و هوش مصنوعی است که به سرعت در حال توسعه میباشد. توانایی سیستمها در شناسایی بیان چهره انسان میتواند در حوزههای مختلفی مانند آموزش، خدمات عمومی، سلامت، سیستمهای امنیتی و همچنین تعامل انسان و رایانه (Human Computer Interaction) به کار گرفته شود. هدف این پژوهش، طراحی یک سیستم شناسایی هیجان انسان به صورت بلادرنگ با استفاده از الگوریتم شبکه عصبی پیچشی (CNN) است. دادههای مورد استفاده شامل هفت دسته هیجانی است: angry، disgust، fear، happy، neutral، sad و surprise. فرایند پژوهش شامل پیشپردازش دادهها، افزایش داده با استفاده از ImageDataGenerator، آموزش مدل CNN با استفاده از TensorFlow Keras، ذخیره وزنهای مدل و پیادهسازی شناسایی هیجان به صورت بلادرنگ با استفاده از وبکم و OpenCV میباشد. مدل CNN با استفاده از چندین لایه کانولوشن، تابع فعالسازی ReLU، Max Pooling، Dropout، Flatten، لایه Fully Connected و Softmax به عنوان لایه طبقهبندی ساخته شده است. نتایج پژوهش نشان میدهد که مدل قادر است بیان چهره را به صورت بلادرنگ با دقت مناسبی شناسایی کند و هفت دسته هیجانی را بر اساس تصویر چهره دریافتی از دوربین طبقهبندی نماید. سیستم توسعهیافته میتواند مبنایی برای توسعه برنامههای شناسایی هیجان در حوزههایی باشد که نیازمند تعامل خودکار بین انسان و رایانه هستند. شناسایی هیجان چهره (Facial Emotion Recognition, FER) یکی از کاربردهای بینایی ماشین و هوش مصنوعی است که امکان شناسایی خودکار بیان چهره را برای سیستم فراهم میکند. این پژوهش با هدف طراحی و پیادهسازی یک سیستم بلادرنگ برای شناسایی هفت دسته هیجانی بر اساس شبکه عصبی پیچشی (CNN) با استفاده از وبکم انجام شده است. دادهها شامل هفت کلاس angry، disgust، fear، happy، neutral، sad و surprise هستند. تصاویر به صورت خاکستری و با اندازه ۴۸ × ۴۸ پیکسل پردازش و با ImageDataGenerator افزایش داده شدهاند. مدل CNN با لایههای کانولوشن، ReLU، Max Pooling، Dropout، Flatten، لایه Fully Connected و Softmax، با استفاده از بهینهساز Adam، اندازه دسته ۶۴ و ۵۰ دوره (epoch) ساخته شده است. ارزیابی بر اساس دقت آموزش، دقت اعتبارسنجی، خطای آموزش و خطای اعتبارسنجی انجام شد. نتایج نشان داد مدل به دقت آموزش ۹۵.۱۰٪ و دقت اعتبارسنجی ۹۳.۴۰٪، با خطای آموزش ۰.۱۹ و خطای اعتبارسنجی ۰.۲۷ در دوره پنجاهم دست یافته است. پیادهسازی OpenCV و Haar Cascade امکان شناسایی چهره و طبقهبندی هیجان به صورت بلادرنگ از طریق وبکم را فراهم میکند. آزمون Black Box نشان داد که تمامی عملکردهای اصلی برنامه مطابق طراحی عمل میکنند. این پژوهش با ادغام CNN و وبکم به حوزه مربوطه کمک میکند؛ با این حال، آزمون بر روی دادههای مستقل و همچنین اندازهگیری FPS و تأخیر در پژوهشهای آتی مورد نیاز است.