diff --git a/ultralytics/__init__.py b/ultralytics/__init__.py index aeea1940bb..a265a66b69 100644 --- a/ultralytics/__init__.py +++ b/ultralytics/__init__.py @@ -1,6 +1,6 @@ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license -__version__ = "8.4.40" +__version__ = "8.4.41" import importlib import os diff --git a/ultralytics/models/sam/predict.py b/ultralytics/models/sam/predict.py index b3b9831a23..af23d03f7d 100644 --- a/ultralytics/models/sam/predict.py +++ b/ultralytics/models/sam/predict.py @@ -2510,8 +2510,8 @@ class SAM3VideoSemanticPredictor(SAM3SemanticPredictor): hotstart_delay=0, hotstart_unmatch_thresh=3, hotstart_dup_thresh=3, - init_trk_keep_alive=30, - max_trk_keep_alive=30, + init_trk_keep_alive=10, + max_trk_keep_alive=10, min_trk_keep_alive=-4, # Threshold for suppressing overlapping objects based on recent occlusion suppress_overlapping_based_on_recent_occlusion_threshold=0.0, @@ -2523,7 +2523,7 @@ class SAM3VideoSemanticPredictor(SAM3SemanticPredictor): max_num_objects=-1, recondition_every_nth_frame=-1, # masket confirmation status (to suppress unconfirmed masklets) - masklet_confirmation_enable=False, + masklet_confirmation_enable=True, # a masklet is confirmed after being consecutively detected and matched for # `masklet_confirmation_consecutive_det_thresh` masklet_confirmation_consecutive_det_thresh=3, @@ -2726,7 +2726,7 @@ class SAM3VideoSemanticPredictor(SAM3SemanticPredictor): if self.masklet_confirmation_enable: status = metadata["masklet_confirmation"]["status"] is_unconfirmed = status == self.UNCONFIRMED - out["unconfirmed_obj_ids"] = tracker_metadata_new["obj_ids_all_gpu"][is_unconfirmed].tolist() + out["unconfirmed_obj_ids"] = tracker_metadata_new["obj_ids"][is_unconfirmed].tolist() else: out["unconfirmed_obj_ids"] = [] return out