Rockchip · AI & Linux Hub

AI-инференс

RKNN на RV1103/RV1106, часть 1: развёртывание, платформы и репозитории

RKNN на RV1103/RV1106, часть 1: развёртывание, платформы и репозитории · RKNN2 V2.5.0

· ArmSoM Editorial · Rockchip source documentation · 5 мин чтения

Справочный материал RKNN2 V2.5.0 для RV1103/RV1103B/RV1106/RV1106B с соответствующими SDK платы, драйвером RKNPU2 и librknnmrt.so. Совместимая плата ArmSoM не подтверждена. Журнал Linux 5.10.160 и результаты инференса — примеры из источника, а не испытания ArmSoM. Питание, подключение и драйверы сверяйте с BSP конкретной платы.

Источник: локальные китайский и английский PDF V2.5.0. Китайский использует свой текст и рисунки, английский, русский и немецкий — английский источник. Все технические разделы, команды и таблицы сохранены; восстановлены переносы PDF и отступы деревьев каталогов. Старая версия драйвера в примере журнала не является рекомендованной: рекомендация приведена в тексте. Загрузки и установки pip без фиксации версии сверяйте с SDK.

Rockchip source

RKNN на RV1103/RV1106, часть 1: развёртывание, платформы и репозитории

RKNN на RV1103/RV1106, часть 2: подключение и проверка оборудования

RKNN на RV1103/RV1106, часть 3: среда ПК и Mini Runtime

RKNN на RV1103/RV1106, часть 4: YOLOv5, Python и развёртывание C

RKNN на RV1103/RV1106, часть 5: Docker, диагностика и документация

1. Перед началом работы

Руководство описывает кратчайший путь к первому запуску RKNN SDK на RV1103/RV1103B/RV1106/RV1106B: подключение оборудования, проверку среды, преобразование модели, отладку с подключённой платой и развёртывание C/C++ на плате.

Полный процесс разработки, преобразование и квантование моделей, установку среды и систематическое устранение ошибок см. в RKNN2_SDK_Development_Guide. Python API RKNN-Toolkit2 описаны в RKNN2_Toolkit_Python_API_Reference, Python API RKNN-Toolkit-Lite2 — в RKNN2_Toolkit_Lite_Python_API_Reference. C API на плате и интерфейсы RKNPU2 Mini Runtime (librknnmrt.so) описаны в RKNN2_Runtime_C_API_Reference.

1.1 Цели руководства

После выполнения руководства вы сможете:

  1. Убедиться, что компьютер разработки и плата подключены правильно.

  2. Установить и проверить среду разработки RKNN-Toolkit2.

  3. Проверить или обновить RKNPU2 Mini Runtime (librknnmrt.so) и rknn_server на плате.

  4. Загрузить модель YOLOv5 через RKNN Model Zoo и преобразовать её в RKNN.

  5. Выполнить инференс на плате с помощью RKNN Python Demo.

  6. Собрать и запустить RKNN C Demo на плате и проверить результат.

1.2 Цепочка развёртывания RKNN SDK

Первый запуск на RV1103/RV1103B/RV1106/RV1106B в основном использует инструменты разработки на компьютере и среду выполнения на плате.

Компонент Расположение Назначение
RKNN-Toolkit2 Компьютер Преобразует исходные модели, например ONNX, в RKNN и поддерживает отладку с подключённой платой
RKNN Model Zoo Компьютер Примеры преобразования моделей, Python Demo и C/C++ Demo
rknn_server Плата Обрабатывает запросы инференса, поступающие от компьютера через USB
RKNPU2 Mini Runtime (librknnmrt.so) Плата Загружает модели RKNN и вызывает NPU для инференса

Различия между RKNPU2 Mini Runtime и RKNPU2 Runtime:

Параметр RKNPU2 Mini Runtime RKNPU2 Runtime
Библиотека librknnmrt.so librknnrt.so
Назначение Сокращённый Runtime для платформ с ограниченными ресурсами, таких как RV1103/RV1103B/RV1106/RV1106B Стандартный RKNPU2 Runtime
Применимость к руководству Применим: далее библиотекой на плате называется librknnmrt.so Не применим к примерам. Не заменяйте librknnmrt.so на librknnrt.so

Далее под RKNPU2 Mini Runtime понимается именно библиотека librknnmrt.so на плате. За исключением этого сравнения двух вариантов, общее название RKNPU2 Runtime для библиотеки платы не используется, чтобы не путать её с librknnrt.so.

Рекомендуемая последовательность первого запуска:

  1. Подключить плату и убедиться, что она отображается в adb devices.

  2. Установить RKNN-Toolkit2 и проверить импорт.

  3. Проверить драйвер RKNPU2, Mini Runtime и rknn_server.

  4. Загрузить пример YOLOv5 и преобразовать модель в RKNN.

  5. Сначала запустить RKNN Python Demo, чтобы проверить преобразование модели и канал отладки подключённой платы.

  6. Собрать, передать и запустить RKNN C Demo для проверки развёртывания на плате.

1.3 Поддерживаемые платформы и требования к версиям

Руководство поддерживает следующие платформы:

Платформа Поддержка
RV1103 Поддерживается
RV1103B Поддерживается
RV1106 Поддерживается
RV1106B Поддерживается

Примеры на компьютере разработки основаны на Ubuntu 18.04 / Ubuntu 20.04 / Ubuntu 22.04. Для RKNN-Toolkit2 рекомендуется Python 3.8.

Примечание: модели RKNN для RV1103/RV1106 нельзя использовать совместно с RV1103B/RV1106B. При преобразовании выбирайте правильный параметр платформы для фактической платы.

1.4 Выбор типа примера

Во всём процессе первого запуска используется пример YOLOv5 из RKNN Model Zoo.

Пример Назначение Каталог Model Zoo
YOLOv5 Python Demo Преобразование модели и проверка инференса с подключённой платой examples/yolov5/python
YOLOv5 C Demo Проверка компиляции C/C++ и развёртывания на плате examples/yolov5/cpp

Python Demo и C Demo используют одну и ту же ONNX-модель YOLOv5 и одну преобразованную модель RKNN. Поэтому достаточно загрузить и преобразовать модель один раз.

1.5 Получение SDK и связанных репозиториев

Рекомендуется создать отдельный каталог для репозиториев RKNN, например Projects, и разместить в нём RKNN-Toolkit2 и RKNN Model Zoo.

# Create the Projects folder
mkdir Projects

# Switch to this directory
cd Projects

# Download the RKNN-Toolkit2 repository
git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1

# Download the RKNN Model Zoo repository
git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1

Примечание: –depth 1 клонирует только последний коммит. Если git clone не работает, можно загрузить архив напрямую с GitHub и распаковать его в этот каталог.

Структура каталогов по умолчанию в следующих примерах:

Projects
├── rknn-toolkit2
│   ├── doc
│   ├── rknn-toolkit2
│   │   ├── packages
│   │   ├── docker
│   │   └── ...
│   ├── rknpu2
│   │   ├── runtime
│   │   └── ...
│   └── ...
└── rknn_model_zoo
    ├── datasets
    ├── examples
    └── ...

Другие статьи по теме → · Учебные маршруты →