FPCCascade.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * @file FPCCascade.h
  3. * @brief generic cascade classifier
  4. * @author Erik Rodner
  5. * @date 04/21/2008
  6. */
  7. #ifndef FPCCascadeINCLUDE
  8. #define FPCCascadeINCLUDE
  9. #include "core/vector/VectorT.h"
  10. #include "core/vector/MatrixT.h"
  11. #include "vislearning/classifier/classifierbase/FeaturePoolClassifier.h"
  12. namespace OBJREC {
  13. class Cascade : public std::vector< std::pair<double, FeaturePoolClassifier *> >
  14. {};
  15. /** generic cascade classifier */
  16. class FPCCascade : public FeaturePoolClassifier
  17. {
  18. protected:
  19. Cascade cascade;
  20. FeaturePoolClassifier *classifier;
  21. int backgroundClass;
  22. int nextComplexity;
  23. public:
  24. /** constructor */
  25. FPCCascade( FeaturePoolClassifier *_classifier,
  26. int _backgroundClass );
  27. /** simple destructor */
  28. virtual ~FPCCascade();
  29. virtual ClassificationResult classify ( Example & pe );
  30. virtual void train ( FeaturePool & fp, Examples & examples );
  31. virtual FPCCascade *clone () const;
  32. void restore (std::istream & is, int format = 0);
  33. void store (std::ostream & os, int format = 0) const;
  34. void clear ();
  35. void setLastThreshold ( double threshold );
  36. void deleteLastClassifier ();
  37. FeaturePoolClassifier *getLastClassifier ();
  38. Cascade & getCascade () { return cascade; };
  39. void setComplexity ( int size );
  40. };
  41. } // namespace
  42. #endif