FPCCascade.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. #ifdef NOVISUAL
  10. #include <vislearning/nice_nonvis.h>
  11. #else
  12. #include <vislearning/nice.h>
  13. #endif
  14. #include "vislearning/classifier/classifierbase/FeaturePoolClassifier.h"
  15. namespace OBJREC {
  16. class Cascade : public std::vector< std::pair<double, FeaturePoolClassifier *> >
  17. {};
  18. /** generic cascade classifier */
  19. class FPCCascade : public FeaturePoolClassifier
  20. {
  21. protected:
  22. Cascade cascade;
  23. FeaturePoolClassifier *classifier;
  24. int backgroundClass;
  25. int nextComplexity;
  26. public:
  27. /** constructor */
  28. FPCCascade( FeaturePoolClassifier *_classifier,
  29. int _backgroundClass );
  30. /** simple destructor */
  31. virtual ~FPCCascade();
  32. virtual ClassificationResult classify ( Example & pe );
  33. virtual void train ( FeaturePool & fp, Examples & examples );
  34. virtual FPCCascade *clone () const;
  35. void restore (std::istream & is, int format = 0);
  36. void store (std::ostream & os, int format = 0) const;
  37. void clear ();
  38. void setLastThreshold ( double threshold );
  39. void deleteLastClassifier ();
  40. FeaturePoolClassifier *getLastClassifier ();
  41. Cascade & getCascade () { return cascade; };
  42. void setComplexity ( int size );
  43. };
  44. } // namespace
  45. #endif