Область применения: справочный материал RKNN2 V2.5.0 для RK3562, семейств RK3566/3568/3576/3588 и RV1126B. Плате ArmSoM с тем же SoC всё равно нужны соответствующие BSP, драйвер NPU и Runtime; нельзя напрямую переносить требования EVB Rockchip к питанию, USB и прошивке. Требования к ПК и драйверу приведены ниже. Проверка на оборудовании ArmSoM не проводилась.
Подготовлено по локальным китайскому и английскому оригиналам V2.5.0 с сохранением нумерации. Китайский использует китайские рисунки, остальные языки — рисунки английского источника. Восстановлены переносы PDF, продолжения таблиц и отступы кода. Примеры вывода не являются испытаниями ArmSoM.
RKNN2 V2.5.0, часть 1: развёртывание, платформы и репозитории SDK
RKNN2 V2.5.0, часть 2: подключение и проверка ADB
RKNN2 V2.5.0, часть 3: Toolkit, Runtime Android/Linux и компиляторы
RKNN2 V2.5.0, часть 4: преобразование и развёртывание MobileNet
RKNN2 V2.5.0, часть 5: детекция YOLOv5 и оценка точности
RKNN2 V2.5.0, часть 6: Docker, диагностика и документация
5. Запуск RKNN Python Demo в Docker (необязательно)
Чтобы выполнять RKNN Python Demo в Docker, подготовьте среду по этой главе.
Предоставляемый образ Docker содержит среду RKNN-Toolkit2 и позволяет запускать RKNN Python Demo без самостоятельной установки среды. Однако в нём только чистая среда RKNN-Toolkit2; он предназначен именно для RKNN Python Demo.
5.1 Установка Docker
Если Docker уже установлен, пропустите этот шаг. Иначе установите его по официальной документации.
Официальная инструкция установки Docker: https://docs.docker.com/install/linux/docker-ce/ubuntu/
Примечание: пользователя необходимо добавить в группу docker.
# Create the docker group
sudo groupadd docker
# Add the current user to the docker group
sudo usermod -aG docker $USER
# Update to activate the docker group
newgrp docker
# Verify that docker commands can be executed without sudo
docker run hello-world
Пример вывода при успешной установке:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
5.2 Подготовка образа RKNN-Toolkit2
Предусмотрены два способа создания среды RKNN-Toolkit2. Выберите любой из них.
- Создание образа RKNN-Toolkit2 из Dockerfile
В проекте RKNN-Toolkit2 каталог docker/docker_file содержит Dockerfile для среды разработки. Создайте образ командой docker build:
# Note: Replace 'xx' and 'x.x.x' with the actual version numbers
cd Projects/rknn-toolkit2/rknn-toolkit2/docker/docker_file/ubuntu_xx_xx_cpxx
docker build -f Dockerfile_ubuntu_xx_xx_for_cpxx -t rknn-toolkit2:x.x.x-cpxx .
- Создание образа RKNN-Toolkit2 загрузкой готового файла Docker
Загрузите проект RKNN-Toolkit2 нужной версии по ссылке ниже. После распаковки в docker/docker_image находится готовый образ со всеми средами разработки.
Облачная ссылка на образ Docker: https://console.zbox.filez.com/l/I00fc3 (код: rknn)
Загрузите файл образа для нужной версии Python следующей командой.
# Note: Replace 'x.x.x' with the actual version number of RKNN-Toolkit2, and 'cpxx' with the Python version
docker load --input rknn-toolkit2-x.x.x-cpxx-docker.tar.gz
После создания или загрузки сведения об образе Docker можно посмотреть командой:
docker images
Сведения о соответствующем образе RKNN-Toolkit2:
REPOSITORY TAG IMAGE ID CREATED SIZE
rknn-toolkit2 x.x.x-cpxx xxxxxxxxxxxx 1 hours ago 5.89GB
5.3 Запуск RKNN Python Demo в Docker
Примечание: на плате должна быть установлена среда RKNPU2. Если её нет, установите по разделу 3.3.
- Подключение файлов и запуск контейнера
Загрузите RKNN Model Zoo локально по разделу 1.5. Подключите каталог к контейнеру и запустите docker run. После запуска откроется bash контейнера. Команды:
# Use the docker run command to create and run the RKNN-Toolkit2 container
# Map local files into the container by attaching the -v <host src folder>:<image dst folder> parameter
docker run -t -i --privileged \
-v /dev/bus/usb:/dev/bus/usb \
-v /Projects/rknn_model_zoo:/rknn_model_zoo \
rknn-toolkit2:x.x.x-cpxx \
/bin/bash
- Подготовка и преобразование модели в контейнере
В контейнере загрузите и преобразуйте YOLOv5 по шагам раздела 4.2.1.
- Запуск RKNN Python Demo в контейнере
Запустите RKNN Python Demo по разделу 4.2.2. Команда:
# Switch to the rknn_model_zoo/examples/yolov5/python directory
cd rknn_model_zoo/examples/yolov5/python
# Run the yolov5.py script to run the yolov5 model on the board
# Usage: python yolov5.py --model_path {rknn_model} --target {target_platform}
# Note: Here, we use rk3588 as an example platform. If using a different board, modify the platform type in the command accordingly.
python yolov5.py --model_path ../model/yolov5s_relu.rknn --target rk3588
Примечание: при USB-подключении платы одновременно должен работать только один adb server — на компьютере или в Docker. Чтобы подключить плату из Docker, завершите локальный adb server командой adb kill-server в терминале компьютера.
6. Проблемы первого запуска и дальнейшие шаги
В этой главе перечислены проблемы первого запуска и способы диагностики. Полные FAQ, ошибки преобразования, точности, производительности и памяти приведены в главе 10 «FAQ» RKNN2 SDK Development Guide.
6.1 adb devices не показывает устройство
Попробуйте следующие способы устранения проблемы:
-
Проверьте правильность соединения, переподключите кабель, попробуйте другой USB-порт компьютера либо другой кабель.
-
При USB-подключении одновременно должен работать только один adb server — на компьютере или в Docker. Например, для подключения платы из Docker выполните adb kill-server в терминале компьютера, завершив локальный adb server.
-
Следующая ошибка означает, что adb не установлен. Установите его командой sudo apt install adb.
command 'adb' not found, but can be installed with:
sudo apt install adb
6.2 Ручной запуск службы rknn_server
Для отладки с подключённой платой RKNN-Toolkit2 необходимы установленная среда RKNPU2 и работающий rknn_server.
На некоторых платах rknn_server не запускается автоматически при включении или перезагрузке. Тогда RKNN Python Demo может выдать E init_runtime: The rknn_server on the connected device is abnormal. Ручной запуск службы описан в разделе 3.3.2.
6.3 Навигация по документации
После первого запуска переходите к основному документу по вашей задаче, а не ищите полный API или расширенные настройки в этом кратком руководстве.
| Что изучить дальше | Основной документ / точка входа |
|---|---|
| Полная установка RKNN-Toolkit2, преобразование моделей и настройка квантования | RKNN2 SDK Development Guide |
| Методы, параметры и возвращаемые значения Toolkit (Python API) | RKNN2 SDK Development Guide |
| Справочник Runtime C API | RKNN2 Runtime C API Reference |
| FAQ установки инструментов, среды NPU, преобразования и оценки моделей | RKNN2 SDK Development Guide |
| Анализ точности модели (accuracy_analysis) | RKNN2 SDK Development Guide |
| Установка RKNN-Toolkit2 через Docker | RKNN2 SDK Development Guide |
| Использование примеров моделей RKNN Model Zoo | rknn_model_zoo/examples/<model_name>/README.md |
