Begrenzingsvakken

Deep Learning voor afbeeldingen met PyTorch

Michal Oleszak

Machine Learning Engineer

Wat is objectherkenning?

Objectherkenning vindt objecten in afbeeldingen:

  • Locatie van elk object (bounding box)

  • Klasselabel van elk object

Toepassingen: bewaking, medische diagnose, verkeersmanagement, sportanalyse

  • In deze video: annotatie met bounding boxes
  • In latere video’s: evaluatie en modellen

 

autodetectie tijdens rijden

Deep Learning voor afbeeldingen met PyTorch

Representatie van een begrenzingsvak

  • Een rechthoek die de ruimtelijke locatie van het object weergeeft
  • Annotaties in trainingsdata en modeluitvoer
  • Ground-truth bounding box: exacte objectlocatie

coördinaten van begrenzingsvak

Deep Learning voor afbeeldingen met PyTorch

Representatie van een begrenzingsvak

  • Een rechthoek die de ruimtelijke locatie van het object weergeeft
  • Annotaties in trainingsdata en modeluitvoer
  • Ground-truth bounding box: exacte objectlocatie
  • Coördinaten van het vak:
    • Linksboven en rechtsonder
    • Bounding box = (x1, y1, x2, y2)
    • x1 = x_min, x2 = x_max, ...

coördinaten van begrenzingsvak

Deep Learning voor afbeeldingen met PyTorch

Pixels en coördinaten

boxcoördinaten

  • Coördinaten: x = kolomnummer, y = rijnummer
  • Oorsprong: (0, 0) = linkerbovenhoek
Deep Learning voor afbeeldingen met PyTorch

Pixels naar tensors converteren

Transformeren met ToTensor()

  • Tensortype:
    • torch.float
  • Geschaalde tensorrange:
    • [0.0, 1.0]
import torchvision.transforms as transforms

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

Transformeren met PILToTensor()

  • Tensortype:
    • torch.uint8 (8-bit integer)
  • Ongeschaalde tensorrange:
    • [0, 255]
import torchvision.transforms as transforms
transform = transforms.Compose([
            transforms.Resize(224),
            transforms.PILToTensor()
            ])
image_tensor = transform(image)
Deep Learning voor afbeeldingen met PyTorch

Het begrenzingsvak tekenen

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)
  • Importeer draw_bounding_boxes
  • Verzamel coördinaten in een tensor
  • Unsqueeze naar twee dimensies
  • Zet om naar afbeelding en plot

kat met vak

Deep Learning voor afbeeldingen met PyTorch

Laten we oefenen!

Deep Learning voor afbeeldingen met PyTorch

Preparing Video For Download...