Spaces:
Running
on
Zero
Running
on
Zero
added last updated notice to page and try to fix dimension mismatch warning
Browse files- app.py +29 -14
- requirements.txt +2 -1
app.py
CHANGED
@@ -11,6 +11,9 @@ import os
|
|
11 |
import trimesh
|
12 |
import time
|
13 |
import timm # Add this import
|
|
|
|
|
|
|
14 |
|
15 |
# Ensure timm is properly loaded
|
16 |
print(f"Timm version: {timm.__version__}")
|
@@ -137,13 +140,15 @@ def predict_depth(input_image):
|
|
137 |
depth = depth.squeeze()
|
138 |
|
139 |
# Print debug information
|
140 |
-
print(f"
|
141 |
-
print(f"
|
|
|
|
|
|
|
|
|
142 |
|
143 |
-
|
144 |
-
|
145 |
-
# Resize depth to match image dimensions
|
146 |
-
depth = np.resize(depth, image.shape[2:])
|
147 |
|
148 |
# No downsampling
|
149 |
downscale_factor = 1
|
@@ -185,28 +190,38 @@ def predict_depth(input_image):
|
|
185 |
os.remove(temp_file)
|
186 |
|
187 |
# Create the Gradio interface with appropriate input and output components.
|
|
|
|
|
188 |
iface = gr.Interface(
|
189 |
fn=predict_depth,
|
190 |
inputs=gr.Image(type="filepath"),
|
191 |
outputs=[
|
192 |
-
gr.Image(type="filepath", label="Depth Map"),
|
193 |
-
gr.Textbox(label="Focal Length or Error Message"),
|
194 |
-
gr.File(label="Download Raw Depth Map (CSV)"),
|
195 |
-
gr.Model3D(label="View 3D Model"),
|
196 |
-
gr.File(label="Download 3D Model (OBJ)")
|
197 |
],
|
198 |
title="DepthPro Demo with 3D Visualization",
|
199 |
description=(
|
200 |
"An enhanced demo that creates a textured 3D model from the input image and depth map.\n\n"
|
201 |
-
"Forked from https://huggingface.co/spaces/akhaliq/depth-pro and model from https://huggingface.co/apple/DepthPro"
|
202 |
"**Instructions:**\n"
|
203 |
"1. Upload an image.\n"
|
204 |
"2. The app will predict the depth map, display it, and provide the focal length.\n"
|
205 |
"3. Download the raw depth data as a CSV file.\n"
|
206 |
"4. View the generated 3D model textured with the original image.\n"
|
207 |
-
"5. Download the 3D model as an OBJ file if desired
|
|
|
208 |
),
|
209 |
)
|
210 |
|
211 |
# Launch the Gradio interface with sharing enabled
|
212 |
-
iface.launch(share=True) # share=True allows you to share the interface with others.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
import trimesh
|
12 |
import time
|
13 |
import timm # Add this import
|
14 |
+
import subprocess
|
15 |
+
import cv2 # Add this import
|
16 |
+
from datetime import datetime
|
17 |
|
18 |
# Ensure timm is properly loaded
|
19 |
print(f"Timm version: {timm.__version__}")
|
|
|
140 |
depth = depth.squeeze()
|
141 |
|
142 |
# Print debug information
|
143 |
+
print(f"Original depth shape: {depth.shape}")
|
144 |
+
print(f"Original image shape: {image.shape}")
|
145 |
+
|
146 |
+
# Resize depth to match image dimensions
|
147 |
+
image_height, image_width = image.shape[2], image.shape[3]
|
148 |
+
depth = cv2.resize(depth, (image_width, image_height), interpolation=cv2.INTER_LINEAR)
|
149 |
|
150 |
+
print(f"Resized depth shape: {depth.shape}")
|
151 |
+
print(f"Final image shape: {image.shape}")
|
|
|
|
|
152 |
|
153 |
# No downsampling
|
154 |
downscale_factor = 1
|
|
|
190 |
os.remove(temp_file)
|
191 |
|
192 |
# Create the Gradio interface with appropriate input and output components.
|
193 |
+
last_updated = get_last_commit_timestamp()
|
194 |
+
|
195 |
iface = gr.Interface(
|
196 |
fn=predict_depth,
|
197 |
inputs=gr.Image(type="filepath"),
|
198 |
outputs=[
|
199 |
+
gr.Image(type="filepath", label="Depth Map"),
|
200 |
+
gr.Textbox(label="Focal Length or Error Message"),
|
201 |
+
gr.File(label="Download Raw Depth Map (CSV)"),
|
202 |
+
gr.Model3D(label="View 3D Model"),
|
203 |
+
gr.File(label="Download 3D Model (OBJ)")
|
204 |
],
|
205 |
title="DepthPro Demo with 3D Visualization",
|
206 |
description=(
|
207 |
"An enhanced demo that creates a textured 3D model from the input image and depth map.\n\n"
|
208 |
+
"Forked from https://huggingface.co/spaces/akhaliq/depth-pro and model from https://huggingface.co/apple/DepthPro\n"
|
209 |
"**Instructions:**\n"
|
210 |
"1. Upload an image.\n"
|
211 |
"2. The app will predict the depth map, display it, and provide the focal length.\n"
|
212 |
"3. Download the raw depth data as a CSV file.\n"
|
213 |
"4. View the generated 3D model textured with the original image.\n"
|
214 |
+
"5. Download the 3D model as an OBJ file if desired.\n\n"
|
215 |
+
f"Last updated: {last_updated}"
|
216 |
),
|
217 |
)
|
218 |
|
219 |
# Launch the Gradio interface with sharing enabled
|
220 |
+
iface.launch(share=True) # share=True allows you to share the interface with others.
|
221 |
+
|
222 |
+
def get_last_commit_timestamp():
|
223 |
+
try:
|
224 |
+
timestamp = subprocess.check_output(['git', 'log', '-1', '--format=%cd', '--date=iso']).decode('utf-8').strip()
|
225 |
+
return datetime.fromisoformat(timestamp).strftime("%Y-%m-%d %H:%M:%S")
|
226 |
+
except Exception:
|
227 |
+
return "Unknown"
|
requirements.txt
CHANGED
@@ -6,4 +6,5 @@ torchvision
|
|
6 |
pillow_heif==0.8.0
|
7 |
timm
|
8 |
trimesh==3.22.1
|
9 |
-
gradio
|
|
|
|
6 |
pillow_heif==0.8.0
|
7 |
timm
|
8 |
trimesh==3.22.1
|
9 |
+
gradio
|
10 |
+
opencv-python==4.5.5.64
|