Профиль
«Автономные транспортные системы» 2020-21
Информатика + Физика
Уважаемые участники!
Добро пожаловать во 2 этап профиля «Автономные транспортные системы» Олимпиады КД НТИ!

В этом этапе вам предстоит писать программы с использованием компьютерного зрения и методов машинного обучения. Работа происходит на онлайн-платформе и разбита на 2 части:
индивидуальный зачёт и командный.
Индивидуальный зачёт

Ваша задача - освоить базовую работу с алгоритмами компьютерного зрения и применить их для детектирования и распознавания: цветов, дорожных знаков, людей и цифр. Настоятельно рекомендуем прорешать все задачи, поскольку они составляют базовые навыки для успешного выступления в финале.

Также за время индивидуального зачёта необходимо определиться с командой.

Для поиска членов команды, общения с другими участниками и вопросов организаторам можно воспользоваться чатом профиля в Telegram или нашим сервером в Discord.
Для успешного прохождения 2 этапа рекомендуем ознакомиться с:
Онлайн-курсом по компьютерному зрению
В этом уроке мы будем распознавать, какой свет сейчас зажжён на фотографиях реальных светофоров. Научимся пользоваться особенностью цветового пространства HSV и искать файлы по маске адреса.
00:05 – Постановка задачи
00:55 – Общее описание работы алгоритма
04:55 – Изъятие конкретной составляющей цвета из изображения
15:12 – Разбор программы распознования сигналов светофора
25:55 – Работа с путями и именами изображений
Детектирование объектов на изображении
0:07 – Что называется детектированием?
1:14 – Принцип работы детектирования по цвету
3:26 – Функция бинаризации inRange
6:03 – Программа для подбора порогов бинаризации
11:13 – Бинаризация изображения из файла и с камеры: значения параметров
15:47 – Функция размытия изображения
18:29 – Избавление от ряби на чёрно-белом изображении: функции erode и dilate
22:19 – Написание функции детектирования знаков: получение бинаризованного изображения
25:14 – Написание функции детектирования знаков: функция поиска контуров
29:08 – Написание функции детектирования знаков: использование наибольшего контура
31:38 – Вырезание области изображения с детектируемым объектов
Распознавание детектированных объектов
0:07 – Принцип распознавания сравнением с эталоном
2:37 – Бинаризация эталонного изображения и распознаваемого
9:09 – Распознавание дорожных знаков: сравнение сдетектированного изображения с эталоном
12:57 – Верификация распознаного изображения
Предобученный HOG-SVM детектор
В этом уроке мы поговорим о том, как работают HOG-SVM детектор, и воспользуемся предобученным детектором для обнаружения пешеходов.


Обучение собственного SVM детектора
В этом уроке мы научимся размечать изображения для обучения SVM детекторов, нейронных сетей и других моделей машинного обучения (ML). Получим информацию из файлов аннотаций к изображениям и используем её для обучения собственного SVM-детектора.
Детектирование дорожной разметки
00:21 – Детектирование дорожной разметки камерой беспилотного автомобиля и движение по своей полосе дорожного полотна
02:18 – Общий разбор работы алгоритма
05:41 – Бинаризация изображения
13:29 – Перспективное преобразование
18:36 – Находим самые белые столбцы
24:06 – Располагаем окна для поиска пикселей разметки
30:12 – Находим пиксели дорожной разметки
37:11 – Перемещаем окна за линией
39:51 – Вычисляем центральную линию
Онлайн-курсом по нейронным сетям
Нейронные сети для самых маленьких,
разбираемся в основах
Мы разберёмся что такое искуственные нейронные сети и какие задачи они призваны решать. В чём причина их популярности? В чём их принципиальное отличие от обычных программ и алгоритмов. Разберёмся с математическими принципами их обучения и использования: прямым и обратным распространением ошибки.
Как обучается нейронная сеть?
Разберём задачу линейной регрессии, принцип обратного распространения ошибки и поговорим про градиентный спуск.

Вы узнаете, каким образом нейронная сеть подбирает весовые коэффициенты в процессе обучения, и поймёте, как влияют
некоторые гиперпараметры на скорость обучения.
Google Colab и первая нейронная сеть.
1 часть
Соберём небольшую нейронную сеть с помощью Google Colab
и обучим её.

Вы научитесь пользоваться интернет-сервисомGoogle Colab, который
даёт доступ к GPU и позволяет обучать нейронные сети. Получите
первые практические навыки в обучении нейронных сетей на Python.
Google Colab и первая нейронная сеть.
2 часть
Обучим классифкатор, посмотрим какие параметры обученя влияют
на результат. И рассмотрим возможности, предоставляемые keras.
Свёрточная нейронная сеть
Мы добавим в нашу нейронную сеть свёрточные слои. Разберёмся что это такое и как они работают. Получим свёрточную нейронную сеть гораздо точнее решающую задачу.
Командный зачёт

Итоги 2 этапа определяются совместно по задачам индивидуального и командного этапа. Формула для подсчёта итоговых баллов будет опубликована после 20 декабря.

Стартует 7 декабря и завершается 31 декабря.
Задачи данной части потребуют командной работы для сочетания различных алгоритмов компьютерного зрения и методов машинного обучения.
работа с компьютерным зрением
работа с управлением и навигацией квадрокоптера
работа с сервером управления роботизированным городом
Программист беспилотного автомобиля
Команда
решение задач захвата и передачи груза всеми акторами финальной задачи
Программист квадрокоптера
Программист интерфейсов
Инженер
Задачи для командного зачета появятся позже
Коммуникация
Для поиска членов команды, общения с другими участниками и вопросов организаторам можно воспользоваться
  • Telegram
    Общий чат — оперативное общение участников и организаторов. Рекомендуем присоединиться ВСЕМ.
  • Discord
    Сервер — общение с разработчиками по техническим вопросам программирования нейронных сетей. Также здесь проходят консультации по решению задач.
Что вас ждет на финале

Беспилотный автомобиль, квадрокоптер, огромный (почти 100 м2!) роботизированный полигон городской среды, все объекты которого связаны в единую сеть! Светофоры, шлагбаумы, ворота, роботы погрузчики и сортировщики, и даже автоматическая фабрика (!!!), — все элементы города автоматические и общаются по wi-fi!
Что нужно для участия:
Общий уровень
  • Работа с компьютерным зрением

  • Работа с нейронными сетями и линейными классификаторами, их отладка на реальном железе

  • Базовая инженерия
Уверенный уровень
  • Программирование на Python

  • Программирование автономного полёта квадрокоптера — уверенный уровень
Возможности, которые открывает участие в профиле:
  • Подготовка к World Skills, PROfest, WRO, РобоТраффик, Робофинист
  • Стажировки в компаниях, связанных с производством БПЛА
  • Практическое погружение в специальности «инженер беспилотного автомобиля», «эксплуатация беспилотных авиационных систем»
  • Подготовка к участию во всех ключевых соревнованиях по беспилотным автомобилям и программированию коптеров, в том числе и зарубежных
  • Обучение работы с алгоритмами компьютерного зрения при помощи OpenCV и Indoor навигации БПЛА
  • Обучение работы с алгоритмами компьютерного зрения при помощи OpenCV
Также дополнительно можно изучить задачи прошлых лет
профиля «Автономные транспортные системы»
Разработчики
ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ