انتقل إلى المحتوى

مرجع ل ultralytics/trackers/track.py

ملاحظه

هذا الملف متاح في https://github.com/ultralytics/ultralytics/ نقطة / الرئيسية /ultralytics/ بتتبع / المسار .py. إذا اكتشفت مشكلة ، فيرجى المساعدة في إصلاحها من خلال المساهمة في طلب 🛠️ سحب. شكرا لك 🙏!



ultralytics.trackers.track.on_predict_start(predictor, persist=False)

تهيئة أدوات التتبع لتتبع الكائنات أثناء التنبؤ.

البارامترات:

اسم نوع وصف افتراضي
predictor object

كائن المتنبئ لتهيئة المتعقبين.

مطلوب
persist bool

ما إذا كان يجب الاستمرار في أجهزة التتبع إذا كانت موجودة بالفعل. الإعدادات الافتراضية إلى خطأ.

False

يثير:

نوع وصف
AssertionError

إذا لم يكن tracker_type "bytetrack" أو "botsort".

شفرة المصدر في ultralytics/trackers/track.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34353637 38394041
def on_predict_start(predictor: object, persist: bool = False) -> None:
    """
    Initialize trackers for object tracking during prediction.

    Args:
        predictor (object): The predictor object to initialize trackers for.
        persist (bool, optional): Whether to persist the trackers if they already exist. Defaults to False.

    Raises:
        AssertionError: If the tracker_type is not 'bytetrack' or 'botsort'.
    """
    if hasattr(predictor, "trackers") and persist:
        return

    tracker = check_yaml(predictor.args.tracker)
    cfg = IterableSimpleNamespace(**yaml_load(tracker))

    if cfg.tracker_type not in ["bytetrack", "botsort"]:
        raise AssertionError(f"Only 'bytetrack' and 'botsort' are supported for now, but got '{cfg.tracker_type}'")

    trackers = []
    for _ in range(predictor.dataset.bs):
        tracker = TRACKER_MAP[cfg.tracker_type](args=cfg, frame_rate=30)
        trackers.append(tracker)
    predictor.trackers = trackers



ultralytics.trackers.track.on_predict_postprocess_end(predictor, persist=False)

تم اكتشاف مربعات ما بعد المعالجة وتحديثها باستخدام تتبع الكائنات.

البارامترات:

اسم نوع وصف افتراضي
predictor object

كائن المتنبئ الذي يحتوي على التنبؤات.

مطلوب
persist bool

ما إذا كان يجب الاستمرار في أجهزة التتبع إذا كانت موجودة بالفعل. الإعدادات الافتراضية إلى خطأ.

False
شفرة المصدر في ultralytics/trackers/track.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 626364 65666768697071
def on_predict_postprocess_end(predictor: object, persist: bool = False) -> None:
    """
    Postprocess detected boxes and update with object tracking.

    Args:
        predictor (object): The predictor object containing the predictions.
        persist (bool, optional): Whether to persist the trackers if they already exist. Defaults to False.
    """
    bs = predictor.dataset.bs
    path, im0s = predictor.batch[:2]

    is_obb = predictor.args.task == "obb"
    for i in range(bs):
        if not persist and predictor.vid_path[i] != str(predictor.save_dir / Path(path[i]).name):  # new video
            predictor.trackers[i].reset()

        det = (predictor.results[i].obb if is_obb else predictor.results[i].boxes).cpu().numpy()
        if len(det) == 0:
            continue
        tracks = predictor.trackers[i].update(det, im0s[i])
        if len(tracks) == 0:
            continue
        idx = tracks[:, -1].astype(int)
        predictor.results[i] = predictor.results[i][idx]

        update_args = dict()
        update_args["obb" if is_obb else "boxes"] = torch.as_tensor(tracks[:, :-1])
        predictor.results[i].update(**update_args)



ultralytics.trackers.track.register_tracker(model, persist)

سجل عمليات الاسترجاعات المتعقبة في نموذج تتبع الكائن أثناء التنبؤ.

البارامترات:

اسم نوع وصف افتراضي
model object

كائن النموذج لتسجيل تتبع عمليات الاسترجاعات الخاصة به.

مطلوب
persist bool

ما إذا كان يجب الاستمرار في أجهزة التتبع إذا كانت موجودة بالفعل.

مطلوب
شفرة المصدر في ultralytics/trackers/track.py
def register_tracker(model: object, persist: bool) -> None:
    """
    Register tracking callbacks to the model for object tracking during prediction.

    Args:
        model (object): The model object to register tracking callbacks for.
        persist (bool): Whether to persist the trackers if they already exist.
    """
    model.add_callback("on_predict_start", partial(on_predict_start, persist=persist))
    model.add_callback("on_predict_postprocess_end", partial(on_predict_postprocess_end, persist=persist))





تم إنشاء 2023-11-12, اخر تحديث 2023-11-25
المؤلفون: جلين جوشر (3) ، يضحك س (1)