Avgränsningsrutor

Djupinlärning för bilder med PyTorch

Michal Oleszak

Machine Learning Engineer

Vad är objektigenkänning?

Objektigenkänning identifierar objekt i bilder:

  • Varje objekts position i bilden (avgränsningsruta)

  • Klassetikett för varje objekt

Tillämpningar: övervakning, medicinsk diagnostik, trafikstyrning, sportanalys

  • I det här avsnittet: annotering med avgränsningsrutor
  • I senare avsnitt: utvärdering och modeller

 

identifiering av objekt i bil

Djupinlärning för bilder med PyTorch

Representation av avgränsningsrutor

  • En rektangulär ruta som beskriver objektets rumsliga position
  • Annoteringar i träningsdata och modellutdata
  • Ground truth-avgränsningsruta: exakt objektposition

koordinater för avgränsningsruta

Djupinlärning för bilder med PyTorch

Representation av avgränsningsrutor

  • En rektangulär ruta som beskriver objektets rumsliga position
  • Annoteringar i träningsdata och modellutdata
  • Ground truth-avgränsningsruta: exakt objektposition
  • Koordinater för avgränsningsrutan:
    • Övre vänster och nedre höger hörn
    • Avgränsningsruta = (x1, y1, x2, y2)
    • x1 = x_min, x2 = x_max, ...

koordinater för avgränsningsruta

Djupinlärning för bilder med PyTorch

Pixlar och koordinater

rutkoordinater

  • Koordinater: x – kolumnnummer, y – radnummer
  • Origo: (0, 0) – övre vänstra hörnet
Djupinlärning för bilder med PyTorch

Konvertera pixlar till tensorer

Transformering med ToTensor()

  • Tensortyp:
    • torch.float
  • Skalat tensorintervall:
    • [0.0, 1.0]
import torchvision.transforms as transforms

transform = transforms.Compose([ transforms.Resize(224), transforms.ToTensor() ]) image_tensor = transform(image)

Transformering med PILToTensor()

  • Tensortyp:
    • torch.uint8 (8-bitars heltal)
  • Oskalat tensorintervall:
    • [0, 255]
import torchvision.transforms as transforms
transform = transforms.Compose([
            transforms.Resize(224),
            transforms.PILToTensor()
            ])
image_tensor = transform(image)
Djupinlärning för bilder med PyTorch

Rita avgränsningsrutan

from torchvision.utils import draw_bounding_boxes


bbox = torch.tensor([x_min, y_min, x_max, y_max]) bbox = bbox.unsqueeze(0)
bbox_image = draw_bounding_boxes( image_tensor, bbox, width=3, colors="red" )
transform = transforms.Compose([ transforms.ToPILImage() ]) pil_image = transform(bbox_image) import matplotlib.pyplot as plt plt.imshow(pil_image)
  • Importera draw_bounding_boxes
  • Samla koordinater i en tensor
  • Unsqueeze till två dimensioner
  • Transformera till bild och plotta

katt med avgränsningsruta

Djupinlärning för bilder med PyTorch

Nu kör vi en övning!

Djupinlärning för bilder med PyTorch

Preparing Video For Download...