Профиль «Автономные транспортные системы» посвящён применению технологий искусственного интеллекта и компьютерного зрения в задачах беспилотного транспорта.
Автономные транспортные системы состоят из множества беспилотных устройств: автомобилей, роверов, квадрокоптеров, антропоморфных роботов. Все эти устройства должны ориентироваться и перемещаться в пространстве. Для этого применяются алгоритмы компьютерного зрения. Беспилотник получает изображение камеры и извлекает из него полезную информацию: количество объектов в кадре, дистанции до них, направления и скорости их движения. Используя эту информацию, беспилотники определяют свой маршрут. Большая часть заданий профиля связана с обучением нейросетей и написанием алгоритмов компьютерного зрения, позволяющих беспилотникам и другим устройствам транспортной системы строить маршруты, обнаруживать объекты и корректно взаимодействовать с ними.
Остальные задания профиля связаны с алгоритмами, объединяющими беспилотные устройства в систему. Чтобы транспортная система работала как единое целое, необходимо своевременно реагировать на запросы транспортировки грузов, узнавать об авариях, пробках, дорожных работах, неисправных светофорах. Необходимо планировать и распределять задания между беспилотниками. Чем совершеннее транспортная система, тем лучше она включена в информационную инфраструктуру города. Беспилотники собирают не только данные, необходимые для доставки грузов, но и полезные для города данные. Например, информацию о состоянии дорожного покрытия, об обрыве линий электропередач, о пожарах. При разработке подобных алгоритмов участники применяют различные методы искусственного интеллекта.
На первом отборочном дистанционном этапе участники решают задачи инженерного и предметного туров. Задачи первого тура знакомят с тематикой профиля и вовлекают в изучение образовательной программы. Задачи предметного тура определяют общий уровень подготовки участников по школьным предметам: информатике и физике. Задачи по информатике оценивают знания участников по комбинаторике, теории вероятностей, алгоритмизации, теории игр и программированию. Задачи по физике относятся к разделам механики, оптики и электричества.
В ходе решения задач инженерного тура необходимо продемонстрировать понимание принципов работы с изображением, умение детектировать и распознавать объекты без использования методов машинного обучения. Количество попыток сдачи решения задач не ограничено.
Таким образом, в ходе первого отборочного этапа участники профиля «Автономные транспортные системы» получают основополагающие знания и умения по технологиям профиля, а также готовятся к решению задач следующего этапа.
Второй отборочный этап — командный, он посвящен отработке навыков программирования, созданию и обучению нейросетей, работе с алгоритмами компьютерного зрения для детектирования, отслеживания и распознавания объектов. В ходе решения задач участники сталкиваются с отдельными элементами комплексной задачи финального этапа олимпиады и приобретают умения, необходимые для ее решения.
Работа на втором этапе помогает участникам лучше понять сильные стороны каждого члена команды, а также наиболее эффективно распределять обязанности и зоны ответственности на заключительном этапе.
Финалистам предстоит разработать, отладить и внедрить в интеллектуальную городскую инфраструктуру, представленную специальным полигоном с моделью города — полностью автономную мультимодальную транспортную систему.
Транспортная система включает в себя три взаимодействующие друг с другом автономных устройства, программируемые участниками: беспилотный автомобиль, автоматизированный сервисный центр, квадрокоптер. Наземный и воздушный беспилотный транспорт должен не только перевозить грузы, но и собирать информацию о текущей ситуации в городе, самостоятельно рассчитывать маршруты, инспектировать состояние инфраструктуры, реагировать на события и происшествия в городе.
Задача разработки автономной транспортной системы разбита на несколько простых подзадач. Первые три дня финала участники решают подзадачи и получают за них баллы. Количество одновременно решаемых задач определяет слаженность командной работы.
В последний день заключительного этапа участники демонстрируют работу всей транспортной системы. Если система работает без сбоев, то участники получают дополнительные баллы, которые суммируются с баллами за подзадачи. Чем совершеннее продемонстрированная транспортная система, тем больше баллов получает команда. Совершенность автономной транспортной системы зависит от количества объектов городской среды и типов событий, с которыми система может корректно взаимодействовать.
Для получения максимального балла команды должны оценить собственные силы, найти баланс между решением подзадач и отладкой всей транспортной системы.
Физика
Законы постоянного электрического тока. При отладке программы ошибки могут быть не только в коде, но и в подключении датчиков, неправильном обеспечении электропитания. Чтобы успешно находить такие ошибки, необходимо понимать, что такое электрический ток, сопротивление, напряжение и как они связаны между собой.
Физические, математические, идеальные модели и их соответствие реальности. При запуске одной и той же программы два раза обычно предполагается, что ее результат будет одинаковый. Если запускать робота с одной и той же программой, то каждый запуск будет отличаться от предыдущего — робот будет двигаться по-разному. Чтобы создавать стабильно работающие программы для беспилотников, необходимо понимать, какие условия запуска вы можете контролировать, а какие — нет.
Оптика, формирование изображения в камере. Камера — основной сенсор беспилотников, с которыми вы будете работать. Некоторые алгоритмы компьютерного зрения требуют понимания того, какие искажения вызывает объектив камеры и как трехмерное пространство проецируется на плоское изображение.
Математика
Декартова система координат. Уравнения прямой и окружности на плоскости. Уравнение прямой в трехмерном пространстве. Координаты используются для описания положения беспилотников в пространстве и для работы с изображениями, пиксели — это точки на плоскости.
Математическая логика. Без знания логики не получится писать программы. Логические выражения, условные операторы, циклы с условиями — обязательные знания для программиста.
Комбинаторика. Для понимания некоторых алгоритмов компьютерного зрения, необходимо знать, чем перечисления отличаются от сочетаний. Тяжело отладить работу алгоритма, если вы не поним>аете, как он работает.
Информатика
Протоколы передачи данных. Модули устройств общаются друг с другом, используя различные протоколы передачи данных. При отладке программы полезно знать, чем один протокол отличается от другого и какие ограничения имеет.
Типы данных, структуры и базовые алгоритмы. Представление одних и тех же данных в памяти компьютера не одинаково для разных языков программирования. Без понимания того, что «лежит в переменной», тяжело писать и отлаживать программы. Скорость работы кода зависит от типа данных и от алгоритмов для их обработки. Быстродействие программ критично для автономных беспилотных устройств.
Программирование на Python, чтение документации, обучение по видеороликам.
Работа с OpenCV, TensorFlow, PyTorch Keras, Pandas.
Обучение и запуск нейросетевых детекторов. Преобразование моделей машинного обучения из одного формата в другой.
Для участия во втором и заключительном этапах вам понадобится команда из 3-4 человек.
Роль 1. Программист беспилотного автомобиля — работа с компьютерным зрением и нейронными сетями в задачах беспилотных автомобилей. На финале предстоит работать с моделью учебного беспилотного автомобиля АЙКАР.
Роль 2. Программист квадрокоптера — работа с компьютерным зрением и нейронными сетями в задачах квадрокоптера. На финале предстоит работать с квадрокоптером Пионер Макс.
Роль 3. Программист манипуляторов и конвейеров — работа с компьютерным зрением и нейронными сетями в задачах сервисной и складской робототехники. На финале предстоит работать с промышленным манипулятором.
Роль 4. Программист и капитан команды — необходимо владеть общим инструментарием компьютерного зрения и применения нейронных сетей, чтобы грамотно распределять задачи между участниками команды и усиливать наиболее уязвимые позиции.