text: import cv2
  from cv2 import waitKey
  import torch
  import urllib.request
  import os
  import matplotlib.pyplot as plt
  
  print(torch.__version__)
  os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"
  # url, filename = ("https://github.com/pytorch/hub/raw/master/images/dog.jpg", "dog.jpg")
  # urllib.request.urlretrieve(url, filename)
  
  model_type = "DPT_Large"     # MiDaS v3 - Large     (highest accuracy, slowest inference speed)
  #model_type = "DPT_Hybrid"   # MiDaS v3 - Hybrid    (medium accuracy, medium inference speed)
  #model_type = "MiDaS_small"  # MiDaS v2.1 - Small   (lowest accuracy, highest inference speed)
  
  midas = torch.hub.load("intel-isl/MiDaS", model_type)
  
  # change to gpu
  device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
  midas.to(device)
  midas.eval()
  
  # Load transforms to resize and normalize the image for large or small model
  midas_transforms = torch.hub.load("intel-isl/MiDaS", "transforms")
  
  if model_type == "DPT_Large" or model_type == "DPT_Hybrid":
      transform = midas_transforms.dpt_transform
  else:
      transform = midas_transforms.small_transform
  
  # Load image and apply transforms
  filename = '1646652789610919952.jpg'
  img = cv2.imread(filename)
  img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  
  input_batch = transform(img).to(device)
  
  # Predict and resize to original resolution
  with torch.no_grad():
      prediction = midas(input_batch)
  
      prediction = torch.nn.functional.interpolate(
          prediction.unsqueeze(1),
          size=img.shape[:2],
          mode="bicubic",
          align_corners=False
      ).squeeze()
  
  output = prediction.cpu().numpy()
  plt.imshow(output)
  plt.show()