OpenCV 4.11.0
开源计算机视觉
|
HOG(定向梯度直方图)描述符和目标检测器的实现。更多…
#include <opencv2/objdetect.hpp>
公共类型 | |
枚举 | { DEFAULT_NLEVELS = 64 } |
枚举 | DescriptorStorageFormat { DESCR_FORMAT_COL_BY_COL , DESCR_FORMAT_ROW_BY_ROW } |
枚举 | HistogramNormType { L2Hys = 0 } |
公共成员函数 | |
HOGDescriptor () | |
使用默认参数创建 HOG 描述符和检测器。 | |
HOGDescriptor (const HOGDescriptor &d) | |
HOGDescriptor (const String &filename) | |
HOGDescriptor (Size _winSize, Size _blockSize, Size _blockStride, Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1, HOGDescriptor::HistogramNormType _histogramNormType=HOGDescriptor::L2Hys, double _L2HysThreshold=0.2, bool _gammaCorrection=false, int _nlevels=HOGDescriptor::DEFAULT_NLEVELS, bool _signedGradient=false) | |
虚函数 | ~HOGDescriptor () |
默认析构函数。 | |
bool | checkDetectorSize () const |
检查检测器大小是否等于描述符大小。 | |
虚函数 void | compute (InputArray img, std::vector< float > &descriptors, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &locations=std::vector< Point >()) const |
计算给定图像的 HOG 描述符。 | |
虚函数 void | computeGradient (InputArray img, InputOutputArray grad, InputOutputArray angleOfs, Size paddingTL=Size(), Size paddingBR=Size()) const |
计算梯度和量化的梯度方向。 | |
虚函数 void | copyTo (HOGDescriptor &c) const |
克隆 HOGDescriptor | |
虚函数 void | detect (InputArray img, std::vector< Point > &foundLocations, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &searchLocations=std::vector< Point >()) const |
执行无多尺度窗口的目标检测。 | |
虚函数 void | detect (InputArray img, std::vector< Point > &foundLocations, std::vector< double > &weights, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &searchLocations=std::vector< Point >()) const |
执行无多尺度窗口的目标检测。 | |
虚函数 void | detectMultiScale (InputArray img, std::vector< Rect > &foundLocations, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), double scale=1.05, double groupThreshold=2.0, bool useMeanshiftGrouping=false) const |
检测输入图像中不同大小的目标。检测到的目标作为矩形列表返回。 | |
虚函数 void | detectMultiScale (InputArray img, std::vector< Rect > &foundLocations, std::vector< double > &foundWeights, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), double scale=1.05, double groupThreshold=2.0, bool useMeanshiftGrouping=false) const |
检测输入图像中不同大小的目标。检测到的目标作为矩形列表返回。 | |
虚函数 void | detectMultiScaleROI (InputArray img, std::vector< cv::Rect > &foundLocations, std::vector< DetectionROI > &locations, double hitThreshold=0, int groupThreshold=0) const |
评估指定的 ROI,并返回多尺度下每个位置的置信度值。 | |
虚函数 void | detectROI (InputArray img, const std::vector< cv::Point > &locations, std::vector< cv::Point > &foundLocations, std::vector< double > &confidences, double hitThreshold=0, cv::Size winStride=Size(), cv::Size padding=Size()) const |
评估指定的 ROI 并返回每个位置的置信度值 | |
size_t | getDescriptorSize () const |
返回分类所需的系数数量。 | |
double | getWinSigma () const |
返回 winSigma 值。 | |
void | groupRectangles (std::vector< cv::Rect > &rectList, std::vector< double > &weights, int groupThreshold, double eps) const |
对目标候选矩形进行分组。 | |
virtual bool | load (const String &filename, const String &objname=String()) |
从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数 | |
virtual bool | read (FileNode &fn) |
从文件节点读取 HOGDescriptor 参数和线性 SVM 分类器的系数。 | |
虚函数 void | save (const String &filename, const String &objname=String()) const |
将 HOGDescriptor 参数和线性 SVM 分类器的系数保存到文件中 | |
虚函数 void | setSVMDetector (InputArray svmdetector) |
设置线性 SVM 分类器的系数。 | |
虚函数 void | write (FileStorage &fs, const String &objname) const |
将 HOGDescriptor 参数和线性 SVM 分类器的系数存储在文件存储中。 | |
静态公共成员函数 | |
static std::vector< float > | getDaimlerPeopleDetector () |
返回针对行人检测(对于 48x96 窗口)训练的分类器的系数。 | |
static std::vector< float > | getDefaultPeopleDetector () |
返回针对行人检测(对于 64x128 窗口)训练的分类器的系数。 | |
公共属性 | |
Size | blockSize |
以像素为单位的块大小。与单元格大小对齐。默认值为 Size(16,16)。 | |
Size | blockStride |
块步长。它必须是单元格大小的倍数。默认值为 Size(8,8)。 | |
Size | cellSize |
单元格大小。默认值为 Size(8,8)。 | |
int | derivAperture |
未记录 | |
float | free_coef |
未记录 | |
bool | gammaCorrection |
标志,用于指定是否需要伽马校正预处理。 | |
HOGDescriptor::HistogramNormType | histogramNormType |
histogramNormType | |
double | L2HysThreshold |
L2-Hys 归一化方法收缩。 | |
int | nbins |
用于计算梯度直方图的 bin 数量。默认值为 9。 | |
int | nlevels |
检测窗口增加的最大数量。默认值为 64。 | |
UMat | oclSvmDetector |
启用 OpenCL 时使用的线性 SVM 分类器的系数 | |
bool | signedGradient |
指示是否使用有符号梯度。 | |
std::vector< float > | svmDetector |
线性 SVM 分类器的系数。 | |
double | winSigma |
高斯平滑窗口参数。 | |
Size | winSize |
检测窗口大小。与块大小和块步长对齐。默认值为 Size(64,128)。 | |
HOG(定向梯度直方图)描述符和目标检测器的实现。
Navneet Dalal 和 Bill Triggs 引入的 HOG 描述符算法 [63] 。
有用链接
https://hal.inria.fr/inria-00548512/document/
https://en.wikipedia.org/wiki/Histogram_of_oriented_gradients
https://software.intel.com/en-us/ipp-dev-reference-histogram-of-oriented-gradients-hog-descriptor
http://www.learnopencv.com/histogram-of-oriented-gradients
http://www.learnopencv.com/handwritten-digits-classification-an-opencv-c-python-tutorial
|
inline |
使用默认参数创建 HOG 描述符和检测器。
等于 HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9 )
|
inline |
这是一个重载成员函数,为了方便提供。它与上面的函数的区别仅在于它接受的参数。
_winSize | 使用给定值设置 winSize。 |
_blockSize | 使用给定值设置 blockSize。 |
_blockStride | 使用给定值设置 blockStride。 |
_cellSize | 使用给定值设置 cellSize。 |
_nbins | 使用给定值设置 nbins。 |
_derivAperture | 使用给定值设置 derivAperture。 |
_winSigma | 使用给定值设置 winSigma。 |
_histogramNormType | 使用给定值设置 histogramNormType。 |
_L2HysThreshold | 使用给定值设置 L2HysThreshold。 |
_gammaCorrection | 使用给定值设置 gammaCorrection。 |
_nlevels | 使用给定值设置 nlevels。 |
_signedGradient | 使用给定值设置 signedGradient。 |
|
inline |
这是一个重载成员函数,为了方便提供。它与上面的函数的区别仅在于它接受的参数。
创建 HOG 描述符和检测器,并从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数。
filename | 包含 HOGDescriptor 属性和线性 SVM 分类器系数的文件名。 |
|
inline |
|
inlinevirtual |
默认析构函数。
bool cv::HOGDescriptor::checkDetectorSize | ( | ) | const |
检查检测器大小是否等于描述符大小。
|
virtual |
计算给定图像的 HOG 描述符。
img | 包含图像的矩阵,类型为 CV_8U,将在其中计算 HOG 特征。 |
descriptors | 类型为 CV_32F 的矩阵 |
winStride | 窗口步长。它必须是块步长的倍数。 |
padding | 填充 |
locations | 点向量 |
|
virtual |
计算梯度和量化的梯度方向。
img | 包含要计算图像的矩阵 |
grad | 类型为 CV_32FC2 的矩阵,包含计算的梯度 |
angleOfs | 类型为 CV_8UC2 的矩阵,包含量化的梯度方向 |
paddingTL | 左上角填充 |
paddingBR | 右下角填充 |
|
virtual |
c | 克隆的 HOGDescriptor |
|
virtual |
执行无多尺度窗口的目标检测。
img | 包含图像的矩阵,类型为 CV_8U 或 CV_8UC3,在其中检测对象。 |
foundLocations | 点向量,每个点包含检测到的对象边界的左上角点。 |
hitThreshold | 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但是,如果省略了自由系数(这是允许的),则可以在这里手动指定它。 |
winStride | 窗口步长。它必须是块步长的倍数。 |
padding | 填充 |
searchLocations | 包含要搜索位置的点向量。 |
|
virtual |
执行无多尺度窗口的目标检测。
img | 包含图像的矩阵,类型为 CV_8U 或 CV_8UC3,在其中检测对象。 |
foundLocations | 点向量,每个点包含检测到的对象边界的左上角点。 |
weights | 将包含每个检测到的对象的置信度值的向量。 |
hitThreshold | 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但是,如果省略了自由系数(这是允许的),则可以在这里手动指定它。 |
winStride | 窗口步长。它必须是块步长的倍数。 |
padding | 填充 |
searchLocations | 包含要评估的请求位置集的点向量。 |
|
virtual |
检测输入图像中不同大小的目标。检测到的目标作为矩形列表返回。
img | 包含图像的矩阵,类型为 CV_8U 或 CV_8UC3,在其中检测对象。 |
foundLocations | 矩形向量,每个矩形包含检测到的对象。 |
hitThreshold | 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但是,如果省略了自由系数(这是允许的),则可以在这里手动指定它。 |
winStride | 窗口步长。它必须是块步长的倍数。 |
padding | 填充 |
scale | 检测窗口增加的系数。 |
groupThreshold | 调节相似度阈值的系数。检测到时,某些对象可能被许多矩形覆盖。0 表示不执行分组。 |
useMeanshiftGrouping | 指示分组算法 |
|
virtual |
检测输入图像中不同大小的目标。检测到的目标作为矩形列表返回。
img | 包含图像的矩阵,类型为 CV_8U 或 CV_8UC3,在其中检测对象。 |
foundLocations | 矩形向量,每个矩形包含检测到的对象。 |
foundWeights | 将包含每个检测到的对象的置信度值的向量。 |
hitThreshold | 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但是,如果省略了自由系数(这是允许的),则可以在这里手动指定它。 |
winStride | 窗口步长。它必须是块步长的倍数。 |
padding | 填充 |
scale | 检测窗口增加的系数。 |
groupThreshold | 调节相似度阈值的系数。检测到时,某些对象可能被许多矩形覆盖。0 表示不执行分组。 |
useMeanshiftGrouping | 指示分组算法 |
|
virtual |
评估指定的 ROI,并返回多尺度下每个位置的置信度值。
img | 包含图像的矩阵,类型为 CV_8U 或 CV_8UC3,在其中检测对象。 |
foundLocations | 矩形向量,每个矩形包含检测到的对象。 |
locations | DetectionROI 向量 |
hitThreshold | 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但是,如果省略了自由系数(这是允许的),则可以在这里手动指定它。 |
groupThreshold | 最小矩形数量减1。此阈值用于保留一组矩形。 |
|
virtual |
评估指定的 ROI 并返回每个位置的置信度值
img | 包含图像的矩阵,类型为 CV_8U 或 CV_8UC3,在其中检测对象。 |
locations | 点向量 |
foundLocations | 点向量,每个点表示检测到的目标的左上角点。 |
置信度 | 置信度 |
hitThreshold | 特征与SVM分类平面之间距离的阈值。通常为0,应在检测器系数中指定(作为最后一个自由系数)。但是,如果省略了自由系数(允许),则可以在这里手动指定。 |
winStride | winStride |
padding | padding |
|
静态 |
返回针对行人检测(对于 48x96 窗口)训练的分类器的系数。
|
静态 |
返回针对行人检测(对于 64x128 窗口)训练的分类器的系数。
size_t cv::HOGDescriptor::getDescriptorSize | ( | ) | const |
返回分类所需的系数数量。
double cv::HOGDescriptor::getWinSigma | ( | ) | const |
返回 winSigma 值。
void cv::HOGDescriptor::groupRectangles | ( | std::vector< cv::Rect > & | 矩形列表, |
std::vector< double > & | weights, | ||
int | groupThreshold, | ||
double | eps ) const |
对目标候选矩形进行分组。
矩形列表 | 输入/输出矩形向量。输出向量包含保留和分组的矩形。(Python 列表不会就地修改。) |
weights | 输入/输出矩形权重向量。输出向量包含保留和分组矩形的权重。(Python 列表不会就地修改。) |
groupThreshold | 最小矩形数量减1。此阈值用于保留一组矩形。 |
eps | 矩形边之间合并成一组的相对差异。 |
|
virtual |
从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数
filename | 要读取的文件名。 |
objname | 要读取的节点的可选名称(如果为空,则使用第一个顶级节点)。 |
|
virtual |
从文件节点读取 HOGDescriptor 参数和线性 SVM 分类器的系数。
fn | 文件节点 |
|
virtual |
设置线性 SVM 分类器的系数。
svm检测器 | 线性 SVM 分类器的系数。 |
|
virtual |
将 HOGDescriptor 参数和线性 SVM 分类器的系数存储在文件存储中。
fs | 文件存储 |
objname | 对象名称 |
Size cv::HOGDescriptor::blockSize |
以像素为单位的块大小。与单元格大小对齐。默认值为 Size(16,16)。
int cv::HOGDescriptor::derivAperture |
未记录
float cv::HOGDescriptor::free_coef |
未记录
bool cv::HOGDescriptor::gammaCorrection |
标志,用于指定是否需要伽马校正预处理。
HOGDescriptor::HistogramNormType cv::HOGDescriptor::histogramNormType |
histogramNormType
double cv::HOGDescriptor::L2HysThreshold |
L2-Hys 归一化方法收缩。
int cv::HOGDescriptor::nbins |
用于计算梯度直方图的 bin 数量。默认值为 9。
int cv::HOGDescriptor::nlevels |
检测窗口增加的最大数量。默认值为 64。
UMat cv::HOGDescriptor::oclSvmDetector |
启用 OpenCL 时使用的线性 SVM 分类器的系数
bool cv::HOGDescriptor::signedGradient |
指示是否使用有符号梯度。
std::vector<float> cv::HOGDescriptor::svmDetector |
线性 SVM 分类器的系数。
double cv::HOGDescriptor::winSigma |
高斯平滑窗口参数。
Size cv::HOGDescriptor::winSize |
检测窗口大小。与块大小和块步长对齐。默认值为 Size(64,128)。