File size: 2,305 Bytes
81d10ae
 
 
 
 
 
 
 
 
0361028
81d10ae
a090503
 
 
 
3691ba9
 
a090503
3691ba9
 
81d10ae
a090503
3691ba9
 
81d10ae
a090503
3691ba9
6e99eb7
 
 
 
81d10ae
 
0361028
 
 
 
 
 
 
 
 
2e34687
6c67e45
 
a090503
129db67
 
3691ba9
d643ca3
129db67
 
 
3691ba9
ce2a7fd
3691ba9
 
 
 
 
 
0361028
 
 
 
509cbdf
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import gradio as gr
from transformers import pipeline
import torch
import numpy as np
from PIL import Image
import gradio as gr
from gradio_client import Client
import os
import spaces
import json

dpt_beit = pipeline(task = "depth-estimation", model="Intel/dpt-beit-base-384", device=0)
depth_anything = pipeline(task = "depth-estimation", model="nielsr/depth-anything-small", device=0)
dpt_large = pipeline(task = "depth-estimation", model="intel/dpt-large", device=0)

def depth_anything_inference(img):
  return depth_anything(img)["depth"]

def dpt_beit_inference(img):
  return dpt_beit(img)["depth"]


def dpt_large_inference(img):
  return dpt_large(img)["depth"]
    
@spaces.GPU
def infer(img):
  if img is None:
      return None, None, None
  else:
      return dpt_large_inference(img), dpt_beit_inference(img), depth_anything_inference(img)


css = """
  #mkd {
    height: 500px; 
    overflow: auto; 
    border: 1px solid #ccc; 
  }
"""
with gr.Blocks(css=css) as demo:
  gr.HTML("<h1><center>Compare Depth Estimation Models<center><h1>")
  gr.Markdown("In this Space, you can compare different depth estimation models: [DPT-Large](https://huggingface.co/Intel/dpt-large), [DPT with BeiT backbone](https://huggingface.co/Intel/dpt-beit-large-512) and the recent [Depth Anything Model small checkpoint](https://huggingface.co/LiheYoung/depth-anything-small-hf). 🤩")
  gr.Markdown("You can also see how they compare in terms of speed [here](https://huggingface2.notion.site/DPT-Benchmarks-1e516b0ba193460e865c47b3a5681efb?pvs=4).")
  gr.Markdown("Simply upload an image or try one of the examples to see the outputs.")

  with gr.Column():
      with gr.Row():
        input_img = gr.Image(label="Input Image", type="pil")
      with gr.Row():
          output_1 = gr.Image(type="pil", label="DPT-Large")
          output_2 = gr.Image(type="pil", label="DPT with BeiT Backbone")
          output_3 = gr.Image(type="pil", label="Depth Anything")

  gr.Examples([["bee.jpg"], ["cat.png"], ["cats.png"]],
  inputs = input_img,
  outputs = [output_1, output_2, output_3],
  fn=infer,
  cache_examples=True,
  label='Click on any Examples below to get depth estimation results quickly 👇'
  )

  input_img.change(infer, [input_img], [output_1, output_2, output_3])


demo.launch(debug=True)