|
@@ -8,6 +8,31 @@ class BBoxMixin(BaseMixin):
|
|
|
bbox = self._get("bounding_box", i)
|
|
|
return [bbox[attr] for attr in "xywh"]
|
|
|
|
|
|
+class MultiBoxMixin(BaseMixin):
|
|
|
+ _all_keys=[
|
|
|
+ "x", "x0", "x1",
|
|
|
+ "y", "y0", "y1",
|
|
|
+ "w", "h",
|
|
|
+ ]
|
|
|
+
|
|
|
+ def multi_box(self, i, keys=["x0","x1","y0","y1"]):
|
|
|
+ assert all([key in self._all_keys for key in keys]), \
|
|
|
+ f"unknown keys found: {keys}. Possible are: {self._all_keys}"
|
|
|
+
|
|
|
+ boxes = [
|
|
|
+ dict(
|
|
|
+ x=box["x0"], x0=box["x0"], x1=box["x1"],
|
|
|
+
|
|
|
+ y=box["y0"], y0=box["y0"], y1=box["y1"],
|
|
|
+
|
|
|
+ w=box["x1"] - box["x0"],
|
|
|
+ h=box["y1"] - box["y0"],
|
|
|
+ )
|
|
|
+ for box in self._get("multi_box", i)["objects"]
|
|
|
+ ]
|
|
|
+
|
|
|
+ return [[box[key] for key in keys] for box in boxes]
|
|
|
+
|
|
|
class BBCropMixin(BBoxMixin):
|
|
|
|
|
|
def __init__(self, *, crop_to_bb=False, crop_uniform=False, **kwargs):
|