Spaces:
Runtime error
Runtime error
File size: 1,196 Bytes
60954ed bbc4863 60954ed |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import tensorflow as tf
import numpy as np
from einops import rearrange
from decord import VideoReader
num_frames = 8
input_size = 224
patch_size = (16, 16)
IMAGENET_MEAN = np.array([0.45, 0.45, 0.45])
IMAGENET_STD = np.array([0.225, 0.225, 0.225])
def format_frames(frame, output_size):
frame = tf.image.convert_image_dtype(frame, tf.uint8)
frame = tf.image.resize(frame, size=output_size)
frame = frame / 255.
frame = frame - IMAGENET_MEAN
frame = frame / IMAGENET_STD
return frame
def read_video(file_path):
container = VideoReader(file_path)
return container
def frame_sampling(container, num_frames):
interval = len(container) // num_frames
bids = np.arange(num_frames) * interval
offset = np.random.randint(interval, size=bids.shape)
frame_index = bids + offset
frames = container.get_batch(frame_index).asnumpy()
frames = np.stack(frames)
frames = format_frames(frames, [input_size] * 2)
return frames
def denormalize(image):
image = image.numpy() if not isinstance(image, np.ndarray) else image
image = image * IMAGENET_STD + IMAGENET_MEAN
image = (image * 255).clip(0, 255).astype('uint8')
return image |