技术路线
1) 通过网络访问官方网站下载Fer2013和CK+图像库:
选择Fer2013和CK+作为数据集的原因如下:首先,Fer2013具有较大规模和多样性,有利于训练出泛化能力较强的模型;其次,CK+数据集虽然样本量相对较小,但提供了动态表情信息和较高的标注准确率,可以作为补充数据集,提高模型的表现。
2) 预处理数据:
检测人脸、数据扩充、人脸对齐,在把图片载入内存的过程中,通过构建一个队列,每次从外部磁盘读取部分数据打乱后放到内存中,内存只需维护队列大小的空间,这样避免直接全部载入内存导致内存不够用,耗时长。
3) 搭建神经网络:
选择MobileNetV2作为基本神经网络模型,并对网络进行微调,以便将其应用于表情识别任务。同时使用随机梯度下降优化器(SGDM)作为训练优化器,并设置训练选项,包括MiniBatchSize、MaxEpochs、InitialLearnRate等;还设置验证数据和验证频率,以便在训练过程中评估网络性能。
4) 训练模型,并将训练好的模型保存到一个单独的文件中。
5) 测试模型:
1、随机选择4个测试图像并显示它们的预测结果;
2、计算模型在测试集上的准确率;
3、绘制混淆矩阵以直观地展示模型的分类性能。
6) 编写功能代码。
7) 系统整合:
1、设计一个基于MATLAB App Designer的GUI界面,至少包括图片识别、视频识别、摄像头识别、模型选择、结果显示五个板块;
2、分别为打开图片、视频、摄像头、模型的按钮添加一个回调函数,以便在用户单击该按钮时执行相应的操作;在此回调函数中,可以使用相应功能的代码片段进行图片读取、预处理、表情识别和结果显示。
拟解决的主要问题
人脸微表情识别系统要实现上述预期功能,拟解决的主要问题有:
1) 准备合适的表情识别数据集,规模较大、表情类型多样、具有较高标注准确率的优先;
2) 人脸的检测、定位与跟踪;
3) 由于数据集较大且模型训练过程中需要不断的调试参数(例如特征图数量、卷积核大小等),模型训练耗时可能较长;
4) 优化神经网络模型的性能,提高表情识别的准确度;
5) 将训练好的表情识别模型与GUI图形操作界面整合到一个实时的人脸表情识别系统中;
6) 各个模式的程序算法设计实现、优化,以及保证各个模式之间能够流畅地来回切换且随时能够强制终止识别进程;提高系统运行时的稳定性、可靠性。