Class cv::legacy::MultiTrackerTLD#

Multi Object Tracker for [159]. View details

Collaboration diagram for cv::legacy::MultiTrackerTLD:

cv::legacy::MultiTrackerTLD Node1 cv::legacy::MultiTrackerTLD   + update_opt() Node2 cv::legacy::MultiTracker_Alt   + MultiTracker_Alt() + addTarget() + update() Node2->Node1 Node3 int     Node3->Node2 +targetNum Node4 std::vector< Ptr< cv ::legacy::Tracker > >     Node4->Node2 +trackers Node5 Ptr< cv::legacy::Tracker >     Node5->Node4 +elements Node6 std::vector< T >     Node6->Node4 < Ptr< cv::legacy:: Tracker > > Node8 std::vector< cv::Rect_ >     Node6->Node8 < cv::Rect_ > Node11 std::vector< cv::Scalar_ >     Node6->Node11 < cv::Scalar_ > Node7 T     Node7->Node6 +elements Node8->Node2 +boundingBoxes Node9 cv::Rect_< _Tp >   + Rect_() + Rect_() + Rect_() + Rect_() + Rect_() + Rect_() + area() + br() + contains() + empty() + operator Rect_< _Tp2 >() + operator=() + operator=() + size() + tl() Node9->Node8 +elements Node10 _Tp     Node10->Node9 +height +width +x +y Node14 cv::Matx< _Tp, cn, 1 >   + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() and 33 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node10->Node14 +val Node15 cv::Matx< _Tp, m, n >   + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() and 33 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node10->Node15 +val Node11->Node2 +colors Node12 cv::Scalar_< _Tp >   + Scalar_() + Scalar_() + Scalar_() + Scalar_() + Scalar_() + Scalar_() + conj() + isReal() + mul() + operator Scalar_< T2 >() + operator=() + operator=() + all() Node12->Node11 +elements Node13 cv::Vec< _Tp, 4 >   + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() and 17 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node13->Node12 Node14->Node13 Node16 cv::Vec< _Tp, cn >   + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() and 17 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node14->Node16 Node15->Node14 < _Tp, cn, 1 > Node16->Node13 < _Tp, 4 >

cv::legacy::MultiTrackerTLD Node1 cv::legacy::MultiTrackerTLD   + update_opt() Node2 cv::legacy::MultiTracker_Alt   + MultiTracker_Alt() + addTarget() + update() Node2->Node1 Node3 int     Node3->Node2 +targetNum Node4 std::vector< Ptr< cv ::legacy::Tracker > >     Node4->Node2 +trackers Node5 Ptr< cv::legacy::Tracker >     Node5->Node4 +elements Node6 std::vector< T >     Node6->Node4 < Ptr< cv::legacy:: Tracker > > Node8 std::vector< cv::Rect_ >     Node6->Node8 < cv::Rect_ > Node11 std::vector< cv::Scalar_ >     Node6->Node11 < cv::Scalar_ > Node7 T     Node7->Node6 +elements Node8->Node2 +boundingBoxes Node9 cv::Rect_< _Tp >   + Rect_() + Rect_() + Rect_() + Rect_() + Rect_() + Rect_() + area() + br() + contains() + empty() + operator Rect_< _Tp2 >() + operator=() + operator=() + size() + tl() Node9->Node8 +elements Node10 _Tp     Node10->Node9 +height +width +x +y Node14 cv::Matx< _Tp, cn, 1 >   + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() and 33 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node10->Node14 +val Node15 cv::Matx< _Tp, m, n >   + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() + Matx() and 33 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node10->Node15 +val Node11->Node2 +colors Node12 cv::Scalar_< _Tp >   + Scalar_() + Scalar_() + Scalar_() + Scalar_() + Scalar_() + Scalar_() + conj() + isReal() + mul() + operator Scalar_< T2 >() + operator=() + operator=() + all() Node12->Node11 +elements Node13 cv::Vec< _Tp, 4 >   + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() and 17 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node13->Node12 Node14->Node13 Node16 cv::Vec< _Tp, cn >   + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() + Vec() and 17 more... + all() + diag() + eye() + ones() + randn() + randu() + zeros() Node14->Node16 Node15->Node14 < _Tp, cn, 1 > Node16->Node13 < _Tp, 4 >

Public Member Functions#

Public Member Functions inherited from cv::legacy::MultiTracker_Alt

Return

Name

Description

MultiTracker_Alt()

Constructor for Multitracker.

bool

addTarget(
    InputArray image,
    const Rect2d & boundingBox,
    Ptr< legacy::Tracker > tracker_algorithm )

Add a new target to a tracking-list and initialize the tracker with a known bounding box that surrounded the target.

bool

update(InputArray image)

Update all trackers from the tracking-list, find a new most likely bounding boxes for the targets.

Public Attributes#

Public Attributes inherited from cv::legacy::MultiTracker_Alt

Return

Name

Description

std::vector< Rect2d >

boundingBoxes

Bounding Boxes list for Multi-Object-Tracker.

std::vector< Scalar >

colors

List of randomly generated colors for bounding boxes display.

int

targetNum

Current number of targets in tracking-list.

std::vector< Ptr< Tracker > >

trackers

Trackers list for Multi-Object-Tracker.

Detailed Description#

Multi Object Tracker for TLD.

TLD is a novel tracking framework that explicitly decomposes the long-term tracking task into tracking, learning and detection.

The tracker follows the object from frame to frame. The detector localizes all appearances that have been observed so far and corrects the tracker if necessary. The learning estimates detector’s errors and updates it to avoid these errors in the future. The implementation is based on TLD .

The Median Flow algorithm (see cv::TrackerMedianFlow) was chosen as a tracking component in this implementation, following authors. The tracker is supposed to be able to handle rapid motions, partial occlusions, object absence etc.

See also

Tracker, MultiTracker, TrackerTLD

Member Function Documentation#

update_opt()#

bool cv::legacy::MultiTrackerTLD::update_opt(InputArray image)

Update all trackers from the tracking-list, find a new most likely bounding boxes for the targets by optimized update method using some techniques to speedup calculations specifically for MO [159]. The only limitation is that all target bounding boxes should have approximately same aspect ratios. Speed boost is around 20%.

Parameters

  • image — The current frame.

Returns

True means that all targets were located and false means that tracker couldn’t locate one of the targets in current frame. Note, that latter does not imply that tracker has failed, maybe target is indeed missing from the frame (say, out of sight)

Source file#

The documentation for this class was generated from the following file: