Casete de delimitare

Deep Learning pentru imagini cu PyTorch

Michal Oleszak

Machine Learning Engineer

Ce este recunoașterea obiectelor?

Recunoașterea obiectelor identifică obiecte în imagini:

  • Localizarea fiecărui obiect (casetă de delimitare)

  • Eticheta de clasă a fiecărui obiect

Aplicații: supraveghere, diagnostic medical, managementul traficului, analiză sportivă

  • În acest videoclip: adnotarea cu casete de delimitare
  • În videoclipurile ulterioare: evaluare și modele

 

detecție mașină în trafic

Deep Learning pentru imagini cu PyTorch

Reprezentarea casetei de delimitare

  • O casetă dreptunghiulară ce descrie locația spațială a obiectului
  • Adnotări date de antrenare și ieșiri ale modelului
  • Casetă de delimitare ground truth: locație precisă a obiectului

coordonate casetă de delimitare

Deep Learning pentru imagini cu PyTorch

Reprezentarea casetei de delimitare

  • O casetă dreptunghiulară ce descrie locația spațială a obiectului
  • Adnotări date de antrenare și ieșiri ale modelului
  • Casetă de delimitare ground truth: locație precisă a obiectului
  • Coordonatele casetei de delimitare:
    • Stânga sus și dreapta jos
    • Casetă de delimitare = (x1, y1, x2, y2)
    • x1 = x_min, x2 = x_max, ...

coordonate casetă de delimitare

Deep Learning pentru imagini cu PyTorch

Pixeli și coordonate

coordonate de pixeli

  • Coordonate: x - numărul coloanei, y - numărul rândului
  • Origine: (0, 0) - colțul din stânga sus
Deep Learning pentru imagini cu PyTorch

Conversia pixelilor în tensori

Transformare cu ToTensor()

  • Tip tensor:
    • torch.float
  • Interval tensor scalat:
    • [0.0, 1.0]
import torchvision.transforms as transforms

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

Transformare cu PILToTensor()

  • Tip tensor:
    • torch.uint8 (întreg pe 8 biți)
  • Interval tensor nescalat:
    • [0, 255]
import torchvision.transforms as transforms
transform = transforms.Compose([
            transforms.Resize(224),
            transforms.PILToTensor()
            ])
image_tensor = transform(image)
Deep Learning pentru imagini cu PyTorch

Desenarea casetei de delimitare

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)
  • Importul draw_bounding_boxes
  • Colectarea coordonatelor într-un tensor
  • Unsqueeze la două dimensiuni
  • Transformare în imagine și afișare

pisică cu casetă

Deep Learning pentru imagini cu PyTorch

Vamos a practicar!

Deep Learning pentru imagini cu PyTorch

Preparing Video For Download...