【深度学习】基于caffe的表情识别(一):概述

释放双眼,带上耳机,听听看~!

随着以深度学习为代表的人工智能技术的发展,人工智能现已涉及到我们生活的方方面面,也有越来越多的人转行开始从事人工智能技术的研究和实现。本人也刚刚接触深度学习不久,凭着兴趣爱好在业余时间学习了一些深度学习方面的基本知识和技能,因此想把自己在最近一段时间内学到的东西写下来。接下来我会写一系列文章,主要以表情识别为核心问题,以caffe为主要框架,并将涉及云计算、人脸检测等一系列技术,向大家介绍一个完整的深度学习模型的开发流程。系列文章如下:

    【深度学习】基于caffe的表情识别(一):概述

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

    【深度学习】基于caffe的表情识别(三):搭建网络结构

    【深度学习】基于caffe的表情识别(四):在Intel AI DevCloud上训练模型

    【深度学习】基于caffe的表情识别(五):使用python接口测试

    【深度学习】基于caffe的表情识别(六):加入基于opencv的人脸检测

一、总述

** 
1.文章内容介绍**

    本文主要实现了一个人脸检测+表情识别的功能。具体来说就是给定一张彩色图片(图片可以是一个人的半身照也可以是全身照),我们可以检测出这张图片的人脸位置并裁剪下来,送到我们自己做的表情识别模型中,得到这张图中人的表情。文章的重点在于表情识别部分,后面的第二到五篇文章我将对表情识别中的数据集、网络结构、训练过程以及测试做详细介绍,最后一篇文章简要介绍基于opencv的人脸检测的实现。

** 
2.提前准备**

读者需要对神经网络有基本的了解(至少知道一些概念如前向传播、反向传播、梯度下降等等)
读者需要了解一些卷积神经网络(CNN)的基本知识(可以百度解决,看几篇文章就会懂CNN的大概原理)
读者需要对caffe有基本了解(不需要对caffe很熟悉,用caffe跑过mnist数据集就能看懂后面的文章)

** 
**3.开发环境

操作系统:Linux操作系统,我是在ubuntu16.04下进行开发的,如果读者是windows用户,可以考虑装个虚拟机。

深度学习框架:caffe

开发语言:python

Intel AI DevCloud,这是intel提供的一个云服务,是我们用来做训练时用的,比本地笔记本快的不止几十倍。

二、表情识别

    表情识别,顾名思义就是让机器去识别人的表情。在这次实验中,我们使用卷积神经网络来构建一个表情识别模型,通过输入人脸图片得到输出人脸表情。得到的表情共有7种,分别是:生气(anger)、厌恶(digust)、恐惧(fear)、开心(happy)、伤心(sad)、惊讶(surprised)、中性(normal)。

三、caffe

    Caffe,全称Convolutional Architecture for Fast Feature Embedding。是
一个清晰,可读性高,快速的深度学习框架,在视频、图像处理方面应用较多。
作者是贾扬清,加州大学伯克利的ph.D,现就职于Facebook。这是百度百科上给出的caffe介绍。
相信当你认真读这系列文章时,你已经对深度学习或是对卷积神经网络有一个初步的了解了,因为事实上这系列文章并不是介绍深度学习的入门知识的,是希望能够帮助大家快速地开发一些简单的卷积神经网络模型,从而加强对深度学习的认识。该系列文章对读者的要求包含读者需要用caffe跑过一次mnist数据集,因此如果你现在对caffe一无所知或是电脑上还没有编译caffe,那么首先要做的就是在自己的电脑上安装编译caffe,
我建议最好还要用caffe跑一次mnist数据集再来继续阅读该系列文章后面的内容。
在这里我不要脸地附上我总结的caffe安装编译过程,也是参考了很多版本,是在ubuntu16.04下编译的,其他版本的操作系统可以百度解决。
Ubuntu16.04下caffe安装编译全过程(CPU)

四、Intel AI DevCloud

    我们知道神经网络的关键部分就在于训练,然而由于深层次的网络结构和十分庞大的数据集,使得训练过程对处理器的要求十分高,以至于通常我们台式机和笔记本的计算能力是远远不够的,因此需要有强大计算能力的处理器集群来为我们的训练提供计算服务,Intel AI DevCloud就是一个为我们训练网络模型提供计算的云服务。这里我们只简要介绍这样一门技术,让读者对我们实验中所使用的技术有一个初步了解,后面我将会详细介绍如何使用它训练我们的网络模型。

五、人脸检测

    在实验中,我们只是调用opencv中人脸检测的相关接口,并不会详细介绍如何去实现人脸检测,因为我们的重点在于表情识别,加入人脸检测是为了使表情识别的效果更好,因为我们日常生活中获得的图片往往不只有人的脸部,还可能会有人的身体甚至其他任何东西,因此需要通过人脸检测功能将我们所关注的人脸部分截取下来,再做识别,提高识别率。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MongoDB数据建模小案例:朋友圈评论内容管理

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索