Merge cuda-geek/soft-cascade-gpu into cuda-dev
This commit is contained in:
@@ -1532,6 +1532,76 @@ public:
|
||||
int detectMultiScale(const GpuMat& image, GpuMat& objectsBuf, Size maxObjectSize, Size minSize = Size(), double scaleFactor = 1.1, int minNeighbors = 4);
|
||||
};
|
||||
|
||||
// ======================== GPU version for soft cascade ===================== //
|
||||
|
||||
// Implementation of soft (stageless) cascaded detector.
|
||||
class CV_EXPORTS SCascade : public Algorithm
|
||||
{
|
||||
public:
|
||||
|
||||
// Representation of detectors result.
|
||||
struct CV_EXPORTS Detection
|
||||
{
|
||||
ushort x;
|
||||
ushort y;
|
||||
ushort w;
|
||||
ushort h;
|
||||
float confidence;
|
||||
int kind;
|
||||
|
||||
enum {PEDESTRIAN = 0};
|
||||
};
|
||||
|
||||
enum { NO_REJECT = 1, DOLLAR = 2, /*PASCAL = 4,*/ DEFAULT = NO_REJECT};
|
||||
|
||||
// An empty cascade will be created.
|
||||
// Param minScale is a minimum scale relative to the original size of the image on which cascade will be applyed.
|
||||
// Param minScale is a maximum scale relative to the original size of the image on which cascade will be applyed.
|
||||
// Param scales is a number of scales from minScale to maxScale.
|
||||
// Param rejfactor is used for NMS.
|
||||
SCascade(const double minScale = 0.4, const double maxScale = 5., const int scales = 55, const int rejCriteria = 1);
|
||||
|
||||
virtual ~SCascade();
|
||||
|
||||
cv::AlgorithmInfo* info() const;
|
||||
|
||||
// Load cascade from FileNode.
|
||||
// Param fn is a root node for cascade. Should be <cascade>.
|
||||
virtual bool load(const FileNode& fn);
|
||||
|
||||
// Load cascade config.
|
||||
virtual void read(const FileNode& fn);
|
||||
|
||||
// Return the matrix of of detectioned objects.
|
||||
// Param image is a frame on which detector will be applied.
|
||||
// Param rois is a regions of interests mask generated by genRoi.
|
||||
// Only the objects that fall into one of the regions will be returned.
|
||||
// Param objects is an output array of Detections represented as GpuMat of detections (SCascade::Detection)
|
||||
// The first element of the matrix is actually a count of detections.
|
||||
// Param stream is stream is a high-level CUDA stream abstraction used for asynchronous execution
|
||||
virtual void detect(InputArray image, InputArray rois, OutputArray objects, Stream& stream = Stream::Null()) const;
|
||||
|
||||
// Convert ROI matrix into the suitable for detect method.
|
||||
// Param roi is an input matrix of the same size as the image.
|
||||
// There non zero value mean that detector should be executed in this point.
|
||||
// Param mask is an output mask
|
||||
// Param stream is stream is a high-level CUDA stream abstraction used for asynchronous execution
|
||||
virtual void genRoi(InputArray roi, OutputArray mask, Stream& stream = Stream::Null()) const;
|
||||
|
||||
private:
|
||||
|
||||
struct Fields;
|
||||
Fields* fields;
|
||||
|
||||
double minScale;
|
||||
double maxScale;
|
||||
|
||||
int scales;
|
||||
int rejCriteria;
|
||||
};
|
||||
|
||||
CV_EXPORTS bool initModule_gpu(void);
|
||||
|
||||
////////////////////////////////// SURF //////////////////////////////////////////
|
||||
|
||||
class CV_EXPORTS SURF_GPU
|
||||
|
Reference in New Issue
Block a user