前言:
人脸表情识别有三大主流数据集rafdb、affectnet、ferplus,之前跑rafdb精度挺正常的,但是另外两个数据集复现不出来精度,经过几个月的踩坑,我发现其实是数据集的原因。
我在官方找的AffectNet数据集有几十个G,都是没有裁剪过的,我下载下来都费劲,完整跑一次要两周...并且affectnet和ferplus都是按表情类别分文件夹存储的,而Raf-db是所有训练集都放在train文件当中,然后会有一个标签文件(csv文件)指明哪张图片属于什么类别,再用dataset文件将他们关联起来,而另外两个数据集都不是这种结构的,跑出来的精度就会差很多。 于是仿照Raf-db的思路,我找到处理之后的AffectNet和FERPlus数据集,并且仿照rafdb写了一份dataset.py文件,整个数据集结构和raf-db的目录结构一样,跑出来精度就恢复正常了!affectnet大概是20-40epock之内就能出最优结果,ferplus大概需要100-200epock出最优结果。并且裁剪处理之后的affectnet只有4G多,方便多了。
接下来看一下数据集的结构:
数据集结构:
下面看一下处理之后的AffectNet和FERPlus数据集:
AffectNet:
总目录结构:
训练集(28w+张):
测试集4k张(每个类别500张):
下面还有7分类和8分类的标签文件以及对应的dataset文件,使用方式可以参考rafdb,没用过的可以咨询我,这里就不一一赘述了。
FERPLUS:
总目录结构:
3.5w+张:训练集+测试集 (这里训练集和测试集放一起,最后3千多张是测试集)
后面也有对应训练集和测试集的标签,以及dataset文件,也是和raf-db一样的使用方式。
使用方式:
需要数据集的可以后台私我,看到之后会回复。