Object Detection
Обнаружение объектов находит все объекты на изображении и возвращает для каждого ограничивающую рамку, метку класса и оценку уверенности. Разбираем принцип работы детекторов и способы их оценки.
Обнаружение объектов — это задача компьютерного зрения, в которой нужно найти каждый экземпляр заданного набора классов на изображении или видеокадре и указать его местоположение. Для каждого объекта модель возвращает ограничивающую рамку, метку класса и оценку уверенности, превращая фотографию улицы в список размеченных рамок — по одной на каждую машину, человека или светофор. Этот список служит входными данными для подсчёта, измерений, отслеживания и управления роботами.
Что возвращает детектор#
Каждая детекция состоит из трёх частей. Рамка хранится либо как координаты углов (x1, y1, x2, y2), либо как центральная точка с шириной и высотой — в пикселях или нормализованная относительно размера изображения. Класс — это индекс в наборе меток модели, например одна из 80 категорий набора данных COCO. Оценка от 0 до 1 показывает вероятность того, что рамка содержит объект этого класса; приложения оставляют только детекции выше порога уверенности, балансируя между пропущенными объектами и ложными срабатываниями.
from ultralytics import YOLO
# Load a YOLO26 nano detector pretrained on the 80 COCO classes
model = YOLO("yolo26n.pt")
# Run detection on one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Each detection carries a class, a confidence score, and a box in pixels
for box in result.boxes:
name = result.names[int(box.cls)]
corners = box.xyxy[0].int().tolist()
print(f"{name} {box.conf.item():.2f} {corners}")Каждая выведенная строка соответствует одному обнаруженному объекту: в ней указаны название класса, оценка уверенности и пиксельные координаты верхнего левого и нижнего правого углов.
Как работают детекторы объектов#
Современные детекторы — это нейронные сети из трёх этапов. Базовая сеть, обычно свёрточная сеть или vision transformer, преобразует изображение в карты признаков. Шея, например сеть пирамиды признаков, объединяет эти карты на разных масштабах, чтобы представлять и мелкие, и крупные объекты. Затем голова детектора предсказывает оценки классов и координаты рамок в тысячах точек. Соседние точки срабатывают на один и тот же объект, поэтому необработанный результат содержит множество перекрывающихся кандидатов. Большинство конвейеров отбрасывает рамки с низкими оценками и применяет подавление немаксимумов (NMS), чтобы оставить по одной рамке на объект. Сквозные детекторы, такие как DETR, обучаются выдавать ровно одно предсказание на объект, поэтому этот этап им не нужен.
Архитектуры детекторов различаются тем, как они находят кандидатов. Двухэтапные детекторы, например Faster R-CNN, сначала предлагают области, в которых может находиться объект, а затем классифицируют и уточняют каждую из них. Одноэтапные детекторы, например YOLO, представленный в 2015 году, за один проход предсказывают все рамки и классы, что сделало возможным обнаружение в реальном времени. Ранние одноэтапные модели предсказывали смещения относительно заранее заданных опорных рамок, а безанкерные детекторы напрямую предсказывают расстояния от точки сетки до четырёх краёв рамки. YOLO26 — одноэтапный безанкерный детектор, который по умолчанию применяет NMS. Передача nms=False переключает его на голову «один к одному», которая выдаёт готовые рамки без этапа NMS.
Обучение и оценка#
Детекторы обучаются на изображениях, где каждый объект размечен боксом и классом. Во время обучения этап назначения меток определяет, какие предсказания отвечают за каждый размеченный объект, а функция потерь объединяет компонент классификации с компонентом регрессии боксов, обычно основанным на пересечении по объединению (IoU) — мере перекрытия предсказанного бокса с размеченным. При оценке снова используется IoU: обнаружение считается правильным, если класс совпадает и IoU с размеченным боксом достигает заданного порога. Затем средняя точность (mAP) суммирует точность и полноту для всех уровней уверенности и классов. COCO сообщает mAP50, рассчитанную при IoU 0,5, и использует mAP50-95, усредненную по десяти порогам IoU от 0,50 до 0,95, в качестве основной метрики. Таблица лидеров VLM использует mAP50 для сравнения визуально-языковых моделей, обнаруживающих объекты только по названиям классов. Ultralytics Platform использует такие модели для автоматической разметки наборов данных обнаружения объектов перед обучением YOLO26 на этих метках.
Примеры применения в реальных условиях#
- Автономное вождение: системы помощи водителю и беспилотного вождения обнаруживают автомобили, пешеходов, велосипедистов и дорожные знаки в каждом кадре с камеры; системы отслеживания и планирования движения используют эти рамки.
- Розничная торговля: камеры над полками обнаруживают товары и пустые места, чтобы отмечать отсутствие товаров, а системы самообслуживания обнаруживают товары, выложенные на кассе.
- Контроль качества на производстве: камеры на производственной линии обнаруживают царапины, вмятины и отсутствующие компоненты, чтобы отбраковывать дефектные детали по мере их движения.
Обнаружение объектов и смежные задачи#
- Классификация изображений присваивает метку всему изображению и не указывает местоположение объекта.
- Сегментация экземпляров обводит каждый обнаруженный объект пиксельной маской, точно повторяющей его форму.
- Поворотные ограничивающие рамки добавляют к каждой рамке угол поворота, чтобы она соответствовала наклонённым объектам, например кораблям и автомобилям на аэрофотоснимках.
- Отслеживание объектов связывает детектирования одного и того же объекта между видеокадрами и присваивает объекту постоянный ID.
- Обнаружение 3D-объектов предсказывает рамку в 3D-пространстве, задаваемую центром, длиной, шириной и высотой в метрах, а также углом направления.










