MCPcopy Create free account
hub / github.com/Project-MONAI/MONAI / decode

Method decode

monai/apps/detection/utils/box_coder.py:171–196  ·  view source on GitHub ↗

From a set of original reference_boxes and encoded relative box offsets, Args: rel_codes: encoded boxes, Nx4 or Nx6 torch tensor. reference_boxes: a list of reference boxes, each element is Mx4 or Mx6 torch tensor. The box mode is assumed to

(self, rel_codes: Tensor, reference_boxes: Sequence[Tensor])

Source from the content-addressed store, hash-verified

169 return targets
170
171 def decode(self, rel_codes: Tensor, reference_boxes: Sequence[Tensor]) -> Tensor:
172 """
173 From a set of original reference_boxes and encoded relative box offsets,
174
175 Args:
176 rel_codes: encoded boxes, Nx4 or Nx6 torch tensor.
177 reference_boxes: a list of reference boxes, each element is Mx4 or Mx6 torch tensor.
178 The box mode is assumed to be ``StandardMode``
179
180 Return:
181 decoded boxes, Nx1x4 or Nx1x6 torch tensor. The box mode will be ``StandardMode``
182 """
183 if not isinstance(reference_boxes, Sequence) or (not isinstance(rel_codes, torch.Tensor)):
184 raise ValueError("Input arguments wrong type.")
185 boxes_per_image = [b.size(0) for b in reference_boxes]
186 # concat the lists to do computation
187 concat_boxes = torch.cat(tuple(reference_boxes), dim=0)
188 box_sum = 0
189 for val in boxes_per_image:
190 box_sum += val
191 if box_sum > 0:
192 rel_codes = rel_codes.reshape(box_sum, -1)
193 pred_boxes = self.decode_single(rel_codes, concat_boxes)
194 if box_sum > 0:
195 pred_boxes = pred_boxes.reshape(box_sum, -1, 2 * self.spatial_dims)
196 return pred_boxes
197
198 def decode_single(self, rel_codes: Tensor, reference_boxes: Tensor) -> Tensor:
199 """

Callers 1

trainMethod · 0.45

Calls 1

decode_singleMethod · 0.95

Tested by

no test coverage detected