OpenCV  3.2.0-dev
Open Source Computer Vision
cv::cuda::CascadeClassifier Class Referenceabstract

Cascade classifier class used for object detection. More...

#include "cudaobjdetect.hpp"

Inheritance diagram for cv::cuda::CascadeClassifier:
Collaboration diagram for cv::cuda::CascadeClassifier:

Public Member Functions

virtual void clear ()
 Clears the algorithm state. More...
 
virtual void convert (OutputArray gpu_objects, std::vector< Rect > &objects)=0
 Converts objects array from internal representation to standard vector. More...
 
virtual void detectMultiScale (InputArray image, OutputArray objects, Stream &stream=Stream::Null())=0
 Detects objects of different sizes in the input image. More...
 
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. More...
 
virtual Size getClassifierSize () const =0
 
virtual String getDefaultName () const
 Returns the algorithm string identifier. More...
 
virtual bool getFindLargestObject ()=0
 
virtual int getMaxNumObjects () const =0
 
virtual Size getMaxObjectSize () const =0
 
virtual int getMinNeighbors () const =0
 
virtual Size getMinObjectSize () const =0
 
virtual double getScaleFactor () 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 setFindLargestObject (bool findLargestObject)=0
 
virtual void setMaxNumObjects (int maxNumObjects)=0
 
virtual void setMaxObjectSize (Size maxObjectSize)=0
 Maximum possible object size. More...
 
virtual void setMinNeighbors (int minNeighbors)=0
 Parameter specifying how many neighbors each candidate rectangle should have to retain it. More...
 
virtual void setMinObjectSize (Size minSize)=0
 Minimum possible object size. Objects smaller than that are ignored. More...
 
virtual void setScaleFactor (double scaleFactor)=0
 Parameter specifying how much the image size is reduced at each image scale. More...
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage. More...
 

Static Public Member Functions

static Ptr< CascadeClassifiercreate (const String &filename)
 Loads the classifier from a file. More...
 
static Ptr< CascadeClassifiercreate (const FileStorage &file)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 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

Cascade classifier class used for object detection.

Supports HAAR and LBP cascades. :

Note
  • A cascade classifier example can be found at opencv_source_code/samples/gpu/cascadeclassifier.cpp
    • A Nvidea API specific cascade classifier example can be found at opencv_source_code/samples/gpu/cascadeclassifier_nvidia_api.cpp

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::CascadeClassifier::convert ( OutputArray  gpu_objects,
std::vector< Rect > &  objects 
)
pure virtual

Converts objects array from internal representation to standard vector.

Parameters
gpu_objectsObjects array in internal representation.
objectsResulting array.
static Ptr<CascadeClassifier> cv::cuda::CascadeClassifier::create ( const String filename)
static

Loads the classifier from a file.

Cascade type is detected automatically by constructor parameter.

Parameters
filenameName of the file from which the classifier is loaded. Only the old haar classifier (trained by the haar training application) and NVIDIA's nvbin are supported for HAAR and only new type of OpenCV XML cascade supported for LBP. The working haar models can be found at opencv_folder/data/haarcascades_cuda/
static Ptr<CascadeClassifier> cv::cuda::CascadeClassifier::create ( const FileStorage file)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

virtual void cv::cuda::CascadeClassifier::detectMultiScale ( InputArray  image,
OutputArray  objects,
Stream stream = Stream::Null() 
)
pure virtual

Detects objects of different sizes in the input image.

Parameters
imageMatrix of type CV_8U containing an image where objects should be detected.
objectsBuffer to store detected objects (rectangles).
streamCUDA stream.

To get final array of detected objects use CascadeClassifier::convert method.

Ptr<cuda::CascadeClassifier> cascade_gpu = cuda::CascadeClassifier::create(...);
Mat image_cpu = imread(...)
GpuMat image_gpu(image_cpu);
GpuMat objbuf;
cascade_gpu->detectMultiScale(image_gpu, objbuf);
std::vector<Rect> faces;
cascade_gpu->convert(objbuf, faces);
for(int i = 0; i < detections_num; ++i)
cv::rectangle(image_cpu, faces[i], Scalar(255));
imshow("Faces", image_cpu);
See also
CascadeClassifier::detectMultiScale
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 cv::cuda::CascadeClassifier::getClassifierSize ( ) const
pure virtual
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 bool cv::cuda::CascadeClassifier::getFindLargestObject ( )
pure virtual
virtual int cv::cuda::CascadeClassifier::getMaxNumObjects ( ) const
pure virtual
virtual Size cv::cuda::CascadeClassifier::getMaxObjectSize ( ) const
pure virtual
virtual int cv::cuda::CascadeClassifier::getMinNeighbors ( ) const
pure virtual
virtual Size cv::cuda::CascadeClassifier::getMinObjectSize ( ) const
pure virtual
virtual double cv::cuda::CascadeClassifier::getScaleFactor ( ) 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::CascadeClassifier::setFindLargestObject ( bool  findLargestObject)
pure virtual
virtual void cv::cuda::CascadeClassifier::setMaxNumObjects ( int  maxNumObjects)
pure virtual
virtual void cv::cuda::CascadeClassifier::setMaxObjectSize ( Size  maxObjectSize)
pure virtual

Maximum possible object size.

Objects larger than that are ignored. Used for second signature and supported only for LBP cascades.

virtual void cv::cuda::CascadeClassifier::setMinNeighbors ( int  minNeighbors)
pure virtual

Parameter specifying how many neighbors each candidate rectangle should have to retain it.

virtual void cv::cuda::CascadeClassifier::setMinObjectSize ( Size  minSize)
pure virtual

Minimum possible object size. Objects smaller than that are ignored.

virtual void cv::cuda::CascadeClassifier::setScaleFactor ( double  scaleFactor)
pure virtual

Parameter specifying how much the image size is reduced at each image scale.

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: