论文题目:ResEmoteNet: Bridging Accuracy and Loss Reduction in Facial Emotion Recognition
领域:面部情绪识别
数据集:AffectNet 、 RAF-DB 、 FER2013 、 ExpW
模型架构:CNN+SE Block(Squeeze excitation) + Resnet+AAP
论文中的SE Block压缩激励结构如下:
ResEmoteNet的整体框架如下:
(1)CNN 模块,该模块具有三个卷积层,用于分层特征提取,然后进行批量归一化,以稳定学习并提高训练效率。在每一层之后应用 Max-pooling 以减少空间维度,降低计算成本并引入平移不变性以提高鲁棒性。
(2)SE模块,Squeeze使用全局平均池化将来自每个通道的空间数据压缩为全局描述符。 Excitation使用激活的门控机制来捕获通道依赖关系。SENet 的方法允许网络学习一系列注意力权重,突出每个输入元素对网络输出的重要性。
(3)残差Residual模块,解决神经网络中梯度消失和爆炸的常见问题。
(4)Adaptive Average Pooling(自适应平均池化) 是 CNN 中使用的一种池化层,无论原始输入维度如何,它都可以将输入信息聚合为恒定的输出大小。AAP 调整内核大小和步幅以达到特定的输出大小,而不是像传统的池化方法那样减小空间维度。它确保各种数据集和图层中的输出维度一致。
推理过程与结果:
GitHub:https://github.com/ArnabKumarRoy02/ResEmoteNet
下载预训练模型:ResEmoteNet Checkpoints - Google 云端硬盘
打开文件./eval_image.py,第16行代码:
python
checkpoint = torch.load('path/to/fer2013_model.pth', weights_only=True,
map_location=torch.device('cpu'))
第80行代码:
python
# Load the image file
image = cv2.imread('path/to/test1_image.jpg')
保存并运行该文件:
python
python eval_image.py
测试图像是这个:
测试结果如下: