ऑब्जेक्ट रिकग्निशन मॉडल्स का मूल्यांकन

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

Michal Oleszak

Machine Learning Engineer

क्लासिफिकेशन और लोकलाइज़ेशन

object localization

  • आउटपुट 1: क्लासिफिकेशन (जैसे, cat)
PyTorch के साथ इमेज के लिए डीप लर्निंग

क्लासिफिकेशन और लोकलाइज़ेशन

object localization

  • आउटपुट 1: क्लासिफिकेशन (जैसे, cat)
  • आउटपुट 2: बाउंडिंग बॉक्स रिग्रेशन [x1, y1, x2, y2]
PyTorch के साथ इमेज के लिए डीप लर्निंग

इंटरसेक्शन ओवर यूनियन (IoU)

  • रुचि का ऑब्जेक्ट: वह ऑब्जेक्ट जिसे हम इमेज में डिटेक्ट करना चाहते हैं (जैसे, dog)
  • ग्राउंड ट्रुथ बॉक्स: रुचि के ऑब्जेक्ट के चारों ओर का सही बाउंडिंग बॉक्स
  • इंटरसेक्शन ओवर यूनियन: दो बॉक्स के ओवरलैप को नापने का मैट्रिक

jaccard

  • IoU = इंटरसेक्शन का एरिया / यूनियन का एरिया
    • IoU = 0 मतलब कोई ओवरलैप नहीं, IoU = 1 मतलब परफेक्ट ओवरलैप
    • IoU >0.5 को अच्छा प्रेडिक्शन माना जाता है
PyTorch के साथ इमेज के लिए डीप लर्निंग

PyTorch में IoU

bbox1 = [50, 50, 150, 150]
bbox2 = [100, 100, 200, 200]


bbox1 = torch.tensor(bbox1).unsqueeze(0) bbox2 = torch.tensor(bbox2).unsqueeze(0)
from torchvision.ops import box_iou

iou = box_iou(bbox1, bbox2)
print(iou)
tensor([[0.1429]])
  • बॉक्स के दो सेट (x1, y1, x2, y2)

set of 2 boxes

  • वेक्टर को 2-D टेंसर में बदलें
  • IoU कैलकुलेट करें
PyTorch के साथ इमेज के लिए डीप लर्निंग

बाउंडिंग बॉक्स प्रेडिक्ट करना

model.eval()
with torch.no_grad():

output = model(input_image)
print(output)
[{'boxes': tensor([[ 42.8553, 271.9481, 180.6003, 346.7082],
                  [191.6016,  80.4759, 247.8009, 387.5475], ....),
'scores': tensor([1.0000, 1.0000, 0.9998, ... ]),
'labels': tensor([18,  1, 20, 18, 18, 18 ...])
}]
boxes = output[0]["boxes"]

scores = output[0]["scores"]
PyTorch के साथ इमेज के लिए डीप लर्निंग

नॉन-मैक्स सप्रेशन (NMS)

multiple boxes

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

नॉन-मैक्स सप्रेशन (NMS)

multiple boxes

नॉन-मैक्स सप्रेशन: सबसे प्रासंगिक बाउंडिंग बॉक्स चुनने की सामान्य तकनीक

  • नॉन-मैक्स: कम कॉन्फिडेंस स्कोर वाले बॉक्स हटाना

  • सप्रेशन: कम IoU वाले बॉक्स हटाना

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

PyTorch में नॉन-मैक्स सप्रेशन

from torchvision.ops import nms


box_indices = nms( boxes=boxes, scores=scores, iou_threshold=0.5, ) print(box_indices)
tensor([ 0,   1,   2,   8])
filtered_boxes = boxes[box_indices]
  • Boxes: बाउंडिंग बॉक्स कॉर्डिनेट्स वाले टेंसर, शेप [N, 4]

  • Scores: हर बॉक्स के कॉन्फिडेंस स्कोर वाला टेंसर, शेप [N]

  • iou_threshold: 0.0 से 1.0 के बीच थ्रेशोल्ड

  • आउटपुट: चुने गए बाउंडिंग बॉक्स के इंडिसेज़

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

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

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

Preparing Video For Download...