OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
无匹配项
公共成员函数 | 静态公共成员函数 | 所有成员列表
cv::face::MACE 类参考abstract

最小平均相关能量滤波器,适用于使用(可取消的)生物特征进行身份验证。(不需要大量的正样本进行训练(10-50),而且根本不需要负样本,同时对噪声/加盐也具有鲁棒性) 更多...

#include <opencv2/face/mace.hpp>

cv::face::MACE 的协作图

公共成员函数

virtual void salt (const cv::String &passphrase)=0
 可选地使用随机卷积对图像进行加密
 
virtual bool same (cv::InputArray query) const =0
 将查询图像与阈值进行关联,并将其与最小类别值进行比较
 
virtual void train (cv::InputArrayOfArrays images)=0
 使用正样本特征对其进行训练,计算 MACE 滤波器:h = D(-1) * X * (X(+) * D(-1) * X)(-1) * C,同时计算该类别的最小阈值,即训练图像中最小的自相似性
 
- 从 cv::Algorithm 继承的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果 Algorithm 为空(例如,在开始时或读取失败后),则返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储到文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

静态公共成员函数

static cv::Ptr< MACEcreate (int IMGSIZE=64)
 构造函数
 
static cv::Ptr< MACEload (const String &filename, const String &objname=String())
 构造函数
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

额外继承的成员

- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

最小平均相关能量滤波器,适用于使用(可取消的)生物特征进行身份验证。(不需要大量的正样本进行训练(10-50),而且根本不需要负样本,同时对噪声/加盐也具有鲁棒性)

另请参阅:[235]

此实现很大程度上基于:https://code.google.com/archive/p/pam-face-authentication (GSOC 2009)

使用方法如下

vector<Mat> pos_images = ...
mace->train(pos_images);
Mat query = ...
bool same = mace->same(query);
n 维密集数组类
定义 mat.hpp:812
static cv::Ptr< MACE > create(int IMGSIZE=64)
构造函数
virtual bool same(cv::InputArray query) const =0
将查询图像与阈值进行关联,并将其与最小类别值进行比较
std::shared_ptr< _Tp > Ptr
定义 cvstd_wrapper.hpp:23

您也可以使用双重身份验证,并使用额外的密码

String owners_passphrase = "ilikehotdogs";
mace->salt(owners_passphrase);
vector<Mat> pos_images = ...
mace->train(pos_images);
// 现在,用户必须提供有效的密码和图像
Mat query = ...
cout << "输入密码: ";
string pass;
getline(cin, pass);
mace->salt(pass);
bool same = mace->same(query);
std::string String
定义 cvstd.hpp:151

保存/加载您的模型

mace->train(pos_images);
mace->save("my_mace.xml");
// 稍后
Ptr<MACE> reloaded = MACE::load("my_mace.xml");
reloaded->same(some_image);
static cv::Ptr< MACE > load(const String &filename, const String &objname=String())
构造函数

成员函数文档

◆ create()

static cv::Ptr< MACE > cv::face::MACE::create ( int  IMGSIZE = 64)
static
Python
cv.face.MACE.create([, IMGSIZE]) -> retval
cv.face.MACE_create([, IMGSIZE]) -> retval

构造函数

参数
IMGSIZE图像将调整到此大小(应为偶数)

◆ load()

static cv::Ptr< MACE > cv::face::MACE::load ( const String filename,
const String objname = String() 
)
static
Python
cv.face.MACE.load(filename[, objname]) -> retval
cv.face.MACE_load(filename[, objname]) -> retval

构造函数

参数
filename从预先序列化后的 FileStorage 构建一个新的 MACE 实例
objname(可选) FileStorage 中的顶层节点

◆ salt()

virtual void cv::face::MACE::salt ( const cv::String passphrase)
纯虚函数
Python
cv.face.MACE.salt(passphrase) -> None

可选地使用随机卷积对图像进行加密

参数
passphrase将从该密码生成一个 CRC64 随机种子

◆ same()

virtual bool cv::face::MACE::same ( cv::InputArray  query) const
纯虚函数
Python
cv.face.MACE.same(query) -> retval

将查询图像与阈值进行关联,并将其与最小类别值进行比较

参数
query具有查询图像的 Mat

◆ train()

virtual void cv::face::MACE::train ( cv::InputArrayOfArrays  images)
纯虚函数
Python
cv.face.MACE.train(images) -> None

使用正样本特征对其进行训练,计算 MACE 滤波器:h = D(-1) * X * (X(+) * D(-1) * X)(-1) * C,同时计算该类别的最小阈值,即训练图像中最小的自相似性

参数
images具有训练图像的 vector<Mat>

此类的文档是从以下文件生成的