def preprocess_frame(data, output_dim, use_thermal=True, augment=False, preprocess_fn=None): if use_thermal: channel = TrackChannels.thermal else: channel = TrackChannels.filtered data = data[channel] max = np.amax(data) min = np.amin(data) if max == min: return None data -= min data = data / (max - min) np.clip(data, a_min=0, a_max=None, out=data) data = data[np.newaxis, :] data = np.transpose(data, (1, 2, 0)) data = np.repeat(data, output_dim[2], axis=2) data = imageprocessing.resize_cv(data, output_dim) # preprocess expects values in range 0-255 if preprocess_fn: data = data * 255 data = preprocess_fn(data) return data
def resize_frame(frame, channel, frame_size, keep_aspect=False): if keep_aspect: return imageprocessing.resize_with_aspect( frame, (frame_size, frame_size), channel ) return imageprocessing.resize_cv( np.float32(frame), (frame_size, frame_size), channel )
def augement_frame(frame, frame_size, dim): frame = imageprocessing.resize_cv( frame, dim, extra_h=random.randint(0, int(frame_size * 0.05)), extra_v=random.randint(0, int(frame_size * 0.05)), ) image = convert(frame) image = tf.image.random_crop(image, size=[dim[0], dim[1], 3]) if random.random() > 0.50: image = tf.image.flip_left_right(image) if random.random() > 0.20: image = tf.image.random_contrast(image, 0.8, 1.2) image = tf.minimum(image, 1.0) image = tf.maximum(image, 0.0) return image.numpy()
def preprocess_frame( data, output_dim, use_thermal=True, augment=False, preprocess_fn=None ): if use_thermal: channel = TrackChannels.thermal else: channel = TrackChannels.filtered data = data[channel] data, stats = imageprocessing.normalize(data) if not stats[0]: return None data = data[np.newaxis, :] data = np.transpose(data, (1, 2, 0)) data = np.repeat(data, output_dim[2], axis=2) data = imageprocessing.resize_cv(data, output_dim, channel) # preprocess expects values in range 0-255 if preprocess_fn: data = data * 255 data = preprocess_fn(data) return data
def resize(self, dim): self.thermal = resize_cv(self.thermal, dim) self.mask = resize_cv(self.mask, dim, interpolation=cv2.INTER_NEAREST) if self.flow is not None: self.flow = resize_cv(self.flow, dim) self.filtered = resize_cv(self.filtered, dim)