Разработка и запуск нейронной сети на одноплатном компьютере на базе архитектуры RISC-Vс использованием библиотеки OpenCV |
Автор: Кузьмин Р.С.,Шагалова П.А. |
07.12.2024 23:45 |
РАЗРАБОТКА И ЗАПУСК НЕЙРОННОЙ
СЕТИ НА ОДНОПЛАТНОМ КОМПЬЮТЕРЕ НА БАЗЕ АРХИТЕКТУРЫ RISC-V Кузьмин Р.С., студент Шагалова П.А., к.т.н., доцент Аннотация. В рамках данной работы исследована
возможность реализации и запуска нейросетевого решения на одноплатных компьютерах на
базе архитектуры RISC-V. Для реализации нейронной сети, использован фреймворк PyTorch, запуск выполнен на одноплатных
компьютерах MangoPi и LicheePi. Для запуска нейросетевых моделей в формате ONNX
на целевой процессорной архитектуре использованы средства модуля DNNбиблиотеки OpenCV. Ключевые слова: искусственная нейронная сеть, компьютерное зрение, процессорная архитектура
RISC-V,
библиотека OpenCV. Мобильные и встраиваемые системы являются неотъемлемой частью современного мира, поэтому разработка программного обеспечения для микроконтроллеров и микропроцессоров была и остается актуальной. Среди процессорных архитектур, используемых при разработке встраиваемых систем, следует особо отметить RISC-V [3]. Данная архитектура обладает рядом преимуществ: она является открытой, дает возможность использовать и создавать расширения и позволяет адаптировать процессоры под различные требования.При разработке программных решений одним из наиболее востребованных инструментов являются искусственные нейронные сети[1]. Процесс обучения нейронных сетей является ресурсоемким и невозможен на маломощных устройствах, поэтому при необходимости реализации интеллектуальных функций на микрокомпьютерах обучение выполняется на сервере, а затем обученная модель переносится и запускается на целевой архитектуре.Исследованию возможности запуска нейронных сетей на одноплатных компьютерах на базе архитектуры RISC-V посвящена данная статья. В процессе выполнения работы была обучена нейронная сеть для классификации изображений на два класса, с использованием фреймворка PyTorch, апробированы несколько нейросетевых архитектур, включая многослойный персептрон и сверточные нейронные сети (CNN). Для обучения использовалась кросс-энтропия[2]в качестве функции потерь и оптимизатор Adam [2] с настройкой скорости обучения (learningrate) на уровне 0.001. Также применялись различные преобразования для предварительной обработки входных изображений, такие как изменение размера, нормализация и аугментация данных [4]. После завершения тренировки модели, она была экспортирована в формат ONNX(Open Neural Network Exchange), что обеспечило совместимость и позволило запускать модель на различных платформах и процессорах, включая более лёгкие и специализированные решения. Для переноса и запуска обученной сети на архитектуру RISC-Vиспользован функционал модуля DNN (Deep Neural Networks) библиотеки алгоритмов компьютерного зрения OpenCV [5]. Загрузка модели в формате ONNX с использованием средств библиотеки OpenCV представляет собой ключевой шаг в процессе развертывания нейронных сетей на архитектуре RISC-V. Процесс загрузки модели был выполнен с использованием функции cv2.dnn.readNetFromONNX, которая позволила интегрировать обученную нейросеть в рабочее окружение. Сборка кода библиотеки OpenCV и программного решения, которое загружает обученную модель из файла и инициирует её выполнение, проводилась на персональном компьютере с применением кросс-компилятора RISC-V GNU Compiler Toolchain [6]. Для переноса файлов с основной машины на плату было настроено удалённое подключение к плате с использованием протокола SSH. В результате
выполненной работы на платах MangoPi и LicheePi была успешно обучена и запущена
нейронная сеть, при этом обучение производилось с использованием фреймворка
PyTorch, конвертация и запуск на целевой архитектуре̶ с использованием возможностей библиотеки OpenCV
и кросс-компилятора RISC-V GNU Compiler Toolchain. Выполненная работа расширяет потенциальные сферы применения
технологии компьютерного зрения на устройствах, основанных на архитектуре RISC-V.Данная архитектура известна своей
открытостью и гибкостью, что делает её привлекательной для отечественных производителей,
стремящихся к созданию кастомизированных и эффективных решений независимых от
иностранного программного обеспечения и технологий. Литература 1.
Аггарвал, Ч. Нейронные сети и глубокое
обучение. СПб.: Диалектика, 2020. 752 с. 2.
Клетте Р. Компьютерное зрение. Теория и
алгоритмы. М.: ДМК Пресс, 2019. 506 с. 3.
Харрис,
Сара Л. Харрис Дэвид. Цифровая схемотехника и архитектура компьютера: RISC-V. ДМС
Пресс, 2021. 810 с. 4.
Чжен
Э., Казари А. Машинное обучение: Конструирование признаков. Принципы и техники
для аналитиков. М.: Бомбора, 2019. 240 с. 5.
OpenCV [Электронный ресурс] Режим доступа: https://opencv.org/(дата обращения: 25.11.2024) 6.
RISC-V
GNU CompilerToolchain [Электронный ресурс] Режим доступа: https://github.com/riscv/riscv-gnu-toolchain (дата обращения: 25.11.2024) |