YOLOv8 является одношаговым или двухшаговым детектором?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
YOLOv8 — это одношаговый детектор объектов. Он предсказывает классы и bounding boxes за один проход по изображению, без отдельной стадии генерации region proposals. На практике это делает модель быстрее и проще в применении по сравнению с двухшаговыми детекторами.
Определение:
Одношаговый детектор сразу на выходе сети оценивает наличие объектов, их классы и координаты рамок. Двухшаговый детектор сначала предлагает кандидатов на объекты, а затем уточняет их и классифицирует. YOLOv8 относится к одношаговым моделям, потому что работает по принципу прямого предсказания детекций без отдельного этапа proposals.
Пример использования:
Например, при детекции людей, машин и дорожных знаков на видео YOLOv8 получает кадр и сразу возвращает набор объектов с координатами и вероятностями классов.
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
results = model("image.jpg")
for r in results:
boxes = r.boxes
for box in boxes:
print(box.xyxy, box.conf, box.cls)
Пояснение кода:
Код загружает предобученную YOLOv8-модель и запускает детекцию на изображении. Затем из результата извлекаются найденные bounding boxes, confidence score и класс объекта. Здесь видно, что модель сразу возвращает детекции, без отдельного шага поиска кандидатов.
Ключевые моменты:
- YOLOv8 — одношаговый детектор.
- Он не использует классическую двухэтапную схему с region proposals.
- Обычно такие модели быстрее на инференсе.
- Одношаговый подход хорошо подходит для задач реального времени.
- Для собеседования важно уметь противопоставить его двухшаговым детекторам вроде Faster R-CNN.