![]() |
OpenCV 4.12.0
开源计算机视觉
|
HOG(定向梯度直方图)描述符和对象检测器的实现。更多...
#include <opencv2/objdetect.hpp>
公共类型 | |
| 枚举 | { DEFAULT_NLEVELS = 64 } |
| 枚举 | 描述符存储格式 { 按列描述符格式 , 按行描述符格式 } |
| 枚举 | 直方图归一化类型 { 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) | |
| virtual | ~HOGDescriptor () |
| 默认析构函数。 | |
| bool | checkDetectorSize () const |
| 检查检测器大小是否等于描述符大小。 | |
| virtual void | compute (InputArray img, std::vector< float > &descriptors, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &locations=std::vector< Point >()) const |
| 计算给定图像的 HOG 描述符。 | |
| virtual void | computeGradient (InputArray img, InputOutputArray grad, InputOutputArray angleOfs, Size paddingTL=Size(), Size paddingBR=Size()) const |
| 计算梯度和量化梯度方向。 | |
| virtual void | copyTo (HOGDescriptor &c) const |
| 克隆 HOGDescriptor | |
| virtual 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 |
| 执行无多尺度窗口的对象检测。 | |
| virtual 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 |
| 执行无多尺度窗口的对象检测。 | |
| virtual 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 |
| 检测输入图像中不同大小的对象。检测到的对象以矩形列表的形式返回。 | |
| virtual 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 |
| 检测输入图像中不同大小的对象。检测到的对象以矩形列表的形式返回。 | |
| virtual void | detectMultiScaleROI (InputArray img, std::vector< cv::Rect > &foundLocations, std::vector< DetectionROI > &locations, double hitThreshold=0, int groupThreshold=0) const |
| 评估指定的 ROI,并为多个尺度中的每个位置返回置信度值。 | |
| virtual 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 分类器的系数。 | |
| virtual void | save (const String &filename, const String &objname=String()) const |
| 将 HOGDescriptor 参数和线性 SVM 分类器的系数保存到文件中 | |
| virtual void | setSVMDetector (InputArray svmdetector) |
| 设置线性 SVM 分类器的系数。 | |
| virtual 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 [65] 引入的 HOG 描述符算法。
有用链接
https://hal.inria.fr/inria-00548512/document/
https://zh.wikipedia.org/wiki/方向梯度直方图
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 | 点向量,其中每个点是检测到的对象的左上角点。 |
| confidences | confidences |
| hitThreshold | 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略自由系数(允许),您可以在此处手动指定 |
| winStride | winStride |
| padding | padding |
|
static |
返回用于行人检测(48x96 窗口)训练的分类器系数。
|
static |
返回用于行人检测(64x128 窗口)训练的分类器系数。
| size_t cv::HOGDescriptor::getDescriptorSize | ( | ) | const |
返回分类所需的系数数量。
| double cv::HOGDescriptor::getWinSigma | ( | ) | const |
返回 winSigma 值。
| void cv::HOGDescriptor::groupRectangles | ( | std::vector< cv::Rect > & | rectList, |
| std::vector< double > & | weights, | ||
| int | groupThreshold, | ||
| double | eps ) const |
对对象候选矩形进行分组。
| rectList | 输入/输出矩形向量。输出向量包含保留和分组的矩形。(Python 列表不会就地修改。) |
| weights | 输入/输出矩形权重向量。输出向量包含保留和分组的矩形权重。(Python 列表不会就地修改。) |
| groupThreshold | 矩形最小可能数量减 1。该阈值用于矩形组以保留它。 |
| eps | 合并矩形组时矩形边之间的相对差异。 |
|
virtual |
从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数
| filename | 要读取的文件名。 |
| objname | 要读取的节点的可选名称(如果为空,将使用第一个顶级节点)。 |
|
virtual |
从文件节点读取 HOGDescriptor 参数和线性 SVM 分类器的系数。
| fn | 文件节点 |
|
virtual |
设置线性 SVM 分类器的系数。
| svmdetector | 线性 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)。