मोनोक्यूलर डेप्थ आकलन में एक एकल आरजीबी छवि से दृश्य गहराई की भविष्यवाणी करना शामिल है-व्यापक वास्तविकता, रोबोटिक्स और 3 डी दृश्य समझ सहित व्यापक अनुप्रयोगों के साथ कंप्यूटर दृष्टि में एक मौलिक कार्य। इस ट्यूटोरियल में, हम इंटेल के मिडास (एक बहु-पैमाने पर विज़न ट्रांसफार्मर के माध्यम से मोनोक्यूलर डेप्थ एस्टीमेशन) को लागू करते हैं, जो एक एकल छवि से उच्च गुणवत्ता वाली गहराई की भविष्यवाणी के लिए डिज़ाइन किया गया एक अत्याधुनिक मॉडल है। Pytorch, OpenCV, और Matplotlib के साथ Google Colab को कंप्यूट प्लेटफ़ॉर्म के रूप में ले जाना, यह ट्यूटोरियल आपको अपनी छवि अपलोड करने और इसी गहराई के नक्शे को आसानी से देखने में सक्षम बनाता है।
!pip install -q timm opencv-python matplotlib
सबसे पहले, हम मॉडल समर्थन के लिए आवश्यक पायथन लाइब्रेरी- TIMM, इमेज प्रोसेसिंग के लिए OpenCV-Python और गहराई के नक्शे की कल्पना के लिए Matplotlib स्थापित करते हैं।
!git clone https://github.com/isl-org/MiDaS.git
%cd MiDaS
फिर, हम GitHub से आधिकारिक इंटेल midas रिपॉजिटरी को क्लोन करते हैं और मॉडल कोड और परिवर्तन उपयोगिताओं तक पहुंचने के लिए इसकी निर्देशिका में नेविगेट करते हैं।
import torch
import cv2
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from torchvision.transforms import Compose
from google.colab import files
from midas.dpt_depth import DPTDepthModel
from midas.transforms import Resize, NormalizeImage, PrepareForNet
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
हम मॉडल को लोड करने के लिए आवश्यक सभी आवश्यक पुस्तकालयों और MIDAS घटकों को आयात करते हैं, छवियों को प्रीप्रोसेसिंग करते हैं, अपलोड को संभालते हैं, और गहराई की भविष्यवाणियों की कल्पना करते हैं। फिर हम कम्प्यूटेशन डिवाइस को GPU (CUDA) पर सेट करते हैं यदि उपलब्ध हो; अन्यथा, यह सीपीयू के लिए चूक करता है, सिस्टम संगतता सुनिश्चित करता है।
model_path = torch.hub.load("intel-isl/MiDaS", "DPT_Large", pretrained=True, force_reload=True)
model = model_path.to(device)
model.eval()
यहां, हम इंटेल की मशाल से प्रीट्रेन्ड मिडास DPT_LARGE मॉडल डाउनलोड करते हैं। Hub, इसे चयनित डिवाइस (CPU या GPU) में ले जाता है, और इसे अनुमान के लिए मूल्यांकन मोड में सेट करता है।
transform = Compose((
Resize(384, 384, resize_target=None, keep_aspect_ratio=True, ensure_multiple_of=32, resize_method="upper_bound"),
NormalizeImage(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
PrepareForNet()
))
हम MIDAS की छवि प्रीप्रोसेसिंग पाइपलाइन को परिभाषित करते हैं, जो इनपुट छवि का आकार बदल देता है, इसके पिक्सेल मूल्यों को सामान्य करता है, और इसे मॉडल अनुमान के लिए उचित रूप से प्रारूपित करता है।
uploaded = files.upload()
for filename in uploaded:
img = cv2.imread(filename)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
break
हम उपयोगकर्ता को COLAB में एक छवि अपलोड करने की अनुमति देते हैं, इसे OpenCV का उपयोग करके पढ़ते हैं, और इसे BGR से RGB प्रारूप में सटीक रंग प्रतिनिधित्व के लिए परिवर्तित करते हैं।
img_input = transform({"image": img})("image")
input_tensor = torch.from_numpy(img_input).unsqueeze(0).to(device)
with torch.no_grad():
prediction = model(input_tensor)
prediction = torch.nn.functional.interpolate(
prediction.unsqueeze(1),
size=img.shape(:2),
mode="bicubic",
align_corners=False,
).squeeze()
depth_map = prediction.cpu().numpy()
अब, हम अपलोड की गई छवि में प्रीप्रोसेसिंग ट्रांसफ़ॉर्म को लागू करते हैं, इसे एक टेंसर में परिवर्तित करते हैं, MIDAS मॉडल का उपयोग करके गहराई से भविष्यवाणी करते हैं, मूल छवि आयामों से मेल खाने के लिए आउटपुट का आकार बदलते हैं, और अंतिम गहराई के नक्शे को एक numpy सरणी के रूप में निकालते हैं।
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(img)
plt.title("Original Image")
plt.axis("off")
plt.subplot(1, 2, 2)
plt.imshow(depth_map, cmap='inferno')
plt.title("Depth Map")
plt.axis("off")
plt.tight_layout()
plt.show()
अंत में, हम मूल छवि का एक साइड-बाय-साइड विज़ुअलाइज़ेशन बनाते हैं और मैटप्लोटलिब का उपयोग करके इसके इसी गहराई के नक्शे का नक्शा बनाते हैं। गहराई का नक्शा बेहतर कंट्रास्ट के लिए ‘इन्फर्नो’ कॉलोरमैप का उपयोग करके प्रदर्शित किया जाता है।
अंत में, इस ट्यूटोरियल को पूरा करके, हमने केवल एक आरजीबी छवि का उपयोग करके मोनोक्यूलर डेप्थ आकलन करने के लिए Google Colab पर इंटेल के MIDAS मॉडल को सफलतापूर्वक तैनात किया है। मॉडल इंट्रेंस के लिए Pytorch का उपयोग करते हुए, इमेज प्रोसेसिंग के लिए OpenCV, और विज़ुअलाइज़ेशन के लिए Matplotlib, हमने न्यूनतम सेटअप के साथ उच्च गुणवत्ता वाले गहराई के नक्शे उत्पन्न करने के लिए एक मजबूत पाइपलाइन का निर्माण किया है। यह कार्यान्वयन आगे की खोज के लिए एक मजबूत आधार है, जिसमें वीडियो गहराई का अनुमान, वास्तविक समय के अनुप्रयोगों और एआर/वीआर सिस्टम के एकीकरण सहित।
यह रहा कोलैब नोटबुक। इसके अलावा, हमें फॉलो करना न भूलें ट्विटर और हमारे साथ जुड़ें तार -चैनल और लिंक्डइन जीआरओयूपी। हमारे साथ जुड़ने के लिए मत भूलना 85K+ एमएल सबरेडिट।

Asif Razzaq MarkTechPost Media Inc के सीईओ हैं .. एक दूरदर्शी उद्यमी और इंजीनियर के रूप में, ASIF सामाजिक अच्छे के लिए कृत्रिम बुद्धिमत्ता की क्षमता का उपयोग करने के लिए प्रतिबद्ध है। उनका सबसे हालिया प्रयास एक आर्टिफिशियल इंटेलिजेंस मीडिया प्लेटफॉर्म, मार्कटेकपोस्ट का शुभारंभ है, जो मशीन लर्निंग और डीप लर्निंग न्यूज के अपने गहन कवरेज के लिए खड़ा है, जो तकनीकी रूप से ध्वनि और आसानी से एक व्यापक दर्शकों द्वारा समझ में आता है। मंच 2 मिलियन से अधिक मासिक विचारों का दावा करता है, दर्शकों के बीच अपनी लोकप्रियता को दर्शाता है।