intehros_test_hands
Датасет
само тестовое
https://alexman2505codecheck.pythonanywhere.com/
Описание тестового
Инженер компьютерного зрения / Machine Learning Engineer (для гидравлических роботов) Тестовое задание, тема: сегментация конечностей Легенда Вам необходимо разработать прототип системы машинного зрения, которая умеет выделять на изображении либо кисть руки человека, либо хвост кота (на выбор кандидата, если не оговорено иное). Классы стандартных предобученных моделей (COCO) не содержат «хвост», а «рука» там сегментируется только в контексте всего тела. Ваша задача — адаптировать SOTA-модель для решения этой узкой задачи при ограниченных данных. Цель задания Оценить навыки работы с современными моделями детекции/сегментации (Ultralytics YOLO), умение готовить набор данных, проводить перенос обучения (fine-tuning) и разворачивать простое приложение (инференс). Техническое задание (Варианты на выбор) Вариант А (Рука человека) Датасет: использовать EgoHands, Face-Hand или создать синтетический набор (10-20 фото своих рук в разных положениях + аугментация). Задача: сегментировать только кисти рук (игнорировать предплечья). Маска должна быть бинарной (рука/фон). Ограничение: не использовать готовые решения для хенд-трекинга типа MediaPipe. Только YOLO + дообучение. Вариант Б (Хвост кота) — рекомендуемый Датасет: вам НЕ выдаётся готовой размеченной выборки «хвост». Необходимо собрать ~30-50 изображений котов (можно из открытых источников) и вручную (или полуавтоматически) разметить только хвосты (формат COCO/YOLO Segment). Инструменты: CVAT, LabelMe, Roboflow или написание скрипта для генерации масок (например, вырезание хвоста на однотонном фоне). Задача: сегментация экземпляра (instance segmentation) — выделить контур хвоста. Этапы выполнения (Ожидаемый результат)
- Подготовка данных • Написать скрипт для конвертации разметки в формат YOLO .txt (нормализованные координаты полигона: class x1 y1 x2 y2 ...). • Бонус: сгенерировать синтетические данные: наложить маску хвоста на случайный фон (albumentations).
- Обучение (Training) • Использовать предобученную YOLOv8n-seg или YOLOv11n-seg. • Заморозить бэкбон (backbone) или использовать Transfer Learning. • Подобрать гиперпараметры (imgsz, batch, epochs) для малого датасета. • Реализовать аугментации: поворот, сдвиг, изменение яркости (особенно важно для рук/хвостов в разных ракурсах). • Результат: Метрики mAP50-95 на валидационной выборке.
- Инференс и демонстрация • Разработать простое приложение (Python + Flask/Gradio/Streamlit или OpenCV GUI). • Функция: загрузка изображения/видео, на выходе — изображение с наложенной маской (полупрозрачный слой) и контуром. Критерии оценки Качество данных: насколько аккуратно размечены полигоны. Код: чистота, наличие README, requirements.txt, структура train.py и predict.py. Результат: модель должна более-менее сносно определять хвост/руку на новых фото из интернета, а не только на обучающей выборке.