Данный материал рассматривает задачи, стоящие перед вычислительной техникой в составе беспилотных летательных аппаратов (БПЛА), а также содержит оценку применения мультиклеточной архитектуры для решения этих задач.
Если вы впервые слышите о мультиклеточной архитектуре, то можете ознакомиться с ней в предыдущих статьях:
«Компилятор С/С++ на базе LLVM для мультиклеточных процессоров: быть или не быть?»
«Развитие компилятора C для нового мультиклета-нейропроцессора»
Важность развития беспилотной авиации (дронов) для развития страны подтверждена принятием Стратегии развития беспилотной авиации Российской Федерации на период до 2030 года и на перспективу до 2035 года (постановление Правительства №1630-р от 21.06.2023г.).
![ГК "ЭФКО" планирует развивать логистику с применением беспилотников в Самарской области ГК "ЭФКО" планирует развивать логистику с применением беспилотников в Самарской области](https://habrastorage.org/getpro/habr/upload_files/406/62e/384/40662e384e27f7154f85ae5fd223e6fc.png)
Но, темпы развития этого рынка, в значительной мере сдерживаются низкой автономностью дронов. Как правило, выделяют пять уровней автономности дрона. Нулевой, исходный уровень — это дрон с полностью ручным управлением. Полностью автономный дрон — это дрон пятого уровня, который функционирует без участия оператора, т.е. искусственный интеллект (ИИ) дрона позволяет самостоятельно решать поставленную задачу.
|
Характеристики |
||
Степень |
Описание |
Уклонение от препятствий |
|
0 |
нет |
Полностью ручное управление. |
нет |
1 |
низкая |
Оператор несет ответственность за управление дроном. Дрон способен выполнять минимум одну важную функцию. |
Обнаружение и уведомление |
2 |
частичная |
Оператор несёт ответственность за безопасности операций. Дрон способен поддерживать высоту в определённых условиях, а также регулирует направление. |
|
3 |
условная |
Оператор работает в аварийном режиме. Дрон способен выполнять все функции самостоятельно, но «при заданных определённых условиях». |
Обнаружение и уклонение |
4 |
высокая |
Оператор не принимает никакого участия в цикле управления. Дрон оснащен несколькими аварийными системами, так что в случаях сбоя одной из систем, дрон продолжит работать. |
Обнаружение и самостоятельное уклонение. |
5 |
полная |
Дрон использует систему ИИ при планировании полета и выполнении поставленной задачи. |
Основная масса дронов, которые используются в настоящее время и исчисляются миллионами штук, имеют первый или второй уровень автономности. Они также имеют самую большую номенклатуру типов. Дронов с третьим уровнем автономности сравнительно немного, а число дронов с четвертым уровнем исчисляется тысячами и, как правило, они имеют самую высокую стоимость и военное назначение. Дронов с пятым уровнем автономности пока нет.
Несомненным достоинством дронов первого — третьего уровней автономности является их невысокая стоимость, если не учитывать обратную сторону этого — необходимость оператора и, как следствие, наличие канала связи дрон-оператор. Дистанционное управление дроном делает его уязвимым для блокирования или перехвата управления (кибератак). В военных применениях это чревато не только потерей дрона, но и вычислением координат оператора с последующей атакой на него. В гражданских применениях, емкость рынка будет ограничиваться количеством подготовленных операторов и темпами их подготовки.
![В Израиле дрон-курьер осуществил доставку еды клиенту В Израиле дрон-курьер осуществил доставку еды клиенту](https://habrastorage.org/getpro/habr/upload_files/087/b6f/b7f/087b6fb7ff6814b4d8e559e9653d803c.png)
Необходимость повышения уровня автономности дронов очевидна, но она сталкивается не только с организационными и законодательными проблемами. Существует техническая проблема, связанная с требованием кардинального роста вычислительных возможностей бортового компьютера, размещенного на борту дрона. Его производительность должна обеспечивать:
бинокулярное цветное зрение в видимом диапазоне с распознаванием видимых образов, а также бинокулярное зрение с использованием приборов ночного видения;
вычислительные ресурсы, достаточные для интеллектуальной обработки получаемого изображения и решения требуемой задачи.
Подобные интеллектуальные автономные дроны будут способны:
самостоятельно, в режиме радиомолчания, выполнять полет до требуемой точки или барражировать в требуемом районе на сверхнизких высотах, уклоняясь от препятствий и выполнять при этом разведывательные функции или функции мониторинга окружающей среды;
осуществлять мониторинг дорожной обстановки с фиксацией нарушения ПДД без привлечения личного состава ГИБДД;
выполнять мониторинг урожая, проводить контроль состояния посевов, определять оптимальные моменты для полива и удобрения, а также осуществлять полив и внесение удобрений;
самостоятельно обеспечивать контроль в природоохранных зонах;
выполнять картографирование территорий;
самостоятельно выполнять патрулирование указанных районов для предупреждения об природных и техногенных катаклизмах (землетрясения, цунами, лесные пожары, аварии на трубопроводах и т.п.);
получать сверх четкие фотографии — снимки определенных объектов в определенных условиях, наступление которых детерминировано, либо использование массива дронов для получения фотографии объекта со сверхвысоким разрешением;
формировать гиперспектральные изображения, в которых каждый дрон синхронно снимает объект в своем диапазоне частот;
осуществлять мониторинг городского пространства для минимизации ущерба городскому хозяйству при погодных аномалиях.
Все эти возможности обеспечиваются сложными многоуровневыми последовательностями технологических операций, выполняемыми в реальном времени, и включающими получение цифрового изображения, его обработку с целью выделения значимой информации, анализ этой информации для решения определенной задачи и принятие решения. Наиболее значимые из них это:
формирование видеоизображения с глубиной сцены;
выделение переднего плана;
выделение и классификация движущихся объектов;
отслеживание траектории движения найденных объектов;
распознавание и описание действий объектов, представляющих интерес.
Для построения переднего плана наиболее часто используются методы, основанные на вычитании фона, вероятностные методы, методы временной разности и оптического потока. Процесс выделения переднего плана заключается в отделении движущихся фрагментов изображения от неподвижных, которые называют фоновыми или принадлежащими заднему плану. От того, насколько аккуратно и корректно решена эта задача, зависят все последующие этапы обработки информации, а также требуемые вычислительные ресурсы. Сложность этой задачи обуславливается большим количеством разнообразных факторов, таких как собственные шумы камеры, внезапное изменение освещенности сцены, падающие тени, движение ветвей деревьев на ветру и др.
![Машинное зрение на практике Машинное зрение на практике](https://habrastorage.org/getpro/habr/upload_files/a0b/48a/494/a0b48a494022edc9781587a6b1966452.png)
В настоящее время развиваются методы построения заднего плана, основанные на применении искусственных нейронных сетей. Эти методы используют свойство нейронной сети адаптироваться к входным данным за счет введения настраиваемых обратных связей. Каждый пиксель фона управляется своей нейронной сетью, в результате чего через некоторое время, требуемое для настройки (обучения) нейронной сети, формируется модель фона, способная заданным образом подстраиваться к изменениям входного изображения.
В большинстве случаев конечной целью видеонаблюдения является описание наблюдаемой ситуации, поэтому крайне важно правильно классифицировать обнаруженные объекты. Так как видеонаблюдение и анализ ведутся в масштабе реального времени, алгоритмы классификации должны быть относительно быстрыми, эффективными и инвариантными к изменяющимся условиям освещения. Методы классификации объектов условно можно разделить на три большие группы: геометрические методы, методы, основанные на динамических характеристиках движения, и методы, использующие динамические текстуры.
Геометрические методы классификации основаны на двух ключевых понятиях: классификационной метрике, позволяющей определить меру близости рассматриваемого объекта и шаблона из имеющейся базы данных, и временной согласованности (классифицируются только те объекты, которые присутствуют в видеопотоке в течение ряда последовательных кадров, в противном случае они считаются фоновым шумом). Особую трудность этому придает тот факт, что в текущем кадре истинная природа объекта может быть искажена вследствие наложения нескольких объектов. Например, группа идущих рядом людей в отдельных кадрах может выглядеть как едущий автомобиль
Динамические методы основаны на анализе периодичных движений. Свойство периодичности является весьма распространенным среди движущихся объектов. Например, у человека во время ходьбы довольно легко можно выделить повторяющиеся через определенное время позы. То же самое относится и к животным. Поэтому периодичность движения можно использовать для классификации движущихся объектов.
После этого можно переходить к следующему этапу — отслеживанию траектории каждого движущегося объекта — трекингу. Для осуществления трекинга нужно установить взаимно-однозначное соответствие между обнаруженными объектами на последовательных кадрах. При этом обеспечивается временная идентификация выделенных областей изображения и выдается соответствующая информация об объектах в наблюдаемой зоне, а именно: траектория, скорость и направление движения. Сопровождение выделенных объектов в видеопотоке представляет собой чрезвычайно сложную задачу вследствие влияния следующих факторов:
изменения изображения, освещенности сцены, наличия шума камеры;
присутствия меняющих форму объектов;
наличия нескольких одновременно движущихся объектов с близкими характерными признаками и пересекающимися траекториями;
неправильной сегментации объектов на предыдущих этапах обработки;
необходимости осуществлять слежение в масштабе реального времени.
Ошибочное выполнение операции трекинга приводит в дальнейшем к некорректной интерпретации действий анализируемых объектов. Поскольку трекинг объектов должен часто проводиться в реальном времени, необходимо использовать алгоритмы, которые не слишком требовательны к вычислительным ресурсам.
Заключительная задача, при построении систем 5-го уровня автономности — распознавание. Ее сложность состоит в том, что, как правило, характерные признаки объекта являются многомерными векторами, в совокупности описывающими его некоторые свойства, например: гистограммы, набор моментов, текстур. Чрезвычайно неприятным является то обстоятельство, что сами характерные признаки весьма изменчивы и для различных объектов из одного и того же класса могут существенно отличаться. Рассматриваемые методы являются адаптивными, т. е. способными к автоматической подстройке к свойствам обрабатываемых данных, что в итоге позволяет разработать распознающую систему с неплохими характеристиками. Традиционно процесс подготовки данных заключается в их разбиении на входные и выходные с последующей нормализацией. Входные данные подаются на вход системы, в то время как выходные данные используются как эталон, который адаптивная система должна в идеале выдавать в качестве результата, например номер класса, к которому должны быть отнесены входные данные.
Спектр описанных задач весьма широк. Их алгоритмы используют как формализованные методы, так и эвристические. Для решения этих и подобных задач бортовой компьютер дрона, а точнее его бортовая цифровая вычислительная система (БЦВС) должна обеспечивать выполнение, в реальном времени и с минимальным энергопотреблением, как классических задач искусственного интеллекта (обучение, распознавание), так и задач, связанных с анализом и выработкой решений, моделирующих когнитивные функции человека. Первая задача требует от БЦВС наличие в системе команд высокоэффективных матричных операций с малоразмерными числами, а вторая — высокой производительности как в традиционных вычислениях, так и при обработке видеоизображения.
Решение первой задачи — это не только реализация традиционной малоразмерной матричной арифметики для задач ИИ, но и наличие команд, оптимизированных для эффективной обработки массива видеоданных. Например, команды SAA (Subtract-Absolute-Accumulate — счетверенного вычитания/взятия модуля/накопление малоразмерных чисел), которая хорошо подходит для поблочного анализа движения в видеоизображениях. Эта команда выполняет операцию вычитания над четырьмя парами чисел, взятия модуля каждой из разностей и накопления отдельных результатов. Все эти операции производятся в одном цикле.
Высокая производительность — это также не только высокая тактовая частота. Не менее важна организация памяти и производительность канала доступа к памяти. Например, поддержка режима двухмерного DMA, которая обеспечивает БЦВС возможность манипулирования данными в процессе передачи. Его применение устраняет непроизводительные издержки, характерные для пересылки данных, расположенных в памяти не по последовательным адресам. Кроме того, с помощью двухмерного DMA можно избирательно передавать вместо всего изображения только требуемый его участок. Производительность канала доступа к памяти — это прямое сокращение затрат на выборку данных из смежных адресов, которая является типовой операцией при обработке видео изображений.
Очевидно, что БЦВС в этих условиях может быть только параллельной. При этом она может быть как гомогенной класса MIMD, построенной из множества простейших процессоров, так и гетерогенной — состоящей из управляющего скалярного (суперскалярного) процессора класса SISD и параллельного сопроцессора класса SIMD.
Выбор структуры БЦВС безусловно определяется ТЗ на БПЛА, но при всех прочих гомогенная система более гибкая и имеет более высокий потенциал для последующей модернизации.
В таблице ниже показаны базовые характеристики параллельных процессоров Мультиклет в сравнении с некоторыми другими, решающими эти задачи.
Характеристики бортовых процессоров автономных дронов
Процессор |
Movidius Myriad 2 (Intel) |
MultiClet S3.01 |
Movidius Myriad X (Intel) |
MultiClet S3.02 |
NVIDIA Jetson AGX Xavier |
MultiClet S4.01 |
Тех-процесс, нм |
28 |
28 |
16 |
12 |
16 |
12 |
Состав |
12x SHAVE VLIW |
8 клеток |
16х SHAVE VLIW |
8 клеток |
512 ядер Volta |
64 клетки |
Производи-тельность, |
0,1 |
1 |
1
|
1,28 |
10 |
10 |
Внутренняя память, Мбайт |
2 |
2 |
2,5 |
2 |
- |
16 |
Пропускная способность, Гбайт/с |
400 |
512 |
450 |
640 |
- |
8х640 |
Площадь, |
76 |
28 |
71,28 |
19,8 |
300 |
20 |
Энерго-потребление,W |
1 |
1,2* |
1 |
0,8* |
20 |
7* |
* Значение энергопотребления получено при использовании типовых библиотек и условий синтеза и может быть уменьшено при использовании энергоэффективных библиотек и оптимизации RTL — кода процессора.
Разнородность решаемых задач выдвигает два условия к параллельным системам.
Первое, топология связей между простейшими процессорами должна быть инвариантна по отношению к решаемым задачам. Т.е. она не должна накладывать какие-либо ограничения на обмен данными между процессорами, зависящими от решаемой задачи.
Второе, простейшие процессоры должны иметь возможность одновременного и независимого решения нескольких задач и, таким образом, обеспечивать полную загрузку всех вычислительных ресурсов БЦВС.
Этим условиям, на сегодняшний день, наиболее полно отвечают мультиклеточные процессоры, эффективность которых определяется исключительно их архитектурой.
![Отладочная плата на основе мультиклеточного процессора R1 Отладочная плата на основе мультиклеточного процессора R1](https://habrastorage.org/getpro/habr/upload_files/133/ece/431/133ece43125c20489a9db49ddac4472c.png)
Мультиклеточный процессор — это реконфигурируемое множество простейших процессорных ядер (клеток), способных динамически, в процессе работы процессора, объединяться в группы, каждая из которых будет независимо решать свою задачу. Все клетки в группе объединяются полносвязной коммутационной средой, не налагающей какие-либо ограничения на решаемые алгоритмы. Распараллеливание решаемой задачи в группе клеток выполняется автоматически, без участия программиста и без какой-либо доработки программы. После выполнения задачи клетки группы переходят в режим сна, до момента включения их в новые группы. Таким образом, аппаратный ресурс процессора используется с максимальной эффективностью.
Бортовой компьютер дрона работает в реальном времени и, следовательно, оптимальное использование вычислительных ресурсов непосредственно влияет на количество решенных задач и энергопотребление.
Так, например, распознавание объектов (детектирование) в исходном кадре связано с использованием крайне затратных, как по памяти, так и по времени решения, методов машинного и глубокого обучения. Длительность распознавания зависит от количества объектов и их сложности. Спрогнозировать (для автономных дронов) это невозможно и, следовательно, невозможно, в традиционных системах (типа Myriad 2 или NVIDIA Jetson), заранее, оптимальным образом, распределить ресурсы между объектами.
Следовательно, динамическая реконфигурация процессоров MultiClet под поток задач, обеспечивает им существенное преимущество над этими решениями.
Предварительный анализ технических решений, лежащих в основе процессоров компаний INTEL и NVIDIA и ECAD оценки процессоров MultiClet показывают, что БЦВС 5-го уровня
автономности можно реализовать с использованием процессоров семейства MultiClet , используя техпроцесс на 28 нм. При этом:
процессоры семейства MultiClet существенно меньше по площади и, следовательно, стоимость процессора будет существенно меньше;
они ориентированы на реализацию рассматриваемых алгоритмов и, соответственно, в 5-8 раз эффективнее чем процессоры других традиционных архитектур, что было подтверждено техническими специалистами AMD Inc. на on-line семинарах в 2020 г.
использование процессоров семейства MultiClet для построения БПЛА 5-го уровня автономности — это шаг к построению и использованию «сильного» ИИ.
EqualsZero
В большинстве опубликованных за последние года 3 нейронок для детекции объектов время работы не зависит от количества объектов в кадре. Чаще всего предсказывается вероятность объекта клаcса Х в каждой локации. Может быть ограничение по максимальному количеству найденных объектов в кадре (например, 100) и обычно есть сильная зависимость от разрешения изображения (больше изображение - дольше инференс, но зато можно найти мельче объекты).
VSMC Автор
Вы имеете ввиду обработку изображения с выделением всех объектов определенного класса либо обнаружение одного объекта определенного класса на изображении?
EqualsZero
Нет, имел в виду поиск всех объектов на изображении из какого-то закрытого (или даже открытого) множества классов. Как обычно подразумевается в задаче Object Detection https://paperswithcode.com/sota/object-detection-on-coco