PedestrainCounting
StrongClassifier.h
1 
10 #ifndef STRONG_CLASSIFIER_HEADER
11 #define STRONG_CLASSIFIER_HEADER
12 
13 #include "ClassifierSelector.h"
14 
16 public:
17  StrongClassifier(int numSelector, int numWeakClassifier,
18  const Size &patchSize, bool useFeatureReplace = false, int numBackup = 0);
19  virtual ~StrongClassifier();
20 
21  virtual float Evaluate(const IntegralImage *intImage, const Rect &roi) const;
22 
26  virtual void Initialize(const Size &patchSize);
27 
28  virtual bool Update(const IntegralImage *intImage, const Rect &roi,
29  int target, float importance = 1.0f);
30 
31 protected:
32  int numSelector;
33  int totalWeakClassifiers;
34 
35  ClassifierSelector **selectors;
36 
37  Size patchSize;
38 
39  // The weight of each selector.
40  float *alpha;
41 
42  // Whether we replace the weakest classifier in trainging.
43  bool useFeatureReplace;
44 
45  inline void NormalizeAlpha() {
46  float sum = 0.0f;
47  for (int i = 0; i < numSelector; i++) {
48  sum += alpha[i];
49  }
50  float invSum = 1.0f / sum;
51  for (int i = 0; i < numSelector; i++) {
52  alpha[i] *= invSum;
53  }
54  }
55 
56 };
57 
58 
59 #endif
Definition: Geometry.h:34
Definition: Geometry.h:14
virtual void Initialize(const Size &patchSize)
Definition: StrongClassifier.cpp:30
Definition: IntegralImage.h:11
Definition: ClassifierSelector.h:14
Definition: StrongClassifier.h:15