zoukankan      html  css  js  c++  java
  • 03 基于纹理特征的人脸活体检测-01

    1. 活体相关文献综述调研

    参考:https://blog.csdn.net/CVAIDL/article/details/84567319

    2. 基于LBP纹理特征的检测

    1) 基于LBP_256特征提取(基本的256维LBP特征向量)

           401*401 RGB图片->灰度化->  计算得到400*400的LBP的256特征图(像素值0-255)->裁分成16个 10*10的 cell区域 -> 计算每个cell区域的256直方图,并归一化(共计16个256直方图,首尾相连,该图像图像的特征向量)-> 送入SVM分类器训练/分类;

    2)基于LBP_59特征提取(灰度不变+等价模式LBP特征向量 (58种模式),只统计LBP的特征图0-1或1-0之间跳变在两次以内的情况)

         401*401 RGB图片 -> 灰度化 -> 计算得到400*400的LBP的58特征图(像素值0-58, 58种等价模式表示为1~58, 59种混合模式表示为0)->裁分成16个 10*10的 cell区域 -> 计算每个cell区域的256直方图,并归一化(共计16个256直方图,首尾相连,该图像图像的特征向量)-> 送入SVM分类器训练/分类;

    3)  基于LBP_9特征提取(计算灰度不变+旋转不变+等价模式LBP特征向量(9种模式))

        401*401 RGB图片 -> 灰度化 -> 计算得到400*400的LBP的9特征图(256特征图->58特征图->9特征图)->裁分成16个 10*10的 cell区域 -> 计算每个cell区域的256直方图,并归一化(共计16个256直方图,首尾相连,该图像图像的特征向量)-> 送入SVM分类器训练/分类;

    注:一定要归一化,否则分类器计算误差很大。(因为归一化之前,比如LBP_256特征图中的像素值分布在0-255之间,分布范围较广,如果大多数数据集中在某一范围(如20-60之间),很容易造成数据稀疏分布。归一化之后,数据分布在较小范围0-1之间,有利于数据学习训练);

    4) 基于NUAA数据集的训练与测试的结果,Method代表不同的方式提取特征,使用SVM训练分类; Face soofing(0)代表是NUAA测试集的非活体(人脸照片的攻击图片),能正确识别的准确率;Living face(1) 代表的是NUAA测试集中的活体(真实人脸),能够正确识别的准确率;average是能够正确识别活体与非活体人脸的平均识别准确率。

    参考:LBP(局部二值模式)特征提取原理:https://blog.csdn.net/shenziheng1/article/details/72582197          

             灰度不变+旋转不变+等价模式:https://blog.csdn.net/qq_26898461/article/details/46875517

             LBP特征 旋转不变+标准型+圆形 及其在人脸识别中的应用含代码:https://blog.csdn.net/weierqiuba/article/details/70495902

             LBP纹理特征:http://www.bewindoweb.com/236.html

    3. 基于颜色空间+纹理特征的检测

     1) 检测流程

         401*401的RGB图 -> 颜色空间转换(YCrCb或HSV) ->三通道分离(Y/Cr/Cb或H/S/V)-> 基于LBP纹理特征的检测(参照上述2灰度化之后的检测流程);

    参考:论文:Face Spoofing Detection Using Colour Texture Analysis.

    2) 实验结果

    基于NUAA数据集的训练与测试

    3) 视频demo展示:

    链接:https://user.qzone.qq.com/577897657/photo/video/1006_aebeccfb73a94971a6515fada940eab4

  • 相关阅读:
    Cocos2dx开发(3)——Cocos2dx打包成APK,ANT环境搭建
    Cocos2dx开发(2)——Win8.1下Cocod2dx 3.2环境搭建
    Cocos2dx开发(1)——Win8.1下 NDK r10 环境搭建
    设计模式备忘录(1):适配器模式、依赖注入依赖倒置、空对象模式
    使用latencytop深度了解你的系统的延迟(转)
    操作系统基础
    计算机基础
    说明exit()函数作用的程序
    变量的引用类型和非引用类型的区别
    二进制转16进制JAVA代码
  • 原文地址:https://www.cnblogs.com/zhaopengpeng/p/12325994.html
Copyright © 2011-2022 走看看