PyTorch: оценка одного изображения — подробное руководство с примерами кода

В сфере компьютерного зрения PyTorch стал мощной средой для разработки моделей глубокого обучения. Оценка одного изображения с помощью PyTorch включает обработку изображения с помощью предварительно обученной модели для получения прогнозов или классификаций. В этой статье блога мы рассмотрим различные методы и предоставим примеры кода, которые помогут вам в этом процессе.

Метод 1: загрузка предварительно обученной модели
Чтобы оценить одно изображение, нам сначала нужно загрузить предварительно обученную модель. PyTorch предоставляет доступ к широкому спектру предварительно обученных моделей через библиотеку torchvision. Вот пример загрузки предварительно обученной модели для классификации изображений:

import torch
import torchvision.models as models
# Load the pre-trained model
model = models.resnet50(pretrained=True)

Метод 2: предварительная обработка изображения
Прежде чем подавать изображение в модель, важно предварительно обработать его, чтобы оно соответствовало входным требованиям модели. Обычно это включает изменение размера, нормализацию и преобразование изображения в тензор. Вот пример предварительной обработки изображения с помощью модуля torchvision.transforms:

import torchvision.transforms as transforms
from PIL import Image
# Load and preprocess the image
image = Image.open("image.jpg")
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(image).unsqueeze(0)

Метод 3: прямой проход и прогноз
После загрузки модели и предварительной обработки изображения мы можем выполнить прямой проход для получения прогнозов. Это включает в себя передачу предварительно обработанного тензора изображения через модель и извлечение прогнозируемых вероятностей или классификаций. Вот пример:

# Perform a forward pass
model.eval()
with torch.no_grad():
    output = model(input_tensor)
# Extract the predicted class
_, predicted_idx = torch.max(output, 1)

Метод 4: метки классов и интерпретация
Чтобы понять смысл прогнозируемого результата, нам нужно сопоставить прогнозируемый индекс класса с соответствующей меткой. Эта информация обычно доступна в виде файла метки класса или набора данных. Вот пример сопоставления прогнозируемого индекса с меткой класса:

# Map the predicted index to a class label
class_labels = ['cat', 'dog', 'bird', 'horse', '...']
predicted_label = class_labels[predicted_idx.item()]

Оценка одного изображения с помощью PyTorch включает загрузку предварительно обученной модели, предварительную обработку изображения, выполнение прямого прохода и интерпретацию прогнозируемого результата. В этой статье мы рассмотрели несколько методов с соответствующими примерами кода, которые помогут вам в этом процессе. Используя возможности PyTorch и следуя этим шагам, вы можете эффективно оценивать отдельные изображения для различных задач компьютерного зрения.