Spaces:
Runtime error
Runtime error
thinh-huynh-re
commited on
Commit
•
f092df4
1
Parent(s):
60b4128
Init
Browse files- .gitignore +8 -0
- app.py +25 -0
- inference.py +35 -0
- prepare_samples.py +31 -0
- requirements.txt +8 -0
- samples/.gitkeep +0 -0
.gitignore
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
env
|
2 |
+
__pycache__
|
3 |
+
data
|
4 |
+
samples/*
|
5 |
+
!samples/.gitkeep
|
6 |
+
model_cache
|
7 |
+
image_processor_cache
|
8 |
+
flagged
|
app.py
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
|
3 |
+
from inference import inference
|
4 |
+
from prepare_samples import prepare_samples
|
5 |
+
|
6 |
+
TITLE = "DPT Depth"
|
7 |
+
DESCRIPTION = "Gradio demo for DPT-Depth"
|
8 |
+
examples = prepare_samples()
|
9 |
+
|
10 |
+
demo = gr.Interface(
|
11 |
+
fn=inference,
|
12 |
+
inputs=[
|
13 |
+
gr.inputs.Image(label="RGB", type="pil"),
|
14 |
+
],
|
15 |
+
outputs=[
|
16 |
+
gr.outputs.Image(label="Prediction", type="pil"),
|
17 |
+
],
|
18 |
+
title=TITLE,
|
19 |
+
examples=examples,
|
20 |
+
description=DESCRIPTION,
|
21 |
+
)
|
22 |
+
|
23 |
+
|
24 |
+
if __name__ == "__main__":
|
25 |
+
demo.launch(server_name="0.0.0.0") # server_port=8541
|
inference.py
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import AutoImageProcessor, AutoModel
|
2 |
+
from typing import Dict
|
3 |
+
|
4 |
+
import numpy as np
|
5 |
+
from matplotlib import cm
|
6 |
+
from PIL import Image
|
7 |
+
from torch import Tensor
|
8 |
+
|
9 |
+
model = AutoModel.from_pretrained(
|
10 |
+
"RGBD-SOD/dptdepth", trust_remote_code=True, cache_dir="model_cache"
|
11 |
+
)
|
12 |
+
image_processor = AutoImageProcessor.from_pretrained(
|
13 |
+
"RGBD-SOD/dptdepth", trust_remote_code=True, cache_dir="image_processor_cache"
|
14 |
+
)
|
15 |
+
|
16 |
+
|
17 |
+
def inference(rgb: Image.Image) -> Image.Image:
|
18 |
+
rgb = rgb.convert(mode="RGB")
|
19 |
+
|
20 |
+
preprocessed_sample: Dict[str, Tensor] = image_processor.preprocess(
|
21 |
+
{
|
22 |
+
"rgb": rgb,
|
23 |
+
}
|
24 |
+
)
|
25 |
+
|
26 |
+
output: Dict[str, Tensor] = model(preprocessed_sample["rgb"])
|
27 |
+
postprocessed_sample: np.ndarray = image_processor.postprocess(
|
28 |
+
output["logits"], [rgb.size[1], rgb.size[0]]
|
29 |
+
)
|
30 |
+
prediction = Image.fromarray(np.uint8(cm.gist_earth(postprocessed_sample) * 255))
|
31 |
+
return prediction
|
32 |
+
|
33 |
+
|
34 |
+
if __name__ == "__main__":
|
35 |
+
pass
|
prepare_samples.py
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import shutil
|
3 |
+
from typing import List, Tuple
|
4 |
+
|
5 |
+
from PIL import Image
|
6 |
+
from datasets import load_dataset
|
7 |
+
|
8 |
+
|
9 |
+
dataset = load_dataset("RGBD-SOD/test", "v1", split="train", cache_dir="data")
|
10 |
+
SAMPLES_DIR = "samples"
|
11 |
+
|
12 |
+
|
13 |
+
def prepare_samples():
|
14 |
+
samples: List[Tuple[str, str, str]] = []
|
15 |
+
for sample in dataset:
|
16 |
+
rgb: Image.Image = sample["rgb"]
|
17 |
+
depth: Image.Image = sample["depth"]
|
18 |
+
gt: Image.Image = sample["gt"]
|
19 |
+
name: str = sample["name"]
|
20 |
+
dir_path = os.path.join(SAMPLES_DIR, name)
|
21 |
+
shutil.rmtree(dir_path, ignore_errors=True)
|
22 |
+
os.makedirs(dir_path, exist_ok=True)
|
23 |
+
rgb_path = os.path.join(dir_path, f"rgb.jpg")
|
24 |
+
rgb.save(rgb_path)
|
25 |
+
depth_path = os.path.join(dir_path, f"depth.jpg")
|
26 |
+
depth.save(depth_path)
|
27 |
+
gt_path = os.path.join(dir_path, f"gt.png")
|
28 |
+
gt.save(gt_path)
|
29 |
+
|
30 |
+
samples.append([rgb_path, depth_path, gt_path])
|
31 |
+
return samples
|
requirements.txt
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
gradio
|
2 |
+
torch
|
3 |
+
opencv-python
|
4 |
+
transformers[torch]
|
5 |
+
torchvision
|
6 |
+
datasets
|
7 |
+
matplotlib
|
8 |
+
timm
|
samples/.gitkeep
ADDED
File without changes
|