Машинное обучение на основе архитектур глубоких нейронных сетей (DNN) продемонстрировало впечатляющие результаты в многочисленных экспериментах, особенно в таких задачах, как распознавание объектов и людей на изображениях. Многие из этих экспериментов, а также первые развертывания в реальных условиях были выполнены на высокопроизводительном оборудовании облачного сервера, которое может обеспечить требуемую пропускную способность вычислений.

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

Возьмем, к примеру, систему камер, которая используется для отслеживания активности банкомата (банкомата) в таких ситуациях, как социальное дистанцирование во время недавней пандемии COVID-19. Банки пришли к выводу, что для них важно внедрить автоматический мониторинг для проверки условий в каждом банкомате, чтобы люди в очереди или поблизости не стояли слишком близко друг к другу. Кроме того, они могут захотеть убедиться, что только посетители в масках имеют доступ к банкоматам в вестибюле или к самим машинам.

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


Выбор модели
Интеграторам, которым нужны процессоры для периферийных вычислений, доступно множество вариантов для решения проблем производительности, связанных с DNN. Некоторые используют архитектуру модифицированных графических процессоров (GPU) для повышения пропускной способности. Однако для обработки DNN конструкции специализированных нейронных процессоров (NPU) могут предложить превосходное соотношение производительности и энергии.

Наиболее важным соображением является выбор оборудования, которое предлагает высокую гибкость, а не только хорошие результаты для стандартных DNN, таких как ImageNet или MobileNet. Часто на этапах предварительной обработки требуется преобразовать данные изображения в форму, подходящую для приложения, и задействованные DNN должны быть точно настроены для обработки конкретных требований приложения.

В примере с мониторингом банкоматов есть несколько элементов, которые демонстрируют необходимость точной настройки и предварительной обработки. В своей работе над этим приложением специалист по машинному обучению Arcturus Networks проанализировал образцы данных изображений от банковского клиента. Данные показали, что острые углы камеры, характерные для небольших закрытых помещений банкоматов, приводят к потере уверенности в обнаружении, когда люди движутся под камерой (рис. 1) . Уверенность в результатах может измениться с более 98% для изображения, на котором лицо следующего покупателя ясно, до менее 40%, если камера видит макушку его головы с небольшой частью лица.

1. Перспективы под острым или большим углом могут значительно снизить надежность обнаружения.
1. Перспективы под острым или большим углом могут значительно снизить надежность обнаружения.


Необходимость обращаться с масками добавляет сложности. Это не так тривиально, как просто научить сеть распознавать, что есть класс людей в масках. Внешний вид шлемов или других защитных покрытий лица также можно рассматривать как средства индивидуальной защиты (СИЗ). Сеть требует способности учитывать эти другие типы покрытий лица или головы с их собственными классами обнаружения.

К системе могут быть предъявлены и другие требования, такие как способность обнаруживать подозрительное поведение (например, праздношатание) и в случаях, когда объект не всегда находится в поле зрения. Они могут входить и выходить из поля зрения камеры в разные моменты времени. Это требует возможности отслеживать объекты с течением времени, а не просто обнаруживать тех, кто носит маски, и чтобы люди в поле зрения находились на достаточном расстоянии.

Каждое из этих требований требует корректировки работы модели, а также этапов предварительной обработки. При просмотре видео в реальном времени оценить, носит ли субъект СИЗ, сложнее, чем в контролируемых экспериментах, потому что частичная окклюзия и поза тела вызывают вариабельность результатов обнаружения.Для повышения точности определение должно производиться с использованием результатов нескольких кадров (рис. 2) . Это, в свою очередь, требует отслеживания движения для каждого уникального человека в поле зрения. В принципе, отслеживание движения само по себе является эффективным выбором, поскольку оно относительно легкое с точки зрения вычислительной мощности. Однако он полагается на постоянное обнаружение. В простой системе распознавания изображений окклюзии, препятствия или выход человека из поля зрения и повторный вход в него могут привести к тому, что к человеку будут относиться как к новым объектам, а не к их повторной идентификации.

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

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

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


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

3. Сравнение рабочих процессов отслеживания движения и внешнего вида.
3. Сравнение рабочих процессов отслеживания движения и внешнего вида.


Гибкая Архитектура
Требуется гибкая архитектура, способная обрабатывать различные элементы реальной архитектуры машинного обучения. В своей работе Arcturus использовал преимущества гибкой комбинации элементов обработки в архитектуре NXP i.MX 8M Plus для создания легко настраиваемого конвейера технического зрения. В подходе Arcturus различные этапы обработки представлены узлами. Узел может быть моделью вывода, алгоритмом предварительной или последующей обработки, извлечением данных или доступом к внешней или удаленной службе. Модель аналогична контейнерному подходу, используемому в облачных вычислениях, но адаптирована к ресурсным ограничениям периферийных вычислений.

Каждый узел реализован как микросервис и связан между собой через плотно синхронизированные сериализованные потоки данных. Вместе эти узлы создают целостный конвейер видения от получения изображения до локальных действий. Для базовых приложений узлы конвейера могут работать на одном физическом ресурсе. Более сложные конвейеры могут иметь узлы, распределенные по оборудованию, например ЦП, графические процессоры и NPU в одном или нескольких процессорах i.MX 8M Plus или даже в облаке.

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

Эта конвейерная архитектура в SDK Arcturus Brinq Edge Creator позволяет масштабировать производительность ИИ за пределы одного физического процессора. I.MX 8M Plus может создавать вложения для DNN на одном или нескольких устройствах i.MX8M, которые могут выполнять обнаружение на одной или нескольких камерах. Эти устройства можно легко соединить между собой с помощью сетевой структуры через один из двух выделенных MAC-адресов Ethernet на каждом из процессоров.

Как это часто бывает в машинном обучении, разработка, обучение и точная настройка могут выполняться на рабочей станции, возможно, с использованием ускорения на основе облака. После обучения, точной настройки и проверки модели модели будут преобразованы для более эффективной обработки на оборудовании NPU, часто за счет сокращения 32-битных операций с плавающей запятой, необходимых для обучения, до 8-битных целочисленных вычислений. Эффективность дополнительно повышается за счет использования предварительно созданных слоев и моделей, оптимизированных для периферийной среды.


Arcturus предоставляет каталог, содержащий готовые модели с различной точностью. Эти модели проходят предварительную проверку на поддержку всех основных периферийных сред выполнения - Arm NN, TensorFlow Lite и TensorRT с поддержкой CPU, GPU и NPU. Доступны инструменты для обучения или точной настройки моделей, а также для настройки набора данных, очистки изображений и дополнения.

Результаты этой комбинации оптимизированной среды выполнения, квантованной модели и оборудования NPU могут предложить 40-кратное повышение производительности по сравнению с другими общедоступными системами, использующими ту же модель. Полнота в такой библиотеке жизненно важна. Часто пограничные версии среды выполнения не поддерживают все уровни, необходимые для всех типов сетей. Новые модели, которые могут демонстрировать лучшую производительность, как правило, менее широко поддерживаются, чем более старые модели, используемые в часто цитируемых тестах.

Последний компонент - это механизм логического вывода времени выполнения, который может загружать модель DNN в i.MX 8M Plus. Среда разработки программного обеспечения для машинного обучения eIQ от NXP предоставляет портированные и проверенные версии механизмов вывода Arm NN и TensorFlow Lite.

Резюме
Гибкость и масштабируемость производительности - два жизненно важных элемента в реальных приложениях для машинного обучения. Каждое приложение индивидуально и влияет не только на выбор DNN, но и на его обработку. Фреймворк, поддерживающий эту потребность в гибкости, жизненно важен. И это ключевая причина того, почему сочетание среды микросервисов, разработанной Arcturus, и оборудования для обработки данных, такого как NXP i.MX 8M Plus, может стать мощным инструментом для миграции машинного обучения на периферию.