### Navigation

- index
- next |
- previous |
- OpenCV 3.0.0-dev documentation »
- OpenCV API Reference »
- softcascade. Soft Cascade object detection and training. »

# 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.

## Help and Feedback

You did not find what you were looking for?

- Ask a question on the Q&A forum.
- If you think something is missing or wrong in the documentation, please file a bug report.

### Navigation

- index
- next |
- previous |
- OpenCV 3.0.0-dev documentation »
- OpenCV API Reference »
- softcascade. Soft Cascade object detection and training. »