CascadeOptimization.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. #include "core/vector/VectorT.h"
  10. #include "core/vector/MatrixT.h"
  11. #include <vector>
  12. #include <list>
  13. #include "core/basics/triplet.h"
  14. namespace OBJREC {
  15. /** optimization of a previously built cascade */
  16. class CascadeOptimization
  17. {
  18. protected:
  19. public:
  20. /** simple constructor */
  21. CascadeOptimization();
  22. /** simple destructor */
  23. virtual ~CascadeOptimization();
  24. bool calcOptimalCascade ( const std::vector<std::vector< NICE::triplet<double, double, double> > > & matrix,
  25. std::list<int> & path,
  26. double & besttprate,
  27. double tprate,
  28. double fprate,
  29. double minimumFPRate,
  30. uint round );
  31. void calcOptimalCascade ( const std::vector<std::vector< NICE::triplet<double, double, double> > > & matrix,
  32. double minimumFPRate,
  33. std::vector<double> & thresholds );
  34. /** side-effect @param results will be sorted */
  35. bool evaluateCascade ( std::vector<std::pair<double, int> > & results,
  36. long N, long P,
  37. int negativeClassDST,
  38. double requiredDetectionRate,
  39. double & bestthreshold,
  40. double & tprate,
  41. double & fprate,
  42. std::vector< NICE::triplet<double, double, double> > & statistics );
  43. };
  44. } // namespace
  45. #endif