《基于caffe的表情识别》系列文章索引:http://blog.csdn.net/pangyunsheng/article/details/79434263

一、数据集介绍

在本实验中我采用的数据集是fer2013人脸表情数据集。fer2013,即Kaggle facial expression recognition challenge dataset,是目前较大的人脸表情识别公开数据库。
    该数据库共包含35887张人脸图片,其中训练集28709张、验证集3589张、测试集3589张。数据库中的图片均为灰度图片,大小为48*48像素,样本被分为0=anger(生气)、1=disgust(厌恶)、2=fear(恐惧)、3=happy(开心)、4=sad(伤心)、5=surprised(惊讶)、6=normal(中性)七类,各种类型分布基本均匀。
    数据分布(训练集):angry:3995 、disgust:436 、fear:4097 、happy:7215 、sad:4830 、surprise:3171 、normal:4965

二、数据集处理

  1.下载数据集

fer2013数据库实际为kaggle一个比赛项目提供的数据,官方给出的文件格式为csv,我手动将其转换成了图片格式,提供下面链接供大家下载。

https://pan.baidu.com/s/1i6p40jb

下载完成后解压得到三个目录,分别是训练集、验证集和测试集的图片数据,每个目录下都有7个子目录,分别存储了7类不同表情的图片数据。

  2.准备数据

首先我创建了一个名为faceR的文件夹,用来存放该实验用到的所有文件和数据,然后在该目录下创建了一个名为data的文件夹用来存放我们的数据集,并将刚刚下载的三个文件夹(训练集、验证集、测试集)放到data目录下。

1)准备labels.txt文件,表示分类序号于分类对应关系
    在data目录下创建一个空白文档,取名为labels.txt,并输入下面内容:

2)准备train.txt,标明训练图片路径及其对应分类,路径和分类序号直接用空格分隔
    在data目录下使用下面指令,可以使train目录下的7类训练集图片数据生成train.txt文件

ls train/0 | sed "s:^:0/:" | sed "s:$: 0:" >> train.txt
ls train/1 | sed "s:^:1/:" | sed "s:$: 1:" >> train.txt
ls train/2 | sed "s:^:2/:" | sed "s:$: 2:" >> train.txt
ls train/3 | sed "s:^:3/:" | sed "s:$: 3:" >> train.txt
ls train/4 | sed "s:^:4/:" | sed "s:$: 4:" >> train.txt
ls train/5 | sed "s:^:5/:" | sed "s:$: 5:" >> train.txt
ls train/6 | sed "s:^:6/:" | sed "s:$: 6:" >> train.txt

得到的train.txt文件(仅部分):

3)准备val.txt,标明验证图片路径及其对应分类
    同理,在data目录下将指令修改为如下,可以使val目录下的7类训练集图片数据生成train.txt文件

ls val/0 | sed "s:^:0/:" | sed "s:$: 0:" >> val.txt
ls val/1 | sed "s:^:1/:" | sed "s:$: 1:" >> val.txt
ls val/2 | sed "s:^:2/:" | sed "s:$: 2:" >> val.txt
ls val/3 | sed "s:^:3/:" | sed "s:$: 3:" >> val.txt
ls val/4 | sed "s:^:4/:" | sed "s:$: 4:" >> val.txt
ls val/5 | sed "s:^:5/:" | sed "s:$: 5:" >> val.txt
ls val/6 | sed "s:^:6/:" | sed "s:$: 6:" >> val.txt

得到的val.txt文件(仅部分):

4)查看已准备的文件

  3.生成lmdb文件

lmdb是caffe使用的一种输入数据格式,在训练前,我们必须把图片转换成caffe支持的格式才能进行训练,caffe中提供了create_imagenet.sh脚本,可以使图片转换为lmdb格式。
    首先在faceR目录下创建一个文件夹,命名为lmbd。
    将caffe/examples/Imagenet目录下的create_iamgenet.sh脚本拷贝到项目文件夹faceR的目录下,并修改其中的部分内容:

执行create_iamgenet.sh脚本:


    查看生成的lmdb格式文件:


    完成!!!

  4.生成均值(mean_file)文件

可以用下面指令生成均值文件:


    查看均值文件:

完成!!!

至此,数据集的处理工作已全部完成,下一篇文章将会介绍如何搭建用于表情识别的卷积神经网络模型。

【深度学习】基于caffe的表情识别(二):数据集介绍及处理相关推荐

  1. 机器学习_深度学习毕设题目汇总——表情情感

    下面是该类的一些题目: 题目 人脸表情图像识别关键技术的分析与研究 在线学习环境下的表情识别算法及应用研究 基于图卷积网络的方面级情感分析方法研究 基于多特征融合的人脸表情识别研究 基于子空间学习的微 ...

  2. 基于深度学习的手写数字识别算法Python实现

    摘 要 深度学习是传统机器学习下的一个分支,得益于近些年来计算机硬件计算能力质的飞跃,使得深度学习成为了当下热门之一.手写数字识别更是深度学习入门的经典案例,学习和理解其背后的原理对于深度学习的理解有 ...

  3. 基于迁移深度学习的雷达信号分选识别

    基于迁移深度学习的雷达信号分选识别 人工智能技术与咨询 来源:<软件学报> ,作者王功明等 摘要: 针对当前雷达信号分选识别算法普遍存在的低信噪比下识别能力差.特征参数提取困难.分类器模型 ...

  4. 基于深度学习的手写数字识别、python实现

    基于深度学习的手写数字识别.python实现 一.what is 深度学习 二.加深层可以减少网络的参数数量 三.深度学习的手写数字识别 一.what is 深度学习 深度学习是加深了层的深度神经网络 ...

  5. 基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)

    摘要:基于深度学习的花卉检测与识别系统用于常见花卉识别计数,智能检测花卉种类并记录和保存结果,对各种花卉检测结果可视化,更加方便准确辨认花卉.本文详细介绍花卉检测与识别系统,在介绍算法原理的同时,给出 ...

  6. 【论文笔记】《基于深度学习的中文命名实体识别研究》阅读笔记

    作者及其单位:北京邮电大学,张俊遥,2019年6月,硕士论文 摘要 实验数据:来源于网络公开的新闻文本数据:用随机欠采样和过采样的方法解决分类不均衡问题:使用BIO格式的标签识别5类命名实体,标注11 ...

  7. 基于InceptionV3深度学习实现岩石图像智能识别与分类

    基于InceptionV3深度学习实现岩石图像智能识别与分类 文章目录 基于InceptionV3深度学习实现岩石图像智能识别与分类 总体流程 数据预处理 构建InceptionV3模型 训练.保存模 ...

  8. 基于深度学习的自然场景文字识别

    声明:本文来源,详细内容请参考原博文https://blog.csdn.net/xiaofei0801/article/details/72778223 1.1引言 传统光学字符识别主要面向高质量的文 ...

  9. 基于深度学习的高精度塑料瓶检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度塑料瓶检测识别系统可用于日常生活中或野外来检测与定位塑料瓶目标,利用深度学习算法可实现图片.视频.摄像头等方式的塑料瓶目标检测识别,另外支持结果可视化与图片或视频检测结果的导 ...

最新文章

  1. Java入门教程五(数字和日期处理)
  2. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结
  3. stm32时钟树_STM32中的时钟
  4. RFM模型——构建数据库营销的商业战役!(转)
  5. Linux基础(2)-基础命令和bash的基础特性(1)
  6. 编译原理-FIRST表-FOLLOW表-LL1表(含python代码)
  7. BLE蓝牙协议栈杂谈
  8. 汽车故障诊断技术【2】
  9. Inception模块 GooLeNet网络
  10. 外卖券-外卖优惠券-原生微信小程序
  11. Neos.Flow UnitTestBootstrap
  12. rk3399pro buildroot SDK编译及烧录
  13. FPGA图像工程师的六脉神剑——“选扫掌仿习练”
  14. 2020中科大计算机分数线,2020年中国科学技术大学强基计划入围分数线,录取分数线,中国科大强基计划笔试、面试...
  15. 升级到AndroidX,遇到appComponentFactory 错误
  16. Linux命令之复制文件或目录cp
  17. COALESCE()函数 一个非常有用的函数
  18. 阐明Linux文件系统的潜藏权限
  19. python去除空格和换行
  20. 联想Y400win10基础上在安装win7

热门文章

  1. php 将一个字符串分割为数组
  2. Unity中 yield return 1 的误区
  3. 鬼节聊聊手写proxy思路
  4. 计算机用户的创建文件夹,在Windows中如何使用cmd创建多个文件夹
  5. uwp应用隐藏标题栏
  6. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-934 序列
  7. 知识点滴 - Unicode里的汉字结构描述符
  8. C语言小题,用字符数组输出一个菱形图。
  9. Gmail 创始人:“我本以为 Google 会倒闭!”
  10. 《nginx黑马教程》