一.前言
人脸表情识别依然是计算机视觉中的研究重点,那就意味着它还有水文章的可能性。本专题将专门讨论各种表情识别的研究方法,当然我们从最简单的单一卷积网络开始。本文中的代码直接复制到电脑端(python)或者服务器(ipython)上都可以直接运行(ipython按顺序复制即可),如果有报错只需修改相应的版本或者留言交流。
软硬件配置介绍:
1.win10/11操作系统
2.python3.7以上
3.tensorflow2.4以上版本(2.0其它版本需要微调)
4.内存12G,显卡4G以上(没有独显倒是也能跑...)
(这个可爱的妹子就是JAFFE数据集中的图片)
二.数据预处理
在有些论文中,对于数据集的预处理不仅仅是导入之后做归一化处理。而是做特定的裁剪后只保留脸部,在这里我们不做特定的脸部裁剪(留到后续的文章)。JAFFE数据集的下载方式有很多种,你可以去其它的博客或者kaggle中白嫖。
我这里下载的JAFFE是以本地图片的形式保存的,如果你下载的是csv等其它格式,可以参考后续的博客。
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
data_path = '../jaffe/'
data_dir_list = os.listdir(data_path)
# img_rows = 256
# img_cols = 256
# num_channel = 1
img_data_list = []
for dataset in data_dir_list:
img_list = os.listdir(data_path+'/'+dataset)
print('装载文件来自于文件'+'{}\n'.format(dataset))
for img in img_list:
input_img = cv2.imread(data_path+'/'+dataset+'/'+img)
input_img_resize = cv2.resize(input_img, (128, 128))
img_data_list.append(input_img_resize)
img_data = np.array(img_data_list)
img_data = img_data.astype('float3