Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv_contrib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv_contrib
Commits
bae3dac9
Commit
bae3dac9
authored
Aug 17, 2015
by
Vladimir
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleaning up debug prints/variables/flags/timers
parent
826cb28d
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
6 additions
and
290 deletions
+6
-290
multiTracker.cpp
modules/tracking/src/multiTracker.cpp
+1
-14
tldDetector.cpp
modules/tracking/src/tldDetector.cpp
+5
-204
tldDetector.hpp
modules/tracking/src/tldDetector.hpp
+0
-1
tldModel.cpp
modules/tracking/src/tldModel.cpp
+0
-44
tldTracker.cpp
modules/tracking/src/tldTracker.cpp
+0
-27
No files found.
modules/tracking/src/multiTracker.cpp
View file @
bae3dac9
...
...
@@ -75,7 +75,6 @@ namespace cv
bool
MultiTracker
::
update
(
const
Mat
&
image
)
{
printf
(
"Naive-Loop MO-TLD Update....
\n
"
);
for
(
int
i
=
0
;
i
<
(
int
)
trackers
.
size
();
i
++
)
if
(
!
trackers
[
i
]
->
update
(
image
,
boundingBoxes
[
i
]))
return
false
;
...
...
@@ -237,14 +236,7 @@ namespace cv
}
//Debug display candidates after Variance Filter
////////////////////////////////////////////////
Mat
tmpImg
=
image
;
for
(
int
i
=
0
;
i
<
(
int
)
debugStack
[
0
].
size
();
i
++
)
//rectangle(tmpImg, debugStack[0][i], Scalar(255, 255, 255), 1, 1, 0);
debugStack
[
0
].
clear
();
tmpImg
.
copyTo
(
image
);
////////////////////////////////////////////////
return
true
;
}
...
...
@@ -342,7 +334,6 @@ namespace cv
}
while
(
size
.
width
>=
initSize
.
width
&&
size
.
height
>=
initSize
.
height
);
//Encsemble classification
//e1 = getTickCount();
for
(
int
k
=
0
;
k
<
(
int
)
trackers
.
size
();
k
++
)
{
//TLD Tracker data extraction
...
...
@@ -385,7 +376,6 @@ namespace cv
}
//NN classification
//e1 = getTickCount();
for
(
int
k
=
0
;
k
<
(
int
)
trackers
.
size
();
k
++
)
{
//TLD Tracker data extraction
...
...
@@ -538,7 +528,6 @@ namespace cv
}
while
(
size
.
width
>=
initSize
.
width
&&
size
.
height
>=
initSize
.
height
);
//Encsemble classification
//e1 = getTickCount();
for
(
int
k
=
0
;
k
<
(
int
)
trackers
.
size
();
k
++
)
{
//TLD Tracker data extraction
...
...
@@ -581,7 +570,6 @@ namespace cv
}
//NN classification
//e1 = getTickCount();
for
(
int
k
=
0
;
k
<
(
int
)
trackers
.
size
();
k
++
)
{
//TLD Tracker data extraction
...
...
@@ -589,7 +577,6 @@ namespace cv
tracker
=
static_cast
<
tld
::
TrackerTLDImpl
*>
(
trackerPtr
);
//TLD Model Extraction
tldModel
=
((
tld
::
TrackerTLDModel
*
)
static_cast
<
TrackerModel
*>
(
tracker
->
model
));
//Size InitSize = tldModel->getMinSize();
npos
=
0
;
nneg
=
0
;
maxSc
=
-
5.0
;
...
...
modules/tracking/src/tldDetector.cpp
View file @
bae3dac9
...
...
@@ -65,25 +65,6 @@ namespace cv
// Calculate Relative similarity of the patch (NN-Model)
double
TLDDetector
::
Sr
(
const
Mat_
<
uchar
>&
patch
)
{
/*
int64 e1, e2;
float t;
e1 = getTickCount();
double splus = 0.0, sminus = 0.0;
for (int i = 0; i < (int)(*positiveExamples).size(); i++)
splus = std::max(splus, 0.5 * (NCC((*positiveExamples)[i], patch) + 1.0));
for (int i = 0; i < (int)(*negativeExamples).size(); i++)
sminus = std::max(sminus, 0.5 * (NCC((*negativeExamples)[i], patch) + 1.0));
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
printf("Sr: %f\n", t);
if (splus + sminus == 0.0)
return 0.0;
return splus / (sminus + splus);
*/
//int64 e1, e2;
//float t;
//e1 = getTickCount();
double
splus
=
0.0
,
sminus
=
0.0
;
Mat_
<
uchar
>
modelSample
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
);
for
(
int
i
=
0
;
i
<
*
posNum
;
i
++
)
...
...
@@ -96,9 +77,7 @@ 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;
//printf("Sr CPU: %f\n", t);
if
(
splus
+
sminus
==
0.0
)
return
0.0
;
return
splus
/
(
sminus
+
splus
);
...
...
@@ -106,10 +85,6 @@ namespace cv
double
TLDDetector
::
ocl_Sr
(
const
Mat_
<
uchar
>&
patch
)
{
//int64 e1, e2, e3, e4;
//double t;
//e1 = getTickCount();
//e3 = getTickCount();
double
splus
=
0.0
,
sminus
=
0.0
;
...
...
@@ -134,38 +109,12 @@ namespace cv
*
posNum
,
*
negNum
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Mem Cpy GPU: %f\n", t);
size_t
globSize
=
1000
;
//e3 = getTickCount();
if
(
!
k
.
run
(
1
,
&
globSize
,
NULL
,
false
))
printf
(
"Kernel Run Error!!!"
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Kernel Run GPU: %f\n", t);
//e3 = getTickCount();
Mat
resNCC
=
devNCC
.
getMat
(
ACCESS_READ
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Read Mem GPU: %f\n", t);
////Compare
//Mat_<uchar> modelSample(STANDARD_PATCH_SIZE, STANDARD_PATCH_SIZE);
//for (int i = 0; i < 200; i+=17)
//{
// modelSample.data = &(posExp->data[i * 225]);
// printf("%f\t%f\n\n", resNCC.at<float>(i), NCC(modelSample, patch));
//}
//for (int i = 0; i < 200; i+=23)
//{
// modelSample.data = &(negExp->data[i * 225]);
// printf("%f\t%f\n", resNCC.at<float>(500+i), NCC(modelSample, patch));
//}
for
(
int
i
=
0
;
i
<
*
posNum
;
i
++
)
splus
=
std
::
max
(
splus
,
0.5
*
(
resNCC
.
at
<
float
>
(
i
)
+
1.0
));
...
...
@@ -173,10 +122,6 @@ 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;
//printf("Sr GPU: %f\n\n", t);
if
(
splus
+
sminus
==
0.0
)
return
0.0
;
return
splus
/
(
sminus
+
splus
);
...
...
@@ -184,11 +129,6 @@ 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();
UMat
devPatches
=
patches
.
getUMat
(
ACCESS_READ
,
USAGE_ALLOCATE_DEVICE_MEMORY
);
UMat
devPositiveSamples
=
posExp
->
getUMat
(
ACCESS_READ
,
USAGE_ALLOCATE_DEVICE_MEMORY
);
UMat
devNegativeSamples
=
negExp
->
getUMat
(
ACCESS_READ
,
USAGE_ALLOCATE_DEVICE_MEMORY
);
...
...
@@ -212,25 +152,13 @@ namespace cv
*
negNum
,
numOfPatches
);
//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
;
//e3 = getTickCount();
if
(
!
k
.
run
(
1
,
&
globSize
,
NULL
,
true
))
printf
(
"Kernel Run Error!!!"
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Kernel Run GPU: %f\n", t);
//e3 = getTickCount();
Mat
posNCC
=
devPosNCC
.
getMat
(
ACCESS_READ
);
Mat
negNCC
=
devNegNCC
.
getMat
(
ACCESS_READ
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Read Mem GPU: %f\n", t);
//Calculate Srs
for
(
int
id
=
0
;
id
<
numOfPatches
;
id
++
)
...
...
@@ -256,62 +184,11 @@ namespace cv
else
resultSc
[
id
]
=
spc
/
(
smc
+
spc
);
}
////Compare positive NCCs
/*Mat_<uchar> modelSample(STANDARD_PATCH_SIZE, STANDARD_PATCH_SIZE);
Mat_<uchar> patch(STANDARD_PATCH_SIZE, STANDARD_PATCH_SIZE);
for (int j = 0; j < numOfPatches; j++)
{
for (int i = 0; i < 1; i++)
{
modelSample.data = &(posExp->data[i * 225]);
patch.data = &(patches.data[j * 225]);
printf("%f\t%f\n", resultSr[j], Sr(patch));
printf("%f\t%f\n", resultSc[j], Sc(patch));
}
}*/
//for (int i = 0; i < 200; i+=23)
//{
// modelSample.data = &(negExp->data[i * 225]);
// printf("%f\t%f\n", resNCC.at<float>(500+i), NCC(modelSample, patch));
//}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Sr GPU: %f\n\n", t);
}
// Calculate Conservative similarity of the patch (NN-Model)
double
TLDDetector
::
Sc
(
const
Mat_
<
uchar
>&
patch
)
{
/*
int64 e1, e2;
float t;
e1 = getTickCount();
double splus = 0.0, sminus = 0.0;
int med = getMedian((*timeStampsPositive));
for (int i = 0; i < (int)(*positiveExamples).size(); i++)
{
if ((int)(*timeStampsPositive)[i] <= med)
splus = std::max(splus, 0.5 * (NCC((*positiveExamples)[i], patch) + 1.0));
}
for (int i = 0; i < (int)(*negativeExamples).size(); i++)
sminus = std::max(sminus, 0.5 * (NCC((*negativeExamples)[i], patch) + 1.0));
e2 = getTickCount();
t = (e2 - e1) / getTickFrequency()*1000.0;
printf("Sc: %f\n", t);
if (splus + sminus == 0.0)
return 0.0;
return splus / (sminus + splus);
*/
//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
));
...
...
@@ -328,9 +205,7 @@ 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;
//printf("Sc: %f\n", t);
if
(
splus
+
sminus
==
0.0
)
return
0.0
;
...
...
@@ -339,13 +214,8 @@ namespace cv
double
TLDDetector
::
ocl_Sc
(
const
Mat_
<
uchar
>&
patch
)
{
//int64 e1, e2, e3, e4;
//float t;
//e1 = getTickCount();
double
splus
=
0.0
,
sminus
=
0.0
;
//e3 = getTickCount();
UMat
devPatch
=
patch
.
getUMat
(
ACCESS_READ
,
USAGE_ALLOCATE_DEVICE_MEMORY
);
UMat
devPositiveSamples
=
posExp
->
getUMat
(
ACCESS_READ
,
USAGE_ALLOCATE_DEVICE_MEMORY
);
UMat
devNegativeSamples
=
negExp
->
getUMat
(
ACCESS_READ
,
USAGE_ALLOCATE_DEVICE_MEMORY
);
...
...
@@ -367,37 +237,12 @@ namespace cv
*
posNum
,
*
negNum
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Mem Cpy GPU: %f\n", t);
size_t
globSize
=
1000
;
//e3 = getTickCount();
if
(
!
k
.
run
(
1
,
&
globSize
,
NULL
,
false
))
printf
(
"Kernel Run Error!!!"
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Kernel Run GPU: %f\n", t);
//e3 = getTickCount();
Mat
resNCC
=
devNCC
.
getMat
(
ACCESS_READ
);
//e4 = getTickCount();
//t = (e4 - e3) / getTickFrequency()*1000.0;
//printf("Read Mem GPU: %f\n", t);
////Compare
//Mat_<uchar> modelSample(STANDARD_PATCH_SIZE, STANDARD_PATCH_SIZE);
//for (int i = 0; i < 200; i+=17)
//{
// modelSample.data = &(posExp->data[i * 225]);
// printf("%f\t%f\n\n", resNCC.at<float>(i), NCC(modelSample, patch));
//}
//for (int i = 0; i < 200; i+=23)
//{
// modelSample.data = &(negExp->data[i * 225]);
// printf("%f\t%f\n", resNCC.at<float>(500+i), NCC(modelSample, patch));
//}
int
med
=
getMedian
((
*
timeStampsPositive
));
for
(
int
i
=
0
;
i
<
*
posNum
;
i
++
)
...
...
@@ -407,10 +252,6 @@ 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;
//printf("Sc GPU: %f\n\n", t);
if
(
splus
+
sminus
==
0.0
)
return
0.0
;
return
splus
/
(
sminus
+
splus
);
...
...
@@ -449,7 +290,6 @@ namespace cv
break
;
}
}
//dprintf(("%d rects in res\n", (int)res.size()));
}
//Detection - returns most probable new target location (Max Sc)
...
...
@@ -469,10 +309,6 @@ namespace cv
std
::
vector
<
Mat
>
resized_imgs
,
blurred_imgs
;
std
::
vector
<
Point
>
varBuffer
,
ensBuffer
;
std
::
vector
<
int
>
varScaleIDs
,
ensScaleIDs
;
//int64 e1, e2;
//double t;
//e1 = getTickCount();
//Detection part
//Generate windows and filter by variance
...
...
@@ -491,10 +327,6 @@ namespace cv
continue
;
varBuffer
.
push_back
(
Point
(
dx
*
i
,
dy
*
j
));
varScaleIDs
.
push_back
(
scaleID
);
//Debug display candidates after Variance Filter
double
curScale
=
pow
(
tld
::
SCALE_STEP
,
scaleID
);
debugStack
[
0
].
push_back
(
Rect2d
(
dx
*
i
*
curScale
,
dy
*
j
*
curScale
,
initSize
.
width
*
curScale
,
initSize
.
height
*
curScale
));
}
}
scaleID
++
;
...
...
@@ -506,12 +338,8 @@ namespace cv
GaussianBlur
(
resized_imgs
[
scaleID
],
tmp
,
GaussBlurKernelSize
,
0.0
f
);
blurred_imgs
.
push_back
(
tmp
);
}
while
(
size
.
width
>=
initSize
.
width
&&
size
.
height
>=
initSize
.
height
);
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Variance: %d\t%f\n", varBuffer.size(), t);
//Encsemble classification
//e1 = getTickCount();
for
(
int
i
=
0
;
i
<
(
int
)
varBuffer
.
size
();
i
++
)
{
prepareClassifiers
(
static_cast
<
int
>
(
blurred_imgs
[
varScaleIDs
[
i
]].
step
[
0
]));
...
...
@@ -520,15 +348,8 @@ namespace cv
ensBuffer
.
push_back
(
varBuffer
[
i
]);
ensScaleIDs
.
push_back
(
varScaleIDs
[
i
]);
}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Ensemble: %d\t%f\n", ensBuffer.size(), t);
//printf("varBuffer: %d\n", varBuffer.size());
//printf("ensBuffer: %d\n", ensBuffer.size());
//NN classification
//e1 = getTickCount();
for
(
int
i
=
0
;
i
<
(
int
)
ensBuffer
.
size
();
i
++
)
{
LabeledPatch
labPatch
;
...
...
@@ -562,9 +383,6 @@ namespace cv
maxScRect
=
labPatch
.
rect
;
}
}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("NN: %d\t%f\n", patches.size(), t);
if
(
maxSc
<
0
)
return
false
;
...
...
@@ -590,10 +408,7 @@ namespace cv
std
::
vector
<
Mat
>
resized_imgs
,
blurred_imgs
;
std
::
vector
<
Point
>
varBuffer
,
ensBuffer
;
std
::
vector
<
int
>
varScaleIDs
,
ensScaleIDs
;
//int64 e1, e2;
//double t;
//e1 = getTickCount();
//Detection part
//Generate windows and filter by variance
scaleID
=
0
;
...
...
@@ -622,12 +437,8 @@ namespace cv
GaussianBlur
(
resized_imgs
[
scaleID
],
tmp
,
GaussBlurKernelSize
,
0.0
f
);
blurred_imgs
.
push_back
(
tmp
);
}
while
(
size
.
width
>=
initSize
.
width
&&
size
.
height
>=
initSize
.
height
);
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Variance: %d\t%f\n", varBuffer.size(), t);
//Encsemble classification
//e1 = getTickCount();
for
(
int
i
=
0
;
i
<
(
int
)
varBuffer
.
size
();
i
++
)
{
prepareClassifiers
((
int
)
blurred_imgs
[
varScaleIDs
[
i
]].
step
[
0
]);
...
...
@@ -636,12 +447,8 @@ namespace cv
ensBuffer
.
push_back
(
varBuffer
[
i
]);
ensScaleIDs
.
push_back
(
varScaleIDs
[
i
]);
}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("Ensemble: %d\t%f\n", ensBuffer.size(), t);
//NN classification
//e1 = getTickCount();
//Prepare batch of patches
int
numOfPatches
=
(
int
)
ensBuffer
.
size
();
Mat_
<
uchar
>
stdPatches
(
numOfPatches
,
225
);
...
...
@@ -671,9 +478,6 @@ namespace cv
srValue
=
resultSr
[
i
];
//srValue = Sr(standardPatch);
//printf("%f\t%f\t\n", srValue, resultSr[i]);
////To fix: Check the paper, probably this cause wrong learning
//
labPatch
.
isObject
=
srValue
>
THETA_NN
;
...
...
@@ -697,9 +501,6 @@ namespace cv
maxScRect
=
labPatch
.
rect
;
}
}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency()*1000.0;
//printf("NN: %d\t%f\n", patches.size(), t);
if
(
maxSc
<
0
)
return
false
;
...
...
modules/tracking/src/tldDetector.hpp
View file @
bae3dac9
...
...
@@ -81,7 +81,6 @@ namespace cv
double
ocl_Sc
(
const
Mat_
<
uchar
>&
patch
);
void
ocl_batchSrSc
(
const
Mat_
<
uchar
>&
patches
,
double
*
resultSr
,
double
*
resultSc
,
int
numOfPatches
);
std
::
vector
<
Rect2d
>
debugStack
[
10
];
std
::
vector
<
TLDEnsembleClassifier
>
classifiers
;
Mat
*
posExp
,
*
negExp
;
int
*
posNum
,
*
negNum
;
...
...
modules/tracking/src/tldModel.cpp
View file @
bae3dac9
...
...
@@ -140,7 +140,6 @@ namespace cv
detector
->
classifiers
[
k
].
integrate
(
blurredPatch
,
false
);
}
}
//dprintf(("positive patches: %d\nnegative patches: %d\n", (int)positiveExamples.size(), (int)negativeExamples.size()));
}
...
...
@@ -180,16 +179,6 @@ namespace cv
detector
->
classifiers
[
i
].
integrate
(
blurredPatch
,
patches
[
k
].
isObject
);
}
}
/*
if( negativeIntoModel > 0 )
dfprintf((stdout, "negativeIntoModel = %d ", negativeIntoModel));
if( positiveIntoModel > 0)
dfprintf((stdout, "positiveIntoModel = %d ", positiveIntoModel));
if( negativeIntoEnsemble > 0 )
dfprintf((stdout, "negativeIntoEnsemble = %d ", negativeIntoEnsemble));
if( positiveIntoEnsemble > 0 )
dfprintf((stdout, "positiveIntoEnsemble = %d ", positiveIntoEnsemble));
dfprintf((stdout, "\n"));*/
}
...
...
@@ -198,9 +187,6 @@ namespace cv
int
positiveIntoModel
=
0
,
negativeIntoModel
=
0
,
positiveIntoEnsemble
=
0
,
negativeIntoEnsemble
=
0
;
if
((
int
)
eForModel
.
size
()
==
0
)
return
;
//int64 e1, e2;
//double t;
//e1 = getTickCount();
for
(
int
k
=
0
;
k
<
(
int
)
eForModel
.
size
();
k
++
)
{
double
sr
=
detector
->
Sr
(
eForModel
[
k
]);
...
...
@@ -231,19 +217,6 @@ namespace cv
detector
->
classifiers
[
i
].
integrate
(
eForEnsemble
[
k
],
isPositive
);
}
}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency() * 1000;
//printf("Integrate Additional: %fms\n", t);
/*
if( negativeIntoModel > 0 )
dfprintf((stdout, "negativeIntoModel = %d ", negativeIntoModel));
if( positiveIntoModel > 0 )
dfprintf((stdout, "positiveIntoModel = %d ", positiveIntoModel));
if( negativeIntoEnsemble > 0 )
dfprintf((stdout, "negativeIntoEnsemble = %d ", negativeIntoEnsemble));
if( positiveIntoEnsemble > 0 )
dfprintf((stdout, "positiveIntoEnsemble = %d ", positiveIntoEnsemble));
dfprintf((stdout, "\n"));*/
}
void
TrackerTLDModel
::
ocl_integrateAdditional
(
const
std
::
vector
<
Mat_
<
uchar
>
>&
eForModel
,
const
std
::
vector
<
Mat_
<
uchar
>
>&
eForEnsemble
,
bool
isPositive
)
...
...
@@ -251,10 +224,6 @@ namespace cv
int
positiveIntoModel
=
0
,
negativeIntoModel
=
0
,
positiveIntoEnsemble
=
0
,
negativeIntoEnsemble
=
0
;
if
((
int
)
eForModel
.
size
()
==
0
)
return
;
//int64 e1, e2;
//double t;
//e1 = getTickCount();
//Prepare batch of patches
int
numOfPatches
=
(
int
)
eForModel
.
size
();
Mat_
<
uchar
>
stdPatches
(
numOfPatches
,
225
);
...
...
@@ -301,19 +270,6 @@ namespace cv
detector
->
classifiers
[
i
].
integrate
(
eForEnsemble
[
k
],
isPositive
);
}
}
//e2 = getTickCount();
//t = (e2 - e1) / getTickFrequency() * 1000;
//printf("Integrate Additional OCL: %fms\n", t);
/*
if( negativeIntoModel > 0 )
dfprintf((stdout, "negativeIntoModel = %d ", negativeIntoModel));
if( positiveIntoModel > 0 )
dfprintf((stdout, "positiveIntoModel = %d ", positiveIntoModel));
if( negativeIntoEnsemble > 0 )
dfprintf((stdout, "negativeIntoEnsemble = %d ", negativeIntoEnsemble));
if( positiveIntoEnsemble > 0 )
dfprintf((stdout, "positiveIntoEnsemble = %d ", positiveIntoEnsemble));
dfprintf((stdout, "\n"));*/
}
//Push the patch to the model
...
...
modules/tracking/src/tldTracker.cpp
View file @
bae3dac9
...
...
@@ -151,12 +151,6 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
}
std
::
vector
<
double
>::
iterator
it
=
std
::
max_element
(
candidatesRes
.
begin
(),
candidatesRes
.
end
());
//dfprintf((stdout, "scale = %f\n", log(1.0 * boundingBox.width / (data->getMinSize()).width) / log(SCALE_STEP)));
//for( int i = 0; i < (int)candidatesRes.size(); i++ )
//dprintf(("\tcandidatesRes[%d] = %f\n", i, candidatesRes[i]));
//data->printme();
//tldModel->printme(stdout);
if
(
it
==
candidatesRes
.
end
()
)
{
data
->
confident
=
false
;
...
...
@@ -173,16 +167,7 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
#if 1
if
(
it
!=
candidatesRes
.
end
()
)
{
resample
(
imageForDetector
,
candidates
[
it
-
candidatesRes
.
begin
()],
standardPatch
);
//dfprintf((stderr, "%d %f %f\n", data->frameNum, tldModel->Sc(standardPatch), tldModel->Sr(standardPatch)));
//if( candidatesRes.size() == 2 && it == (candidatesRes.begin() + 1) )
//dfprintf((stderr, "detector WON\n"));
}
else
{
//dfprintf((stderr, "%d x x\n", data->frameNum));
}
#endif
if
(
*
it
>
CORE_THRESHOLD
)
...
...
@@ -213,7 +198,6 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
detectorResults
[
i
].
isObject
=
expertResult
;
}
tldModel
->
integrateRelabeled
(
imageForDetector
,
image_blurred
,
detectorResults
);
//dprintf(("%d relabeled by nExpert\n", negRelabeled));
pExpert
.
additionalExamples
(
examplesForModel
,
examplesForEnsemble
);
if
(
ocl
::
haveOpenCL
())
tldModel
->
ocl_integrateAdditional
(
examplesForModel
,
examplesForEnsemble
,
true
);
...
...
@@ -234,16 +218,6 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox)
#endif
}
//Debug display candidates after Variance Filter
////////////////////////////////////////////////
Mat
tmpImg
=
image
;
for
(
int
i
=
0
;
i
<
(
int
)
tldModel
->
detector
->
debugStack
[
0
].
size
();
i
++
)
//rectangle(tmpImg, tldModel->detector->debugStack[0][i], Scalar(255, 255, 255), 1, 1, 0);
tldModel
->
detector
->
debugStack
[
0
].
clear
();
tmpImg
.
copyTo
(
image
);
////////////////////////////////////////////////
return
true
;
}
...
...
@@ -310,7 +284,6 @@ Data::Data(Rect2d initBox)
minSize
.
width
=
(
int
)(
initBox
.
width
*
20.0
/
minDim
);
minSize
.
height
=
(
int
)(
initBox
.
height
*
20.0
/
minDim
);
frameNum
=
0
;
//dprintf(("minSize = %dx%d\n", minSize.width, minSize.height));
}
void
Data
::
printme
(
FILE
*
port
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment