Spaces:
Build error
Build error
import os | |
os.system("pip install git+https://www.github.com/hukkelas/DeepPrivacy") | |
import gradio | |
import numpy as np | |
import torch | |
import hashlib | |
from PIL import Image | |
import gradio.inputs | |
from deep_privacy.build import build_anonymizer | |
from deep_privacy.detection import ImageAnnotation | |
from typing import List | |
anonymizer = build_anonymizer() | |
cached_detections = {} | |
def anonymize(im: Image, truncation_value: float): | |
anonymizer.truncation_level = truncation_value | |
im = np.array(im.convert("RGB")) | |
md5_ = hashlib.md5(im.tobytes()).hexdigest() | |
if md5_ in cached_detections: | |
detections = cached_detections[md5_] | |
else: | |
detections: List[ImageAnnotation] = anonymizer.detector.get_detections([im]) | |
cached_detections[md5_] = detections | |
if len(detections) == 0: | |
return Image.fromarray(im) | |
im = anonymizer.anonymize_images([im], detections)[0] | |
im = Image.fromarray(im) | |
return im | |
iface = gradio.Interface( | |
anonymize, [gradio.inputs.Image(type="pil", label="Upload your image or try the example below!"), gradio.inputs.Slider(minimum=0, maximum=8, step=0.01, default=0.5, label="Truncation value (set to >0 to generate different bodies between runs)")], | |
examples=[["coco_val2017_000000001000.jpg", 0], ["turing-2018-bengio-hinton-lecun.jpg", 0]], | |
outputs="image", | |
title="DeepPrivacy: A Generative Adversarial Network for Face Anonymization", | |
description="A live demo of face anonymization with generative adversarial networks. See paper/code at: github.com/hukkelas/DeepPrivacy", | |
live=True) | |
iface.launch() |