Skip to content

fs-itmo/perception_test_task_2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание по Perception

Описание задания

Ваша задача - реализовать детекцию конусов на изображениях с использованием YOLOv8n модели в формате ONNX.

Что нужно сделать

  1. Скачать предобученную модель YOLOv8n и конвертировать её в формат ONNX
  2. Реализовать инференс на минидатасете из 30 изображений
  3. Визуализировать результаты детекции с bounding boxes
  4. Вычислить метрики качества (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             # Данный файл

Детали задания

1. Подготовка модели

  • Скачайте предобученную YOLOv8n модель
  • Конвертируйте её в формат ONNX для оптимизации инференса
  • Сохраните модель в папку models/

2. Инференс

Реализуйте функцию инференса, которая:

  • Загружает ONNX модель
  • Предобрабатывает изображения (resize [3, 640, 640], normalization)
  • Выполняет детекцию
  • Постобрабатывает результаты (NMS-free, thresholding)

3. Визуализация

Создайте функцию для визуализации результатов:

  • Отрисовка bounding boxes на изображениях
  • Подписи классов и confidence scores
  • Сохранение результатов в папку results/visualizations/

4. Метрики

Вычислите следующие метрики:

  • mAP@0.5 - mean Average Precision при IoU=0.5
  • mAP@0.5-0.95 - mean Average Precision при IoU от 0.5 до 0.95
  • Precision - точность детекции
  • Recall - полнота детекции

5. Классы для детекции

Датасет содержит следующие классы конусов:

  • yellow_cone (желтый конус)
  • blue_cone (синий конус)
  • orange_cone (оранжевый конус)
  • large_orange_cone (большой оранжевый конус)
  • unknown_cone (неизвестный конус)

Требования к коду

  1. Структурированность: Код должен быть разделен на модули
  2. Документация: Все функции должны иметь docstrings
  3. Обработка ошибок: Корректная обработка исключений
  4. Логирование: Информативные логи процесса
  5. Конфигурация: Параметры модели и обработки должны быть настраиваемыми

Ожидаемые результаты

  1. Рабочий код для детекции конусов
  2. Визуализации всех 30 изображений с предсказаниями
  3. Метрики качества в формате JSON
  4. Отчет с анализом результатов (какие классы детектируются лучше/хуже)

Критерии оценки

  • Функциональность (40%): Корректность работы детекции
  • Качество кода (30%): Структура, читаемость, документация
  • Метрики (20%): Правильность вычисления метрик
  • Визуализация (10%): Качество и информативность визуализаций

Дополнительные задания (бонус)

  1. Оптимизация: Измерение времени инференса и оптимизация
  2. Анализ ошибок: Анализ типичных ошибок детекции
  3. Адаптация: Попытка адаптировать модель под датасет конусов

Полезные ресурсы

Удачи!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages