Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
PeTrack
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Pedestrian Dynamics Empiricism
PeTrack
Compare revisions
master to 147-reducing-quality-of-wrong-path-not-working-with-color-marker
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
ped-dyn-emp/petrack
Select target project
No results found
147-reducing-quality-of-wrong-path-not-working-with-color-marker
Select Git revision
Swap
Target
ped-dyn-emp/petrack
Select target project
ped-dyn-emp/petrack
1 result
master
Select Git revision
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
Only reduce quality of tracked point on replacing detection
· 32ffaa1c
d.kilic
authored
3 years ago
and
d.kilic
committed
3 years ago
32ffaa1c
Reviewer comments
· fa9c9bb5
d.kilic
authored
3 years ago
and
d.kilic
committed
3 years ago
fa9c9bb5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
include/tracker.h
+4
-0
4 additions, 0 deletions
include/tracker.h
src/tracker.cpp
+20
-12
20 additions, 12 deletions
src/tracker.cpp
with
24 additions
and
12 deletions
include/tracker.h
View file @
fa9c9bb5
...
...
@@ -91,6 +91,10 @@ public:
const
TrackPoint
&
operator
=
(
const
Vec2F
&
v
);
const
TrackPoint
&
operator
+=
(
const
Vec2F
&
v
);
const
TrackPoint
operator
+
(
const
Vec2F
&
v
)
const
;
static
constexpr
int
minDetectionQual
=
80
;
static
constexpr
int
bestDetectionQual
=
100
;
[[
nodiscard
]]
bool
isDetection
()
const
;
};
...
...
This diff is collapsed.
Click to expand it.
src/tracker.cpp
View file @
fa9c9bb5
...
...
@@ -78,6 +78,11 @@ const TrackPoint TrackPoint::operator+(const Vec2F &v) const
return
TrackPoint
(
*
this
)
+=
v
;
// Vec2F(mX + v.mX, mY + v.mY);
}
bool
TrackPoint
::
isDetection
()
const
{
return
mQual
>
minDetectionQual
;
}
//--------------------------------------------------------------------------
// the list index is the frame number plus mFirstFrame 0..mLastFrame-mFirstFrame
...
...
@@ -342,11 +347,11 @@ double TrackPerson::getNearestZ(int i, int *extrapolated) const
*/
bool
TrackPerson
::
insertAtFrame
(
int
frame
,
const
TrackPoint
&
point
,
int
persNr
,
bool
extrapolate
)
{
int
i
;
Vec2F
tmp
;
// ua. zur linearen Interpolation
TrackPoint
tp
;
// default: 0 = ist schlechteste qualitaet
double
distance
;
if
(
frame
>
mLastFrame
)
{
// lineare interpolation, wenn frames uebersprungen wurden
...
...
@@ -356,7 +361,7 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
tmp
.
setY
((
point
.
y
()
-
last
().
y
())
/
(
frame
-
mLastFrame
));
tp
=
last
();
tp
.
setQual
(
0
);
for
(
i
=
0
;
i
<
frame
-
mLastFrame
-
1
;
++
i
)
for
(
int
i
=
0
;
i
<
frame
-
mLastFrame
-
1
;
++
i
)
{
tp
+=
tmp
;
append
(
tp
);
...
...
@@ -414,7 +419,7 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
tmp
.
setY
((
point
.
y
()
-
first
().
y
())
/
(
mFirstFrame
-
frame
));
tp
=
first
();
tp
.
setQual
(
0
);
for
(
i
=
0
;
i
<
mFirstFrame
-
frame
-
1
;
++
i
)
for
(
int
i
=
0
;
i
<
mFirstFrame
-
frame
-
1
;
++
i
)
{
tp
+=
tmp
;
prepend
(
tp
);
...
...
@@ -468,7 +473,8 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
// draufgesetzt wird!!!
tp
=
point
;
if
(
point
.
qual
()
<
100
&&
point
.
qual
()
>
80
)
// erkannte Person aber ohne strukturmarker
if
(
point
.
qual
()
<
TrackPoint
::
bestDetectionQual
&&
point
.
isDetection
())
// erkannte Person aber ohne strukturmarker
{
// wenn in angrenzenden Frames qual groesse 90 (100 oder durch vorheriges verschieben entstanden), dann
// verschieben
...
...
@@ -514,21 +520,23 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
<<
persNr
+
1
<<
" in frame "
<<
frame
<<
"!"
<<
std
::
endl
;
// qualitaet anpassen, da der weg zum pkt nicht der richtige gewesen sein kann
// zurueck
for
(
anz
=
1
;
trackPointExist
(
frame
-
anz
)
&&
(
trackPointAt
(
frame
-
anz
).
qual
()
<
100
);
++
anz
)
anz
=
1
;
while
(
trackPointExist
(
frame
-
anz
)
&&
!
trackPointAt
(
frame
-
anz
).
isDetection
())
{
;
++
anz
;
}
for
(
i
=
1
;
i
<
(
anz
-
1
);
for
(
int
i
=
1
;
i
<
(
anz
-
1
);
++
i
)
// anz ist einer zu viel; zudem nur boie anz-1 , da sonst eh nur mit 1 multipliziert wuerde
{
(
*
this
)[
frame
-
mFirstFrame
-
i
].
setQual
((
i
*
trackPointAt
(
frame
-
i
).
qual
())
/
anz
);
}
// vor
for
(
anz
=
1
;
trackPointExist
(
frame
+
anz
)
&&
(
trackPointAt
(
frame
+
anz
).
qual
()
<
100
);
++
anz
)
anz
=
1
;
while
(
trackPointExist
(
frame
+
anz
)
&&
!
trackPointAt
(
frame
+
anz
).
isDetection
())
{
;
++
anz
;
}
for
(
i
=
1
;
i
<
(
anz
-
1
);
for
(
int
i
=
1
;
i
<
(
anz
-
1
);
++
i
)
// anz ist einer zu viel; zudem nur boie anz-1 , da sonst eh nur mit 1 multipliziert wuerde
{
(
*
this
)[
frame
-
mFirstFrame
+
i
].
setQual
((
i
*
trackPointAt
(
frame
+
i
).
qual
())
/
anz
);
...
...
@@ -537,9 +545,9 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
replace
(
frame
-
mFirstFrame
,
tp
);
if
(
tp
.
qual
()
>
100
)
// manual add // after inserting, because point ist const
if
(
tp
.
qual
()
>
TrackPoint
::
bestDetectionQual
)
// manual add // after inserting, because point ist const
{
(
*
this
)[
frame
-
mFirstFrame
].
setQual
(
100
);
// so moving of a point is possible
(
*
this
)[
frame
-
mFirstFrame
].
setQual
(
TrackPoint
::
bestDetectionQual
);
// so moving of a point is possible
}
}
else
...
...
This diff is collapsed.
Click to expand it.