CascadeOptimization.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * @file CascadeOptimization.h
  3. * @brief optimization of a previously built cascade
  4. * @author Erik Rodner
  5. * @date 11/13/2008
  6. */
  7. #ifndef CASCADEOPTIMIZATIONINCLUDE
  8. #define CASCADEOPTIMIZATIONINCLUDE
  9. #ifdef NOVISUAL
  10. #include <vislearning/nice_nonvis.h>
  11. #else
  12. #include <vislearning/nice.h>
  13. #endif
  14. #include <vector>
  15. #include <list>
  16. #include "core/basics/triplet.h"
  17. namespace OBJREC {
  18. /** optimization of a previously built cascade */
  19. class CascadeOptimization
  20. {
  21. protected:
  22. public:
  23. /** simple constructor */
  24. CascadeOptimization();
  25. /** simple destructor */
  26. virtual ~CascadeOptimization();
  27. bool calcOptimalCascade ( const std::vector<std::vector< NICE::triplet<double, double, double> > > & matrix,
  28. std::list<int> & path,
  29. double & besttprate,
  30. double tprate,
  31. double fprate,
  32. double minimumFPRate,
  33. uint round );
  34. void calcOptimalCascade ( const std::vector<std::vector< NICE::triplet<double, double, double> > > & matrix,
  35. double minimumFPRate,
  36. std::vector<double> & thresholds );
  37. /** side-effect @param results will be sorted */
  38. bool evaluateCascade ( std::vector<std::pair<double, int> > & results,
  39. long N, long P,
  40. int negativeClassDST,
  41. double requiredDetectionRate,
  42. double & bestthreshold,
  43. double & tprate,
  44. double & fprate,
  45. std::vector< NICE::triplet<double, double, double> > & statistics );
  46. };
  47. } // namespace
  48. #endif