diff --git a/ultralytics/yolo/v8/segment/val.py b/ultralytics/yolo/v8/segment/val.py index 288d378..019da2f 100644 --- a/ultralytics/yolo/v8/segment/val.py +++ b/ultralytics/yolo/v8/segment/val.py @@ -90,12 +90,14 @@ class SegmentationValidator(DetectionValidator): if self.args.single_cls: pred[:, 5] = 0 predn = pred.clone() - ops.scale_boxes(batch["img"][si].shape[1:], predn[:, :4], shape) # native-space pred + ops.scale_boxes(batch["img"][si].shape[1:], predn[:, :4], shape, + ratio_pad=batch["ratio_pad"][si]) # native-space pred # Evaluate if nl: tbox = ops.xywh2xyxy(bbox) # target boxes - ops.scale_boxes(batch["img"][si].shape[1:], tbox, shape) # native-space labels + ops.scale_boxes(batch["img"][si].shape[1:], tbox, shape, + ratio_pad=batch["ratio_pad"][si]) # native-space labels labelsn = torch.cat((cls, tbox), 1) # native-space labels correct_bboxes = self._process_batch(predn, labelsn) # TODO: maybe remove these `self.` arguments as they already are member variable @@ -117,7 +119,9 @@ class SegmentationValidator(DetectionValidator): # Save if self.args.save_json: pred_masks = ops.scale_image(batch["img"][si].shape[1:], - pred_masks.permute(1, 2, 0).contiguous().cpu().numpy(), shape) + pred_masks.permute(1, 2, 0).contiguous().cpu().numpy(), + shape, + ratio_pad=batch["ratio_pad"][si]) self.pred_to_json(predn, batch["im_file"][si], pred_masks) # if self.args.save_txt: # save_one_txt(predn, save_conf, shape, file=save_dir / 'labels' / f'{path.stem}.txt')