import tensorflow as tf from PIL import Image import io imported = tf.saved_model.load("./app") imported = imported.signatures["serving_default"] def get_image_from_bytes(binary_image: bytes) -> Image: """Convert image from bytes to PIL RGB format Args: binary_image (bytes): The binary representation of the image Returns: PIL.Image: The image in PIL RGB format """ input_image = Image.open(io.BytesIO(binary_image)).convert("RGB") return input_image def predict(input_image): """Reads file and returns prediction Args: x (_type_): _description_ Returns: _type_: _description_ """ tensor = tf.io.decode_image(input_image, channels=3) inference_shape = (240, 320) original_shape = tensor.shape[:2] input_tensor = tf.expand_dims(tensor, axis=0) input_tensor = tf.image.resize(input_tensor, inference_shape, preserve_aspect_ratio=True) saliency = imported(input_tensor)["output"] saliency = tf.image.resize(saliency, original_shape) return saliency.numpy()[0]