【计算机视觉】OpenCV人脸识别facerec源码分析1——FaceRecognizer概述

本文介绍了OpenCV的FaceRecognizer基类,包括它继承的Algorithm类的功能,如参数设置和文件读写。FaceRecognizer提供了训练、更新、预测等接口,如FaceRecognizer::train、FaceRecognizer::update和FaceRecognizer::predict。此外,还讨论了如何设置阈值以及如何保存和加载模型。内容涵盖了FaceRecognizer的使用方法和相关接口,为后续深入学习特定人脸识别算法(如LBPH)打下基础。
摘要由CSDN通过智能技术生成

FaceRecognizer类

OpenCV中所有人脸识别的模型都是继承自FaceRecognizer这个基类,这个类提供了人脸识别算法的统一接口。

class FaceRecognizer : public Algorithm
{
public:
    //! virtual destructor
    virtual ~FaceRecognizer() {}

    // Trains a FaceRecognizer.
    virtual void train(InputArray src, InputArray labels) = 0;

    // Updates a FaceRecognizer.
    virtual void update(InputArrayOfArrays src, InputArray labels);

    // Gets a prediction from a FaceRecognizer.
    virtual int predict(InputArray src) const = 0;

    // Predicts the label and confidence for a given sample.
    virtual void predict(InputArray src, int &label, double &confidence) const = 0;

    // Serializes this object to a given filename.
    virtual void save(const string& filename) const;

    // Deserializes this object from a given filename.
    virtual void load(const string& filename);

    // Serializes this object to a given cv::FileStorage.
    virtual void save(FileStorage& fs) const = 0;

    // Deserializes this object from a given cv::FileStorage.
    virtual void load(const FileStorage& fs) = 0;
};

Algorithm类

Algorithm所有的派生类都提供了一下功能:

  • 虚拟构造器。每个继承Algorithm的算法在程序开始时注册,你可以得到已注册算法的列表,并且根据指定算法名字来创建一个实例。如果你想添加自己的算法,比较好的方法是在你算法名上添加一个前缀,以示区别。(详见Algorithm::create())
  • 通过参数名来设置或检索参数。Algorithm可以通过你指定参数名字符串来提供这样的功能。(详见Algorithm::set()、Algorithm::get())
  • 从XML或YAML文件中读写参数。每个算法都可以将参数写到文件中,并且在需要时读出参数。

FaceRecognizer支持的接口

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值