Spaces:
Running
Running
from transformers import pipeline | |
from PIL import Image | |
import gradio as gr | |
# Load the Hugging Face depth estimation pipelines | |
pipe_base = pipeline(task="depth-estimation", model="LiheYoung/depth-anything-base-hf") | |
pipe_small = pipeline(task="depth-estimation", model="LiheYoung/depth-anything-small-hf") | |
pipe_large = pipeline(task="depth-estimation", model="LiheYoung/depth-anything-large-hf") | |
pipe_beit = pipeline(task="depth-estimation", model="Intel/dpt-beit-base-384") | |
def estimate_depths(image): | |
# Perform depth estimation with each pipeline | |
depth_base = pipe_base(image)["depth"] | |
depth_small = pipe_small(image)["depth"] | |
depth_large = pipe_large(image)["depth"] | |
depth_beit = pipe_beit(image)["depth"] | |
return depth_base, depth_small, depth_large, depth_beit | |
# Create a Gradio interface using Blocks | |
with gr.Blocks() as iface: | |
gr.Markdown("# Multi-Model Depth Estimation\nUpload an image to get depth estimation maps from multiple models.") | |
with gr.Row(): | |
input_image = gr.Image(type="pil", label="Input Image", height=400, width=400) | |
with gr.Row(): | |
with gr.Column(): | |
output_base = gr.Image(type="pil", label="LiheYoung/depth-anything-base-hf", interactive=False, height=400, width=400) | |
output_small = gr.Image(type="pil", label="LiheYoung/depth-anything-small-hf", interactive=False, height=400, width=400) | |
with gr.Column(): | |
output_large = gr.Image(type="pil", label="LiheYoung/depth-anything-large-hf", interactive=False, height=400, width=400) | |
output_beit = gr.Image(type="pil", label="Intel/dpt-beit-base-384", interactive=False, height=400, width=400) | |
input_image.change(fn=estimate_depths, inputs=input_image, outputs=[output_base, output_small, output_large, output_beit]) | |
# Launch the Gradio app | |
iface.launch() | |