/** * @file CascadeOptimization.h * @brief optimization of a previously built cascade * @author Erik Rodner * @date 11/13/2008 */ #ifndef CASCADEOPTIMIZATIONINCLUDE #define CASCADEOPTIMIZATIONINCLUDE #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include #include #include "core/basics/triplet.h" namespace OBJREC { /** optimization of a previously built cascade */ class CascadeOptimization { protected: public: /** simple constructor */ CascadeOptimization(); /** simple destructor */ virtual ~CascadeOptimization(); bool calcOptimalCascade ( const std::vector > > & matrix, std::list & path, double & besttprate, double tprate, double fprate, double minimumFPRate, uint round ); void calcOptimalCascade ( const std::vector > > & matrix, double minimumFPRate, std::vector & thresholds ); /** side-effect @param results will be sorted */ bool evaluateCascade ( std::vector > & results, long N, long P, int negativeClassDST, double requiredDetectionRate, double & bestthreshold, double & tprate, double & fprate, std::vector< NICE::triplet > & statistics ); }; } // namespace #endif