sudo-soldier commited on
Commit
fe51ca1
·
verified ·
1 Parent(s): c1dbba4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -20
app.py CHANGED
@@ -48,7 +48,7 @@ def process_image(image_path):
48
  except Exception:
49
  gltf_path = create_3d_obj(np.array(image), depth_image, image_path, depth=8)
50
 
51
- return [Image.fromarray(depth_image), gltf_path]
52
 
53
  def create_3d_obj(rgb_image, depth_image, image_path, depth=10):
54
  depth_o3d = o3d.geometry.Image(depth_image)
@@ -80,32 +80,32 @@ def create_3d_obj(rgb_image, depth_image, image_path, depth=10):
80
 
81
  return gltf_path
82
 
83
- title = "Zero-shot Depth Estimation with DPT + 3D Point Cloud"
84
- description = "DPT model predicts depth from an image, followed by 3D Point Cloud reconstruction."
 
 
 
 
85
 
86
- with gr.Blocks() as iface:
87
- gr.Markdown("# Zero-shot Depth Estimation with DPT + 3D Point Cloud")
88
  with gr.Row():
89
- image_input = gr.Image(type="filepath", label="Input Image")
90
- depth_output = gr.Image(label="Predicted Depth", type="pil")
91
- gltf_output = gr.File(label="Download 3D gLTF")
 
 
 
92
 
93
- # Embed an iframe for previewing the .gltf
94
  with gr.Row():
95
- gr.HTML('<iframe id="gltf-viewer" width="100%" height="400px"></iframe>')
 
 
 
96
 
97
- def update_gltf_viewer(image_path):
98
- gltf_path = process_image(image_path)[1]
99
- iframe_html = f'''
100
- <script>
101
- document.getElementById('gltf-viewer').src = 'https://gltf-viewer.donmccurdy.com/?url=file://{gltf_path}';
102
- </script>
103
- '''
104
- return process_image(image_path)[0], gltf_path, iframe_html
105
 
106
- image_input.change(update_gltf_viewer, inputs=[image_input], outputs=[depth_output, gltf_output, gr.HTML()])
 
107
 
108
- iface.launch()
109
 
110
 
111
 
 
48
  except Exception:
49
  gltf_path = create_3d_obj(np.array(image), depth_image, image_path, depth=8)
50
 
51
+ return Image.fromarray(depth_image), gltf_path, gltf_path
52
 
53
  def create_3d_obj(rgb_image, depth_image, image_path, depth=10):
54
  depth_o3d = o3d.geometry.Image(depth_image)
 
80
 
81
  return gltf_path
82
 
83
+ title = "Zero-shot Depth Estimation with DPT + 3D Model Preview"
84
+ description = "Upload an image to generate a depth map and reconstruct a 3D model in .gltf format."
85
+
86
+ with gr.Blocks() as demo:
87
+ gr.Markdown(f"## {title}")
88
+ gr.Markdown(description)
89
 
 
 
90
  with gr.Row():
91
+ with gr.Column():
92
+ image_input = gr.Image(type="filepath", label="Upload Image")
93
+ generate_button = gr.Button("Generate 3D Model")
94
+
95
+ with gr.Column():
96
+ depth_output = gr.Image(label="Predicted Depth", type="pil")
97
 
 
98
  with gr.Row():
99
+ model_output = gr.Model3D(label="3D Model Preview (GLTF)")
100
+
101
+ with gr.Row():
102
+ file_output = gr.File(label="Download 3D GLTF File")
103
 
104
+ generate_button.click(fn=process_image, inputs=[image_input], outputs=[depth_output, model_output, file_output])
 
 
 
 
 
 
 
105
 
106
+ if __name__ == "__main__":
107
+ demo.launch()
108
 
 
109
 
110
 
111