सामग्री पर जाएं

के लिए संदर्भ ultralytics/trackers/track.py

नोट

यह फ़ाइल यहाँ उपलब्ध है https://github.com/ultralytics/ultralytics/बूँद/मुख्य/ultralytics/trackers/track.py का उपयोग करें। यदि आप कोई समस्या देखते हैं तो कृपया पुल अनुरोध का योगदान करके इसे ठीक करने में मदद करें 🛠️। 🙏 धन्यवाद !



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

भविष्यवाणी के दौरान ऑब्जेक्ट ट्रैकिंग के लिए ट्रैकर्स को इनिशियलाइज़ करें।

पैरामीटर:

नाम प्रकार विवरण: __________ चूक
predictor object

भविष्यवक्ता के लिए ट्रैकर्स को प्रारंभ करने के लिए ऑब्जेक्ट।

आवश्यक
persist bool

ट्रैकर्स को जारी रखना है या नहीं यदि वे पहले से मौजूद हैं। डिफ़ॉल्ट रूप से गलत है.

False

उठाती:

प्रकार विवरण: __________
AssertionError

यदि tracker_type 'बाइटट्रैक' या 'बॉटसॉर्ट' नहीं है।

में स्रोत कोड ultralytics/trackers/track.py
17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बांग्लादेश 17 बजकर 18 मिनट पर 20 23 24 25262724 25 30 37 384041
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 65 666768697071
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)