Ваша задача - реализовать детекцию конусов на изображениях с использованием YOLOv8n модели в формате ONNX.
- Скачать предобученную модель YOLOv8n и конвертировать её в формат ONNX
- Реализовать инференс на минидатасете из 30 изображений
- Визуализировать результаты детекции с bounding boxes
- Вычислить метрики качества (mAP, precision, recall)
perception_test_task_2026/
├── mini_dataset/ # Минидатасет (30 изображений)
│ ├── images/ # Изображения для тестирования
│ ├── labels/ # Ground truth аннотации (YOLO формат)
│ ├── classes.txt # Описание классов
│ └── stats.txt # Статистика датасета
├── models/ # Модели (создать)
│ └── yolov8n.onnx # ONNX модель (скачать и конвертировать)
├── src/ # Исходный код
│ ├── inference.py # Основной скрипт инференса
│ ├── visualization.py # Визуализация результатов
│ ├── metrics.py # Вычисление метрик
│ └── utils.py # Вспомогательные функции
├── results/ # Результаты (создать)
│ ├── predictions/ # Предсказания модели
│ └── visualizations/ # Визуализации
├── requirements.txt # Зависимости
└── README.md # Данный файл
- Скачайте предобученную YOLOv8n модель
- Конвертируйте её в формат ONNX для оптимизации инференса
- Сохраните модель в папку
models/
Реализуйте функцию инференса, которая:
- Загружает ONNX модель
- Предобрабатывает изображения (resize [3, 640, 640], normalization)
- Выполняет детекцию
- Постобрабатывает результаты (NMS-free, thresholding)
Создайте функцию для визуализации результатов:
- Отрисовка bounding boxes на изображениях
- Подписи классов и confidence scores
- Сохранение результатов в папку
results/visualizations/
Вычислите следующие метрики:
- mAP@0.5 - mean Average Precision при IoU=0.5
- mAP@0.5-0.95 - mean Average Precision при IoU от 0.5 до 0.95
- Precision - точность детекции
- Recall - полнота детекции
Датасет содержит следующие классы конусов:
- yellow_cone (желтый конус)
- blue_cone (синий конус)
- orange_cone (оранжевый конус)
- large_orange_cone (большой оранжевый конус)
- unknown_cone (неизвестный конус)
- Структурированность: Код должен быть разделен на модули
- Документация: Все функции должны иметь docstrings
- Обработка ошибок: Корректная обработка исключений
- Логирование: Информативные логи процесса
- Конфигурация: Параметры модели и обработки должны быть настраиваемыми
- Рабочий код для детекции конусов
- Визуализации всех 30 изображений с предсказаниями
- Метрики качества в формате JSON
- Отчет с анализом результатов (какие классы детектируются лучше/хуже)
- Функциональность (40%): Корректность работы детекции
- Качество кода (30%): Структура, читаемость, документация
- Метрики (20%): Правильность вычисления метрик
- Визуализация (10%): Качество и информативность визуализаций
- Оптимизация: Измерение времени инференса и оптимизация
- Анализ ошибок: Анализ типичных ошибок детекции
- Адаптация: Попытка адаптировать модель под датасет конусов
Удачи!