27 декабря 2019

Параллельно с факультативным участием инженеров ЦИТМ Экспонента в конкурсе Ice Vision перед нами стояла задача создания пригодного (по памяти и быстродействию) для автомобильных вычислителей алгоритма распознавания дорожной обстановки. Хакатон Ice Vision (UP GREAT Зимний город) был посвящен детектированию дорожных знаков в условиях российской зимы. Цель конкурса — поиск прорывных решений в области беспилотных транспортных средств. На конкурс подало заявку более 170 команд. Организаторы предоставили данные - 32 тысячи размеченных изображений с 62 тысячами знаков, всего порядка 200 тысяч изображений.

Ключевые результаты

  • Разработан и отлажен на встраиваемом автомобильном GPU вычислителе алгоритм распознавания дорожных знаков обеспечивающий достаточное быстродействие и точность в условиях российской зимы для определения знаков на дистанции 200 метров при любой скорости.
  • Самый молодой инженер Экспоненты (в виду конкурсного ограничения старшие коллеги не могли участвовать) вошел в ТОП 3 среди команд от коммерческих организаций и в ТОП 8 среди всех финалистов.

Ключевые проблемы и особенности проекта:

Как известно 90% успеха AI проекта - это качественные и правильно подготовленные данные для обучения алгоритма.

Особенности предоставленной базы данных:

  • Подавляющее большинство знаков занимают небольшую площадь больших изображений.
  • Условия в которых были получены изображения - далеки от идеала (плохие погодные условия, темное время суток, блики и т.п.)
  • Количество уникальных размеченных объектов относительно невелико
  • Сильно не сбалансированная по классам выборка
  • Не все изображения размечены (каждый 30-й кадр видеоряда)

 

Рис. 1. Распределение объектов по их площади

Ключевым фактором успешной реализации проекта стала наша компетенция по анализу и препроцессингу данных, а также экспертное владение инструментами МАТЛАБ. Для выявления наиболее оптимального подхода к проекту потребовалось оперативно определить свойства базы данных, статистику размеров объектов, пригодность базы для обучения того или иного алгоритма, а также возможности по синтезу, доразметке, обрезке, масштабированию и иным преобразованиям данных, которые успешно нами автоматизированы с помощью МАТЛАБ.

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

Экспертное владение инструментами МАТЛАБ позволило нам быстро создать весь framework предобработки данных, а также написать адекватную функцию ошибки, которая использовалась при поиске различных вариантов алгоритма. По нашему мнению многие участники Ice Vision не дошли до финала по причинам нехватки компетенций в написании функции ошибки и невозможности быстро подготавливать данные для обучения различных вариантов алгоритмов.

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

 

Рис. 2. Качество снимков

Рис. 3. Исходное распределение знаков


Рис. 4. Распределение знаков после предобработки

Решение

В качестве детектора сначала был выбран алгоритм сети Faster RCNN, в основе которой была ResNet-50 предварительно обученная на базе данных ImageNet.

Рис. 5. Принципиальная схема Faster RCNN

Обучение проходило в несколько этапов. На первом этапе система обучалась на сжатых изображениях с низким уровнем регуляризации и после сходимости, мы увеличивали разрешение и регуляризацию. Для пополнения базы данных и максимизации качества детектирования использовались процедуры преобразования исходных данных, такие как выбор центральной части изображения, случайный выбор части изображения и сжатие изображения со случайным масштабом между 0.5 и 1.

Все команды, с которыми мы общались (включая победителя) использовали решения, основанные на 2-шаговых методах, которые сложно применить в автомобильной промышленности из-за низкой скорости их работы. Причина, почему эти алгоритмы применялись в конкурсе — высокая точность детектирования. Поэтому, после подведения итогов мы приняли решение реализовать одношаговый метод основанный на YOLO. Использовав тот же подход к обучению, мы добились высокой точности, но гораздо важнее, что скорость при этом увеличилась более чем на порядок. И теперь эту систему распознавания можно использовать в режимах реального времени, т. е. на беспилотных автомобилях.

Далее мы осуществили перенос CUDA кода на устройство Nvidia Jetson и проверку алгоритма в реальных условиях. Такие устройства очень удобно использовать во многих областях компьютерного зрения, где необходима мобильность и скорость принятия решений на основе видеоданных.

Использованные продукты:

Услуги:

Тренинги:

Сервисы:

 Глубокое обучение