| |
| |
| |
| |
| |
| |
| |
| |
| from object_detection.pt.src.data.ssd.transforms.transforms import * |
|
|
|
|
| class TrainAugmentation: |
| def __init__(self, size, mean=0, std=1.0): |
| """ |
| Args: |
| size: the size the of final image. |
| mean: mean pixel value per channel. |
| """ |
| self.mean = mean |
| self.size = size |
| self.augment = Compose([ |
| ConvertFromInts(), |
| PhotometricDistort(), |
| Expand(self.mean), |
| RandomSampleCrop(), |
| RandomMirror(), |
| ToPercentCoords(), |
| Resize(self.size), |
| SubtractMeans(self.mean), |
| lambda img, boxes=None, labels=None: (img / std, boxes, labels), |
| ToTensor(), |
| ]) |
|
|
| def __call__(self, img, boxes, labels): |
| """ |
| |
| Args: |
| img: the output of cv.imread in RGB layout. |
| boxes: boundding boxes in the form of (x1, y1, x2, y2). |
| labels: labels of boxes. |
| """ |
| return self.augment(img, boxes, labels) |
|
|
|
|
| class TestTransform: |
| def __init__(self, size, mean=0.0, std=1.0): |
| self.transform = Compose([ |
| ToPercentCoords(), |
| Resize(size), |
| SubtractMeans(mean), |
| lambda img, boxes=None, labels=None: (img / std, boxes, labels), |
| ToTensor(), |
| ]) |
|
|
| def __call__(self, image, boxes, labels): |
| return self.transform(image, boxes, labels) |
|
|
|
|
| class PredictionTransform: |
| def __init__(self, size, mean=0.0, std=1.0): |
| self.transform = Compose([ |
| Resize(size), |
| SubtractMeans(mean), |
| lambda img, boxes=None, labels=None: (img / std, boxes, labels), |
| ToTensor() |
| ]) |
|
|
| def __call__(self, image): |
| image, _, _ = self.transform(image) |
| return image |