adpro commited on
Commit
c046173
·
verified ·
1 Parent(s): 1cf824c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -31
app.py CHANGED
@@ -1,6 +1,4 @@
1
  import io
2
- import os
3
- import sys
4
  import time
5
  import numpy as np
6
  import cv2
@@ -12,23 +10,9 @@ import uvicorn
12
 
13
  app = FastAPI()
14
 
15
- # 🟢 Clone ZoeDepth nếu chưa
16
- zoe_path = "ZoeDepth"
17
- if not os.path.exists(zoe_path):
18
- os.system("git clone https://github.com/isl-org/ZoeDepth.git")
19
-
20
- # 🟢 Thêm ZoeDepth vào sys.path để import được
21
- sys.path.append(os.path.abspath(zoe_path))
22
-
23
- # 🟢 Import ZoeDepth sau khi đã tải về
24
- from zoedepth.models.builder import build_model
25
- from zoedepth.utils.config import get_config
26
-
27
- # 🟢 Sử dụng đúng model `zoedepth_nk`
28
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
29
- # Load ZoeDepth Tiny model correctly
30
- config = get_config("zoedepth", version="tiny", pretrained_resource=None)
31
- model = ZoeDepth.build_from_config(config)
32
  model.eval()
33
 
34
  @app.post("/analyze_path/")
@@ -37,29 +21,23 @@ async def analyze_path(file: UploadFile = File(...)):
37
  image_bytes = await file.read()
38
  image = Image.open(io.BytesIO(image_bytes)).convert("RGB")
39
 
40
- # 🟢 Lật ảnh trước khi tính toán Depth Map
41
- image_np = np.array(image)
42
- flipped_image = cv2.flip(image_np, -1)
43
-
44
- # 🟢 Chuyển đổi ảnh thành tensor phù hợp với ZoeDepth
45
  transform = torchvision.transforms.Compose([
46
- torchvision.transforms.Resize((256, 256)), # ZoeDepth cần resize ảnh nhỏ hơn
47
  torchvision.transforms.ToTensor(),
48
  ])
49
- img_tensor = transform(flipped_image).unsqueeze(0).to(device)
50
 
51
  # 🟢 Bắt đầu đo thời gian dự đoán Depth Map
52
  start_time = time.time()
53
 
54
- # 🟢 Dự đoán Depth Map với ZoeDepth
55
  with torch.no_grad():
56
- depth_map = model.infer(img_tensor)
57
- depth_map = torch.nn.functional.interpolate(
58
- depth_map.unsqueeze(1), size=(image_np.shape[0], image_np.shape[1]), mode="bicubic", align_corners=False
59
- ).squeeze().cpu().numpy()
60
 
61
  end_time = time.time()
62
- print(f"⏳ ZoeDepth xử lý trong {end_time - start_time:.4f} giây")
63
 
64
  # 🟢 Đo thời gian xử lý đường đi
65
  start_detect_time = time.time()
 
1
  import io
 
 
2
  import time
3
  import numpy as np
4
  import cv2
 
10
 
11
  app = FastAPI()
12
 
13
+ # 🟢 Tải hình MobileNetDepth (MobileNet v3 Large)
 
 
 
 
 
 
 
 
 
 
 
 
14
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
15
+ model = torchvision.models.mobilenet_v3_large(pretrained=True).to(device)
 
 
16
  model.eval()
17
 
18
  @app.post("/analyze_path/")
 
21
  image_bytes = await file.read()
22
  image = Image.open(io.BytesIO(image_bytes)).convert("RGB")
23
 
24
+ # 🟢 Chuyển đổi ảnh thành tensor phù hợp với MobileNetDepth
 
 
 
 
25
  transform = torchvision.transforms.Compose([
26
+ torchvision.transforms.Resize((224, 224)), # MobileNetDepth yêu cầu ảnh 224x224
27
  torchvision.transforms.ToTensor(),
28
  ])
29
+ img_tensor = transform(image).unsqueeze(0).to(device)
30
 
31
  # 🟢 Bắt đầu đo thời gian dự đoán Depth Map
32
  start_time = time.time()
33
 
34
+ # 🟢 Dự đoán Depth Map với MobileNetDepth
35
  with torch.no_grad():
36
+ depth_map = model(img_tensor)
37
+ depth_map = depth_map.squeeze().cpu().numpy()
 
 
38
 
39
  end_time = time.time()
40
+ print(f"⏳ MobileNetDepth xử lý trong {end_time - start_time:.4f} giây")
41
 
42
  # 🟢 Đo thời gian xử lý đường đi
43
  start_detect_time = time.time()