февраль 2020

volo_logo

 Задача 

Разработать алгоритмическое обеспечение для роя патрульных дронов

Подготовить нейросетевую модель для распознавания следующих классов объектов: пешеход, велосипедист, мотоциклист, автомобиль, автобус, грузовик

Распознавание объектов должно стабильно работать в широком диапазоне углов и размеров объектов

Разработать алгоритм динамического распределения дронов по патрулируемой местности

Все доступные дроны должны динамически распределяться так, чтобы каждый участок оставался без наблюдения минимальное время

 Результат 

Ракурс объектов:

от
30

градусов

до
90

градусов

Размер объектов:

от
10

пикселей

до
800

пикселей

 Процесс 

Выбираем оптимальный стартовый датасет

Датасет VisDrone2020 содержит более 2.5 миллионов размеченных объектов следующих классов: пешеход, велосипед, машина, автобус, грузовик. Датасет состоит из 10,209 изображений и 265 тысяч кадров из 400 видеоклипов, снятых с помощью различных управляемых платформ и видеокамер в 14 городах Китая и за пределами городов

visdrone-sample

Выбираем архитектуру нейронной сети и обучаем

RetinaNet - single shot detector (SSD), использующий Feature Pyramid Network (FPN) и функцию ошибок Focal loss для обучения. Такая архитектура сети позволяет получать карты признаков разной детализации на разных уровнях сети, что улучшает классификацию и определения границ объекта при сильной дисперсии размеров искомых объектов.

Функция ошибок Focal Loss позволяет решить при обучении проблему значительного меньше объёма данных для искомых объектов относительно класса фона. Функций ошибок Focal Loss практически не учитывает при обучении примеры, которые изначально проще классифицируются, сосредотачивая "внимание" на сложных примерах и значительно улучшая тем самым качество работы модели.

retinanet

Тестируем на разных объектах и ракурсах

pexels-dominika-roseclay-2728422out_1beach

Разрабатываем алгоритм маршрутизации роя

Разрабатываем алгоритм перемещения N агентов по произвольной маске для патрулирования вне городских улиц. Цель оптимизации - исключить опасные сближения дронов, уменьшить среднее время нахождения территории без наблюдения. Алгоритм должен динамически распределять доступные дроны, моментально реагируя на появление нового дрона или перехват управления оператором

Определяем целевую функцию и обучаем агента методами reinforcement learning:

Каждый агент принимает решение независимо

Наблюдение, которое каждый агент получает о среде - карта, "туман войны", текущие и планируемые позиции остальных дронов в виде маски

Переход агента в область, скрытую "туманом войны", поощряется функцией вознаграждения

Сближение агента с другим агентом штрафуется функцией вознаграждения

Обучаем версию агента, адаптированную для работы с графом городских улиц (получаем данные от openstreetmap)

photo_2021-01-04_01-06-00