Hoppa till innehållet
AI-grafen
E· Universitetdatahantering· ca 60 min· utvecklande· verifierad 2026-09-20

Bildförbehandling och augmentering

Kunna ladda, skala, normalisera och augmentera bilder.

Förkunskaper

Intuition

Innan en bild når modellen ska den genom fyra steg, i denna ordning:

  1. Ladda och avkoda (JPEG → array). Kontrollera färgordningen: OpenCV ger BGR, PIL ger RGB. Det är en klassisk och tyst bugg.
  2. Skala till modellens förväntade storlek. Bevara proportionerna om formen betyder något — annars blir objekt utsträckta.
  3. Normalisera med samma medelvärde och standardavvikelse som förträningen använde.
  4. Augmentera — men bara på träningsdata.

Steg 3 är det som oftast glöms vid transfer learning, och det kostar flera procentenheter utan att synas som ett fel.

Kod

import numpy as np
from PIL import Image
from torchvision import transforms

IMAGENET = dict(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

train_tf = transforms.Compose([
    transforms.RandomResizedCrop(224, scale=(0.7, 1.0)),
    transforms.RandomHorizontalFlip(),
    transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2),
    transforms.ToTensor(),
    transforms.Normalize(**IMAGENET),
])

eval_tf = transforms.Compose([                 # deterministisk — ingen slump
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(**IMAGENET),
])

bild = Image.open("katt.jpg").convert("RGB")   # convert hanterar gråskala och RGBA
print(np.array(bild).shape, np.array(bild).dtype)      # (512, 640, 3) uint8
x = eval_tf(bild)
print(x.shape, round(float(x.mean()), 3))              # torch.Size([3, 224, 224]) -0.021

Augmenteringar som bevarar etiketten — och de som inte gör det:

AugmenteringSäker?
Horisontell speglingja, utom för text, siffror och asymmetriska objekt
Rotation ±15°ja, utom för röntgen och kartor där uppåt betyder något
Färgjitterja, utom när färgen är klassen (mogen frukt, varningsskyltar)
Beskärningja, om objektet är centralt — annars kan det klippas bort
Vertikal speglingsällan; bara för satellitbilder och liknande

Regeln: om en människa skulle byta etikett på den augmenterade bilden är augmenteringen fel.

Behärskning innebär

  • Laddar, skalar och normaliserar bilder korrekt
  • Väljer augmenteringar som bevarar etiketten
  • Undviker vanliga fel i pipelinen

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser