OpenCV 4.10.0
Open Source Computer Vision
|
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) | |||
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 (输入数组 img, std::vector< 点 > &foundLocations, std::vector< double > &weights, double hitThreshold=0, 尺寸 winStride=尺寸(), 尺寸 padding=尺寸(), const std::vector< 点 > &searchLocations=std::vector< 点 >()) const | ||
执行没有多尺度窗口的目标检测。 | |||
virtual void | detectMultiScale (输入数组 img, std::vector< 矩形 > &foundLocations, double hitThreshold=0, 尺寸 winStride=尺寸(), 尺寸 padding=尺寸(), double scale=1.05, double groupThreshold=2.0, bool useMeanshiftGrouping=false) const | ||
在输入图像中检测不同尺寸的对象。检测到的对象以矩形列表的形式返回。 | |||
virtual void | detectMultiScale (输入数组 img, std::vector< 矩形 > &foundLocations, std::vector< double > &foundWeights, double hitThreshold=0, 尺寸 winStride=尺寸(), 尺寸 padding=尺寸(), double scale=1.05, double groupThreshold=2.0, bool useMeanshiftGrouping=false) const | ||
在输入图像中检测不同尺寸的对象。检测到的对象以矩形列表的形式返回。 | |||
virtual void | detectMultiScaleROI (输入数组 img, std::vector< cv::矩形 > &foundLocations, std::vector< DetectionROI > &locations, double hitThreshold=0, int groupThreshold=0) const | ||
评估指定 ROI,并针对各种尺寸返回每个位置的置信度值 | |||
virtual void | detectROI (输入数组 img, const std::vector< | 评估指定 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 窗口)训练的分类器的系数。 | |
公有属性 | |
大小 | 块大小 |
像素块大小。对齐为单元大小。默认值是 大小(16,16)。 | |
大小 | blockStride |
块步幅。它必须是单元大小的倍数。默认值是 大小(8,8)。 | |
大小 | 单元大小 |
默认值是 大小(8,8)。 | |
int | derivAperture |
未记录 | |
float | free_coef |
未记录 | |
bool | gammaCorrection |
标记,用于指定是否需要伽马校正预处理。 | |
HOGDescriptor::直方图归一类型 | histogramNormType |
histogramNormType | |
double | L2HysThreshold |
L2-Hys 归一方法收缩。 | |
int | nbins |
用于计算梯度直方图的框数量。默认值是 9。 | |
int | nlevels |
检测窗口的增加次数的最大值。默认值是 64。 | |
UMat | oclSvmDetector |
在启用 OpenCL 时所使用的线性 SVM 分类器的系数 | |
bool | signedGradient |
指示是否将使用带符号梯度。 | |
std::vector< float > | svmDetector |
线性 SVM 分类器的系数。 | |
double | winSigma |
高斯平滑窗口参数。 | |
大小 | winSize |
检测窗口大小。对齐为块大小和块步幅。默认值是 大小(64,128)。 | |
HOG(梯度直方图)描述符和目标检测器的实现。
Navneet Dalal 和 Bill Triggs [63] 引入的 HOG 描述符算法。
有用的链接
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
|
内联 |
创建具有默认参数的 HOG 描述符和检测器。
相当于 HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9 )
|
内联 |
这是一个重载成员函数,为方便而提供。它仅在接受的参数方面与以上函数不同。
_winSize | 设置具有给定值的 winSize。 |
_blockSize | 设置具有给定值的 blockSize。 |
_blockStride | 设置具有给定值的 blockStride。 |
_cellSize | 设置具有给定值的 cellSize。 |
_nbins | 设置具有给定值的 nbins。 |
_derivAperture | 设置具有给定值的 derivAperture。 |
_winSigma | 设置具有给定值的 winSigma。 |
_histogramNormType | 设置具有给定值的 histogramNormType。 |
_L2HysThreshold | 设置具有给定值的 L2HysThreshold。 |
_gammaCorrection | 设置具有给定值的 gammaCorrection。 |
_nlevels | 设置具有给定值的 nlevels。 |
_signedGradient | 设置具有给定值的 signedGradient。 |
|
内联 |
这是一个重载成员函数,为方便而提供。它仅在接受的参数方面与以上函数不同。
创建 HOG 描述符和检测器,并从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数。
filename | 包含 HOGDescriptor 属性和系数的线性 SVM 分类器文件名称。 |
|
内联 |
|
inlinevirtual |
默认析构函数。
bool cv::HOGDescriptor::checkDetectorSize | ( | ) | const |
检查检测器大小是否等于描述符大小。
|
virtual |
计算给定图像的 HOG 描述符。
img | 类型为 CV_8U 的矩阵,包含将计算 HOG 特性的图像。 |
descriptors | 类型为 CV_32F 的矩阵 |
winStride | 窗口步长。它必须是块步长的倍数。 |
padding | 填充 |
locations | Point 向量 |
|
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 | 可能的最小矩形数减一。该阈值用于矩形组中以保留它。 |
|
virtual |
评估指定 ROI 并返回每个位置的置信度值
img | 包含要检测对象的图像的 CV_8U 或 CV_8UC3 类型的矩阵。 |
locations | Point 向量 |
foundLocations | 每个点为检测到的物体左上角点的 Point(点)向量。 |
置信度 | 置信度 |
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 > & | rectList, |
std::vector< double > & | weights, | ||
int | groupThreshold, | ||
double | eps | ||
) | const |
对对象候选矩形进行分组。
rectList | 矩形输入/输出向量。输出向量包括保留且已分组的矩形。(不会就地修改 Python 列表。) |
weights | 矩形权重输入/输出向量。输出向量包括保留且已分组的矩形的权重。(不会就地修改 Python 列表。) |
groupThreshold | 可能的最小矩形数减一。该阈值用于矩形组中以保留它。 |
eps | 将矩形合并到一组中的矩形边之间的相对差值。 |
|
virtual |
从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数
filename | 要读取的文件的名称。 |
objname | 要读取的节点可选名称(如果为空,将使用第一个顶级节点)。 |
|
virtual |
从文件节点读取 HOGDescriptor 参数和线性 SVM 分类器的系数。
fn | 文件节点 |
|
virtual |
设置线性 SVM 分类器的系数。
svmdetector | 线性 SVM 分类器的系数。 |
|
virtual |
将 HOGDescriptor 参数和线性 SVM 分类器的系数存储到文件存储中。
fs | 文件存储 |
objname | 对象名称 |
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 |
用于计算梯度直方图的框数量。默认值是 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 |
检测窗口大小。对齐为块大小和块步幅。默认值是 大小(64,128)。