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-SK
  3. 2. Machine Learning (SK)
  4. Cvičenie 2.B: Populárne množiny údajov - ImageNet

Cvičenie 2.B: Populárne množiny údajov - ImageNet

colab

Množina údajov ImageNet

Projekt ImageNet je veľká vizuálna databáza na výskum softvéru na vizuálne rozpoznávanie objektov. Myšlienku tohto projektu prišiel pred viac ako 15 rokmi výskumník AI Fei-Fei Li. Tím ImageNet predstavil svoj súbor údajov prvýkrát v roku 2009.

Keras sa dodáva s mnohými vopred natrénovanými klasifikačnými modelmi. Od verzie Keras 2.11 je k dispozícii 19 rôznych predtrénovaných modelov, pričom niektoré verzie obsahujú aj veľa variantov. Zoznam modelov nájdete tu. Tu použijeme nasledujúce vopred natrénované modely na predpovede na niekoľkých vzorových testovacích obrázkoch.

- VGG16

- ResNet50

- PočiatokV3

AI Image Recognition je proces využívania umelej inteligencie na identifikáciu a kategorizáciu objektov v obraze, čo je úloha, ktorá je síce intuitívna pre ľudí, ale pre stroje je zložitá kvôli značnému potrebnému výpočtovému výkonu.

Tu je jednoduché cvičenie Jupyter Notebook pre študentov na vykonanie klasifikácie obrázkov pomocou vopred natrénovaného modelu v množine údajov ImageNet. Toto cvičenie ich prevedie načítaním vopred natrénovaného modelu, predpovedaním a vizualizáciou výsledkov.

Cvičenie: Klasifikácia obrázkov pomocou ImageNet

Krok 1: Nastavenie

Najprv sa uistite, že máte nainštalované potrebné knižnice. Môžete ich nainštalovať pomocou pip, ak ste tak ešte neurobili:

%pip install torch torchvision matplotlib

Krok 2: Import knižníc

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

Krok 3: Načítanie vopred natrénovaného modelu

Načítajte vopred natrénovaný model (napr. ResNet-18) a nastavte ho do režimu vyhodnocovania:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

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

Krok 4: Načítajte a predbežne spracujte obrázok

Načítajte obrázok a použite potrebné transformácie:

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)

Krok 5: Urobte predpovede

Odovzdajte vopred spracovaný obrázok cez model a získajte predpovede:

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

Krok 6: Dekódovanie predpovedí

Stiahnite si označenia tried ImageNet a dekódujte predpovede:

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}')

Predpokladaný štítok: elektrická vŕtačka

Krok 7: Vizualizácia obrazu a predpovede

Zobrazenie obrázka spolu s predpokladaným štítkom:

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)

Pokyny pre študentov

1. Podľa pokynov v poznámkovom bloku načítajte a predbežne spracujte obrázok.

2. Na predpovede použite vopred natrénovaný model ResNet-18.

3. Dekódujte predpovede a zobrazte obrázok s predpovedaným štítkom.

4. Experimentujte s rôznymi obrázkami a sledujte výkon modelu.


 


Completion requirements:
  • Make a submission
Previous activity Cvičenie 2.A: Populárne množiny údajov MNIST
Next activity Cvičenie 2.C: Populárne súbory údajov – 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