OpenCV  3.2.0-dev
Open Source Computer Vision

The class implements Histogram of Oriented Gradients ([17]) object detector. More...

#include "cudaobjdetect.hpp"

Inheritance diagram for cv::cuda::HOG:
Collaboration diagram for cv::cuda::HOG:

Public Types

enum  {
  DESCR_FORMAT_ROW_BY_ROW,
  DESCR_FORMAT_COL_BY_COL
}
 

Public Member Functions

virtual void clear ()
 Clears the algorithm state. More...
 
virtual void compute (InputArray img, OutputArray descriptors, Stream &stream=Stream::Null())=0
 Returns block descriptors computed for the whole image. More...
 
virtual void detect (InputArray img, std::vector< Point > &found_locations, std::vector< double > *confidences=NULL)=0
 Performs object detection without a multi-scale window. More...
 
virtual void detectMultiScale (InputArray img, std::vector< Rect > &found_locations, std::vector< double > *confidences=NULL)=0
 Performs object detection with a multi-scale window. More...
 
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. More...
 
virtual size_t getBlockHistogramSize () const =0
 Returns the block histogram size. More...
 
virtual String getDefaultName () const
 Returns the algorithm string identifier. More...
 
virtual Mat getDefaultPeopleDetector () const =0
 Returns coefficients of the classifier trained for people detection. More...
 
virtual int getDescriptorFormat () const =0
 
virtual size_t getDescriptorSize () const =0
 Returns the number of coefficients required for the classification. More...
 
virtual bool getGammaCorrection () const =0
 
virtual int getGroupThreshold () const =0
 
virtual double getHitThreshold () const =0
 
virtual double getL2HysThreshold () const =0
 
virtual int getNumLevels () const =0
 
virtual double getScaleFactor () const =0
 
virtual double getWinSigma () const =0
 
virtual Size getWinStride () const =0
 
virtual void read (const FileNode &fn)
 Reads algorithm parameters from a file storage. More...
 
virtual void save (const String &filename) const
 Saves the algorithm to a file. More...
 
virtual void setDescriptorFormat (int descr_format)=0
 Descriptor storage format: More...
 
virtual void setGammaCorrection (bool gamma_correction)=0
 Flag to specify whether the gamma correction preprocessing is required or not. More...
 
virtual void setGroupThreshold (int group_threshold)=0
 Coefficient to regulate the similarity threshold. More...
 
virtual void setHitThreshold (double hit_threshold)=0
 Threshold for the distance between features and SVM classifying plane. More...
 
virtual void setL2HysThreshold (double threshold_L2hys)=0
 L2-Hys normalization method shrinkage. More...
 
virtual void setNumLevels (int nlevels)=0
 Maximum number of detection window increases. More...
 
virtual void setScaleFactor (double scale0)=0
 Coefficient of the detection window increase. More...
 
virtual void setSVMDetector (InputArray detector)=0
 Sets coefficients for the linear SVM classifier. More...
 
virtual void setWinSigma (double win_sigma)=0
 Gaussian smoothing window parameter. More...
 
virtual void setWinStride (Size win_stride)=0
 Window stride. It must be a multiple of block stride. More...
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage. More...
 

Static Public Member Functions

static Ptr< HOGcreate (Size win_size=Size(64, 128), Size block_size=Size(16, 16), Size block_stride=Size(8, 8), Size cell_size=Size(8, 8), int nbins=9)
 Creates the HOG descriptor and detector. More...
 
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
 Loads algorithm from the file. More...
 
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String. More...
 
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
 Reads algorithm from the file node. More...
 

Protected Member Functions

void writeFormat (FileStorage &fs) const
 

Detailed Description

The class implements Histogram of Oriented Gradients ([17]) object detector.

Note
  • An example applying the HOG descriptor for people detection can be found at opencv_source_code/samples/cpp/peopledetect.cpp
  • A CUDA example applying the HOG descriptor for people detection can be found at opencv_source_code/samples/gpu/hog.cpp
  • (Python) An example applying the HOG descriptor for people detection can be found at opencv_source_code/samples/python/peopledetect.py

Member Enumeration Documentation

anonymous enum
Enumerator
DESCR_FORMAT_ROW_BY_ROW 
DESCR_FORMAT_COL_BY_COL 

Member Function Documentation

virtual void cv::Algorithm::clear ( )
inlinevirtualinherited

Clears the algorithm state.

Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::cuda::DescriptorMatcher.

virtual void cv::cuda::HOG::compute ( InputArray  img,
OutputArray  descriptors,
Stream stream = Stream::Null() 
)
pure virtual

Returns block descriptors computed for the whole image.

Parameters
imgSource image. See cuda::HOGDescriptor::detect for type limitations.
descriptors2D array of descriptors.
streamCUDA stream.
static Ptr<HOG> cv::cuda::HOG::create ( Size  win_size = Size(64, 128),
Size  block_size = Size(16, 16),
Size  block_stride = Size(8, 8),
Size  cell_size = Size(8, 8),
int  nbins = 9 
)
static

Creates the HOG descriptor and detector.

Parameters
win_sizeDetection window size. Align to block size and block stride.
block_sizeBlock size in pixels. Align to cell size. Only (16,16) is supported for now.
block_strideBlock stride. It must be a multiple of cell size.
cell_sizeCell size. Only (8, 8) is supported for now.
nbinsNumber of bins. Only 9 bins per cell are supported for now.
virtual void cv::cuda::HOG::detect ( InputArray  img,
std::vector< Point > &  found_locations,
std::vector< double > *  confidences = NULL 
)
pure virtual

Performs object detection without a multi-scale window.

Parameters
imgSource image. CV_8UC1 and CV_8UC4 types are supported for now.
found_locationsLeft-top corner points of detected objects boundaries.
confidencesOptional output array for confidences.
virtual void cv::cuda::HOG::detectMultiScale ( InputArray  img,
std::vector< Rect > &  found_locations,
std::vector< double > *  confidences = NULL 
)
pure virtual

Performs object detection with a multi-scale window.

Parameters
imgSource image. See cuda::HOGDescriptor::detect for type limitations.
found_locationsDetected objects boundaries.
confidencesOptional output array for confidences.
virtual bool cv::Algorithm::empty ( ) const
inlinevirtualinherited

Returns true if the Algorithm is empty (e.g.

in the very beginning or after unsuccessful read

Reimplemented in cv::DescriptorMatcher, cv::ml::StatModel, cv::Feature2D, cv::BaseCascadeClassifier, and cv::cuda::DescriptorMatcher.

virtual size_t cv::cuda::HOG::getBlockHistogramSize ( ) const
pure virtual

Returns the block histogram size.

virtual String cv::Algorithm::getDefaultName ( ) const
virtualinherited

Returns the algorithm string identifier.

This string is used as top level xml/yml node tag when the object is saved to a file or string.

virtual Mat cv::cuda::HOG::getDefaultPeopleDetector ( ) const
pure virtual

Returns coefficients of the classifier trained for people detection.

virtual int cv::cuda::HOG::getDescriptorFormat ( ) const
pure virtual
virtual size_t cv::cuda::HOG::getDescriptorSize ( ) const
pure virtual

Returns the number of coefficients required for the classification.

virtual bool cv::cuda::HOG::getGammaCorrection ( ) const
pure virtual
virtual int cv::cuda::HOG::getGroupThreshold ( ) const
pure virtual
virtual double cv::cuda::HOG::getHitThreshold ( ) const
pure virtual
virtual double cv::cuda::HOG::getL2HysThreshold ( ) const
pure virtual
virtual int cv::cuda::HOG::getNumLevels ( ) const
pure virtual
virtual double cv::cuda::HOG::getScaleFactor ( ) const
pure virtual
virtual double cv::cuda::HOG::getWinSigma ( ) const
pure virtual
virtual Size cv::cuda::HOG::getWinStride ( ) const
pure virtual
template<typename _Tp >
static Ptr<_Tp> cv::Algorithm::load ( const String filename,
const String objname = String() 
)
inlinestaticinherited

Loads algorithm from the file.

Parameters
filenameName of the file to read.
objnameThe optional name of the node to read (if empty, the first top-level node will be used)

This is static template method of Algorithm. It's usage is following (in the case of SVM):

Ptr<SVM> svm = Algorithm::load<SVM>("my_svm_model.xml");

In order to make this method work, the derived class must overwrite Algorithm::read(const FileNode& fn).

References cv::Ptr< T >::empty(), cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), and cv::FileStorage::READ.

Here is the call graph for this function:

template<typename _Tp >
static Ptr<_Tp> cv::Algorithm::loadFromString ( const String strModel,
const String objname = String() 
)
inlinestaticinherited

Loads algorithm from a String.

Parameters
strModelThe string variable containing the model you want to load.
objnameThe optional name of the node to read (if empty, the first top-level node will be used)

This is static template method of Algorithm. It's usage is following (in the case of SVM):

Ptr<SVM> svm = Algorithm::loadFromString<SVM>(myStringModel);

References CV_WRAP, cv::Ptr< T >::empty(), cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), cv::FileStorage::MEMORY, and cv::FileStorage::READ.

Here is the call graph for this function:

virtual void cv::Algorithm::read ( const FileNode fn)
inlinevirtualinherited

Reads algorithm parameters from a file storage.

Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::Feature2D.

template<typename _Tp >
static Ptr<_Tp> cv::Algorithm::read ( const FileNode fn)
inlinestaticinherited

Reads algorithm from the file node.

This is static template method of Algorithm. It's usage is following (in the case of SVM):

cv::FileStorage fsRead("example.xml", FileStorage::READ);
Ptr<SVM> svm = Algorithm::read<SVM>(fsRead.root());

In order to make this method work, the derived class must overwrite Algorithm::read(const FileNode& fn) and also have static create() method without parameters (or with all the optional parameters)

References cv::Ptr< T >::empty().

Here is the call graph for this function:

virtual void cv::Algorithm::save ( const String filename) const
virtualinherited

Saves the algorithm to a file.

In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).

virtual void cv::cuda::HOG::setDescriptorFormat ( int  descr_format)
pure virtual

Descriptor storage format:

  • DESCR_FORMAT_ROW_BY_ROW - Row-major order.
  • DESCR_FORMAT_COL_BY_COL - Column-major order.
virtual void cv::cuda::HOG::setGammaCorrection ( bool  gamma_correction)
pure virtual

Flag to specify whether the gamma correction preprocessing is required or not.

virtual void cv::cuda::HOG::setGroupThreshold ( int  group_threshold)
pure virtual

Coefficient to regulate the similarity threshold.

When detected, some objects can be covered by many rectangles. 0 means not to perform grouping. See groupRectangles.

virtual void cv::cuda::HOG::setHitThreshold ( double  hit_threshold)
pure virtual

Threshold for the distance between features and SVM classifying plane.

Usually it is 0 and should be specfied 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.

virtual void cv::cuda::HOG::setL2HysThreshold ( double  threshold_L2hys)
pure virtual

L2-Hys normalization method shrinkage.

virtual void cv::cuda::HOG::setNumLevels ( int  nlevels)
pure virtual

Maximum number of detection window increases.

virtual void cv::cuda::HOG::setScaleFactor ( double  scale0)
pure virtual

Coefficient of the detection window increase.

virtual void cv::cuda::HOG::setSVMDetector ( InputArray  detector)
pure virtual

Sets coefficients for the linear SVM classifier.

virtual void cv::cuda::HOG::setWinSigma ( double  win_sigma)
pure virtual

Gaussian smoothing window parameter.

virtual void cv::cuda::HOG::setWinStride ( Size  win_stride)
pure virtual

Window stride. It must be a multiple of block stride.

virtual void cv::Algorithm::write ( FileStorage fs) const
inlinevirtualinherited

Stores algorithm parameters in a file storage.

Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::Feature2D.

void cv::Algorithm::writeFormat ( FileStorage fs) const
protectedinherited

The documentation for this class was generated from the following file: