Применение NM Pilot и NM Vision в АО «НИИАС» РЖД

Адаптация программного комплекса «ЧИЖ» для работы на отечественном ускорителе NM Vision

Одна из приоритетных задач современной России – оснащение отечественного производства системами на основе «искусственного интеллекта» (ИИ). Эти системы решают широкий круг задач, в частности – обеспечивают контроль продукции в режиме реального времени, безопасность в сложных условиях и т.д.

Развитие и внедрение систем ИИ требует сильной и производительной элементной базы – т.н. ускорителей нейросетевых вычислений. Во встраиваемых производственных системах и системах безопасности такие ускорители реализованы в виде одноплатных микрокомпьютеров. До недавнего времени доминирующие позиции в России занимал микрокомпьютер Jetson Nano компании NVIDIA. Однако в марте 2022 г. NVIDIA официально объявила об уходе из России. И сегодня перед отечественными компаниями стоит задача обеспечения импортозамещения в области ИИ. Одним из примеров успешной работы в этом направлении является адаптация программного комплекса «ЧИЖ» для работы на отечественном портативном компьютере NM Vision, выпускаемом НТЦ «Модуль».

Комплекс «ЧИЖ»

Программно-технический комплекс компьютерного зрения «ЧИЖ» (производства компании «Техтранс») включает в себя ПО, использующее модель компьютерного зрения YOLOv4 для детекции людей на железнодорожном переходе. Задача комплекса – обнаружение человека на объектах инфраструктуры железных дорог и его информирование о необходимости выхода из опасной зоны путем подачи светового или звукового сигнала. Работа ПТК «ЧИЖ» предполагает считывание RTSP-потока с четырех камер и программного объединения четырех кадров в единый кадр, на котором происходит обнаружение объектов. Ведется контроль состояния камеры и проверка факторов влияния внешней среды, таких как засветление и запыление и т. д.

Ход адаптации ПТК «ЧИЖ» под отечественный портативный компьютер 

В связи с уходом компании NVIDIA с российского рынка встал вопрос об адаптации программного комплекса «ЧИЖ» для работы на отечественном ускорителе. Российским аналогом NVIDIA Jetson Nano является портативный компьютер NM Vision производства НТЦ «Модуль». Однако он заметно отличается от зарубежного образца.

В ходе работ по адаптации выявился ряд дополнительных особенностей. Первой из них стала несовместимость программного обеспечения. Специальный компилятор нейронных сетей NMDL (NeuroMatrix Deep Learning), входящий в состав ПО ядер NeuroMatrix (производства НТЦ «Модуль») реализован на языке программирования C++, а ПТК «ЧИЖ» – на языке Python, из-за чего было невозможно напрямую управлять NM Mezzo mini. В качестве решения была произведена интеграция C++ функций в библиотеку для языка Python с помощью модуля Pybind11, который связывает скомпилированные библиотеки в формате .so с интерпретатором Python. Это позволило использовать программное обеспечение модуля NM Mezzo mini на языке Python.

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

Третья особенность нейроускорителя заключается в поддержке операций FP32 и FP64, в то время как Jetson Nano поддерживает FP32 и FP16. Кроме того Jetson Nano, являясь продуктом NVIDIA, поддерживает библиотеку для ускорения нейросетевых вычислений TensorRT, что в совокупности с использованием операций половинной точности FP16 дает высокую скорость обработки. Тесты показали, что Jetson Nano выигрывает по скорости примерно в пять раз по сравнению с NM Mezzo mini. Для ликвидации этого отставания разработчики воспользовались уникальной возможностью NM Mezzo mini производить обработку сразу на четырех независимых юнитах, по сути, запуская четыре независимые модели, которые обрабатывают данные параллельно, что невозможно реализовать на Jetson Nano.

Потоковая обработка шла в несколько этапов и позволила одновременно загрузить все четыре юнита нейроускорителя, получая данные с каждого из них в тот момент, пока остальные заняты обработкой. Также потоковая обработка позволила увеличить скорость обработки кадров примерно в три раза, достигнув таким образом 30 FPS для модели YOLOv5n с разрешением 320х320. Таким образом, удалось достичь результатов детекции, сравнимых по точности и скорости с моделью YOLOv4 на Jetson Nano.

Анализ хода адаптации ПТК «ЧИЖ» под отечественный портативный компьютер позволяет сделать ряд выводов. Отечественные вычислители дают большой спектр возможностей по разработке программного обеспечения, использующего различные модели сверточных нейронных сетей, с учетом некоторых ограничений, связанных с использованием определенных слоев нейронных сетей. Описанная уникальная возможность производить независимые вычисления на четырех юнитах позволила увеличить скорость обработки в три раза без потери точности. Таким образом скорость обработки на NM Vision сравнима со скоростью обработки на Jetson Nano, при этом точность обработки NM Vision выше.

Вернуться к проектам