点击我爱计算机视觉标星,更快获取CVML新技术


在人脸识别应用中,很多场景能够获取某一个体的多幅人脸图像的集合(比如在监控视频中),使用人脸图像集来做识别,这个问题被称为基于模板的人脸识别(template-based face recognition)。

对于多幅图像,当然可以使用单幅人脸图像的识别方法,综合多幅图像的识别结果确定最终的人脸识别结果,但更好的方式是直接基于人脸图像集提取特征,比较人脸图像集的特征相似性。

这涉及到如何聚合多幅人脸图像的特征向量成为一个特征向量,使该特征紧凑而又更具鉴别性的问题。

几天前公布的一篇来自DeepMind和VGG组被ACCV2018接收的论文《GhostVLAD for set-based face recognition》,正是解决这样的问题,文中提出的算法GhostVLAD在具有较高难度的大型真实场景人脸数据集IJB-B上的识别精度,远超过目前的state-of-the-art结果!非常值得参考!

作者信息:

算法原理

作者的想法非常简单,当聚合多个人脸图像特征时,现有的平均池化等方法没能考虑到人脸图像集中一些低质量的图像(比如模糊人脸)的作用,这些图像含有的信息对识别并没有太大的贡献,应该降低这些低质量图像对最终聚合特征的贡献。

一种直接的处理方法是,在人脸图像预处理阶段将低质量图像找出来,降低其贡献权重,但作者认为,端到端自动训练的方式让网络自身去优化识别并降低该部分样本的权重更好。

作者发明的算法网络结构如下:

多幅人脸图像(每次图像个数可不同)通过CNN网络提取特征并L2归一化,然后被送入聚合模块,GhostVLAD网络模块将多个人脸特征聚合称固定维数的特征矩阵(与输入图像个数无关),再通过全连接层FC、BN层和L2归一化为紧凑鉴别的特征。

其中的关键网络模块GhostVLAD既实现特征聚合,同时降低低质量图像的权重,提高高质量图像的聚合权重。

GhostVLAD是如何实现上述功效的呢?

说白了一句话,既然不要人为参与,那就要构建一种网络结构,让网络自动学习对识别不重要的信息,并丢掉它。

作者是在NetVLAD上做出的算法改进,NetVLAD可以理解为一种可微分完全可训练的VLAD编码聚合方法,它的作用大致是自动计算特征聚类中心,计算残差,然后把残差加权,构建聚合特征矩阵,整个过程方便加入到神经网络中。

在NetVLAD中,其聚合的特征矩阵中的元素计算方法如下:

其中K是NetVLAD中手工设置的聚类中心个数,xi是第i个特征向量,ck是可训练的聚类中心,ak、bk是可训练的参数控制着加权的权重。

由上述公式得知,NetVLAD中所有聚类中心ck都参与了聚合,GhostVLAD的改进则是增加聚类中心的个数到K+G,但是增加的聚类中心在构建聚合特征矩阵的时候不参与贡献权重。

如下图所示:

红色位置即标示出的Ghost 聚类中心,后续步骤中被去除,Ghost有“幻象”的意思,可能很多模糊的人脸的确看起来是“幻象”,这也是GhostVLAD名称的由来。

这些多出来的不参与聚合特征矩阵构建的Ghost聚类中心,就相当于给了神经网络丢弃一部分信息使得网络更具鉴别性的可能,而在原来的NetVLAD中是体现不出来的。

实验结果

作者首先设计的实验是比较网络加上GhostVLAD层跟不加的精度,验证其有效性,作者使用的训练集是VGGFace2。实验设置不再赘述,这里直接给出结果。

在IJB-B数据集上的1:1人脸验证结果比较如下图,取得了大幅度的精度提升。

在IJB-B数据集上的1:N人脸识别结果比较如下图,同样取得了大幅度的精度提升。

然后作者将提出的算法GhostVLAD与目前的state-of-the-art比较。

如下图中Table 3和Table 4,在IJB-A和IJB-B上比较验证和识别结果,同样所提算法精度也胜出不少,请注意作者使用的训练集比其中很多state-of-the-art算法规模要小,但依然实现性能超越!

最后作者可视化了使用GhostVLAD后对输入样本权重的影响,发现对于那些低质量模糊人脸的确权重被降低了。

总结:

该文从一个简单的直觉开始,构建了一种帮助神经网络丢弃鉴别性不足的信息的有效方式,大幅改进了基于图像集合的人脸识别方法,算法具有较高的实用价值,思想也很值得借鉴!

值得一提的是,该文中的GhostVLAD方法不仅仅适用于人脸识别,在图像检索、行人重识别等领域也同样适用。

论文地址:

https://arxiv.org/abs/1810.09951

关于代码:

可惜的是,该文目前并无开源代码,但DeepMind和VGG组都是一向乐于分享代码的,期待作者早日开源~

加群:

加入52CV-人脸识别专业讨论群,扫码添加52CV君拉你入群:

(请务必注明:人脸)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:928997753。

(不会时时在线,如果没能及时通过验证还请见谅)

本文对你有帮助吗?欢迎留言。


长按关注我爱计算机视觉

【点赞与转发】就是一种鼓励

DeepMindVGG提出基于集合的人脸识别算法GhostVLAD,精度远超IJB-B数据集state-of-the-art...相关推荐

  1. 基于opencv-python的人脸识别算法

    基于opencv-python的人脸识别算法 文章目录 基于opencv-python的人脸识别算法 前言 一.opencv-python的安装与配置 二.实现步骤 1.引入库 2.调用opencv自 ...

  2. 基于MATLAB的人脸识别算法的研究

    基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...

  3. 基于matlab的人脸识别算法

    基于matlab的人脸识别算法 1. 主成分的数目的选取 前已指出,设有p个随机变量,便有p个主成分.由于总方差不增不减,C1,C2等前几个综合变量的方差较大,而Cp,Cp-1等后几个综合变量的方差较 ...

  4. 基于正交拉普拉斯脸的人脸识别算法研究

    直觉上,自然存在的人脸数据可以由支持的概率分布采样生成或者近似于环绕空间的子流线型分布.据此,我们提出了一种基于外观的人脸识别算法,称为正交拉普拉斯脸(Orthogonal Laplacianface ...

  5. 基于MATLAB的人脸识别系统[创新元素,界面GUI]

    第一章 绪论 本章提出了本文的研究背景及应用前景.首先阐述了人脸图像识别意义:然后介绍了人脸图像识别研究中存在的问题:接着介绍了自动人脸识别系统的一般框架构成:最后简要地介绍了本文的主要工作和章节结构 ...

  6. 人脸识别算法初次了解

    人脸识别算法初次了解 这是转载别人的帖子,认为好,大家一块学习http://www.cnblogs.com/guoyiqi/archive/2011/07/28/2129300.html 前言 在写此 ...

  7. 【计算机视觉】基于OpenCV的人脸识别

    一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从 ...

  8. 基于MATLAB的人脸识别系统(包含传统/深度学习方法)

    基于MATLAB GUI的人脸识别系统(包含传统/深度学习方法) 人脸检测与识别作为计算机视觉研究的核心内容之一,是一个不断发展的领域,并且还是模式识别.机器学习和数据挖掘等相关学科交叉研究的热点,已 ...

  9. 基于视频图像的识别算法

    一个典型的基于视频图像的人脸识别系统一般都是自动检测人脸区域,从视频中提取特征,最后如果人脸存在则识别出人脸的身份.在视频监控.信息安全和出入控制等应用中,基于视频的人脸识别是一个非常重要的问题,也是 ...

最新文章

  1. php怎样验证验证码对错,PHP生成中文验证码并检测对错实例
  2. Java之String类
  3. OC中数组排序的3种方法
  4. 腾讯在信息流内容理解技术上的解决方案
  5. 利用克鲁斯卡尔算法求最小生成树
  6. 趣谈程序员真香定律:源码即设计
  7. 华为5G微交易修复版源码 K线/结算全修复 去短信+去邀请码
  8. mysql配置文件my.cnf解析
  9. 身处小公司,如何在2年内快速突破,拿到大厂offer?
  10. 编译U-boot时,make[1]: *** 没有规则可以创建mkimage.o”
  11. oracle rman 备份与还原
  12. 公司装了cofax传真服务器真的解决了收发传真时存在的诸多不便
  13. 离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
  14. 程序员写了个开源软件,完成了舔狗的绝地反杀...
  15. 自相关系数、偏自相关系数理解
  16. aic值检验 p值_模型选择方法:AIC和BIC
  17. 工装,夹具,治具,检具
  18. Nios和Qsys互连
  19. linux中execve的用法,Linux 的 execve 函数
  20. PatchWork组织Herbminister行动武器库大揭秘

热门文章

  1. 矩阵问题入门(矩阵乘法and矩阵快速幂)acm寒假集训日记22/1/15
  2. [编转]Android localsocket 的基础和使用实践: 02
  3. 【实践驱动开发3-003】TI WL1835MODCOM8 在android的移植 - 软件获取2
  4. python报考软考哪个比较好_软考高级考哪个好?哪个比较热门?
  5. pg订阅oracle修改,PostgreSQL修改数据库timezone
  6. android 输入法如何启动流程_android输入法02:openwnn源码解析01—输入流程
  7. 民科微服务小程序怎么注册_民科微服务小程序(医师护士电子化注册系统入口)公众号...
  8. java 监听事件和处理事件_Java基础教程之事件和监听器
  9. kali安装nessus_漏洞扫描工具Nessus指南
  10. 百度统计 java 实现思路_211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer...