• 最近邻分类法


    opencv提供了很多人脸识别方法,大多是通用类face::facerecognizer的子类

    局部二值模式(LBP)

    LBP原理介绍以及算法实现_holly的专栏-CSDN博客


    再来看cv::face:: LBPHFaceRecognizer
    类,它的 create方法的前两个参数分别指定
    了邻域的大小(半径,单位为像素)和维度(圆上的像素数量,可用于插值)。把得到的LBP图
    像分割成一个网格,网格大小由 create方法的第三个参数指定。对网格上的每个区块构建直方
    图。最后,把这些直方图的箱子数组合成一个大的向量,得到全局图像模型。对于8×8的网格,
    计算256-箱子直方图,得到16384维的向量。
    cv:face: LBPHFaceRecognizer类的 train函数对每个参考图像都用上述方法计算
    一个很长的向量。每个人脸图像都可看作是高维空间上的一个点。识别器用 predict方法得
    个新图像后,就能找到与它距离最近的参考点。该参考点对应的标签就是识别结果,它们的
    离就是置信度。这就是最近邻分类器的基本原理。还有一个因素需要考虑:如果输入点与最近
    参考点之间的距离太远,就说明它其实并不属于任何类别,那么“距离太远”的判断标准是什么
    这由
    cv:: face:: LBPHFaceRecognizer
    的 create方法的第四个参数决定。
    显然,这种方法的原理很简单,并且如果不同的类别在描述空间中生成各自独立的“点云
    它的效果就非常好。另外,它只是从最近的邻域中读取分类结果,因而可以处理多个类别,这
    是它的一个优势。它的主要缺点是计算量较大—要从这么大的空间中(参考点的数量还可能
    多)找出最近的点,需要耗费很长时间。此外,保存这些参考点也要耗费较大的存储空间。

  • 相关阅读:
    Python—requests模块详解
    强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)
    dexlib2的源码框架
    Android检测代理
    APP加固反调试(Anti-debugging)技术点汇总
    IDA逆向常用宏定义
    JNI学习积累之一 ---- 常用函数大全
    CMake之CMakeLists.txt编写入门
    Android Project和app中两个build.gradle配置的区别
    更新说明
  • 原文地址:https://www.cnblogs.com/KAVEI/p/14774631.html
Copyright © 2020-2023  润新知