From 8bbbd9341053ac1409dba633bb79768b1d37e6f3 Mon Sep 17 00:00:00 2001 From: Maria Dimashova Date: Wed, 4 May 2011 11:12:17 +0000 Subject: [PATCH] fixed #1025 --- modules/traincascade/cascadeclassifier.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/traincascade/cascadeclassifier.cpp b/modules/traincascade/cascadeclassifier.cpp index a06223824..ee5e8a208 100644 --- a/modules/traincascade/cascadeclassifier.cpp +++ b/modules/traincascade/cascadeclassifier.cpp @@ -264,9 +264,11 @@ bool CvCascadeClassifier::updateTrainingSet( double& acceptanceRatio) return false; cout << "POS count : consumed " << posCount << " : " << (int)posConsumed << endl; - int negCount = fillPassedSamples( numPos, numNeg, false, negConsumed ); + int proNumNeg = cvRound( (float)(numNeg * posCount) / numPos ); // apply only a fraction of negative samples. + int negCount = fillPassedSamples( posCount, proNumNeg, false, negConsumed ); if ( !negCount ) return false; + curNumSamples = posCount + negCount; acceptanceRatio = negConsumed == 0 ? 0 : ( (double)negCount/(double)(int64)negConsumed ); cout << "NEG count : acceptanceRatio " << negCount << " : " << acceptanceRatio << endl;