Rockchip · AI & Linux Hub

KI-Inferenz

RKNN auf RV1103/RV1106, Teil 5: Docker, Startprobleme und Referenzen

RKNN auf RV1103/RV1106, Teil 5: Docker, Startprobleme und Referenzen · RKNN2 V2.5.0

· ArmSoM Editorial · Rockchip source documentation · 6 Min. Lesezeit

Plattformreferenz zum RKNN2-V2.5.0-Einstieg für RV1103/RV1103B/RV1106/RV1106B mit passendem Board-SDK, RKNPU2-Treiber und librknnmrt.so. Ein entsprechendes ArmSoM-Board ist nicht bestätigt. Das Linux-5.10.160-Protokoll und Inferenzausgaben sind Quellenbeispiele, keine ArmSoM-Hardwaretests. Versorgung, Anschlüsse und Treiber mit dem tatsächlichen Board-BSP abgleichen.

Quelle: lokale chinesische und englische V2.5.0-PDFs. Chinesisch verwendet chinesischen Text und Abbildungen, Englisch, Russisch und Deutsch die englische Quelle. Alle technischen Kapitel, Befehle und Tabellen bleiben erhalten; PDF-Zeilenumbrüche und Verzeichniseinrückungen wurden wiederhergestellt. Ein alter Treiber im Beispielprotokoll ist nicht die empfohlene Version; die Empfehlung steht im Text. Downloads und pip-Installationen ohne Versionsbindung mit dem SDK abgleichen.

Rockchip source

RKNN auf RV1103/RV1106, Teil 1: Ablauf, Plattformen und Repositorys

RKNN auf RV1103/RV1106, Teil 2: Hardwareanschluss und Geräteprüfung

RKNN auf RV1103/RV1106, Teil 3: Host-Umgebung und Mini Runtime

RKNN auf RV1103/RV1106, Teil 4: YOLOv5, Python und C-Bereitstellung

RKNN auf RV1103/RV1106, Teil 5: Docker, Startprobleme und Referenzen

5. RKNN Python Demo in Docker ausführen (optional)

Statt RKNN-Toolkit2 direkt auf dem Computer zu installieren, lässt sich RKNN Python Demo in einem Docker-Image mit dieser Umgebung ausführen.

Das Image dieses Kapitels enthält nur RKNN-Toolkit2 und dient hauptsächlich Python Demo. Die boardseitige RKNPU2-Umgebung muss weiterhin nach Abschnitt 3.3 vorbereitet werden.

5.1 Docker installieren

Bei vorhandener Docker-Installation diesen Abschnitt überspringen. Andernfalls die offizielle Anleitung verwenden: https://docs.docker.com/install/linux/docker-ce/ubuntu/.

Nach der Installation den aktuellen Benutzer zur Gruppe docker hinzufügen:

# Create the docker group
sudo groupadd docker

# Add the current user to the docker group
sudo usermod -aG docker $USER

# Activate the docker group
newgrp docker

# Verify that docker commands can be executed without sudo
docker run hello-world

Bei Erfolg erscheint eine ähnliche Ausgabe:

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-Docker-Image vorbereiten

Das Image kann aus einer Dockerfile gebaut oder aus einer vorbereiteten Datei geladen werden.

5.2.1 Image aus Dockerfile bauen

Dockerfiles liegen unter docker/docker_file im RKNN-Toolkit2-Projekt:

# xx and x.x.x represent version numbers. Replace them with the actual values
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 .

5.2.2 Vorbereitetes Image laden

Docker-Image: https://console.zbox.filez.com/l/I00fc3 (Zugangscode: rknn).

Ausführen:

# x.x.x is the RKNN-Toolkit2 version, and cpxx is the Python version

docker load --input rknn-toolkit2-x.x.x-cpxx-docker.tar.gz

5.2.3 Image prüfen

docker images

Referenzausgabe:

REPOSITORY TAG IMAGE ID CREATED SIZE
rknn-toolkit2 x.x.x-cpxx xxxxxxxxxxxx 1 hours ago 5.89GB

5.3 RKNN Python Demo im Container ausführen

RKNN Model Zoo lokal nach Abschnitt 1.5 vorbereiten, dann Verzeichnis und USB-Gerät in den Container einbinden:

# -v <host src folder>:<image dst folder> maps a local directory into the container

docker run -t -i --privileged \
    -v /dev/bus/usb:/dev/bus/usb \
    -v "$HOME/Projects/rknn_model_zoo:/rknn_model_zoo" \
    rknn-toolkit2:x.x.x-cpxx \
    /bin/bash

Im Container das Modell vorbereiten:

cd /rknn_model_zoo/examples/yolov5/model
./download_model.sh

Das Modell konvertieren:

cd /rknn_model_zoo/examples/yolov5/python
python convert.py ../model/yolov5s_relu.onnx rv1106 i8 ../model/yolov5s_relu.rknn

RKNN Python Demo ausführen:

python yolov5.py --model_path ../model/yolov5s_relu.rknn --target rv1106

Nach erfolgreichem Skriptlauf ähnelt die Ausgabe dem Beispiel: class ist die vorhergesagte Klasse, score der Konfidenzwert, (xmin, ymin) die linke obere und (xmax, ymax) die rechte untere Ecke der Erkennungsbox.

# class @ (xmin, ymin, xmax, ymax) score
person @ (209 243 286 510) 0.880
person @ (479 238 560 527) 0.871
person @ (109 238 231 534) 0.840
bus @ (91 129 555 464) 0.692

6. Häufige Startprobleme und nächste Schritte

Dieses Kapitel behandelt nur häufige Verbindungs-, Server- und Speicherprobleme beim ersten Lauf. Werkzeuginstallation, Modellkonvertierung und systematische Fehlerbehebung beschreibt RKNN2_SDK_Development_Guide. Für API-Fragen je nach Schnittstelle RKNN2_Toolkit_Python_API_Reference, RKNN2_Toolkit_Lite_Python_API_Reference oder RKNN2_Runtime_C_API_Reference verwenden.

6.1 Gerät wird nicht erkannt

Falls adb devices kein Gerät anzeigt, der Reihe nach prüfen:

  1. Kabelanschluss prüfen und erneut verbinden.

  2. Einen anderen USB-Port des Computers verwenden.

  3. Das Datenkabel austauschen.

  4. Bei USB-Verbindung sicherstellen, dass zwischen lokalem Computer und Docker nur ein ADB Server läuft. Für eine Verbindung aus Docker zuerst auf dem lokalen Computer ausführen:

adb kill-server

Die folgende Fehlermeldung bedeutet, dass ADB nicht installiert ist:

command 'adb' not found, but can be installed with:
sudo apt install adb

ADB installieren:

sudo apt install adb

6.2 rknn_server startet nicht korrekt

Für RKNN-Toolkit2-Board-Debugging sind RKNPU2 und ein korrekt laufender rknn_server erforderlich. Manche Board-Systeme starten rknn_server nicht automatisch. RKNN Python Demo kann dann Folgendes melden:

E init_runtime: The rknn_server on the concected device is abnormal.

Manuell starten:

adb shell
restart_rknn.sh

Bleibt das Problem bestehen, Komponenten und Versionen nach Abschnitt 3.3.2 erneut prüfen.

6.3 Modellladen scheitert wegen Speichermangel

RV1103/RV1103B/RV1106/RV1106B haben begrenzten Speicher. Läuft rkipc bereits, kann das Modellladen mit folgendem Fehler scheitern:

E init_runtime: Exception: RKNN init failed. error code: RKNN_ERR_MODEL_INVALID

Auf das Board wechseln und rkipc beenden:

adb shell

# View the currently running processes and find the PID corresponding to rkipc
top

# Terminate the rkipc process
kill -9 PID

6.4 Dokumentation für die nächsten Schritte

Nach dem ersten Lauf das jeweilige Hauptdokument für weitere Entwicklungsaufgaben verwenden. Vollständige Abläufe, APIs und erweiterte Einstellungen gehören nicht in diesen Quickstart.

Suchbedarf / Lernziel Empfohlene Referenz
RK3588 und weitere Plattformen: erste RKNN2-SDK-Einrichtung, Modellkonvertierung und Bereitstellungsprüfung RKNN2_SDK_QuickStart
RK2118: erste RKNN2-SDK-Einrichtung, Modellkonvertierung und Bereitstellungsprüfung RKNN2_RK2118_QuickStart
Gesamter Entwicklungsablauf: RKNN2-Softwarearchitektur, Modellkonvertierung und Quantisierung, Genauigkeits-/Leistungsanalyse, vollständige Bereitstellung und Fehlerbehebung RKNN2_SDK_Development_Guide
Modellkonvertierung und Analyse am PC: Methoden, Parameter und Rückgabewerte der RKNN-Toolkit2-Python-API RKNN2_Toolkit_Python_API_Reference
Leichtgewichtige Python-Bereitstellung auf dem Board: Methoden, Parameter und Rückgabewerte der RKNN-Toolkit-Lite2-Python-API RKNN2_Toolkit_Lite_Python_API_Reference
C/C++-Bereitstellung auf dem Board: C-APIs, Strukturen, Enumerationen, Fehlercodes und Mini-Runtime-Schnittstellen RKNN2_Runtime_C_API_Reference
Modellkompatibilität bewerten: unterstützte RKNN-Operatoren und ihre Einschränkungen RKNN2_Supported_Operators_and_Constraints_Reference

Dieser Leitfaden gilt für RV1103/RV1103B/RV1106/RV1106B und verwendet durchgehend RKNPU2 Mini Runtime (librknnmrt.so). RKNN2_Runtime_C_API_Reference ist der Name der Runtime-C-API-Referenz. Dort die zur Plattform und SDK-Version passenden Schnittstellen auswählen.

Dieses Thema entdecken → · Lernpfade →