mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-08-01 03:12:49 +08:00
Refactor a utility function for bbox conversion
Summary: This function makes it easier to extend FrameData class with new channels; brushing it up a bit. Reviewed By: bottler Differential Revision: D67816470 fbshipit-source-id: 6575415c864d0f539e283889760cd2331bf226a7
This commit is contained in:
parent
5247f6ad74
commit
89b851e64c
@ -134,7 +134,15 @@ T = TypeVar("T", bound=torch.Tensor)
|
|||||||
def bbox_xyxy_to_xywh(xyxy: T) -> T:
|
def bbox_xyxy_to_xywh(xyxy: T) -> T:
|
||||||
wh = xyxy[2:] - xyxy[:2]
|
wh = xyxy[2:] - xyxy[:2]
|
||||||
xywh = torch.cat([xyxy[:2], wh])
|
xywh = torch.cat([xyxy[:2], wh])
|
||||||
return xywh # pyre-ignore
|
return xywh # pyre-ignore[7]
|
||||||
|
|
||||||
|
|
||||||
|
def bbox_xywh_to_xyxy(xywh: T, clamp_size: float | int | None = None) -> T:
|
||||||
|
wh = xywh[2:]
|
||||||
|
if clamp_size is not None:
|
||||||
|
wh = wh.clamp(min=clamp_size)
|
||||||
|
xyxy = torch.cat([xywh[:2], xywh[:2] + wh])
|
||||||
|
return xyxy # pyre-ignore[7]
|
||||||
|
|
||||||
|
|
||||||
def get_clamp_bbox(
|
def get_clamp_bbox(
|
||||||
@ -180,16 +188,6 @@ def rescale_bbox(
|
|||||||
return bbox * rel_size
|
return bbox * rel_size
|
||||||
|
|
||||||
|
|
||||||
def bbox_xywh_to_xyxy(
|
|
||||||
xywh: torch.Tensor, clamp_size: Optional[int] = None
|
|
||||||
) -> torch.Tensor:
|
|
||||||
xyxy = xywh.clone()
|
|
||||||
if clamp_size is not None:
|
|
||||||
xyxy[2:] = torch.clamp(xyxy[2:], clamp_size)
|
|
||||||
xyxy[2:] += xyxy[:2]
|
|
||||||
return xyxy
|
|
||||||
|
|
||||||
|
|
||||||
def get_1d_bounds(arr: np.ndarray) -> Tuple[int, int]:
|
def get_1d_bounds(arr: np.ndarray) -> Tuple[int, int]:
|
||||||
nz = np.flatnonzero(arr)
|
nz = np.flatnonzero(arr)
|
||||||
return nz[0], nz[-1] + 1
|
return nz[0], nz[-1] + 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user