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

के लिए संदर्भ ultralytics/models/yolo/obb/predict.py

नोट

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



ultralytics.models.yolo.obb.predict.OBBPredictor

का रूप: DetectionPredictor

एक ओरिएंटेड बाउंडिंग बॉक्स (OBB) मॉडल के आधार पर भविष्यवाणी के लिए DetectionPredictor वर्ग का विस्तार करने वाला वर्ग।

उदाहरण
from ultralytics.utils import ASSETS
from ultralytics.models.yolo.obb import OBBPredictor

args = dict(model='yolov8n-obb.pt', source=ASSETS)
predictor = OBBPredictor(overrides=args)
predictor.predict_cli()
में स्रोत कोड ultralytics/models/yolo/obb/predict.py
10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 10 बांग्लादेश 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3536373839 40414243 4445बांग्लादेश 464748 4950 515253
class OBBPredictor(DetectionPredictor):
    """
    A class extending the DetectionPredictor class for prediction based on an Oriented Bounding Box (OBB) model.

    Example:
        ```python
        from ultralytics.utils import ASSETS
        from ultralytics.models.yolo.obb import OBBPredictor

        args = dict(model='yolov8n-obb.pt', source=ASSETS)
        predictor = OBBPredictor(overrides=args)
        predictor.predict_cli()
        ```
    """

    def __init__(self, cfg=DEFAULT_CFG, overrides=None, _callbacks=None):
        """Initializes OBBPredictor with optional model and data configuration overrides."""
        super().__init__(cfg, overrides, _callbacks)
        self.args.task = "obb"

    def postprocess(self, preds, img, orig_imgs):
        """Post-processes predictions and returns a list of Results objects."""
        preds = ops.non_max_suppression(
            preds,
            self.args.conf,
            self.args.iou,
            agnostic=self.args.agnostic_nms,
            max_det=self.args.max_det,
            nc=len(self.model.names),
            classes=self.args.classes,
            rotated=True,
        )

        if not isinstance(orig_imgs, list):  # input images are a torch.Tensor, not a list
            orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)

        results = []
        for pred, orig_img, img_path in zip(preds, orig_imgs, self.batch[0]):
            rboxes = ops.regularize_rboxes(torch.cat([pred[:, :4], pred[:, -1:]], dim=-1))
            rboxes[:, :4] = ops.scale_boxes(img.shape[2:], rboxes[:, :4], orig_img.shape, xywh=True)
            # xywh, r, conf, cls
            obb = torch.cat([rboxes, pred[:, 4:6]], dim=-1)
            results.append(Results(orig_img, path=img_path, names=self.model.names, obb=obb))
        return results

__init__(cfg=DEFAULT_CFG, overrides=None, _callbacks=None)

वैकल्पिक मॉडल और डेटा कॉन्फ़िगरेशन ओवरराइड के साथ OBBPredictor को इनिशियलाइज़ करता है।

में स्रोत कोड ultralytics/models/yolo/obb/predict.py
def __init__(self, cfg=DEFAULT_CFG, overrides=None, _callbacks=None):
    """Initializes OBBPredictor with optional model and data configuration overrides."""
    super().__init__(cfg, overrides, _callbacks)
    self.args.task = "obb"

postprocess(preds, img, orig_imgs)

पूर्वानुमानों को संसाधित करने के बाद और परिणाम ऑब्जेक्ट्स की एक सूची देता है।

में स्रोत कोड ultralytics/models/yolo/obb/predict.py
 30 बांग्लादेश 30 बांग्लादेश 30 बांग्लादेश 30 बांग्लादेश 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46474849505152 53
def postprocess(self, preds, img, orig_imgs):
    """Post-processes predictions and returns a list of Results objects."""
    preds = ops.non_max_suppression(
        preds,
        self.args.conf,
        self.args.iou,
        agnostic=self.args.agnostic_nms,
        max_det=self.args.max_det,
        nc=len(self.model.names),
        classes=self.args.classes,
        rotated=True,
    )

    if not isinstance(orig_imgs, list):  # input images are a torch.Tensor, not a list
        orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)

    results = []
    for pred, orig_img, img_path in zip(preds, orig_imgs, self.batch[0]):
        rboxes = ops.regularize_rboxes(torch.cat([pred[:, :4], pred[:, -1:]], dim=-1))
        rboxes[:, :4] = ops.scale_boxes(img.shape[2:], rboxes[:, :4], orig_img.shape, xywh=True)
        # xywh, r, conf, cls
        obb = torch.cat([rboxes, pred[:, 4:6]], dim=-1)
        results.append(Results(orig_img, path=img_path, names=self.model.names, obb=obb))
    return results





2024-01-05 बनाया गया, अपडेट किया गया 2024-01-12
लेखक: ग्लेन-जोचर (2)