Implementation of HOG (Histogram of Oriented Gradients) descriptor and object detector. More...
#include <opencv2/objdetect.hpp>
Public Types | |
enum | { DEFAULT_NLEVELS = 64 } |
enum | DescriptorStorageFormat { DESCR_FORMAT_COL_BY_COL, DESCR_FORMAT_ROW_BY_ROW } |
enum | HistogramNormType { L2Hys = 0 } |
Public Member Functions | |
HOGDescriptor () | |
Creates the HOG descriptor and detector with default params. More... | |
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) | |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
HOGDescriptor (const String &filename) | |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
HOGDescriptor (const HOGDescriptor &d) | |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
virtual | ~HOGDescriptor () |
Default destructor. More... | |
bool | checkDetectorSize () const |
Checks if detector size equal to descriptor size. More... | |
virtual void | compute (InputArray img, std::vector< float > &descriptors, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &locations=std::vector< Point >()) const |
Computes HOG descriptors of given image. More... | |
virtual void | computeGradient (InputArray img, InputOutputArray grad, InputOutputArray angleOfs, Size paddingTL=Size(), Size paddingBR=Size()) const |
Computes gradients and quantized gradient orientations. More... | |
virtual void | copyTo (HOGDescriptor &c) const |
clones the HOGDescriptor More... | |
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 |
Performs object detection without a multi-scale window. More... | |
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 |
Performs object detection without a multi-scale window. More... | |
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 finalThreshold=2.0, bool useMeanshiftGrouping=false) const |
Detects objects of different sizes in the input image. More... | |
virtual void | detectMultiScale (InputArray img, std::vector< Rect > &foundLocations, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), double scale=1.05, double finalThreshold=2.0, bool useMeanshiftGrouping=false) const |
Detects objects of different sizes in the input image. More... | |
virtual void | detectMultiScaleROI (InputArray img, std::vector< cv::Rect > &foundLocations, std::vector< DetectionROI > &locations, double hitThreshold=0, int groupThreshold=0) const |
evaluate specified ROI and return confidence value for each location in multiple scales More... | |
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 |
evaluate specified ROI and return confidence value for each location More... | |
size_t | getDescriptorSize () const |
Returns the number of coefficients required for the classification. More... | |
double | getWinSigma () const |
Returns winSigma value. More... | |
void | groupRectangles (std::vector< cv::Rect > &rectList, std::vector< double > &weights, int groupThreshold, double eps) const |
Groups the object candidate rectangles. More... | |
virtual bool | load (const String &filename, const String &objname=String()) |
loads HOGDescriptor parameters and coefficients for the linear SVM classifier from a file. More... | |
virtual bool | read (FileNode &fn) |
Reads HOGDescriptor parameters from a cv::FileNode. More... | |
virtual void | save (const String &filename, const String &objname=String()) const |
saves HOGDescriptor parameters and coefficients for the linear SVM classifier to a file More... | |
virtual void | setSVMDetector (InputArray svmdetector) |
Sets coefficients for the linear SVM classifier. More... | |
virtual void | write (FileStorage &fs, const String &objname) const |
Stores HOGDescriptor parameters in a cv::FileStorage. More... | |
Static Public Member Functions | |
static std::vector< float > | getDaimlerPeopleDetector () |
Returns coefficients of the classifier trained for people detection (for 48x96 windows). More... | |
static std::vector< float > | getDefaultPeopleDetector () |
Returns coefficients of the classifier trained for people detection (for 64x128 windows). More... | |
Public Attributes | |
Size | blockSize |
Block size in pixels. Align to cell size. Default value is Size(16,16). More... | |
Size | blockStride |
Block stride. It must be a multiple of cell size. Default value is Size(8,8). More... | |
Size | cellSize |
Cell size. Default value is Size(8,8). More... | |
int | derivAperture |
not documented More... | |
float | free_coef |
not documented More... | |
bool | gammaCorrection |
Flag to specify whether the gamma correction preprocessing is required or not. More... | |
HOGDescriptor::HistogramNormType | histogramNormType |
histogramNormType More... | |
double | L2HysThreshold |
L2-Hys normalization method shrinkage. More... | |
int | nbins |
Number of bins used in the calculation of histogram of gradients. Default value is 9. More... | |
int | nlevels |
Maximum number of detection window increases. Default value is 64. More... | |
UMat | oclSvmDetector |
coefficients for the linear SVM classifier used when OpenCL is enabled More... | |
bool | signedGradient |
Indicates signed gradient will be used or not. More... | |
std::vector< float > | svmDetector |
coefficients for the linear SVM classifier. More... | |
double | winSigma |
Gaussian smoothing window parameter. More... | |
Size | winSize |
Detection window size. Align to block size and block stride. Default value is Size(64,128). More... | |
Implementation of HOG (Histogram of Oriented Gradients) descriptor and object detector.
the HOG descriptor algorithm introduced by Navneet Dalal and Bill Triggs [22] .
useful links:
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 |
Creates the HOG descriptor and detector with default params.
aqual to HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9 )
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
_winSize | sets winSize with given value. |
_blockSize | sets blockSize with given value. |
_blockStride | sets blockStride with given value. |
_cellSize | sets cellSize with given value. |
_nbins | sets nbins with given value. |
_derivAperture | sets derivAperture with given value. |
_winSigma | sets winSigma with given value. |
_histogramNormType | sets histogramNormType with given value. |
_L2HysThreshold | sets L2HysThreshold with given value. |
_gammaCorrection | sets gammaCorrection with given value. |
_nlevels | sets nlevels with given value. |
_signedGradient | sets signedGradient with given value. |
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
filename | The file name containing HOGDescriptor properties and coefficients for the linear SVM classifier. |
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
d | the HOGDescriptor which cloned to create a new one. |
References copyTo().
|
inlinevirtual |
Default destructor.
References cv::copyTo(), CV_OUT, and CV_WRAP.
bool cv::HOGDescriptor::checkDetectorSize | ( | ) | const |
Checks if detector size equal to descriptor size.
|
virtual |
Computes HOG descriptors of given image.
img | Matrix of the type CV_8U containing an image where HOG features will be calculated. |
descriptors | Matrix of the type CV_32F |
winStride | Window stride. It must be a multiple of block stride. |
padding | Padding |
locations | Vector of Point |
|
virtual |
Computes gradients and quantized gradient orientations.
img | Matrix contains the image to be computed |
grad | Matrix of type CV_32FC2 contains computed gradients |
angleOfs | Matrix of type CV_8UC2 contains quantized gradient orientations |
paddingTL | Padding from top-left |
paddingBR | Padding from bottom-right |
|
virtual |
clones the HOGDescriptor
c | cloned HOGDescriptor |
Referenced by HOGDescriptor().
|
virtual |
Performs object detection without a multi-scale window.
img | Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. |
foundLocations | Vector of point where each point contains left-top corner point of detected object boundaries. |
weights | Vector that will contain confidence values for each detected object. |
hitThreshold | Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. |
winStride | Window stride. It must be a multiple of block stride. |
padding | Padding |
searchLocations | Vector of Point includes set of requested locations to be evaluated. |
|
virtual |
Performs object detection without a multi-scale window.
img | Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. |
foundLocations | Vector of point where each point contains left-top corner point of detected object boundaries. |
hitThreshold | Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. |
winStride | Window stride. It must be a multiple of block stride. |
padding | Padding |
searchLocations | Vector of Point includes locations to search. |
|
virtual |
Detects objects of different sizes in the input image.
The detected objects are returned as a list of rectangles.
img | Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. |
foundLocations | Vector of rectangles where each rectangle contains the detected object. |
foundWeights | Vector that will contain confidence values for each detected object. |
hitThreshold | Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. |
winStride | Window stride. It must be a multiple of block stride. |
padding | Padding |
scale | Coefficient of the detection window increase. |
finalThreshold | Final threshold |
useMeanshiftGrouping | indicates grouping algorithm |
|
virtual |
Detects objects of different sizes in the input image.
The detected objects are returned as a list of rectangles.
img | Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. |
foundLocations | Vector of rectangles where each rectangle contains the detected object. |
hitThreshold | Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. |
winStride | Window stride. It must be a multiple of block stride. |
padding | Padding |
scale | Coefficient of the detection window increase. |
finalThreshold | Final threshold |
useMeanshiftGrouping | indicates grouping algorithm |
|
virtual |
evaluate specified ROI and return confidence value for each location in multiple scales
img | Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. |
foundLocations | Vector of rectangles where each rectangle contains the detected object. |
locations | Vector of DetectionROI |
hitThreshold | Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. |
groupThreshold | Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. |
|
virtual |
evaluate specified ROI and return confidence value for each location
img | Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. |
locations | Vector of Point |
foundLocations | Vector of Point where each Point is detected object's top-left point. |
confidences | confidences |
hitThreshold | Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here |
winStride | winStride |
padding | padding |
|
static |
Returns coefficients of the classifier trained for people detection (for 48x96 windows).
|
static |
Returns coefficients of the classifier trained for people detection (for 64x128 windows).
size_t cv::HOGDescriptor::getDescriptorSize | ( | ) | const |
Returns the number of coefficients required for the classification.
double cv::HOGDescriptor::getWinSigma | ( | ) | const |
Returns winSigma value.
void cv::HOGDescriptor::groupRectangles | ( | std::vector< cv::Rect > & | rectList, |
std::vector< double > & | weights, | ||
int | groupThreshold, | ||
double | eps | ||
) | const |
Groups the object candidate rectangles.
rectList | Input/output vector of rectangles. Output vector includes retained and grouped rectangles. (The Python list is not modified in place.) |
weights | Input/output vector of weights of rectangles. Output vector includes weights of retained and grouped rectangles. (The Python list is not modified in place.) |
groupThreshold | Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. |
eps | Relative difference between sides of the rectangles to merge them into a group. |
|
virtual |
loads HOGDescriptor parameters and coefficients for the linear SVM classifier from a file.
filename | Path of the file to read. |
objname | The optional name of the node to read (if empty, the first top-level node will be used). |
|
virtual |
Reads HOGDescriptor parameters from a cv::FileNode.
fn | File node |
|
virtual |
saves HOGDescriptor parameters and coefficients for the linear SVM classifier to a file
filename | File name |
objname | Object name |
|
virtual |
Sets coefficients for the linear SVM classifier.
svmdetector | coefficients for the linear SVM classifier. |
|
virtual |
Stores HOGDescriptor parameters in a cv::FileStorage.
fs | File storage |
objname | Object name |
Size cv::HOGDescriptor::blockSize |
Block size in pixels. Align to cell size. Default value is Size(16,16).
Size cv::HOGDescriptor::blockStride |
Block stride. It must be a multiple of cell size. Default value is Size(8,8).
Size cv::HOGDescriptor::cellSize |
Cell size. Default value is Size(8,8).
int cv::HOGDescriptor::derivAperture |
not documented
float cv::HOGDescriptor::free_coef |
not documented
bool cv::HOGDescriptor::gammaCorrection |
Flag to specify whether the gamma correction preprocessing is required or not.
HOGDescriptor::HistogramNormType cv::HOGDescriptor::histogramNormType |
histogramNormType
double cv::HOGDescriptor::L2HysThreshold |
L2-Hys normalization method shrinkage.
int cv::HOGDescriptor::nbins |
Number of bins used in the calculation of histogram of gradients. Default value is 9.
int cv::HOGDescriptor::nlevels |
Maximum number of detection window increases. Default value is 64.
UMat cv::HOGDescriptor::oclSvmDetector |
coefficients for the linear SVM classifier used when OpenCL is enabled
bool cv::HOGDescriptor::signedGradient |
Indicates signed gradient will be used or not.
std::vector<float> cv::HOGDescriptor::svmDetector |
coefficients for the linear SVM classifier.
double cv::HOGDescriptor::winSigma |
Gaussian smoothing window parameter.
Size cv::HOGDescriptor::winSize |
Detection window size. Align to block size and block stride. Default value is Size(64,128).