Pytorch训练表情识别之笑脸识别

Pytorch训练表情识别之笑脸识别

一、数据下载
首先是数据下载,话不多说,直接上百度云链接,这是一个只有笑脸和无表情的数据集:
链接:https://pan.baidu.com/s/11K1C6nYfa9bbnsIWsvRGKg
提取码:1tl7
这个链接是整个项目的代码和数据,不想自己写代码的可以直接下载这个:
链接:https://pan.baidu.com/s/1SVfkzbGvYkBuu-puwwOhiw
提取码:iim8
二、数据处理
Pytorch训练表情识别之笑脸识别_第1张图片

解压下载好的数据,里面已经分配好了train和val,这时候就可以有很多方法来处理数据,反正最后只有能实现数据输入无误,标签正确就可以了。这里我就以我的方法举例。
打开项目,先看dataloader.py:
在这里插入图片描述

将这里改成自己数据的地址,后面的地址是生成的csv的地址,为了方便后续训练调用数据的。
Pytorch训练表情识别之笑脸识别_第2张图片

这部分代码是将datasets中的数据读取,然后把图像的名字和标签分别存到数组中,然后打乱顺序,使得每次传入模型中训练的数据中既包含笑脸也包含无表情的图片。然后将图像的名字和对应的标签存入csv中。
完成这一步之后,还需要修改以下dataset类,以保证投喂的数据是按照我想要的方式来投喂,打开data_set/FaceData.py
在这里插入图片描述

还是先修改路径,其他的部分可以根据代码的注释自行理解,就是先读取csv中的信息,然后通过csv的信息读取图像并简单处理图像,然后贴好标签。
三、模型建立
打开train_model/model.py,这里面的模型是我自己根据图像大小写的,因为数据集的图像是64x64,不能使用较大的模型,所以就自己写了一个也很简单。
四、开始训练
数据和模型都准备好了,就可以开始训练了,打开train.py,注释都已经很清楚了,主要是别忘了路径。
在这里插入图片描述

训练时的参数可以自己设置,修改好之后直接运行train.py,观察loss的情况和验证集的准确率。我训练完的准确率大概在91%。
Pytorch训练表情识别之笑脸识别_第3张图片

五、测试效果
运行predict.py,可以将验证集的图片的结果挨个输出,观察一下那些检测错了的图像,结果很尴尬。
Pytorch训练表情识别之笑脸识别_第4张图片
Pytorch训练表情识别之笑脸识别_第5张图片
Pytorch训练表情识别之笑脸识别_第6张图片
Pytorch训练表情识别之笑脸识别_第7张图片

Val数据集中有很多这样的图像,难怪识别的准确率上不去,删掉这些图像,准确率直接爆表,完美。

你可能感兴趣的:(深度学习,pytorch,python,人工智能)