人脸识别中发型遮挡检测方法研究

  摘要: 人脸识别中,发型遮挡是一种十分常见的遮挡类型,并且对人脸的正确识别具有极大的干扰。提出一种将头发的颜色模型和发型特征相结合的遮挡检测方法。首先,采用机器学习的方法,对头发的颜色进行学习建模。然后,利用发际线的特征,将人脸划分为若干扇形并分块,采用逐步精细的方法对人脸的发型遮挡区域进行检测。实验结果表明,该方法对人脸区域发型遮挡检测的准确率和召回率都达到88%以上,相比PCA检测方法提高了约20%,验证了该方法的有效性。

  关键词:人脸识别;发型遮挡;遮挡检测

0引言

  人脸识别作为模式识别领域的热点研究问题受到了广泛的关注,人脸识别技术在众多领域的身份验证中有着广阔的应用前景[1]。在实际人脸图像处理过程中,人脸图像的遮挡会经常出现,如头发、口罩、围巾等,而遮挡对人脸识别有很大的影响。因此,如何准确、自动地检测人脸遮挡区域成为遮挡人脸识别处理的关键问题之一。

  主流的人脸遮挡区域检测方法是基于PCA分析检测方法[23]。该方法包括两个关键步骤:在分析阶段,将遮挡人脸图像投影到人脸特征空间,并利用投影系数重建人脸;在检测阶段,将遮挡人脸图像与重建人脸图像进行比较,差异越大,判定为遮挡的可能性越大。遮挡区域根据重建人脸与原始遮挡人脸的差异来估计。基于平均人脸的人脸遮挡区域检测方法[4]与基于PCA分析检测方法类似,只是参考图片选取的是平均脸图像。

  在遮挡人脸识别中,头发是极为常见的遮挡物体,给识别带来较大的不利影响。目前,基于PCA或平均脸的分析检测方法在很大程度上依赖于参考样本,对于人脸的位置、姿势等十分敏感,而发型遮挡往往伴随着不同的人脸姿势。本文在分析了各类遮挡检测算法后,通过建立发色模型并结合发型特征,提出了一种针对发型遮挡的人脸遮挡区域检测方法。

1方法概述

  本文方法主要分为两个部分:发色模型的线下学习和发型遮挡区域的在线检测。线下学习是利用人工神经网络进行发色和肤色的学习,建立头发的颜色模型,以便于在线检测使用;在线检测是实时检测遮挡图片的发型遮挡区域,给出检测结果。

  (1)图1给出了发色模型学习的详细步骤:对发色和肤色RGB样本数据,利用人工神经网络进行发色和肤色训练学习,得到一个发色模型。给定一个像素点的RGB值,可以通过该模型粗略评估其是头发的概率。

  

  (2)图2给出了发型遮挡区域的检测步骤:给定一幅图像,首先根据人脸进行归一化;之后,以嘴部中心为圆心,将给定的人脸区域按照角度划分为若干扇形;对于每个扇形,按照半径长度平均划分为相等数量的区块;然后,对于每个扇形区块,按照距离圆心的距离,由远及近进行粗略检测。对于一个扇区,取发色区块的下一个(离圆心更近的)区块进行精细分割。

2结合发色模型和发型特征的遮挡检测

  发型特征包括:长度、体积、发色等。 对于解决发型遮挡的检测问题,可以利用发色、发际线等特征。本文将发色模型和发型特征进行有机结合,对人脸的面部发型遮挡区域进行检测。

  2.1基于人工神经网络的发色模型

  2.1.1BP人工神经网络简介

  BP神经网络[5]是人工神经网络的一种,它是采用误差反向传播的多层前馈神经网络。其中,3层的BP 网络包括一个输入层、一个隐含层、一个输出层,如图3所示。

  图3三层BP神经网路BP神经网络的基本思想是采用信号的正向传播和误差的反向传播。在正向传播中,从输入层传入的数据,依次在各隐含层进行处理,最终到达输出层。如果输出值与期望输出不同,则将输出层的误差作为调整信号进行反向传播,根据误差不断调整权值和阈值,最终得到网络可以接受的精度并输出。

  2.1.2发色模型

  头发的颜色与皮肤的颜色往往有比较明显的区别,利用发色能够有效提高面部发型遮挡区域检测的正确率。

  2.2基于发型特征的扇形分割

  给定输入图像和发型区域,以嘴部位置的中心区域为圆心,将嘴部以上的区域以每10°划分为一个扇形,共18个径长不等的扇形(以下简称为扇区),按照逆时针方向记为S1~S18。对任意的扇形区域Si,按照径长平均分为10个区块(以下简称为区块),按照离圆心的距离由远及近依次标记为Si,1~Si,10。

  2.2.1粗略检测

  形式地,将X={xij:xij∈S}定义为区块S的像素点,用Ix表示一个像素点的颜色向量,Ix=(Rx,Gx,Bx)T;LX=(l1,l2,…,lm)T表示标号向量,其中m表示区块S中的像素点数,并且lx=1表示x属于头发,lx=0表示x属于皮肤。将一个像素是头发的概率表示为P(lx=1),简单地,P(lx=1)=ax,其中,ax是ANN发色模型的输出值。

  对于人脸区域的每个扇形,首先对最外层区块(S1,1,S2,1,…,S18,1)进行检测。区块Si,1中的像素点x,将其RGB值作为ANN发色模型的输入,得到输出值ax。当该点的预测为头发概率大于给定阈值时,则认为该像素点属于头发区域。如果区块Si,1中的像素大部分都判定为头发区域时,则认为该区块Si,1属于头发区域,记为预测遮挡块。对所有的扇区,由远及近地进行区块的检测,直到区块不再是预测遮挡块为止。每个扇区中第一个不是预测遮挡块的区块称为精细分割块(以下简称精割块),放到下一步进行图割[6]处理。

  2.2.2精细分割

  经过2.2.1节中粗略检测得到了若干个精割块,下一步是在此范围内进行精细的分割。采用221中相同的定义,将X={xij:xij∈S}定义为精割块S的像素点,用Ix表示像素点的颜色向量,Ix=(Rx,Gx,Bx)T;LX=(l1,l2,…,lm)T表示标号向量,其中m表示精割块S中的像素点数,并且lx=1表示x属于头发,lx=0表示x属于皮肤。将一个像素是头发的概率表示为P(lx=1)。定义如下能量函数:

  E(L)=C(L)+αB(L)(1)

  其中,α用以权衡两项的重要性;C(L)表示像素点的预测概率;B(L)是平滑项,用以描述相邻像素标号互异时的惩罚代价。任意精割块S中像素的最终的标号向量L*X,通过使式(1)达到最小值来获得。式(1)中的第一项C(L)定义为:

  C(L)=1nx∑x∈Xc(lx)(2)

  其中,nx表示精割块S中像素点的数量, c(lx)表示发色模型对像素点x的预测概率。

  式(1)中第二项中的B(L)定义为:

  

  其中,np表示像素点p的相邻点的个数,σ表示图像的平均平滑度。式(4)采用8邻域系统,选择像素点的相邻点。由于精割块的形状大小不同,进行了均值化处理。

  2.2.3优化

  直接对式(1)进行最小化计算,复杂度较高,计算量非常大。本文提出了一种求近似解的计算方法。首先,将精割块S中的像素按照ANN预测的发色程度按照从小到大排列;然后,将区块内所有像素的区块起始标号都置为1,按照发色的概率从小到大排序依次将像素标号置为0;最后,分别计算能量函数的值。选取使能量函数达到最小值时的标号向量作为最优解。

3实验和结果分析

  实验数据采集28个人的人脸图像,分为正面、左侧面和右侧面三个姿势,偏转角度在10°~30°之间,发型遮挡包括正面单侧遮挡、正面两侧遮挡、左侧面遮挡、右侧面遮挡、发帘遮挡等类型。人脸图像库包括28人269张发型遮挡图像,每张图像归一化为50×75像素。

  将样本数据划分为遮挡与未遮挡两类,并且人工标注所有遮挡样本的发型遮挡区域。测试PCA遮挡检测及本文所提出遮挡检测方法的准确率P、召回率R及Fvalue。Fvalue的定义为2PRP+R。其中,P表示面部遮挡检测的头发区域和人工标注的头发区域一致的像素所占的比例,R表示面部人工标注的头发区域和遮挡检测的头发区域一致的像素所占的比例。对所有实验分别调整参数以达到最优的Fvalue值。下面通过两个试验对比本文方法与PCA检测方法的优劣。

  实验1该实验采用数据集中的正面人脸,数据包含109张遮挡人脸图像,实验结果如表1所示。

   由表1可以看出,在正面人脸的条件下,PCA检测方法的Fvalue为69%,相应的准确率和召回率分别为63%和76%。本文方法比PCA检测方法的Fvalue提高了20%,准确率和召回率分别提高了27%和12%。实验2该实验采用全部的数据,包含269张不同姿势的遮挡人脸图像,实验结果如表2所示。

  由表2可以看出,在不同姿势的人脸条件下,PCA检测方法的Fvalue为57%,相比正面人脸条件下降低了12%,相应的准确率和召回率降低10%左右。而本文方法与正面人脸条件下的Fvalue相比变化不大,说明比PCA检测方法具有更强的鲁棒性。

4结论

  发型遮挡对人脸识别具有极大的干扰,如何准确获取遮挡区域是处理遮挡中需要解决的问题。由于各种形状和不同纹理,使得发型遮挡区域检测非常困难 。实验表明,本文提出的方法比PCA遮挡检测方法具有更高的准确率和召回率,验证了该方法的有效性。

对于人脸识别检测中出现遮挡问题的解决方案相关推荐

  1. 人脸识别系统中的活体检测技术有哪些分类

    人脸识别系统在实际应用中会面对照片.视频.面具等道具攻击,为了这防止这些欺诈手段,在系统中应用到活体检测,检测识别的人员是否为活体,提高应用的安全性.由畅视智能与你分享应用到人脸识别系统中的活体检测技 ...

  2. 2021综述:一般目标检测中的遮挡处理

    目录 综述:通用对象检测中的遮挡处理 1.简介 2.目标检测的应用 3.数据集 4.户外场景的遮挡处理 A.数据收集 B.遮挡检测 C.生成遮挡区域 D.遮挡目标检测 5.室内场景中的遮挡处理 A.场 ...

  3. 陈新宇:CKafka在人脸识别PAAS中的应用

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载. 我叫陈新宇,在格灵深瞳负责数据流的研发,首先特别感谢如今老师,他们把Kafka一个优秀的消息中间件 ...

  4. 【转】干货|孙启超:卷积神经网络在人脸识别技术中的应用

    2018-08-27 21:45:01 随着 iPhone X 的发布,Face ID 人脸识别技术开始进入人们的日常生活中,当我们拿起手机并看着它的时候就可以实现手机解锁的功能.而人脸识别中的关键技 ...

  5. Python简单实现人脸识别检测, 对照片进行评分

    大家好,今天和大家说说如何用Python简单实现人脸识别检测, 对照片进行排名,看看自己有多漂亮. [开发环境]: Python 3.8 Pycharm 2021.2 [模块使用]: requests ...

  6. 解决目标检测中密集遮挡问题——Repulsion loss

    解决目标检测中密集遮挡问题--Repulsion loss Rep loss Attr RepGT RepBox 之前参加了df的钢筋检测比赛,比赛中的一个难点是密集遮挡问题,为了解决这个问题,参考了 ...

  7. 目标检测中的遮挡问题及优化

    文章目录 1 Repulsion Loss: Detecting Pedestrians in a Crowd 1.1 现有方法的缺点 1.2 解决办法 1.3 对问题做数学建模 1.3.1 引力作用 ...

  8. 谈谈深度学习目标检测中的遮挡问题

    引自:"别挡我,我要C位出道!"谈谈深度学习目标检测中的遮挡问题 - Naiyan Wang的文章 - 知乎 https://zhuanlan.zhihu.com/p/436559 ...

  9. Python实现人脸识别检测, 对美女主播照片进行评分排名

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 素材.视频.代码.插件安装教程我都准备好了,直接在文末名片自取就可点击此处跳转 开发环境: Python 3.8 Pycharm 2021.2 模块使用: ...

最新文章

  1. Django restfulframework 开发相关知识 整理
  2. PyTorch Multi-GPU使用代码
  3. jzoj3852-单词接龙【0/1分数规划,负环】
  4. OCA第7部分的Java难题
  5. 【华为云技术分享】关于Linux下Nginx的安装及配置
  6. 从测试流程角度,阿里P8大佬对产品质量的一些总结思考...
  7. one hot 编码的实现
  8. Android--关闭某个指定activity,android开发游戏
  9. 高等数学在计算机中的应用论文1500字,高等数学论文1500字_大一高等数学论文3000字_高等数学论文三千...
  10. 米思齐Mixly图形化编程---数管码时钟
  11. 自然语言处理——基于预训练模型的方法——第2章 自然语言处理基础
  12. 数据库设计规范(详细)
  13. C语言:甲乙丙丁分糖
  14. mysql 视图 缓存_SQLServer 的视图自带缓存特效?!
  15. 安卓xml文件中设置动画匀速旋转无效?
  16. 5秒钟清除word页眉下边的横线
  17. 二十六、ISIS技术总结
  18. fastjson autoType is not support
  19. 如何离线安装python包
  20. 阿里百秀移动端首页案例

热门文章

  1. 寒冬已至!视频聊聊四面楚歌的Android工程师该何去何从?
  2. 看看MB860等机型的CPU的排名
  3. macOS下搭建FTP服务器(十分冷门的FTP服务器软件)
  4. GD32F303固件库开发
  5. XPS文件转换为PDF不再愁!全新XPS/EPS文档处理神器Aspose.Page来啦!
  6. 考研英语长难句(刘晓燕)笔记 第六课 唱着歌去考研——英语的特殊结构
  7. SpringCloud 教程 (二) 服务链路追踪(Spring Cloud Sleuth)
  8. CSMA/CD(具有冲突检测的载波侦听多路访问)
  9. [年终总结]一年一年又一年
  10. Android CameraServer:Disconnect