diff --git a/csrc/mmdeploy/codebase/mmdet/instance_segmentation.cpp b/csrc/mmdeploy/codebase/mmdet/instance_segmentation.cpp index 270f4c6641..14360dc87a 100644 --- a/csrc/mmdeploy/codebase/mmdet/instance_segmentation.cpp +++ b/csrc/mmdeploy/codebase/mmdet/instance_segmentation.cpp @@ -145,8 +145,8 @@ class ResizeInstanceMask : public ResizeBBox { OUTCOME_TRY(auto cpu_mask, MakeAvailableOnDevice(d_mask, host, stream_)); OUTCOME_TRY(stream().Wait()); cv::Mat mask_mat(mask_height, mask_width, CV_32FC(mask_channel), cpu_mask.data()); - int resize_height = int(mask_height / scale_factor_[0] + 0.5); - int resize_width = int(mask_width / scale_factor_[1] + 0.5); + int resize_height = int(mask_height / scale_factor_[1] + 0.5); + int resize_width = int(mask_width / scale_factor_[0] + 0.5); // skip resize if scale_factor is 1.0 if (resize_height != mask_height || resize_width != mask_width) { cv::resize(mask_mat, mask_mat, cv::Size(resize_width, resize_height), cv::INTER_LINEAR); diff --git a/mmdeploy/codebase/mmdet/deploy/object_detection_model.py b/mmdeploy/codebase/mmdet/deploy/object_detection_model.py index c6a958e5eb..28a63eb9a8 100644 --- a/mmdeploy/codebase/mmdet/deploy/object_detection_model.py +++ b/mmdeploy/codebase/mmdet/deploy/object_detection_model.py @@ -225,8 +225,8 @@ def postprocessing_results(self, elif 'border' in img_metas[i]: pad_key = 'border' if pad_key is not None: - x_off = img_metas[i][pad_key][2] / scale_factor[1] - y_off = img_metas[i][pad_key][0] / scale_factor[0] + x_off = img_metas[i][pad_key][2] / scale_factor[0] + y_off = img_metas[i][pad_key][0] / scale_factor[1] bboxes[:, ::2] -= x_off bboxes[:, 1::2] -= y_off bboxes *= (bboxes > 0) @@ -262,9 +262,9 @@ def postprocessing_results(self, masks.unsqueeze(0), size=[ math.ceil(masks.shape[-2] / - img_metas[i]['scale_factor'][0]), + img_metas[i]['scale_factor'][1]), math.ceil(masks.shape[-1] / - img_metas[i]['scale_factor'][1]) + img_metas[i]['scale_factor'][0]) ])[..., :ori_h, :ori_w] masks = masks.squeeze(0) if masks.dtype != bool: