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
19b2d744
Commit
19b2d744
authored
Jul 22, 2014
by
Alex Leontiev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit
parent
99ce8def
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
51 deletions
+8
-51
tld_tracker.cpp
modules/tracking/src/tld_tracker.cpp
+8
-51
No files found.
modules/tracking/src/tld_tracker.cpp
View file @
19b2d744
...
...
@@ -49,6 +49,7 @@
#include "opencv2/highgui.hpp"
#define THETA_NN 0.50
#define STANDARD_PATCH_SIZE 15
#define CORE_THRESHOLD 0.5
#define NEG_EXAMPLES_IN_INIT_MODEL 300
#define MAX_EXAMPLES_IN_MODEL 500
...
...
@@ -282,15 +283,6 @@ bool TrackerTLDImpl::initImpl(const Mat& image, const Rect2d& boundingBox ){
data
->
confident
=
false
;
data
->
failedLastTime
=
false
;
#if !1
dprintf
((
"here I am
\n
"
));
Mat
image_blurred
;
GaussianBlur
(
image_gray
,
image_blurred
,
GaussBlurKernelSize
,
0.0
);
MyMouseCallbackDEBUG
*
callback
=
new
MyMouseCallbackDEBUG
(
image_gray
,
image_blurred
,
detector
);
imshow
(
"picker"
,
image_gray
);
setMouseCallback
(
"picker"
,
MyMouseCallbackDEBUG
::
onMouse
,
(
void
*
)
callback
);
waitKey
();
#endif
return
true
;
}
...
...
@@ -306,7 +298,7 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox){
GaussianBlur
(
imageForDetector
,
image_blurred
,
GaussBlurKernelSize
,
0.0
);
TrackerTLDModel
*
tldModel
=
((
TrackerTLDModel
*
)
static_cast
<
TrackerModel
*>
(
model
));
data
->
frameNum
++
;
Mat_
<
uchar
>
standardPatch
(
15
,
15
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
);
std
::
vector
<
Rect2d
>
detectorResults
;
std
::
vector
<
bool
>
isObject
,
shouldBeIntegrated
;
//best overlap around 92%
...
...
@@ -340,15 +332,6 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox){
}
data
->
printme
();
tldModel
->
printme
(
stdout
);
#if !1
if
(
data
->
frameNum
==
82
){
dprintf
((
"here I am
\n
"
));
MyMouseCallbackDEBUG
*
callback
=
new
MyMouseCallbackDEBUG
(
imageForDetector
,
image_blurred
,
detector
);
imshow
(
"picker"
,
imageForDetector
);
setMouseCallback
(
"picker"
,
MyMouseCallbackDEBUG
::
onMouse
,
(
void
*
)
callback
);
waitKey
();
}
#endif
if
(
it
==
candidatesRes
.
end
()){
data
->
confident
=
false
;
...
...
@@ -431,7 +414,7 @@ timeStampPositiveNext(0),timeStampNegativeNext(0),params_(params){
Size2f
size
;
for
(
int
i
=
0
;
i
<
(
int
)
closest
.
size
();
i
++
){
for
(
int
j
=
0
;
j
<
20
;
j
++
){
Mat_
<
uchar
>
standardPatch
(
15
,
15
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
);
center
.
x
=
(
float
)(
closest
[
i
].
x
+
closest
[
i
].
width
*
(
0.5
+
rng
.
uniform
(
-
0.01
,
0.01
)));
center
.
y
=
(
float
)(
closest
[
i
].
y
+
closest
[
i
].
height
*
(
0.5
+
rng
.
uniform
(
-
0.01
,
0.01
)));
size
.
width
=
(
float
)(
closest
[
i
].
width
*
rng
.
uniform
((
double
)
0.99
,(
double
)
1.01
));
...
...
@@ -467,7 +450,7 @@ timeStampPositiveNext(0),timeStampNegativeNext(0),params_(params){
while
(
negativeExamples
.
size
()
<
NEG_EXAMPLES_IN_INIT_MODEL
){
int
i
=
rng
.
uniform
((
int
)
0
,(
int
)
scanGrid
.
size
());
if
(
std
::
find
(
indices
.
begin
(),
indices
.
end
(),
i
)
==
indices
.
end
()
&&
overlap
(
boundingBox
,
scanGrid
[
i
])
<
0.2
){
Mat_
<
uchar
>
standardPatch
(
15
,
15
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
);
resample
(
image
,
scanGrid
[
i
],
standardPatch
);
pushIntoModel
(
standardPatch
,
false
);
...
...
@@ -515,7 +498,7 @@ bool TLDDetector::detect(const Mat& img,const Mat& imgBlurred,Rect2d& res,std::v
shouldBeIntegrated
.
clear
();
Mat
resized_img
,
blurred_img
;
Mat_
<
uchar
>
standardPatch
(
15
,
15
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
);
img
.
copyTo
(
resized_img
);
imgBlurred
.
copyTo
(
blurred_img
);
double
originalVariance
=
tldModel
->
getOriginalVariance
();;
...
...
@@ -581,32 +564,6 @@ bool TLDDetector::detect(const Mat& img,const Mat& imgBlurred,Rect2d& res,std::v
dfprintf
((
stdout
,
"%d pos and %d neg
\n
"
,(
int
)
poss
.
size
(),(
int
)
negs
.
size
()));
drawWithRects
(
img
,
negs
,
poss
);
#endif
#if !1
std
::
vector
<
Rect2d
>
scanGrid
;
generateScanGrid
(
img
.
rows
,
img
.
cols
,
initSize
,
scanGrid
);
std
::
vector
<
double
>
results
;
Mat_
<
uchar
>
standardPatch_inner
(
15
,
15
);
for
(
int
i
=
0
;
i
<
(
int
)
scanGrid
.
size
();
i
++
){
resample
(
img
,
scanGrid
[
i
],
standardPatch_inner
);
results
.
push_back
(
tldModel
->
Sr
(
standardPatch_inner
));
}
std
::
vector
<
double
>::
iterator
it
=
std
::
max_element
(
results
.
begin
(),
results
.
end
());
Mat
image
;
img
.
copyTo
(
image
);
rectangle
(
image
,
scanGrid
[
it
-
results
.
begin
()],
255
,
1
,
1
);
imshow
(
"img"
,
image
);
waitKey
();
#endif
#if !1
Mat
image
;
img
.
copyTo
(
image
);
rectangle
(
image
,
res
,
255
,
1
,
1
);
for
(
int
i
=
0
;
i
<
(
int
)
rect
.
size
();
i
++
){
rectangle
(
image
,
rect
[
i
],
0
,
1
,
1
);
}
imshow
(
"img"
,
image
);
waitKey
();
#endif
dfprintf
((
stdout
,
"%d after ensemble
\n
"
,
pass
));
if
(
maxSc
<
0
){
...
...
@@ -666,7 +623,7 @@ double TrackerTLDModel::Sc(const Mat_<uchar> patch){
void
TrackerTLDModel
::
integrateRelabeled
(
Mat
&
img
,
Mat
&
imgBlurred
,
const
std
::
vector
<
Rect2d
>&
box
,
const
std
::
vector
<
bool
>&
isPositive
,
const
std
::
vector
<
bool
>&
alsoIntoModel
){
Mat_
<
uchar
>
standardPatch
(
15
,
15
),
blurredPatch
(
minSize_
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
),
blurredPatch
(
minSize_
);
int
positiveIntoModel
=
0
,
negativeIntoModel
=
0
,
positiveIntoEnsemble
=
0
,
negativeIntoEnsemble
=
0
;
for
(
int
k
=
0
;
k
<
(
int
)
box
.
size
();
k
++
){
if
(
alsoIntoModel
[
k
]){
...
...
@@ -762,7 +719,7 @@ int Pexpert::additionalExamples(std::vector<Mat_<uchar> >& examplesForModel,std:
Size2f
size
;
for
(
int
i
=
0
;
i
<
(
int
)
closest
.
size
();
i
++
){
for
(
int
j
=
0
;
j
<
10
;
j
++
){
Mat_
<
uchar
>
standardPatch
(
15
,
15
),
blurredPatch
(
initSize_
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
),
blurredPatch
(
initSize_
);
center
.
x
=
(
float
)(
closest
[
i
].
x
+
closest
[
i
].
width
*
(
0.5
+
rng
.
uniform
(
-
0.01
,
0.01
)));
center
.
y
=
(
float
)(
closest
[
i
].
y
+
closest
[
i
].
height
*
(
0.5
+
rng
.
uniform
(
-
0.01
,
0.01
)));
size
.
width
=
(
float
)(
closest
[
i
].
width
*
rng
.
uniform
((
double
)
0.99
,(
double
)
1.01
));
...
...
@@ -822,7 +779,7 @@ void MyMouseCallbackDEBUG::onMouse( int event, int x, int y){
img_
.
copyTo
(
imgCanvas
);
TrackerTLDModel
*
tldModel
=
((
TrackerTLDModel
*
)
static_cast
<
TrackerModel
*>
(
detector_
->
model
));
Size
initSize
=
tldModel
->
getMinSize
();
Mat_
<
uchar
>
standardPatch
(
15
,
15
);
Mat_
<
uchar
>
standardPatch
(
STANDARD_PATCH_SIZE
,
STANDARD_PATCH_SIZE
);
double
originalVariance
=
tldModel
->
getOriginalVariance
();;
double
tmp
;
...
...
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