File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -84,6 +84,8 @@ def __init__(
8484 ) -> None :
8585 self .mask_generator = mask_generator
8686 self .mask_propagator = mask_propagator
87+ if not 0.0 <= mask_creation_bbox_overlap_threshold <= 1.0 :
88+ raise ValueError ("mask_creation_bbox_overlap_threshold must be between 0 and 1." )
8789 self .mask_creation_bbox_overlap_threshold = mask_creation_bbox_overlap_threshold
8890 self ._initialized = False
8991 self ._pending_tracklet_ids : set [int ] = set ()
@@ -147,17 +149,17 @@ def get_updated_masks(
147149 if previous_frame is None :
148150 return None
149151
152+ new_tracklets = [] if new_tracklets is None else new_tracklets
153+ removed_tracklet_ids = [] if removed_tracklet_ids is None else removed_tracklet_ids
154+
155+ self ._remove_pending_tracklets (removed_tracklet_ids )
156+
150157 if not self ._initialized and len (previous_tracklets ) == 0 :
151158 return None
152159
153160 if self .mask_propagator is None :
154161 return None
155162
156- new_tracklets = [] if new_tracklets is None else new_tracklets
157- removed_tracklet_ids = [] if removed_tracklet_ids is None else removed_tracklet_ids
158-
159- self ._remove_pending_tracklets (removed_tracklet_ids )
160-
161163 if not self ._initialized :
162164 candidates = previous_tracklets
163165 clean_tracklets = self ._select_clean_tracklets (candidates , previous_tracklets )
Original file line number Diff line number Diff line change @@ -432,3 +432,23 @@ def test_mask_manager_removes_terminated_tracklet_from_pending_pool() -> None:
432432 assert output is not None
433433 assert output .tracklet_mask_dict == {2 : 0 }
434434 assert manager ._pending_tracklet_ids == set ()
435+
436+
437+ def test_mask_manager_removes_terminated_tracklet_from_pending_pool_before_initialization () -> None :
438+ manager = MaskManager (
439+ mask_generator = DummyBoxMaskGenerator (),
440+ mask_propagator = DummyIdentityMaskPropagator (),
441+ mask_creation_bbox_overlap_threshold = 0.6 ,
442+ )
443+
444+ manager ._pending_tracklet_ids = {1 }
445+
446+ output = manager .get_updated_masks (
447+ frame = _make_frame (),
448+ previous_frame = _make_frame (),
449+ previous_tracklets = [],
450+ removed_tracklet_ids = [1 ],
451+ )
452+
453+ assert output is None
454+ assert manager ._pending_tracklet_ids == set ()
You can’t perform that action at this time.
0 commit comments