Fixing Warnings #2

pull/288/head
Vladimir 10 years ago
parent 17dbe91ac9
commit d39fbb7608
  1. 112
      modules/tracking/src/tldDetector.cpp
  2. 15
      modules/tracking/src/tldEnsembleClassifier.cpp
  3. 2
      modules/tracking/src/tldEnsembleClassifier.hpp
  4. 13
      modules/tracking/src/tldModel.cpp
  5. 8
      modules/tracking/src/tldModel.hpp
  6. 4
      modules/tracking/src/tldTracker.hpp

@ -53,7 +53,7 @@ namespace cv
}
// Calculate posterior probability, that the patch belongs to the current EC model
double TLDDetector::ensembleClassifierNum(const uchar* data)
double TLDDetector::ensembleClassifierNum(const uchar* data)
{
double p = 0;
for (int k = 0; k < (int)classifiers.size(); k++)
@ -106,10 +106,10 @@ namespace cv
double TLDDetector::ocl_Sr(const Mat_<uchar>& patch)
{
int64 e1, e2, e3, e4;
double t;
e1 = getTickCount();
e3 = getTickCount();
//int64 e1, e2, e3, e4;
//double t;
//e1 = getTickCount();
//e3 = getTickCount();
double splus = 0.0, sminus = 0.0;
@ -134,23 +134,23 @@ namespace cv
posNum,
negNum);
e4 = getTickCount();
t = (e4 - e3) / getTickFrequency()*1000.0;
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Mem Cpy GPU: %f\n", t);
size_t globSize = 1000;
size_t localSize = 128;
e3 = getTickCount();
//e3 = getTickCount();
if (!k.run(1, &globSize, &localSize, true))
printf("Kernel Run Error!!!");
e4 = getTickCount();
t = (e4 - e3) / getTickFrequency()*1000.0;
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Kernel Run GPU: %f\n", t);
e3 = getTickCount();
//e3 = getTickCount();
Mat resNCC = devNCC.getMat(ACCESS_READ);
e4 = getTickCount();
t = (e4 - e3) / getTickFrequency()*1000.0;
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Read Mem GPU: %f\n", t);
////Compare
@ -174,8 +174,8 @@ namespace cv
for (int i = 0; i < *negNum; i++)
sminus = std::max(sminus, 0.5 * (resNCC.at<float>(i+500) +1.0));
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Sr GPU: %f\n\n", t);
if (splus + sminus == 0.0)
@ -185,10 +185,10 @@ namespace cv
void TLDDetector::ocl_batchSrSc(const Mat_<uchar>& patches, double *resultSr, double *resultSc, int numOfPatches)
{
int64 e1, e2, e3, e4;
double t;
e1 = getTickCount();
e3 = getTickCount();
//int64 e1, e2, e3, e4;
//double t;
//e1 = getTickCount();
//e3 = getTickCount();
UMat devPatches = patches.getUMat(ACCESS_READ, USAGE_ALLOCATE_DEVICE_MEMORY);
UMat devPositiveSamples = posExp->getUMat(ACCESS_READ, USAGE_ALLOCATE_DEVICE_MEMORY);
@ -213,25 +213,25 @@ namespace cv
negNum,
numOfPatches);
e4 = getTickCount();
t = (e4 - e3) / getTickFrequency()*1000.0;
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Mem Cpy GPU: %f\n", t);
// 2 -> Pos&Neg
size_t globSize = 2 * numOfPatches*MAX_EXAMPLES_IN_MODEL;
size_t localSize = 1024;
e3 = getTickCount();
//e3 = getTickCount();
if (!k.run(1, &globSize, &localSize, true))
printf("Kernel Run Error!!!");
e4 = getTickCount();
t = (e4 - e3) / getTickFrequency()*1000.0;
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Kernel Run GPU: %f\n", t);
e3 = getTickCount();
//e3 = getTickCount();
Mat posNCC = devPosNCC.getMat(ACCESS_READ);
Mat negNCC = devNegNCC.getMat(ACCESS_READ);
e4 = getTickCount();
t = (e4 - e3) / getTickFrequency()*1000.0;
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Read Mem GPU: %f\n", t);
//Calculate Srs
@ -281,8 +281,8 @@ namespace cv
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Sr GPU: %f\n\n", t);
}
@ -312,9 +312,9 @@ namespace cv
return splus / (sminus + splus);
*/
int64 e1, e2;
float t;
e1 = getTickCount();
//int64 e1, e2;
//double t;
//e1 = getTickCount();
double splus = 0.0, sminus = 0.0;
Mat_<uchar> modelSample(STANDARD_PATCH_SIZE, STANDARD_PATCH_SIZE);
int med = getMedian((*timeStampsPositive));
@ -331,8 +331,8 @@ namespace cv
modelSample.data = &(negExp->data[i * 225]);
sminus = std::max(sminus, 0.5 * (NCC(modelSample, patch) + 1.0));
}
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Sc: %f\n", t);
if (splus + sminus == 0.0)
return 0.0;
@ -473,10 +473,10 @@ namespace cv
std::vector <Mat> resized_imgs, blurred_imgs;
std::vector <Point> varBuffer, ensBuffer;
std::vector <double> varScaleIDs, ensScaleIDs;
int64 e1, e2;
double t;
//int64 e1, e2;
//double t;
e1 = getTickCount();
//e1 = getTickCount();
//Detection part
//Generate windows and filter by variance
scaleID = 0;
@ -505,12 +505,12 @@ namespace cv
GaussianBlur(resized_imgs[scaleID], tmp, GaussBlurKernelSize, 0.0f);
blurred_imgs.push_back(tmp);
} while (size.width >= initSize.width && size.height >= initSize.height);
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Variance: %d\t%f\n", varBuffer.size(), t);
//Encsemble classification
e1 = getTickCount();
//e1 = getTickCount();
for (int i = 0; i < (int)varBuffer.size(); i++)
{
prepareClassifiers((int)blurred_imgs[varScaleIDs[i]].step[0]);
@ -519,12 +519,12 @@ namespace cv
ensBuffer.push_back(varBuffer[i]);
ensScaleIDs.push_back(varScaleIDs[i]);
}
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Ensemble: %d\t%f\n", ensBuffer.size(), t);
//NN classification
e1 = getTickCount();
//e1 = getTickCount();
for (int i = 0; i < (int)ensBuffer.size(); i++)
{
LabeledPatch labPatch;
@ -558,8 +558,8 @@ namespace cv
maxScRect = labPatch.rect;
}
}
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("NN: %d\t%f\n", patches.size(), t);
if (maxSc < 0)
@ -583,10 +583,10 @@ namespace cv
std::vector <Mat> resized_imgs, blurred_imgs;
std::vector <Point> varBuffer, ensBuffer;
std::vector <double> varScaleIDs, ensScaleIDs;
int64 e1, e2;
double t;
//int64 e1, e2;
//double t;
e1 = getTickCount();
//e1 = getTickCount();
//Detection part
//Generate windows and filter by variance
scaleID = 0;
@ -615,12 +615,12 @@ namespace cv
GaussianBlur(resized_imgs[scaleID], tmp, GaussBlurKernelSize, 0.0f);
blurred_imgs.push_back(tmp);
} while (size.width >= initSize.width && size.height >= initSize.height);
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Variance: %d\t%f\n", varBuffer.size(), t);
//Encsemble classification
e1 = getTickCount();
//e1 = getTickCount();
for (int i = 0; i < (int)varBuffer.size(); i++)
{
prepareClassifiers((int)blurred_imgs[varScaleIDs[i]].step[0]);
@ -629,12 +629,12 @@ namespace cv
ensBuffer.push_back(varBuffer[i]);
ensScaleIDs.push_back(varScaleIDs[i]);
}
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Ensemble: %d\t%f\n", ensBuffer.size(), t);
//NN classification
e1 = getTickCount();
//e1 = getTickCount();
//Prepare batch of patches
int numOfPatches = ensBuffer.size();
Mat_<uchar> stdPatches(numOfPatches, 225);
@ -690,8 +690,8 @@ namespace cv
maxScRect = labPatch.rect;
}
}
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("NN: %d\t%f\n", patches.size(), t);
if (maxSc < 0)

@ -55,15 +55,14 @@ namespace cv
measurements.assign(meas.begin() + beg, meas.begin() + end);
offset.assign(mpc, Point2i(0, 0));
}
// Calculate measure locations from 15x15 grid on minSize patches
// Calculate measure locations from 15x15 grid on minSize patches
void TLDEnsembleClassifier::stepPrefSuff(std::vector<Vec4b>& arr, int pos, int len, int gridSize)
{
#if 0
#if 0
int step = len / (gridSize - 1), pref = (len - step * (gridSize - 1)) / 2;
for (int i = 0; i < (int)(sizeof(x1) / sizeof(x1[0])); i++)
arr[i] = pref + arr[i] * step;
#else
#else
int total = len - gridSize;
int quo = total / (gridSize - 1), rem = total % (gridSize - 1);
int smallStep = quo, bigStep = quo + 1;
@ -92,7 +91,7 @@ namespace cv
}
#endif
}
// Calculate offsets for classifier
void TLDEnsembleClassifier::prepareClassifier(int rowstep)
{
@ -106,7 +105,7 @@ namespace cv
}
}
}
// Integrate patch into the Ensemble Classifier model
void TLDEnsembleClassifier::integrate(const Mat_<uchar>& patch, bool isPositive)
{
@ -137,7 +136,7 @@ namespace cv
return posNum / (posNum + negNum);
}
// Calculate the 13-bit fern index
// Calculate the 13-bit fern index
int TLDEnsembleClassifier::codeFast(const uchar* data) const
{
int position = 0;
@ -188,7 +187,7 @@ namespace cv
stepPrefSuff(measurements, 2, size.height, gridSize);
stepPrefSuff(measurements, 3, size.height, gridSize);
//Compile fern classifiers
//Compile fern classifiers
for (int i = 0, howMany = (int)measurements.size() / measurePerClassifier; i < howMany; i++)
classifiers.push_back(TLDEnsembleClassifier(measurements, i * measurePerClassifier, (i + 1) * measurePerClassifier));

@ -64,7 +64,5 @@ namespace cv
std::vector<Point2i> offset;
int lastStep_;
};
}
}

@ -65,7 +65,7 @@ namespace cv
detector->posExp = &posExp;
detector->negExp = &negExp;
detector->positiveExamples = &positiveExamples;
detector->positiveExamples = &positiveExamples;
detector->negativeExamples = &negativeExamples;
detector->timeStampsPositive = &timeStampsPositive;
detector->timeStampsNegative = &timeStampsNegative;
@ -73,21 +73,18 @@ namespace cv
//Calculate the variance in initial BB
originalVariance_ = variance(image(boundingBox));
//Find the scale
double scale = scaleAndBlur(image, cvRound(log(1.0 * boundingBox.width / (minSize.width)) / log(SCALE_STEP)),
scaledImg, blurredImg, GaussBlurKernelSize, SCALE_STEP);
GaussianBlur(image, image_blurred, GaussBlurKernelSize, 0.0);
TLDDetector::generateScanGrid(image.rows, image.cols, minSize_, scanGrid);
getClosestN(scanGrid, Rect2d(boundingBox.x / scale, boundingBox.y / scale, boundingBox.width / scale,
boundingBox.height / scale), 10, closest);
getClosestN(scanGrid, Rect2d(boundingBox.x / scale, boundingBox.y / scale, boundingBox.width / scale, boundingBox.height / scale), 10, closest);
Mat_<uchar> blurredPatch(minSize);
TLDEnsembleClassifier::makeClassifiers(minSize, MEASURES_PER_CLASSIFIER, GRIDSIZE, detector->classifiers);
//Generate initial positive samples and put them to the model
positiveExamples.reserve(200);
for (int i = 0; i < (int)closest.size(); i++)
{
for (int j = 0; j < 20; j++)
@ -297,9 +294,5 @@ namespace cv
dfprintf((port, "\tpositiveExamples.size() = %d\n", (int)positiveExamples.size()));
dfprintf((port, "\tnegativeExamples.size() = %d\n", (int)negativeExamples.size()));
}
}
}

@ -50,10 +50,6 @@ namespace cv
{
namespace tld
{
class TrackerTLDModel : public TrackerModel
{
public:
@ -77,14 +73,12 @@ namespace cv
protected:
Size minSize_;
TrackerTLD::Params params_;
void pushIntoModel(const Mat_<uchar>& example, bool positive);
void modelEstimationImpl(const std::vector<Mat>& /*responses*/){}
void modelUpdateImpl(){}
Rect2d boundingBox_;
Rect2d boundingBox_;
RNG rng;
};
}

@ -49,7 +49,7 @@
#include<algorithm>
#include<limits.h>
namespace cv
namespace cv
{
TrackerTLD::Params::Params(){}
@ -60,8 +60,6 @@ void TrackerTLD::Params::write(cv::FileStorage& /*fs*/) const {}
namespace tld
{
class TrackerProxy
{
public:

Loading…
Cancel
Save