YOLO
You Only Look Once — семейство нейросетей для детекции объектов, находящих все объекты на изображении за один проход.
Что такое YOLO
YOLO (You Only Look Once — «смотрим только один раз») — семейство моделей детекции объектов: модель принимает изображение и возвращает список найденных объектов с рамками и метками классов. Главная идея в названии: вся картинка обрабатывается за один проход сети, а не перебором сотен фрагментов-кандидатов.
До YOLO детекторы работали в два этапа: сначала генерировали регионы-кандидаты, потом классифицировали каждый по отдельности. Такой подход точен, но медленный. YOLO свела детекцию к одной регрессионной задаче — и сделала обработку видео в реальном времени практичной. Первая версия вышла в 2016 году (Джозеф Редмон).
Не то YOLO. В сленге YOLO означает «you only live once». К нейросетям это отношения не имеет — совпадение аббревиатур.
Как YOLO работает
Изображение (640×640)
↓
Backbone — свёрточная сеть извлекает признаки
↓
Neck — объединяет признаки разных масштабов
↓
Head — на сетке ячеек предсказывает:
• координаты рамки (x, y, w, h)
• confidence: есть ли здесь объект
• вероятности классов
↓
NMS — убирает дублирующие рамки одного объекта
↓
Список объектов: [(класс, confidence, рамка), ...]
Сеть делит изображение на ячейки, и каждая отвечает за объекты в своей зоне. Один объект почти всегда порождает несколько пересекающихся рамок, поэтому финальный шаг — NMS (Non-Maximum Suppression): из группы сильно пересекающихся рамок остаётся одна с наибольшим confidence.
Ключевые понятия
- IoU (Intersection over Union) — площадь пересечения предсказанной и настоящей рамки, делённая на площадь объединения. 1.0 — идеальное совпадение, 0 — не пересекаются.
- Confidence — уверенность модели, что в рамке объект. Порог отсечения настраивается: ниже порог — больше находок и больше ложных.
- mAP — средняя точность по всем классам, основная метрика детекции.
mAP@0.5считает попаданием IoU выше 0.5;mAP@0.5:0.95усредняет по нескольким порогам и строже.
Порог confidence — это ручка «полнота против точности». Для контроля брака его снижают (лучше лишний раз проверить), для подсчёта посетителей — повышают.
Версии и лицензии
Первые три версии (v1–v3) сделал Джозеф Редмон на собственном фреймворке Darknet. После его ухода из области название подхватили разные команды, и сегодня YOLO — это уже не одна модель, а линейка от разных авторов: YOLOv4, YOLOv5, YOLOv7, YOLOv8, YOLO-NAS, YOLOv9/v10/v11 и далее. Нумерация не означает преемственности — версии от разных команд развивались параллельно.
Внутри каждой версии есть размеры от n (nano) до x (extra large): чем крупнее, тем точнее и медленнее.
Про лицензию. Модели Ultralytics (YOLOv5, v8, v11) распространяются под AGPL-3.0. Это копилефт: использование в закрытом коммерческом продукте требует либо раскрытия исходников, либо покупки коммерческой лицензии. Проверяйте лицензию до внедрения — на этом регулярно обжигаются.
Запуск
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # предобучена на COCO (80 классов)
results = model("street.jpg")
for box in results[0].boxes:
cls = model.names[int(box.cls)]
print(f"{cls}: {float(box.conf):.2f}")
# Дообучение на своих классах
model.train(data="dataset.yaml", epochs=100, imgsz=640, batch=16)
Формат датасета — по файлу разметки на изображение: класс и координаты рамки, нормированные к размеру картинки.
class_id x_center y_center width height
0 0.481 0.632 0.115 0.204
YOLO и GPU
Детекция — задача, где GPU нужен не столько для обучения, сколько для потока. Fine-tuning небольшой модели на паре тысяч своих картинок укладывается в часы на одной RTX 4090 — это доступный порог входа по сравнению с LLM.
На инференсе главный ресурс — не память, а пропускная способность: модели легко помещаются в несколько ГБ VRAM, но обработка десятков видеопотоков требует батчинга и экспорта в TensorRT. Декодирование самого видео тоже стоит вынести на GPU — иначе узким местом станет CPU, а не сеть.
Связанные термины
- Computer Vision — область, к которой относится детекция
- датасет — размеченные изображения для обучения
- fine-tuning — дообучение YOLO под свои классы
- PyTorch — фреймворк, на котором работают современные версии
- инференс — запуск детектора в продакшене
- GPU — железо для обучения и обработки видеопотоков
Готовы запустить GPU-задачу?
Запустить GPU-сервер