MCPcopy Create free account
hub / github.com/YXB-NKU/Strip-R-CNN / encode

Method encode

mmrotate/core/bbox/coder/gliding_vertex_coder.py:116–146  ·  view source on GitHub ↗

Get box regression transformation deltas. Args: rbboxes (torch.Tensor): Source boxes, e.g., object proposals. Returns: torch.Tensor: Box transformation deltas

(self, rbboxes)

Source from the content-addressed store, hash-verified

114 super(GVRatioCoder, self).__init__(**kwargs)
115
116 def encode(self, rbboxes):
117 """Get box regression transformation deltas.
118
119 Args:
120 rbboxes (torch.Tensor): Source boxes, e.g., object proposals.
121
122 Returns:
123 torch.Tensor: Box transformation deltas
124 """
125 assert rbboxes.size(1) == 5
126
127 polys = obb2poly(rbboxes, self.version)
128 max_x, _ = polys[:, ::2].max(1)
129 min_x, _ = polys[:, ::2].min(1)
130 max_y, _ = polys[:, 1::2].max(1)
131 min_y, _ = polys[:, 1::2].min(1)
132 hbboxes = torch.stack([min_x, min_y, max_x, max_y], dim=1)
133
134 h_areas = (hbboxes[:, 2] - hbboxes[:, 0]) * \
135 (hbboxes[:, 3] - hbboxes[:, 1])
136
137 polys = polys.view(polys.size(0), 4, 2)
138 areas = polys.new_zeros(polys.size(0))
139 for i in range(4):
140 areas += 0.5 * (
141 polys[:, i, 0] * polys[:, (i + 1) % 4, 1] -
142 polys[:, (i + 1) % 4, 0] * polys[:, i, 1])
143 areas = torch.abs(areas)
144
145 ratios = areas / h_areas
146 return ratios[:, None]
147
148 def decode(self, bboxes, bboxes_pred):
149 """Apply transformation `fix_deltas` to `boxes`.

Callers

nothing calls this directly

Calls 1

obb2polyFunction · 0.85

Tested by

no test coverage detected