@@ -83,8 +83,8 @@ class TrackerTest
83
83
{
84
84
public:
85
85
86
- TrackerTest (Ptr<Tracker> _tracker, string _video, float _overlapThreshold ,
87
- float _distanceThreshold , int _shift = NoTransform, int _segmentIdx = 1 , int _numSegments = 10 );
86
+ TrackerTest (Ptr<Tracker> _tracker, string _video, float _distanceThreshold ,
87
+ float _overlapThreshold , int _shift = NoTransform, int _segmentIdx = 1 , int _numSegments = 10 );
88
88
virtual ~TrackerTest ();
89
89
virtual void run ();
90
90
@@ -117,12 +117,12 @@ class TrackerTest
117
117
118
118
};
119
119
120
- TrackerTest::TrackerTest (Ptr<Tracker> _tracker, string _video, float _overlapThreshold ,
121
- float _distanceThreshold , int _shift, int _segmentIdx, int _numSegments ) :
120
+ TrackerTest::TrackerTest (Ptr<Tracker> _tracker, string _video, float _distanceThreshold ,
121
+ float _overlapThreshold , int _shift, int _segmentIdx, int _numSegments ) :
122
122
tracker( _tracker ),
123
123
video( _video ),
124
- overlapThreshold( _distanceThreshold ),
125
- distanceThreshold( _overlapThreshold ),
124
+ overlapThreshold( _overlapThreshold ),
125
+ distanceThreshold( _distanceThreshold ),
126
126
segmentIdx(_segmentIdx),
127
127
shift(_shift),
128
128
numSegments(_numSegments)
@@ -156,30 +156,8 @@ float TrackerTest::calcDistance( Rect a, Rect b )
156
156
157
157
float TrackerTest::calcOverlap ( Rect a, Rect b )
158
158
{
159
- float aArea = (float )(a.width * a.height );
160
- float bArea = (float )(b.width * b.height );
161
-
162
- if ( aArea < bArea )
163
- {
164
- a.x -= ( b.width - a.width ) / 2 ;
165
- a.y -= ( b.height - a.height ) / 2 ;
166
- a.width = b.width ;
167
- a.height = b.height ;
168
- }
169
- else
170
- {
171
- b.x -= ( a.width - b.width ) / 2 ;
172
- b.y -= ( a.height - b.height ) / 2 ;
173
- b.width = a.width ;
174
- b.height = a.height ;
175
- }
176
-
177
- Rect rectIntersection = a & b;
178
- Rect rectUnion = a | b;
179
- float iArea = (float )(rectIntersection.width * rectIntersection.height );
180
- float uArea = (float )(rectUnion.width * rectUnion.height );
181
- float overlap = iArea / uArea;
182
- return overlap;
159
+ float rectIntersectionArea = (float )(a & b).area ();
160
+ return rectIntersectionArea / (a.area () + b.area () - rectIntersectionArea);
183
161
}
184
162
185
163
Rect TrackerTest::applyShift (Rect bb)
@@ -461,19 +439,19 @@ PARAM_TEST_CASE(DistanceAndOverlap, string)
461
439
462
440
TEST_P (DistanceAndOverlap, MedianFlow)
463
441
{
464
- TrackerTest test ( Tracker::create ( " MEDIANFLOW" ), dataset, 120 , .2f , NoTransform, 1 , 1 );
442
+ TrackerTest test ( Tracker::create ( " MEDIANFLOW" ), dataset, 35 , .5f , NoTransform, 1 , 1 );
465
443
test.run ();
466
444
}
467
445
468
446
TEST_P (DistanceAndOverlap, MIL)
469
447
{
470
- TrackerTest test ( Tracker::create ( " MIL" ), dataset, 30 , 0 .65f , NoTransform);
448
+ TrackerTest test ( Tracker::create ( " MIL" ), dataset, 30 , .65f , NoTransform);
471
449
test.run ();
472
450
}
473
451
474
452
TEST_P (DistanceAndOverlap, Boosting)
475
453
{
476
- TrackerTest test ( Tracker::create ( " BOOSTING" ), dataset, 70 , .65f , NoTransform);
454
+ TrackerTest test ( Tracker::create ( " BOOSTING" ), dataset, 70 , .7f , NoTransform);
477
455
test.run ();
478
456
}
479
457
@@ -486,13 +464,13 @@ TEST_P(DistanceAndOverlap, TLD)
486
464
// Tests with shifted initial window
487
465
TEST_P (DistanceAndOverlap, Shifted_Data_MedianFlow)
488
466
{
489
- TrackerTest test ( Tracker::create ( " MEDIANFLOW" ), dataset, 120 , .2f , CenterShiftLeft, 1 , 1 );
467
+ TrackerTest test ( Tracker::create ( " MEDIANFLOW" ), dataset, 80 , .2f , CenterShiftLeft, 1 , 1 );
490
468
test.run ();
491
469
}
492
470
493
471
TEST_P (DistanceAndOverlap, Shifted_Data_MIL)
494
472
{
495
- TrackerTest test ( Tracker::create ( " MIL" ), dataset, 30 , 0 . 65f , CenterShiftLeft);
473
+ TrackerTest test ( Tracker::create ( " MIL" ), dataset, 30 , . 6f , CenterShiftLeft);
496
474
test.run ();
497
475
}
498
476
@@ -511,25 +489,25 @@ TEST_P(DistanceAndOverlap, Shifted_Data_TLD)
511
489
// Tests with scaled initial window
512
490
TEST_P (DistanceAndOverlap, Scaled_Data_MedianFlow)
513
491
{
514
- TrackerTest test ( Tracker::create ( " MEDIANFLOW" ), dataset, 120 , .2f , Scale_1_1, 1 , 1 );
492
+ TrackerTest test ( Tracker::create ( " MEDIANFLOW" ), dataset, 25 , .5f , Scale_1_1, 1 , 1 );
515
493
test.run ();
516
494
}
517
495
518
496
TEST_P (DistanceAndOverlap, Scaled_Data_MIL)
519
497
{
520
- TrackerTest test ( Tracker::create ( " MIL" ), dataset, 30 , 0 . 65f , Scale_1_1);
498
+ TrackerTest test ( Tracker::create ( " MIL" ), dataset, 30 , . 7f , Scale_1_1);
521
499
test.run ();
522
500
}
523
501
524
502
TEST_P (DistanceAndOverlap, Scaled_Data_Boosting)
525
503
{
526
- TrackerTest test ( Tracker::create ( " BOOSTING" ), dataset, 80 , .65f , Scale_1_1);
504
+ TrackerTest test ( Tracker::create ( " BOOSTING" ), dataset, 80 , .7f , Scale_1_1);
527
505
test.run ();
528
506
}
529
507
530
508
TEST_P (DistanceAndOverlap, Scaled_Data_TLD)
531
509
{
532
- TrackerTest test ( Tracker::create ( " TLD" ), dataset, 120 , .4f , Scale_1_1);
510
+ TrackerTest test ( Tracker::create ( " TLD" ), dataset, 120 , .45f , Scale_1_1);
533
511
test.run ();
534
512
}
535
513
0 commit comments