结合人脸识别元辅助学习的AU单元检测
关注公众号,发现CV技术之美
本文介绍一篇人脸技术传统方向“人脸动作单元识别”的论文:Meta Auxiliary Learning for Facial Action Unit Detection。
Meta Auxiliary Learning for Facial Action Unit Detection
论文:https://arxiv.org/abs/2105.06620
作者单位:南京理工大学,中科院计算所
1
引言
当前AU单元检测的性能依赖于大量具有准确AU单元注释的训练图像,但问题是给AU单元打标签费时费力,而且极容易出错。
在该论文中作者考虑到AU单元检测和人脸表情识别是两个高度相关的任务,而且人脸表情样本相对容易标注。因此作者提出了一种结合人脸识别元辅助学习的AU单元检测方法。
该方法通过以元学习的方式为训练的有限元样本学习自适应权重来自动选择高度相关的有限元样本。实验结果表明,该论文的方法显著的提高了AU检测性能。
2
论文模型介绍
2.1 损失函数
假设在训练阶段有一个
训练数据集和一个人脸表情数据集。作者保留了一个小的无偏验证数据集,并且该验证集是排除训练集之后的剩余集合里采样得到的。
分别表示的是集合的第张图像。分别表示的是集合中元素的总个数,并且有。表示的是一个编码,特指个面部表情类别上的类别。表示的是第个单元。表示被激活,表示单元没有被不激活。
作者利用多标签
损失函数进行单元检测,具体的表达式表示为:
其中
表示的是单元的个数。表示的是输入样本的第个真实标签。表示是的预测的分数。
对于
,作者采用的是交叉熵损失函数,具体的表达式为
其中
表示的是人脸表情类别。和分别表示的是真实标签和预测标签。
多任务训练的常规目标是最小化所有单个任务的组合损失:
其中
表示的是人脸表情识别任务的贡献平衡系数。手动调整损失权重是费时费力的,恰恰相反,元辅助学习方法旨在通过一个元优化目标,自动学习为每个样本和样本分配自适应权重和,并且最小化损失:
其中
表示的是的尺寸。
2.2 元优化
下图表示了
的网络结构和元优化过程。的网络结构由基础网和元网组成。基础网络由主干网络和两个并行分类器组成。这两个分类器分别用于检测和检测。
作者将主干网络表示为参数为
的函数,两个分类器的参数分别是和。表示与检测任务相关的参数,表示与任务相关的参数。
因此基础网络中的参数被表示为
。元网络接受图像特征作为特征,并将映射成标量权重。作者将元网络表示为带有参数的函数。
如下图所示,
的元优化过程由三个阶段组成分别是:元学习,元测试和主干学习。在每次训练迭代中,依次执行以上三个步骤。在元训练阶段,基础网络将一批和样本作为输入样本,并计算每个样本的损失。
元网络中估计
和样本的初始权重分别为和。这两个任务的损失通过它们各自的样本权重进行缩放,以多任务方式更新基础网络()。在元测试阶段,从验证集中获取一批样本作为输入,并评估更新后的基础网络的性能。
然后,
执行元梯度下降步骤来更新元网络。在基础学习步骤中,结合自适应样本权重学习这两个任务,以重新更新基础网络()。
2.3 元训练阶段
给定一批
样本
,,
主干网络提取特征表示为
和。利用编码的图像特征,通过元网络获得每个样本的权重表示为:
计算当前训练批次样本的平衡多任务损失:
通过最小化
,重新更新基础网络的参数:
其中
表示的是学习率,和表示的是下一次训练迭代中基础网络和元网络的初始参数。与用于多任务学习的普通随机梯度下降方法不同,交替更新基础网络参数和元网络参数。
上述三个阶段的完整算法在如下算法中有所概述,主要通过深度学习框架
来实现。
3
实验结果
如下三张图片所示为BP4D,DISFA,GFT数据集上的
分数。粗体表示最先进的多任务和元辅助学习方法中的最佳方法。由下图可以发现论文中的方法在这些数据集中绝大部分的AU单元检测中表现出色。
作者在下图中可视化了训练过程中的迭代损失和迭代权重曲线。对于每个输入批次的AU和FE样本,并计算了它们各自的平均权重,并可视化了每20次迭代的损失和平均权重。
从图(a)、(d)、(g)可以看出,随着在MTL训练的进行,FER损失的下降速度快于AU检测的损失,这表明FER任务相对容易优化,并主导了MTL的训练过程。
从图(b)、(e)、(h)中可以观察到类似的现象。随着训练迭代次数的增加,辅助FER任务的损失显著降低。这意味着辅助FER任务的好处将相当有限。
为了缓解这个问题,作者提出的MAL增加了FE样本的平均权重,MAL中的元网自动平衡两个任务的权重,并根据迭代权重曲线的潜力自适应地增加FE样本的平均权重。MAL学习增强FER的贡献以提取更多的语义信息来增强AU检测任务。
下图显示了一些代表性图像的权重和一致性值。对于图中的每个面部图像,左上角的两个值意味着权重和一致性值。从实验结果可以看出论文中提出的MAL方法抑制了具有较大不确定性的有限元样本,并防止网络过度拟合不确定的有限元图像。
END,入群????备注:人脸
结合人脸识别元辅助学习的AU单元检测相关推荐
- 人脸识别、深度学习优秀设计(毕业专业指导)
人脸识别.深度学习优秀设计(毕业专业指导) #请在评论区留言获取联系方式 按各户所提要求完成功能设计,若有其他要求请先添加联系方式!!!!
- 人脸识别+深度学习,水平远超人类大脑!
全文共3342字,预计学习时长7分钟 什么是人脸识别?什么是深度学习?两者结合能带来什么影响? 如果你认为一篇文章无法涵盖这么多问题,这篇文章能够改变你的想法.本文展示了所有重要的概念.总之,在这篇文 ...
- android 活体检测方案,一种基于人脸识别认证的Android红外双目活体检测的制作方法...
本发明涉及人脸识别领域,具体涉及一种基于人脸识别认证的Android红外双目活体检测. 背景技术: 在目前的利用红外线实现双目活体检测的技术中,普通红外双目,能够同时实时采集近红外和可见光两种图像,并 ...
- python视频人脸识别教程_Python学习笔记之视频人脸检测识别实例教程
前言 上一篇博文与大家分享了简单的图片人脸识别技术,其实在实际应用中,很多是通过视频流的方式进行识别,比如人脸识别通道门禁考勤系统.人脸动态跟踪识别系统等等. 下面话不多说了,来一起看看详细的介绍吧 ...
- 终于有人把OpenCV、人脸识别与深度学习讲明白了
导读:今天聊OpenCV,我想从人脸识别讲起. 作者:木羊同学 来源:华章计算机(hzbook_jsj) 这几年人脸识别技术在国内发展飞速,给生活带了很多便利,这个大家应该都有体会.早几年进高铁站还比 ...
- 【第12期】终于有人把OpenCV、人脸识别与深度学习讲明白了
今天聊OpenCV,我想从人脸识别讲起. 这几年人脸识别技术在国内发展飞速,给生活带了很多便利,这个大家应该都有体会.早几年进高铁站还比较麻烦,要先排长队,得让检票口的工作人员一个一个查看证件然后&q ...
- Android人脸识别的初步学习,移动端开发技术创新
根据readme中的内容修改项目. 呀,报错了-面对看不懂的错误,我们就-百度- 经过一番艰难险阻,我们的demo终于运行起来了,如下图所示: 然而,当我一次又一次注册人脸,无论是网络上找到明星的照片 ...
- 人脸识别 tracking.js学习
目录 一.定义 1.先定义window的属性,要用的全局对象 2.继承属性 2.初始化用户媒体 3.测试对象是否为DOM节点 4.测试对象是否为"window"对象 5.使用'do ...
- 格物钛数据平台国内外经典开源数据汇总(自动驾驶、目标检测、人脸识别、人体姿态估计、文本检测、NLP、医疗)
本文整理了国内外经典的开源数据,包含了目标检测.自动驾驶.人脸识别.自然语言处理.文本检测.医疗等方向,具体如下. 一.自动驾驶领域数据集 KITTI数据集 KITTI数据集由德国卡尔斯鲁厄理工学院和 ...
最新文章
- git隐藏修改_您可能不知道的有关Git隐藏的有用技巧
- 第四回 基类中的修饰符,应该根据你对架构的理解去定义它们,没有绝对的
- eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池
- 【转】Docker 运行时资源限制-内存memory、交换机分区Swap、CPU
- C++基类与派生类的转换与多态性
- LeetCode 880. 索引处的解码字符串(找规律)
- WSPSRV.EXE错误导致ISA中断
- jsp include指令标签
- 从零开始刷Leetcode——数组(11.15.16.18)
- [转]Asp.Net下导出/导入规则的Excel(.xls)文件
- 数字电子技术基础笔记
- ps中的实例小学习——初学抠图及蒙版
- 【故障检测】基于 KPCA 的故障检测(Matlab代码实现)
- K8s Liveness/Readiness/Startup 探针机制
- 点击按钮没有反应,onclick函数点击无反应的原因
- mtk配置flash
- 6 款顶级 Android 数据恢复软件列表
- cocos 中每个节点的visit与draw函数
- 高并发、高性能下的 会员系统[同程艺龙] — 高可用架构设计实践
- Android USB识别开发
热门文章
- 基于MeanShift的目标跟踪算法及实现(转载)
- Docker学习六:综合实践
- DCIC巡游车与网约车运营特征对比分析-数据读取
- toj 4065 The Coco-Cola Store
- Java关键字与保留字说明及使用
- [Editor][001][vim]VIM的辅助工具们
- java爬去赶集,爬取赶集网二手物品下所有物品的信息
- .netcore 如何获取系统中所有session_ASP.NET Core微服务实战 一、二
- arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用
- python中的dict是什么数据类型_Python数据类型之字典(dict)