Mask R-CNN के साथ इंस्टेंस सेगमेंटेशन

PyTorch के साथ इमेज के लिए डीप लर्निंग

Michal Oleszak

Machine Learning Engineer

Faster R-CCNN

Faster R-CNN आर्किटेक्चर डायग्राम

PyTorch के साथ इमेज के लिए डीप लर्निंग

Mask R-CNN

Mask R-CNN आर्किटेक्चर डायग्राम

PyTorch के साथ इमेज के लिए डीप लर्निंग

PyTorch में प्री-ट्रेन Mask R-CNN

from torchvision.models.detection import \
maskrcnn_resnet50_fpn


model = maskrcnn_resnet50_fpn(pretrained=True) model.eval()
image = Image.open("cat_and_laptop.jpg") transform = transforms.Compose([ transforms.ToTensor() ]) image_tensor = transform(image).unsqueeze(0)
with torch.no_grad(): prediction = model(image_tensor)
  • Mask R-CNN मॉडल इंपोर्ट करें
  • प्री-ट्रेन मॉडल लोड करें
  • टेस्ट इमेज लोड करें और टेन्सर में बदलें

लैपटॉप के पास बैठी बिल्ली की फोटो

  • इमेज टेन्सर मॉडल को पास करें
PyTorch के साथ इमेज के लिए डीप लर्निंग

मॉडल आउटपुट

  • लेबल्स

    prediction[0]["labels"]
    
    tensor([
        17, 73, 76, 73, 67, 42, 63, 84,73, 65, 
        17, 73, 73, 73, 84, 72, 76, 76,17, 15
    ])
    
  • क्लास नाम

    print(class_names[17], class_names[73])
    
    cat laptop
    
  • क्लास प्रॉबेबिलिटीज

    prediction[0]["scores"]
    
    tensor([
        0.9981, 0.9672, 0.9061, 0.6893, 0.3729, 
        ..., 
        0.0745, 0.0705, 0.0623, 0.0610, 0.0508
    ])
    
  • मास्क्स

    prediction[0]["masks"]
    
    tensor([[[[0., 0., 0.,  ..., 0., 0., 0.],
              ...]]]])
    
PyTorch के साथ इमेज के लिए डीप लर्निंग

सॉफ्ट मास्क्स

  • यूनिक मास्क वैल्यूज़

    prediction[0]["masks"].unique()
    
    tensor([0.0000e+00, 5.9713e-08, ..., 
            9.9989e-01, 9.9990e-01])
    
  • Mask R-CNN मास्क्स:

    • वैल्यू 0 और 1 के बीच होती हैं
    • दिखाती हैं कि हर पिक्सेल ऑब्जेक्ट का है, मॉडल का कॉन्फिडेंस
    • बाइनरी मास्क्स से ज्यादा सूक्ष्म जानकारी देती हैं
    • जरूरत पर थ्रेशोल्डिंग से बाइनराइज़ कर सकते हैं
PyTorch के साथ इमेज के लिए डीप लर्निंग

सॉफ्ट मास्क्स दिखाना

masks = prediction[0]["masks"]
labels = prediction[0]["labels"]


for i in range(2): plt.imshow(image)
plt.imshow( masks[i, 0], cmap="jet", alpha=0.5, )
plt.title( f"Object: {class_names[labels[i]]}" ) plt.show()
  • प्रेडिक्शन से मास्क्स और लेबल्स निकालें
  • टॉप दो ऑब्जेक्ट्स पर इटरेट करें, ओरिजिनल इमेज प्लॉट करें
  • हर ऑब्जेक्ट के लिए सेमी-ट्रांसपेरेंट मास्क प्लॉट करें
  • टाइटल जोड़ें और दिखाएँ
PyTorch के साथ इमेज के लिए डीप लर्निंग

सॉफ्ट मास्क्स दिखाना

इमेज पर ओवरले किए गए इंस्टेंस सेगमेंटेशन मास्क्स

PyTorch के साथ इमेज के लिए डीप लर्निंग

अभ्यास करते हैं!

PyTorch के साथ इमेज के लिए डीप लर्निंग

Preparing Video For Download...