Одна из приоритетных задач современной России - оснащение отечественного производства системами на основе "искусственного интеллекта" (ИИ). Эти системы решают широкий круг задач, в частности - обеспечивают контроль продукции в режиме реального времени, безопасность в сложных условиях и т.д.
Развитие и внедрение систем ИИ требует сильной и производительной элементной базы - т.н. ускорителей нейросетевых вычислений. Во встраиваемых производственных системах и системах безопасности такие ускорители реализованы в виде одноплатных микрокомпьютеров. До недавнего времени доминирующие позиции в России занимал микрокомпьютер 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 выше.
Научно-технический центр "Модуль" (НТЦ "Модуль") - российский лидер в области разработки и производства бортового оборудования и микроэлектронного дизайна. Компания основана в 1990 году. Ключевые направления деятельности: бортовая аппаратура, микроэлектронные компоненты и IP-блоки, искусственный интеллект, нейронные сети, навигация.
ООО "Техтранс" более 25 лет занимается разработкой аппаратуры обеспечения безопасности на объектах ОАО "РЖД". Приоритетное направление - разработка программно-технических комплексов компьютерного зрения на основе ИИ. Оборудование компании представлено на объектах инфраструктуры шести железных дорог России. "Техтранс" специализируется на оказании услуг по разработке программных и аппаратных решений на основе современных технологий компьютерного зрения и глубокого машинного обучения, а также проведении практических исследований для применения технологий искусственного интеллекта в сфере медицины и энергосбережения.