Font size
  • A-
  • A
  • A+
Site color
  • R
  • A
  • A
  • A
Skip to main content
AI4VET AI4VET
  • Home
  • Calendar
  • More
You are currently using guest access
Log in
AI4VET
Home Calendar
Expand all Collapse all
  1. AI/ML Fundamentals
  2. AIML-SR
  3. 2. Mašinsko učenje (SR)
  4. Vežba 2.B: Popularni skupovi podataka – ImageNet

Vežba 2.B: Popularni skupovi podataka – ImageNet

colab

ImageNet Dataset

Projekat ImageNet je velika vizuelna baza podataka za istraživanje softvera za vizuelno prepoznavanje objekata. Ideju za ovaj projekat osmislio je pre više od 15 godina istraživač AI Fei-Fei Li. ImageNet tim je predstavio svoj skup podataka po prvi put u 2009. godini.

Keras dolazi u paketu sa mnogim unapred obučenim modelima klasifikacije. Od Keras verzije 2.11, na raspolaganju je 19 različitih unapred obučenih modela, gde neke verzije sadrže i mnoge varijante. Spisak modela možete naći ovde. Ovde ćemo koristiti sledeće unapred obučene modele za predviđanje na nekoliko uzoraka test slika.

- VGG16

- ResNet50

- PočetakV3

AI Prepoznavanje slike je proces korišćenja veštačke inteligencije za identifikaciju i kategorizaciju objekata unutar slike, zadatak koji je, iako intuitivan za ljude, složen za mašine zbog značajne potrebne procesorske snage.

Evo jednostavne vežbe Jupiter Notebook za studente da izvrše klasifikaciju slika koristeći unapred obučeni model na skupu podataka ImageNet. Ova vežba će ih voditi kroz učitavanje unapred obučenog modela, predviđanja i vizualizaciju rezultata.

Vežba: Klasifikacija slike sa ImageNet-om

Korak 1: Podešavanje

Prvo, proverite da li imate instalirane potrebne biblioteke. Možete ih instalirati pomoću pip ako već niste:

%pip install torch torchvision matplotlib

Korak 2: Uvoz biblioteka

import torch
import torchvision.transforms as transforms
from torchvision import models
from PIL import Image
import matplotlib.pyplot as plt
import json

Korak 3: Učitajte unapred obučeni model

Učitajte unapred obučeni model (npr. ResNet-18) i podesite ga na režim evaluacije: 

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

model = models.resnet18(pretrained=True)
model.eval()

Korak 4: Učitajte i preprocesirajte sliku

Učitajte sliku i primenite neophodne transformacije:

def preprocess_image(image_path):
    input_image = Image.open(image_path)
    preprocess = transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
    ])
    input_tensor = preprocess(input_image)
    input_batch = input_tensor.unsqueeze(0)
    return input_batch

import urllib.request

# Download a sample image
image_url = 'https://erasmus.tsp.edu.rs/wp-content/uploads/2024/12/rcd1024.jpg'  # Replace with a valid image URL
image_path = 'rcd1024.jpg'
urllib.request.urlretrieve(image_url, image_path)

input_batch = preprocess_image(image_path)

Korak 5: Napravite predviđanja

Prođite prethodno obrađenu sliku kroz model da biste dobili predviđanja:

with torch.no_grad():
    output = model(input_batch)

Korak 6: Dekodiranje predviđanja

Preuzmite oznake klase ImageNet i dekodirajte predviđanja:

import urllib.request

# Download the labels file
labels_url = 'https://raw.githubusercontent.com/anishathalye/imagenet-simple-labels/master/imagenet-simple-labels.json'
labels_path = 'imagenet-simple-labels.json'
urllib.request.urlretrieve(labels_url, labels_path)

# Load the labels
with open(labels_path) as f:
    labels = json.load(f)

# Get the predicted label
_, predicted_idx = torch.max(output, 1)
predicted_label = labels[predicted_idx.item()]

print(f'Predicted label: {predicted_label}')

Predviđena oznaka: bušilica

Korak 7: Vizuelizujte sliku i predviđanje

Prikažite sliku zajedno sa predviđenom oznakom:

def show_image(image_path, label):
    image = Image.open(image_path)
    plt.imshow(image)
    plt.title(f'Predicted: {label}')
    plt.axis('off')
    plt.show()

show_image(image_path, predicted_label)
 

Uputstvo za studente

1. Pratite korake u beležnici da biste učitali i prethodno obradili sliku.

2. Koristite unapred obučeni ResNet-18 model da biste predviđali.

3. Dekodirajte predviđanja i prikažite sliku sa predviđenom oznakom.

4. Eksperimentišite sa različitim slikama i posmatrajte performanse modela.




Completion requirements:
  • Make a submission
Previous activity Vežba 2.A: Popularni skupovi podataka MNIST
Next activity Vežba 2.C: Popularni skupovi podataka – COCO
You are currently using guest access (Log in)
Data retention summary
Get the mobile app
Get the mobile app
Play Store App Store
Powered by Moodle

This theme was proudly developed by

Conecti.me