Leaper Vision Toolkit
中文 / English 2.x
结构体 | 枚举
LPVMLLib 模块参考手册

LPV 机器学习模块,提供基于机器学习的分类、检测、识别工具。 更多...

结构体

interface  ILClassifier
 该接口类提供基于机器学习的图像分类功能。 更多...
 
interface  ILFeature
 该接口为图像特征,在机器学习算法中用于从图像中提取特征向量。 更多...
 
interface  ILModel
 该接口为机器学习模型,用于分类、检测、识别等任务。 更多...
 
interface  ILParameterized
 该接口类为机器学习模块特征和模型对象的基类,用于存储和调整参数。 更多...
 
interface  ILSample
 该接口类表示单个样本,通常由一个图像和可选的区域对象组成。 更多...
 
interface  ILSampleDatabase
 该接口类表示样本数据库,用于训练和测试样本的组织和管理。 更多...
 
class  LClassifier
 
class  LFeature
 
class  LModel
 
class  LSample
 
class  LSampleDatabase
 

枚举

enum  LPVConductivity { LPVConductPMG1 = 0 , LPVConductPMG2 = 1 , LPVConductWeickert = 2 , LPVConductCharbonnier = 3 }
 该枚举用于表示电导系数类型,在 AKAZE 特征中使用。 更多...
 
enum  LPVFeatureType { LPVFeatureReserved = 0 , LPVFeatureORB = 1 , LPVFeatureHOG = 2 , LPVFeatureAKAZE = 3 }
 该枚举用于表示特征类型,通常为从图像提取的特征 更多...
 
enum  LPVKNNDistance {
  LPVKNNDistanceEuclidean = 0 , LPVKNNDistanceManhattan = 1 , LPVKNNDistanceMax = 2 , LPVKNNDistanceHistIntersection = 3 ,
  LPVKNNDistanceHellinger = 4 , LPVKNNDistanceChiSquare = 5
}
 该枚举用于表示距离的计算方式,在 KNN 模型中使用,以衡量样本间的相似性。 更多...
 
enum  LPVKNNMatchAlgo {
  LPVKNNMatchBruteForce = 0 , LPVKNNMatchKDTree = 1 , LPVKNNMatchKmeans = 2 , LPVKNNMatchComposite = 3 ,
  LPVKNNMatchHierarchical = 4 , LPVKNNMatchAuto = 5
}
 该枚举用于表示 KNN 模型中用于最近邻搜索的算法。 更多...
 
enum  LPVKNNWeight { LPVKNNWeightByDistance = 0 , LPVKNNWeightUniformed = 1 }
 该枚举用于表示 KNN 模型在 K 个最近邻中计算最终结果时使用的加权方式 更多...
 
enum  LPVModelType { LPVModelReserved = 0 , LPVModelKNN = 1 , LPVModelSVM = 2 }
 该枚举用于表示机器学习模型类型 更多...
 
enum  LPVSampleType { LPVSampleTrain = 1 , LPVSampleTest = 2 }
 该枚举用于表示样本的类型 更多...
 
enum  LPVSVMKernel { LPVSVMKernelLinear = 0 , LPVSVMKernelPolynomial = 1 , LPVSVMKernelRBF = 2 , LPVSVMKernelSigmoid = 3 }
 该枚举用于表示 SVM 模型使用的核类型 更多...
 
enum  LPVSVMType { LPVSVMTypeCSupport = 0 , LPVSVMTypeNuSupport = 1 }
 该枚举用于表示 SVM 模型的类型 更多...
 

详细描述

LPV 机器学习模块,提供基于机器学习的分类、检测、识别工具。

该模块提供一些机器学习算法类,用于分类、检测、识别等任务。使用该模块中的类和算法,需按照以下方式引用该模块:

示例代码

C++ Snippets: MLClassification.cpp
C# Snippets: MLClassification.cs

枚举类型说明

◆ LPVConductivity

该枚举用于表示电导系数类型,在 AKAZE 特征中使用。

下列公式中, \( dL \) 表示一阶图像导数, \( k \) 表示对比度因子。

枚举值
LPVConductPMG1 

Perona & Malik G1: \( \exp{(-dL^2 / k^2)} \)

LPVConductPMG2 

Perona & Malik G2: \( 1 / (1 + dL^2 / k^2) \)

LPVConductWeickert 

Weickert: \( -3.315 / (dL^2 / k^2)^4 \)

LPVConductCharbonnier 

Charbonnier: \( 1 / \sqrt{(1 + dL^2 / k^2)} \)

◆ LPVFeatureType

该枚举用于表示特征类型,通常为从图像提取的特征

枚举值
LPVFeatureReserved 

未初始化的特征

LPVFeatureORB 

ORB 特征(Oriented FAST and Rotated BRIEF)

LPVFeatureHOG 

HOG 特征(Histogram of Oriented Gradients)

LPVFeatureAKAZE 

AKAZE 特征(Accelerated-KAZE)

◆ LPVKNNDistance

该枚举用于表示距离的计算方式,在 KNN 模型中使用,以衡量样本间的相似性。

下列公式中,x 和 y 表示两个待比较样本的特征向量,i 表示特征向量的第 i 位。

枚举值
LPVKNNDistanceEuclidean 

Euclidean(L2): \( \sum{(x_i - y_i)^2} \)

LPVKNNDistanceManhattan 

Manhattan(L1): \( \sum{|x_i - y_i|} \)

LPVKNNDistanceMax 

Maximum: \( \max{|x_i - y_i|} \) 仅当匹配算法为 BruteForce 或者 K-Means 或者 Hierarchical 时可用

LPVKNNDistanceHistIntersection 

Histogram Intersection: \( \sum{\min{(x_i, y_i)}} \)

LPVKNNDistanceHellinger 

Hellinger: \( \sum{(\sqrt{x_i} - \sqrt{y_i})^2} \)

LPVKNNDistanceChiSquare 

Chi-Square: \( \sum{((x_i - y_i)^2/(x_i + y_i))} \text{ for } x_i + y_i > 0 \)

◆ LPVKNNMatchAlgo

该枚举用于表示 KNN 模型中用于最近邻搜索的算法。

枚举值
LPVKNNMatchBruteForce 

朴素的 Brute-Force 算法,即逐一搜索,在样本量小的时候使用。

LPVKNNMatchKDTree 

样本基于其相似性,组织为若干个 KD 树

LPVKNNMatchKmeans 

样本基于其相似性,使用 K-Means 算法聚类为若干个集合

LPVKNNMatchComposite 

KD-Tree 和 K-Means 的组合

LPVKNNMatchHierarchical 

样本基于其相似性,使用分层聚类算法组织

LPVKNNMatchAuto 

基于样本的相似性自动调整索引

◆ LPVKNNWeight

该枚举用于表示 KNN 模型在 K 个最近邻中计算最终结果时使用的加权方式

枚举值
LPVKNNWeightByDistance 

基于样本和预测特征的相似性距离加权,距离越近权重越大

LPVKNNWeightUniformed 

所有最近邻的权重相同

◆ LPVModelType

该枚举用于表示机器学习模型类型

枚举值
LPVModelReserved 

未初始化的模型

LPVModelKNN 

KNN 模型(K-Nearest Neighbors)

LPVModelSVM 

SVM 模型(支持向量机)

◆ LPVSampleType

该枚举用于表示样本的类型

枚举值
LPVSampleTrain 

样本属于训练集,用于模型训练

LPVSampleTest 

样本属于测试集,用于模型测试

◆ LPVSVMKernel

该枚举用于表示 SVM 模型使用的核类型

下列公式中,x 和 y 表示两个待比较样本的特征向量, g、c 和 n 为设定的数值参数

枚举值
LPVSVMKernelLinear 

Linear: \( x^Ty \)

LPVSVMKernelPolynomial 

Polynomial: \( (g \cdot x^Ty + c)^n \)

LPVSVMKernelRBF 

RBF: \( \exp{(-g \cdot |x - y|^2)} \)

LPVSVMKernelSigmoid 

Sigmoid: \( \tanh{(g \cdot x^Ty + c)} \)

◆ LPVSVMType

enum LPVSVMType

该枚举用于表示 SVM 模型的类型

枚举值
LPVSVMTypeCSupport 

C-SVM,基于优化惩罚因子 C 参数的支持向量机算法

LPVSVMTypeNuSupport 

Nu-SVM,基于控制支持向量数量 Nu 参数的支持向量机算法