Инструменты: OpenCV и PyTorch/torchvision

Теорию мы разобрали руками. В реальных проектах за неё отвечают зрелые библиотеки — познакомимся с главными.

OpenCV — библиотека классической обработки изображений и компьютерного зрения. PyTorch + torchvision — фреймворк для глубокого обучения и готовые модели/датасеты CV.

OpenCV: классический CV из коробки

Всё, что мы делали руками во 2–3 разделах (свёртки, размытие, границы, морфология, цветовые пространства), OpenCV делает одной строкой и очень быстро. Это рабочий инструмент для предобработки, работы с видео и камерами, классических алгоритмов.

import cv2

img = cv2.imread("photo.jpg")              # загрузить
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # в серый
blur = cv2.GaussianBlur(gray, (5, 5), 0)      # гауссово размытие
edges = cv2.Canny(blur, 100, 200)             # границы Canny
cv2.imwrite("edges.jpg", edges)               # сохранить

За каждой строкой — то, что мы реализовывали вручную: cvtColor — перевод в серый по формуле luma, GaussianBlur — свёртка гауссовым ядром, Canny — детектор границ поверх градиента. Теперь понятно, что у них «под капотом».

PyTorch и torchvision: нейросети

Для глубокого обучения в CV стандарт — PyTorch. Дополнение torchvision даёт три вещи: готовые архитектуры (ResNet, ViT и др.), предобученные веса (для transfer learning) и популярные датасеты с преобразованиями (включая аугментацию).

import torchvision.models as models
import torchvision.transforms as T

# готовая сеть с предобученными весами (ImageNet)
model = models.resnet50(weights="IMAGENET1K_V2")
model.eval()

# конвейер предобработки и аугментации
transform = T.Compose([
    T.Resize(256),
    T.CenterCrop(224),
    T.RandomHorizontalFlip(),   # аугментация
    T.ToTensor(),
])

Здесь сходятся темы курса: resnet50 — архитектура из раздела 4, weights=... — transfer learning из 6.1, RandomHorizontalFlip — аугментация из 5.5, ToTensor — превращение картинки в тот самый тензор (каналы, высота, ширина).

Экосистема вокруг

ИнструментДля чего
OpenCVклассическая обработка, видео, камеры
PyTorch / TensorFlowобучение нейросетей
torchvisionготовые модели, веса, датасеты CV
Pillow (PIL)простая работа с изображениями
timm, Ultralytics (YOLO)SOTA-модели и детекторы «из коробки»

Эти библиотеки сторонние и в браузерной песочнице не запускаются — код выше дан для чтения. Но теперь, разобрав механику руками, вы понимаете, что именно эти строки делают внутри.

Итог

  • OpenCV — классическая обработка (то, что мы делали руками) быстро и из коробки.
  • PyTorch + torchvision — обучение нейросетей, готовые архитектуры, веса и датасеты.
  • torchvision связывает темы курса: архитектуры, transfer learning, аугментация, тензоры.
  • Эти библиотеки — стандарт индустрии; ручная реализация нужна для понимания.
Проверьте себя
1. Для чего в основном используют OpenCV?
AТолько для обучения нейросетей
BДля классической обработки изображений, работы с видео и камерами (свёртки, границы, морфология) быстро и из коробки
CДля генерации текста
DДля хранения файлов
2. Что даёт torchvision поверх PyTorch?
AТолько перевод картинок в JPEG
BГотовые архитектуры, предобученные веса (для transfer learning) и датасеты с преобразованиями/аугментацией
CЗамену OpenCV для видео
DНичего полезного для CV
3. Почему код с cv2 и torchvision дан как text, а не как запускаемый пример?
AОн содержит ошибки
BЭто сторонние библиотеки, которых нет в браузерной песочнице stdlib — они не запустятся
CОн слишком длинный
DОн написан на другом языке
Поддержать проект