Speed up preprocessing.

This commit is contained in:
Daniel
2024-11-29 16:19:06 +01:00
parent 93d4611a91
commit 1b5e0c44e3
4 changed files with 24 additions and 21 deletions

View File

@ -19,25 +19,26 @@ class RTMDet(BaseModel):
self.dy = 0
self.scale = 0
norm_mean = -1 * np.array([123.675, 116.28, 103.53])
norm_std = 1.0 / np.array([58.395, 57.12, 57.375])
self.norm_mean = np.reshape(norm_mean, (1, 1, 3)).astype(np.float32)
self.norm_std = np.reshape(norm_std, (1, 1, 3)).astype(np.float32)
def preprocess(self, image: np.ndarray):
th, tw = self.input_shape[2:]
tensor, self.dx, self.dy, self.scale = letterbox(
image, (tw, th), fill_value=114
)
tensor -= np.array((123.675, 116.28, 103.53))
tensor /= np.array((58.395, 57.12, 57.375))
tensor = tensor.astype(np.float32, copy=False)
tensor += self.norm_mean
tensor *= self.norm_std
tensor = tensor[..., ::-1]
tensor = (
np.expand_dims(tensor, axis=0).transpose((0, 3, 1, 2)).astype(np.float32)
)
tensor = np.expand_dims(tensor, axis=0).transpose((0, 3, 1, 2))
return tensor
def postprocess(self, tensor: List[np.ndarray]):
boxes = tensor[0]
classes = tensor[1]
boxes = np.squeeze(boxes, axis=0)
classes = np.squeeze(classes, axis=0)
classes = np.expand_dims(classes, axis=-1)
boxes = np.squeeze(tensor[0], axis=0)
classes = np.expand_dims(np.squeeze(tensor[1], axis=0), axis=-1)
boxes = np.concatenate([boxes, classes], axis=-1)
boxes = nms(boxes, self.iou_threshold, self.conf_threshold)