Soft Cascade Training

Soft Cascade Detector Training

softcascade::Octave

class softcascade::Octave : public Algorithm

Public interface for soft cascade training algorithm.

class Octave : public Algorithm
{
public:

    enum {
        // Direct backward pruning. (Cha Zhang and Paul Viola)
        DBP = 1,
        // Multiple instance pruning. (Cha Zhang and Paul Viola)
        MIP = 2,
        // Originally proposed by L. Bourdev and J. Brandt
        HEURISTIC = 4 };

    virtual ~Octave();
    static cv::Ptr<Octave> create(cv::Rect boundingBox, int npositives, int nnegatives, int logScale, int shrinkage);

    virtual bool train(const Dataset* dataset, const FeaturePool* pool, int weaks, int treeDepth) = 0;
    virtual void setRejectThresholds(OutputArray thresholds) = 0;
    virtual void write( cv::FileStorage &fs, const FeaturePool* pool, InputArray thresholds) const = 0;
    virtual void write( CvFileStorage* fs, String name) const = 0;

};

softcascade::Octave::~Octave

Destructor for Octave.

C++: softcascade::Octave::~Octave()

softcascade::Octave::train

C++: bool softcascade::Octave::train(const Dataset* dataset, const FeaturePool* pool, int weaks, int treeDepth)

:param dataset an object that allows communicate for training set.

:param pool an object that presents feature pool.

:param weaks a number of weak trees should be trained.

:param treeDepth a depth of resulting weak trees.

softcascade::Octave::setRejectThresholds

C++: void softcascade::Octave::setRejectThresholds(OutputArray thresholds)

:param thresholds an output array of resulted rejection vector. Have same size as number of trained stages.

softcascade::Octave::write

C++: void softcascade::Octave::train(cv::FileStorage& fs, const FeaturePool* pool, InputArray thresholds) const
C++: void softcascade::Octave::train(CvFileStorage* fs, String name) const

:param fs an output file storage to store trained detector.

:param pool an object that presents feature pool.

:param dataset a rejection vector that should be included in detector xml file.

:param name a name of root node for trained detector.

softcascade::FeaturePool

class softcascade::FeaturePool

Public interface for feature pool. This is a hight level abstraction for training random feature pool.

class FeaturePool
{
public:

    virtual int size() const = 0;
    virtual float apply(int fi, int si, const Mat& channels) const = 0;
    virtual void write( cv::FileStorage& fs, int index) const = 0;
    virtual ~FeaturePool();

};

softcascade::FeaturePool::size

Returns size of feature pool.

C++: int softcascade::FeaturePool::size() const

softcascade::FeaturePool::~FeaturePool

FeaturePool destructor.

C++: softcascade::FeaturePool::~FeaturePool()

softcascade::FeaturePool::write

Write specified feature from feature pool to file storage.

C++: void softcascade::FeaturePool::write(cv::FileStorage& fs, int index) const

:param fs an output file storage to store feature.

:param index an index of feature that should be stored.

softcascade::FeaturePool::apply

Compute feature on integral channel image.

C++: float softcascade::FeaturePool::apply(int fi, int si, const Mat& channels) const

:param fi an index of feature that should be computed.

:param si an index of sample.

:param fs a channel matrix.