В CodeInside нашли альтернативу Nvidia в задачах компьютерного зрения
Команда CV-инженеров ИТ-компании CodeInside нашла альтернативу одноплатному компьютеру Nvidia Jetson для детекции и трекинга объектов.
Содержание |
В компании разработали собственное цифровое решение для мониторинга транспортного потока — Smart Traffic System. Оно, в свою очередь, работает на одноплатном компьютере Nvidia Jetson. Санкции внесли свои коррективы в будущее проекта: CV-инженерам CodeInside пришлось искать альтернативу для бесперебойной работы системы.
Smart Traffic System — ИТ-решение для сбора и анализа данных о транспортных потоках в реальном времени по данным видеокамеры.
Собранные данные позволяют учреждениям, реализующим организацию и развитие интеллектуальных транспортных систем, грамотно настраивать Автоматизированную Систему Управления Дорожным Движением (АСУДД).
Аппаратно-программный комплекс, на котором разворачивается решение STS, включает в себя одноплатный компьютер Nvidia Jetson, который производит высокоскоростные вычисления и обработку данных, собранных с помощью камер видеонаблюдения. Компьютеры Nvidia не дешевые, срок поставки от двух месяцев и их перспектива на российском рынке не очевидна из-за санкций. Именно по этой причине мы, как разработчики программного обеспечения, начали искать альтернативы в железе, чтобы ПО работало максимально эффективно. Максим Семенкин, СЕО CodeInside.
|
Предпосылки к исследованию
В рамках создания интеллектуальной транспортной системы перед CodeInside стояли следующие задачи:
- подсчет автомобильного трафика,
- подсчет пешеходного трафика,
- определение средней скорости движения на дороге,
- определение гос. номера автомобиля.
Поставленные задачи можно решать различными методами, например, установить датчики движения или камеры видеонаблюдения. Наиболее оптимальным решением является установка камер, передающих видео на устройство с соответствующим программным обеспечением. Такая реализация позволяет не только подсчитывать количество транспорта, но и классифицировать его, а всего одна камера может охватывать весь перекресток.
Применение датчиков движения требует установки оборудования на каждую полосу перекрестка, что увеличивает стоимость системы, а также трудоемкость монтажа. Далеко не все описанные выше задачи можно решить с помощью таких датчиков.
Таким образом, эти задачи становятся задачами компьютерного зрения. Один из методов решения таких задач заключается в использовании детектора и трекера объектов.
Детектор объектов — это алгоритм, который позволяет находить объекты на изображении. Например, на изображении с камеры можно обнаружить транспортные средства (ТС), вычислить их положение в кадре, а также классифицировать их (легковое авто, грузовое, автобус и т.д.).
Трекер объектов представляет собой алгоритм, позволяющий отслеживать перемещение объекта на последующих кадрах видео. То есть, данный алгоритм позволяет присвоить идентификатор каждому объекту в кадре и указать, где находится тот же объект на следующем кадре.
Сначала детектор объектов используется для нахождения всех ТС в кадре. Затем трекер объектов используется для отслеживания перемещения каждого обнаруженного ТС. Когда ТС покидает область перекрестка, оно считается учтенным, и данные о количестве выехавших ТС обновляются.
Чисто теоретически…
Перед тем, как перейти к исследованию аналогов одноплатника, необходимо рассмотреть алгоритмы, необходимые для решения задач и соотнести с тем, что предлагает рынок. Подробно CodeInside отразили эту часть вопроса в статье на Хабр «Расчет транспортного потока на основе YOLOv5 и DeepSORT на базе Deepstream».
Про детекторы
Существует большое количество алгоритмов, способных решать задачу детекции.
Из существующих алгоритмов, по мнению экспертов CodeInside, YOLOv5 является подходящим по следующим причинам:
- Возможность работы в реальном времени, так как решение относится к one-stage детекторам и требует небольших вычислительных затрат;
- Большое коммьюнити, что позволяет легко находить решение практически любых проблем;
- Решение опубликовано 25 января 2020 года, благодаря чему уже найдено и исправлено большое количество багов;
- Развернуть решение можно на любом ноутбуке по несложной инструкции.
Существуют и более новые версии YOLO с новым набором функций, например, YOLOv6, YOLOv7 и YOLOv8. YOLOv8, дополнительно позволяет выполнять еще и сегментацию объектов. При организации нового проекта лучше использовать YOLOv8, так как данная версия быстрее и точнее YOLOv5. При этом YOLOv5 по-прежнему остается хорошим решением и в большинстве случаев не сильно проигрывает YOLOv8, Ярослав, CV-инженер CodeInside.
|
Про трекеры
Трекинг, в первую очередь, нацелен на присвоение уникального идентификатора каждому объекту. Это позволяет соотнести один и тот же объект между кадрами. Для этого используются данные детектора объектов и специально разработанный алгоритм, позволяющий отслеживать объекты в кадре по мере их перемещения. При помощи присвоения идентификатора (ID) каждому объекту становится возможным вести подсчет уникальных объектов на видео.
Так же, как и в случае с детекторами, существует большое количество решений. Несмотря на это, все же наиболее оптимальным представляется DeepSORT по ниже указанным причинам.
- Возможность работы в реальном времени, так как решение является относительно легковесным;
- Легкий запуск, так как есть реализация на Tensorflow и PyTorch.
- Довольно большое комьюнити).
- Имеет большое количество реализаций для различных платформ и фреймворков.
Проблема ресурсов и влияние санкций
Для анализа дорожного трафика используются нейросетевые алгоритмы. Несмотря на высокую эффективность, они все же имеют один существенный недостаток: требовательность к ресурсам. Для исполнения нейронных сетей нужно либо специальное оборудование и его поддержка, либо максимально эффективное использование существующего. Для ИТС наиболее актуально встраиваемое (embedded) железо. Такое оборудование позволяет на месте собирать статистику с исследуемых участков дороги. Однако это усложняет задачу, так как данное оборудование имеет ограниченные вычислительные мощности по сравнению с их серверными аналогами.
Почему Nvidia?
Крупные производители обычно предлагают много различных аппаратных продуктов, но все они программируются в рамках одного фреймворка. Это фреймворки с открытыми API, которые можно скачивать и использовать.
Как правило, они предоставляют возможность конвертировать нейросеть в нужный формат и использовать ее максимально эффективно. Nvidia здесь не исключение, а скорее даже наоборот, некий эталон. Nvidia предоставляет следующие продукты для ускорения вычислений.
- CUDA — платформа параллельных вычислений от Nvidia, которая позволяет использовать графические процессоры для ускорения вычислений.
- TensorRT — это оптимизированный для работы с глубокими нейронными сетями фреймворк от Nvidia, который позволяет ускорить работу нейросетей за счет оптимизации их архитектуры и вычислений. Использование этих технологий позволяет значительно ускорить обработку видео и анализ данных в реальном времени.
- Jetson — это серия встраиваемых вычислительных платформ от Nvidia, предназначенных для работы с искусственным интеллектом и машинным обучением. Они оснащены мощными процессорами и графическими ускорителями, которые позволяют обрабатывать данные в реальном времени и выполнять сложные вычисления. Самый дешевый из них — Jetson Nano. Он содержит маломощный процессор с архитектурой ARM (4 ядра на 1.5 ГГц), а также видеокарту с 128 ядрами.
- Nvidia даже предоставляет SDK, который включает в себя мощь CUDA и TensorRT, и который оптимизирован для работы на Jetson — Deepstream.
Jetson является лидером среди конкурентов, так как сопровождается понятной и полной документацией с большим количеством примеров. Однако санкции со стороны компании Nvidia в отношении РФ затрудняют покупку продукции.
Основная проблема для компьютерного зрения в текущих условиях — это уход Nvidia с рынка РФ, что запрещает официальные поставки продукции. В связи с этим становится сложнее обеспечить работу в production разработанных проектов. Проще всего вывести проект в production именно с использованием Nvidia из-за большого количества готовых решений и подробной документации. При этом параллельный импорт практически полностью решает данную проблему. Ярослав, CV-инженер CodeInside.
|
Аналоги
До проведения НИР эксперты CodeInside рассмотрели аналоги одноплатного компьютера Nvidia Jetson.
Huawei Atlas 500
Периферийная ИИ-станция Huawei Atlas 500 также предназначена для использования на границе вычислительных систем для анализа больших данных. Устройство выполнено в компактном корпусе и характеризуется исключительной плотностью размещения вычислительных ресурсов. Основное назначение станции — интеллектуальные системы типа «умный город», автоматизация производственных процессов.
Atlas обладает мощным NPU модулем, который делает inference модели YOLOv5s за 2.2 миллисекунды. Среди достоинств — мощный NPU, который поставляется сразу в промышленном корпусе.
Sophon
По мнению CodeInside — некая темная лошадка. Имеют несколько edge устройств, которые, судя по характеристикам, конкурируют c Jetson Nano и TX2.
Так же, как и Атлас, устройства поставляются сразу в промышленном корпусе. Вместе с устройствами подставляется специальный SDK.
BMNNSDK (BITMAIN Neural Network SDK) предоставляет ряд программных инструментов, включая базовую среду драйверов, компилятор и инструмент inference.
Данное устройство еще находится на стадии изучения. На официальном сайте даже имеется целый онлайн-курс по разработке под эти устройства. Однако, большая часть информации изложена на китайском языке.
Выбор CodeInside для развития собственного продукта
Rockchip
Rockchip RK-3588S-PC — это одноплатный компьютер, оснащенный 4-х ядерным процессором Cortex-A76 @ до 2.4 ГГц, 4-х ядерным видеопроцессором Arm Mali-G610 MP4 с поддержкой OpenGL ES3.2 / OpenCL 2.2 / Vulkan1.1, 6 TOPS NPU и декодирование видео 8Kp60 H.265 / VP9 / AVS2, 4Kp60 AV1 и кодирование видео 8Kp30 H.265/H.264.
На выбор по оперативной памяти представлены конфигурации на 4 Гб, 8 Гб, 16 Гб или 32 Гб LPDDR4 / LPDDR4x / LPDDR5.
Для проведения НИР мы остановили внимание на этом варианте. Решение выбрать именно Rockchip было принято по нескольким причинам:
В целом Rockchip оставил скорее позитивный опыт использования. Оборудование имеет подходящие технические характеристики, необходимые для несложных задач детекции и трекинга объекта, в рамках быстрого разворачивания проекта может конкурировать в них с Jetson Nano. Алексей, CV-инженер CodeInside.
|
Изначально Rockchip приобретался для того, чтобы попробовать заменить Nvidia Jetson, который используется сейчас для решения следующих задач:
- Object detection — детектор объектов на базе YOLOv5 (поиск объектов в кадре и их классификация);
- Object tracker — трекер объектов в видеопоследовательности, на Jetson используются трекеры NvDCF или DeepSORT;
- Text recognition. Используется в целях распознавания номеров. На Jetson используется проект NomeroffNet или Deepstream-lpr.
Результаты тестирования алгоритмов на базе Rockchip командой CodeInside подробно изложены в соответствующей статье в блоге команды на vc.ru.
Проведенные тестирования способствовали переводу системы Smart Traffic System на оборудование производителей дружественных стран.
Почему не отечественный аналог?
Российских аналогов Nvidia Jetson, сопоставимых по техническим характеристикам, на момент проведения исследования, не существует. Но команда нашла несколько производителей из Китая, продукцию которых возможно приобрести без сложностей.
Есть ли жизнь без Nvidia?
Существуют устройства, которые могут быть альтернативой продуктам Nvidia. Устройства и их SDK сложны в освоении во многом из-за проблем с документацией.
Из сравнительной таблицы видно, что точность трекинга «других» типов транспортных средств на Rockchip значительно ниже. Это вызвано проблемной конвертацией модели YOLOv5. Ведутся работы по приведению точности к показателям Jetson. При этом точность трекинга легковых автомобилей достаточно высока, что позволяет использовать текущую конфигурацию для общего подсчета трафика.
Изучаемые устройства требуют высокую квалификацию разработчика для развертывания собственных моделей, а также любого другого использования вычислительных мощностей (OpenCL, Vulkan, RKNN Toolkit, нативные кодеки).
Как будет развиваться компьютерное зрение в России в условиях импортозамещения в ближайшие годы?
Российский рынок одноплатных компьютеров для ускорений вычисления с конца XX держался на трех глобальных компаниях — Nvidia, Advanced Micro Devices (AMD) и Intel. Российские инженеры и разработчики работали над иностранными решениями в российских офисах лидеров индустрии.
Также, как и в других ИТ-направлениях, было проще приобрести готовые и уже развитые устройства, нежели создавать отечественное с нуля.
По данным CNews, компания Nvidia по итогам II квартала 2022 г. (завершился 30 июня) удерживала 79% рынка, оставив 20% компании AMD (статистика Juniper Research) и 1% — Intel.
После объявления международных компаний об уходе из России, поставки необходимого оборудования продолжаются производиться по пути параллельного импорта. В период с января по октябрь 2023 года, по данным Коммерсанта, зафиксировано сокращение ввозимого оборудования на территорию РФ на 64%.
На текущий момент, в РФ наблюдается рост в серверном направлении российского рынка вычислительной техники и СХД. Направление производства одноплатных микрокомпьютеров и встраиваемых систем только начинает вставать на рельсы.
По мнению отраслевых изданий, мировой рост рынка видеоаналитики составляет десятки процентов год. Россия не исключение — тоже активно осваивает рынок. Видеоаналитика дает быстрый и понятные результат, который в итоге помогает снижать затраты или решать совершенно новые задачи.
Решения на базе видеоаналитики также востребованы у госзаказчика, но для него определенно важно иметь решение, построенное на базе отечественных компонентов или компонентов из дружественных стран. Стандартом де-факто, на сегодняшний день для видеоаналитики, являются аппаратные компоненты от Nvidia, поставки которых в Россию затруднены и могут составлять от двух месяцев. Поэтому для РФ стоит задача в поиске аппаратных альтернатив и портированию туда существующих решений. Как раз этой задачей мы в компании и занимаемся. Максим Семенкин, CEO CodeInside.
|
При всех санкциях в сторону РФ, никаких проблем с доступом к интеллектуальным ресурсам (статьям или open source репозиториям) не наблюдается. Это позволяет развиваться данной области также, как и раньше.
Изменения будут происходить на этапе вывода решений в production. Уже сейчас многие компании ищут замену Nvidia. Большое количество аналогов предлагается со стороны китайских производителей. При этом важно понимать, что в области компьютерного зрения Nvidia является бесспорным лидером, что затрудняет быстрый переход на аналоги. На мой взгляд, используемые технологии (детекторы, трекеры, классификаторы и т.д.) будут развиваться также, как и во всем мире. Их же непосредственная работа в production будет осуществляться на новых устройствах, плавно уменьшая долю Nvidia на рынке РФ». Ярослав, CV-инженер CodeInside.
|
Компания CodeInside специализируется на создании уникальных ИТ-продуктов с применением технологий CV и ML для интеллектуальных транспортных систем и других отраслей:
- строительство и девелопмент
- ритейл
- промышленность
- логистика
- медицина
- маркетинг и реклама
Решение Smart Traffic System зарегистрировано в реестре отечественного ПО, в государственном реестре программ для ЭВМ и размещено в каталоге «Карта инновационных решений». Подробнее о продукте на сайте.