Boîtes englobantes

Deep Learning pour les images avec PyTorch

Michal Oleszak

Machine Learning Engineer

Qu'est-ce que la reconnaissance d'objets ?

La reconnaissance d'objets repère les objets dans les images :

  • Emplacement de chaque objet (boîte englobante)

  • Étiquette de classe de chaque objet

Applications : surveillance, diagnostic médical, gestion de la circulation, analyse sportive

  • Dans cette vidéo : annotation avec boîtes englobantes
  • Dans les suivantes : évaluation et modèles

 

détection en conduite automobile

Deep Learning pour les images avec PyTorch

Représentation d'une boîte englobante

  • Rectangle décrivant l'emplacement spatial de l'objet
  • Sert aux annotations d'entraînement et aux sorties de modèles
  • Boîte englobante de référence : position précise de l'objet

coordonnées de la boîte englobante

Deep Learning pour les images avec PyTorch

Représentation d'une boîte englobante

  • Rectangle décrivant l'emplacement spatial de l'objet
  • Sert aux annotations d'entraînement et aux sorties de modèles
  • Boîte englobante de référence : position précise de l'objet
  • Coordonnées de la boîte :
    • Haut gauche et bas droit
    • Boîte = (x1, y1, x2, y2)
    • x1 = x_min, x2 = x_max, …

coordonnées de la boîte englobante

Deep Learning pour les images avec PyTorch

Pixels et coordonnées

coordonnées de la boîte

  • Coordonnées : x = numéro de colonne, y = numéro de ligne
  • Origine : (0, 0) = coin supérieur gauche
Deep Learning pour les images avec PyTorch

Convertir des pixels en tenseurs

Transformation avec ToTensor()

  • Type de tenseur :
    • torch.float
  • Plage mise à l'échelle :
    • [0.0, 1.0]
import torchvision.transforms as transforms

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

Transformation avec PILToTensor()

  • Type de tenseur :
    • torch.uint8 (entier 8 bits)
  • Plage non mise à l'échelle :
    • [0, 255]
import torchvision.transforms as transforms
transform = transforms.Compose([
            transforms.Resize(224),
            transforms.PILToTensor()
            ])
image_tensor = transform(image)
Deep Learning pour les images avec PyTorch

Tracer la boîte englobante

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)
  • Importer draw_bounding_boxes
  • Rassembler les coordonnées dans un tenseur
  • Ajouter une dimension (unsqueeze) pour obtenir 2 dimensions
  • Convertir en image et tracer

chat avec boîte

Deep Learning pour les images avec PyTorch

Passons à la pratique !

Deep Learning pour les images avec PyTorch

Preparing Video For Download...