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

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

नोट

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



ultralytics.models.nas.predict.NASPredictor

का रूप: BasePredictor

Ultralytics YOLO ऑब्जेक्ट डिटेक्शन के लिए NAS प्रेडिक्टर।

यह वर्ग BasePredictor से Ultralytics इंजन और पोस्ट-प्रोसेसिंग के लिए जिम्मेदार है द्वारा उत्पन्न कच्ची भविष्यवाणियां YOLO NAS मॉडल। यह गैर-अधिकतम दमन जैसे संचालन को लागू करता है और मूल छवि आयामों को फिट करने के लिए बाउंडिंग बॉक्स को स्केल करना।

विशेषताएँ:

नाम प्रकार विवरण: __________
args Namespace

पोस्ट-प्रोसेसिंग के लिए विभिन्न कॉन्फ़िगरेशन युक्त नामस्थान।

उदाहरण
from ultralytics import NAS

model = NAS('yolo_nas_s')
predictor = model.predictor
# Assumes that raw_preds, img, orig_imgs are available
results = predictor.postprocess(raw_preds, img, orig_imgs)
नोट

आमतौर पर, यह वर्ग सीधे तत्काल नहीं होता है। इसका उपयोग आंतरिक रूप से NAS कक्षा।

में स्रोत कोड ultralytics/models/nas/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बांग्लादेश 46 47 48 49 50 51 52 53 5455 5657585960
class NASPredictor(BasePredictor):
    """
    Ultralytics YOLO NAS Predictor for object detection.

    This class extends the `BasePredictor` from Ultralytics engine and is responsible for post-processing the
    raw predictions generated by the YOLO NAS models. It applies operations like non-maximum suppression and
    scaling the bounding boxes to fit the original image dimensions.

    Attributes:
        args (Namespace): Namespace containing various configurations for post-processing.

    Example:
        ```python
        from ultralytics import NAS

        model = NAS('yolo_nas_s')
        predictor = model.predictor
        # Assumes that raw_preds, img, orig_imgs are available
        results = predictor.postprocess(raw_preds, img, orig_imgs)
        ```

    Note:
        Typically, this class is not instantiated directly. It is used internally within the `NAS` class.
    """

    def postprocess(self, preds_in, img, orig_imgs):
        """Postprocess predictions and returns a list of Results objects."""

        # Cat boxes and class scores
        boxes = ops.xyxy2xywh(preds_in[0][0])
        preds = torch.cat((boxes, preds_in[0][1]), -1).permute(0, 2, 1)

        preds = ops.non_max_suppression(
            preds,
            self.args.conf,
            self.args.iou,
            agnostic=self.args.agnostic_nms,
            max_det=self.args.max_det,
            classes=self.args.classes,
        )

        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 i, pred in enumerate(preds):
            orig_img = orig_imgs[i]
            pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
            img_path = self.batch[0][i]
            results.append(Results(orig_img, path=img_path, names=self.model.names, boxes=pred))
        return results

postprocess(preds_in, img, orig_imgs)

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

में स्रोत कोड ultralytics/models/nas/predict.py
35 बांग्लादेश 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5152535455565758 5960
def postprocess(self, preds_in, img, orig_imgs):
    """Postprocess predictions and returns a list of Results objects."""

    # Cat boxes and class scores
    boxes = ops.xyxy2xywh(preds_in[0][0])
    preds = torch.cat((boxes, preds_in[0][1]), -1).permute(0, 2, 1)

    preds = ops.non_max_suppression(
        preds,
        self.args.conf,
        self.args.iou,
        agnostic=self.args.agnostic_nms,
        max_det=self.args.max_det,
        classes=self.args.classes,
    )

    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 i, pred in enumerate(preds):
        orig_img = orig_imgs[i]
        pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
        img_path = self.batch[0][i]
        results.append(Results(orig_img, path=img_path, names=self.model.names, boxes=pred))
    return results





2023-11-12 बनाया गया, अपडेट किया गया 2023-11-25
लेखक: ग्लेन-जोचर (3)