MobileNet实战:基于 MobileNet 的人脸微表情分类(Caffe)

本文介绍了使用MobileNet V1进行人脸微表情分类的实战项目,主要步骤包括数据集准备、模型设计、数据增强、训练和测试。通过Dlib关键点检测提取嘴唇ROI,基于预训练的MobileNet进行迁移学习,最终得到6x6的feature map。训练过程采用数据增强策略,并展示了训练结果的loss和accuracy曲线。
摘要由CSDN通过智能技术生成

MobileNet实战:基于 MobileNet 的人脸微表情分类(Caffe)

这一部分内容总共由下面四篇文章组成:

1. 前言

前面我们已经简要介绍了 MobileNet 的版本演进,这一篇我们将利用 MobileNet 来完成一个简单的人脸微表情分类项目。说的更具体一点这里用嘴唇来区分不同的为表情,也就是根据嘴型来做分类———无表情,微笑,大笑和嘟嘴,这四类微表情。

如果说这个项目是在探讨如何进行表情分类,显然是不合格的。这里只是举一个实战的例子,依附这个例子来说明是如何一步步思考的,因此也完全可以换成其他的任务。另外这里用的是 mobilenet V1,主要是 V1 可以找到比较齐全的资料,比如训练网络,部署网络,预训练好的参数等。

本文的人脸微表情分类项目来源于 言有三 的 《深度学习之图像识别》一书,在此基础上进行了补充和完善。本文中的所有代码都可以在 github 中获取。

2. 数据集

人脸相关的开源数据集很多,关于表情识别的也有一些,比如 GENKI 等。如果没有合适的也可以自己录或者爬,这里关于数据的搜集就不多说了。

下面我讲一下图片的特征的提取,因为我们做的是基于嘴唇的微表情(也可以理解为就是嘴唇)的分类任务,所以我们需要从人脸图片中提取出嘴唇这个局部特征。这里基于 opencv 来做这个任务,opencv 中至少有两个方法可以做这个任务。

  • 用 haarcascade_smile 模型来检查,但是这个效果不是太好
  • 用 Dlib 关键点检查,找到嘴唇的标记点,用一个矩形画出 bounding box, 最后将这个 bbox 放大 λ \lambda λ 倍(这里用的 1.5 ),进行裁剪得到最后的样本。

这里采用第二种方法,完整的代码可以参考 github。下图中黄色是检测到的嘴部的 ROI,绿色是最后放大 1.5 倍后的 ROI。

通过这种办法,最后得到的 ROI 的图片大概都在 100x100 左右,四类表情,总共 15106 张图片。然后选取 10%(1510 张) 作为测试集。

另外 caffe 提供的图像均值计算工具都是针对 lmdb 格式的数据的,如果我们直接采用 list 的形式输入的话,就需要自己写代码计算了。shuffle 数据,分割训练和测试集,以及计算图片均值的代码都可以在上面的 github 中找到。

3. 模型设计

这里主要是为了熟悉 MobileNet,所以模型选择上没有什么好说的,就是 MobileNet。但是我们看一下 MobileNet 的网络结构,从 V1 到 V

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值