|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # vim: expandtab:ts=4:sw=4
- import numpy as np
-
-
- class Detection(object):
- """
- This class represents a bounding box detection in a single image.
- Parameters
- ----------
- tlwh : array_like
- Bounding box in format `(x, y, w, h)`.
- confidence : float
- Detector confidence score.
- feature : array_like
- A feature vector that describes the object contained in this image.
- Attributes
- ----------
- tlwh : ndarray
- Bounding box in format `(top left x, top left y, width, height)`.
- confidence : ndarray
- Detector confidence score.
- feature : ndarray | NoneType
- A feature vector that describes the object contained in this image.
- """
-
- def __init__(self, tlwh, confidence, feature):
- self.tlwh = np.asarray(tlwh, dtype=np.float)
- self.confidence = float(confidence)
- self.feature = np.asarray(feature, dtype=np.float32)
-
- def to_tlbr(self):
- """Convert bounding box to format `(min x, min y, max x, max y)`, i.e.,
- `(top left, bottom right)`.
- """
- ret = self.tlwh.copy()
- ret[2:] += ret[:2]
- return ret
-
- def to_xyah(self):
- """Convert bounding box to format `(center x, center y, aspect ratio,
- height)`, where the aspect ratio is `width / height`.
- """
- ret = self.tlwh.copy()
- ret[:2] += ret[2:] / 2
- ret[2] /= ret[3]
- return ret
|