使用ResMaskingNet情绪识别模型的预训练文件进行情绪识别
前言:本文只介绍如何应用ResMaskingNet模型进行情绪识别应用,对于ResMaskingNet的模型架构以及训练过程并不做详细介绍
Paper:https://ieeexplore.ieee.org/document/9411919
Code:https://github.com/phamquiluan/ResidualMaskingNetwork
①下载代码
②创建虚拟环境:conda create -n py38_ResMaskingNet python=3.8
③环境安装: pip install rmn -i https://pypi.tuna.tsinghua.edu.cn/simple
④下载文件:虽然在代码中只要一运行就会自动下载,但是自动下载总是会有各种各样的错误,所以这里我选择手动下载,一共有三个文件。
文件1:https://github.com/phamquiluan/ResidualMaskingNetwork/releases/download/v0.0.1/Z_resmasking_dropout1_rot30_2019Nov30_13.32
文件2:https://github.com/phamquiluan/ResidualMaskingNetwork/releases/download/v0.0.1/deploy.prototxt.txt
文件3:https://github.com/phamquiluan/ResidualMaskingNetwork/releases/download/v0.0.1/res10_300x300_ssd_iter_140000.caffemodel
这三个文件下载好之后就放在ResidualMaskingNetwork-master
目录下就好。
⑤修改路径或文件名:找到ResidualMaskingNetwork-master\rmn\__init__.py
定位到第27、28行,仔细观察会发现,下载的checkpoint文件,其文件名是Z_resmasking_dropout1_rot30_2019Nov30_13.32
,但是当要使用checkpoint文件时,其path中定义的名称却是pretrained_ckpt
。
这里可能是因为我是手动下载的,如果自动下载可能是会重命名。这里只需要将path修改或者自己重命名checkpoint文件文件名。这里我是选择修改path,修改后如下:
checkpoint_url = "https://github.com/phamquiluan/ResidualMaskingNetwork/releases/download/v0.0.1/Z_resmasking_dropout1_rot30_2019Nov30_13.32"
local_checkpoint_path = "Z_resmasking_dropout1_rot30_2019Nov30_13.32"
⑥构建代码:这里我只参考了README.md
文件对图片中人物的情绪进行了识别,新建一个py文件,例如mytest.py。其中代码如下:
import cv2
from rmn import RMN
if __name__ == "__main__":
m = RMN()
image = cv2.imread("test.png")
results = m.detect_emotion_for_single_frame(image)
print(results)
image = m.draw(image, results)
cv2.imwrite("output.png", image)
效果:
对于视频文件中人物的情绪识别参考README.md文件即可,只要图片能识别,那视频应该问题也不大。