Обмежувальні прямокутники

Глибоке навчання для зображень із PyTorch

Michal Oleszak

Machine Learning Engineer

Що таке розпізнавання об'єктів?

Розпізнавання об'єктів знаходить об'єкти на зображеннях:

  • Розташування кожного об'єкта (обмежувальний прямокутник)

  • Клас кожного об'єкта

Застосування: відеонагляд, медична діагностика, керування трафіком, спортивна аналітика

  • У цьому відео: розмітка обмежувальними прямокутниками
  • У наступних відео: оцінювання та моделі

 

виявлення авто під час руху

Глибоке навчання для зображень із PyTorch

Подання обмежувального прямокутника

  • Прямокутник, що описує просторове розташування об'єкта
  • Анотації в тренувальних даних і виходи моделі
  • Еталонний обмежувальний прямокутник: точне місце об'єкта

координати обмежувального прямокутника

Глибоке навчання для зображень із PyTorch

Подання обмежувального прямокутника

  • Прямокутник, що описує просторове розташування об'єкта
  • Анотації в тренувальних даних і виходи моделі
  • Еталонний обмежувальний прямокутник: точне місце об'єкта
  • Координати прямокутника:
    • Верхній лівий і нижній правий кути
    • Bounding box = (x1, y1, x2, y2)
    • x1 = x_min, x2 = x_max, ...

координати обмежувального прямокутника

Глибоке навчання для зображень із PyTorch

Пікселі та координати

координати прямокутника

  • Координати: x — номер стовпця, y — номер рядка
  • Початок відліку: (0, 0) — верхній лівий кут
Глибоке навчання для зображень із PyTorch

Перетворення пікселів на тензори

Перетворення через ToTensor()

  • Тип тензора:
    • torch.float
  • Діапазон тензора (масштабований):
    • [0.0, 1.0]
import torchvision.transforms as transforms

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

Перетворення через PILToTensor()

  • Тип тензора:
    • torch.uint8 (8-бітове ціле)
  • Діапазон тензора (без масштабування):
    • [0, 255]
import torchvision.transforms as transforms
transform = transforms.Compose([
            transforms.Resize(224),
            transforms.PILToTensor()
            ])
image_tensor = transform(image)
Глибоке навчання для зображень із PyTorch

Малювання обмежувального прямокутника

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)
  • Імпортуйте draw_bounding_boxes
  • Зберіть координати в тензор
  • Розширте до двох вимірів (unsqueeze)
  • Перетворіть у зображення та побудуйте графік

кіт із прямокутником

Глибоке навчання для зображень із PyTorch

Давайте потренуємось!

Глибоке навчання для зображень із PyTorch

Preparing Video For Download...