Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Depth estimation
- Vision
- Meta Learning
- CV
- web
- cs
- PRML
- Python
- Torch
- ML
- dl
- FineGrained
- 딥러닝
- 자료구조
- computervision
- clean code
- math
- 알고리즘
- REACT
- 3d
- classification
- SSL
- Front
- FGVC
- pytorch
- nlp
- 머신러닝
- GAN
- algorithm
- nerf
- Today
- Total
KalelPark's LAB
[ Computer Vision ] Real-Time Depth Estimation CODE 본문
Pytorch에서는 Depth Estimation과 관련된 Model을 제공해줍니다..!
우선 필요한 라이브러리를 전부 불러옵니다.
import cv2
import torch
import time
import numpy as np
model_type = "MiDaS_small"
midas = torch.hub.load("intel-isl/MiDaS", model_type)
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
midas.to(device)
midas.eval()
midas_transforms = torch.hub.load("intel-isl/MiDaS", "transforms")
transform = midas_transforms.small_transform
이후 아래의 코드를 실행하면 됩니다..
midas architecture를 통하여, 예측을 진행한 후, 이미지를 interpolate합니다. 이후, Color Map을 적용한 후 출력을 합니다.
(추후 조금 더 깊게 살펴보도록 하겠습니다 :) )
import cv2
import torch
import time
import numpy as np
model_type = "MiDaS_small"
midas = torch.hub.load("intel-isl/MiDaS", model_type)
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
midas.to(device)
midas.eval()
midas_transforms = torch.hub.load("intel-isl/MiDaS", "transforms")
transform = midas_transforms.small_transform
cap = cv2.VideoCapture(1)
while cap.isOpened():
success, img = cap.read()
start = time.time()
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
input_batch = transform(img).to(device)
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()
depth_map = prediction.cpu().numpy()
depth_map = cv2.normalize(depth_map, None, 0, 1, norm_type = cv2.NORM_MINMAX)
end = time.time()
totalTime = end - start
fps = 1 / totalTime
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
depth_map = (depth_map*255).astype(np.uint8)
depth_map = cv2.applyColorMap(depth_map, cv2.COLORMAP_MAGMA) # cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)
cv2.imshow("mom", img)
cv2.imshow("image", depth_map)
if cv2.waitKey(10) == ord("x"):
break
cap.release()
cv2.destroyAllWindows()
'Data Science > CODE' 카테고리의 다른 글
[ Computer Vision ] MaskedAutoencoder overall CODE (0) | 2023.05.14 |
---|---|
[CODE] ZipFile 편리하게 다루는 방법 (0) | 2023.05.01 |
[CODE] Attention Convd 구현 (1) | 2023.04.13 |
[CODE] Masking imaging 코드 구현 (0) | 2023.03.29 |
[CODE] Profile 팁 및 라이브러리 소개 및 logging 추천 (0) | 2023.03.26 |
Comments