KI | Raspberry Pi | Andreas Hitzig | 6/2024 | 27. September 2024

KI-Board für Raspberry Pi 5

Das AI-Kit besteht aus zwei Komponenten – dem Raspberry Pi M.2 HAT+ und dem Hailo-Chip. Das M.2 HAT+ lässt sich auch für den Betrieb einer SSD-Festplatte verwenden.

Die Raspberry Pi Foundation hat im Juni 2024 das Raspberry Pi AI Kit (mit Hailo-Chip) für die fünfte Generation des Platinenrechners veröffentlicht. Wir haben es genauer unter die Lupe genommen und zeigen ein Einsatzbeispiel.

Mit dem Raspberry PI AI Kit gelingt der kostengünstige Einstieg in die Entwicklung von KI-Anwendungen. Das KI-Modul basiert auf einem Hailo-8L-Chip und leistet 13 Tera-Operationen pro Sekunde (TOPS) für neuronale Netzwerkinferenzen. Diese Basis reicht für KI-Aufgaben wie Objekterkennung oder Bildsegmentierung in Echtzeit, immer abhängig natürlich von der Aufgabenstellung und dem Schwierigkeitsgrad der Aufgabe. 

Im Handel kostet das Kit aktuell rund 80 Euro, allerdings musste man in den Sommermonaten einige Wochen auf die Hardware warten. Das Kit besteht aus dem bereits bekannten Raspberry Pi M.2 HAT+, kombiniert mit einem Hailo-AI-Beschleunigungsmodul. In der Packung enthalten war zusätzlich zahlreiches Montagematerial sowie eine GPIO-Steckleiste.

Inbetriebnahme des Kits

Damit das Modul erkannt und einsatzbereit wird, müssen Sie unter Umständen noch einige Treiber sowie die Firmware des Rasp­berry Pi 5 aktualisieren. Für Treiber und Software führen Sie wie gewohnt ein Update der Pakete sowie eine Installation der neuen Objekte durch:

sudo apt update && sudo apt full-upgrade

Das KI-Kit benötigt darüber hinaus die aktuelle Firmware auf dem Raspberry Pi. Die Version lesen Sie wie folgt aus:

sudo rpi-eeprom-update

Falls Sie als Datum den 6. Dezember 2023 oder später sehen, sind Sie auf der neuesten Version. Ansonsten führen Sie ein Update durch, indem Sie die Konfigurationsoberfläche des Raspberry Pi über das Terminal aufrufen.

sudo raspi-config

Wählen Sie die aktuelle Firmwareversion unter „6 Advanced Options –› A5 Bootloader Version“ mit dem Eintrag „Latest Version“. Verlassen Sie anschließend das Konfigurationsmenü und führen Sie das Update durch.

sudo rpi-eeprom-update -a

Nachdem der Vorgang abgeschlossen ist, starten Sie das System neu. Der Raspberry Pi erkennt im Anschluss automatisch das KI-Board.

Montage und Installation des AI-Kits

Bevor Sie das AI-Kit anschließen, trennen Sie den Raspberry Pi 5 vom Strom. Die Montage geht einfach von der Hand: Nachdem die Steckleiste angebracht ist, müssen Sie nur noch die vier Verbindungsbrücken am Raspberry Pi befestigen und anschließend mit dem Board verbinden. Die Rasp­berry Pi Foundation empfiehlt, das KI-Kit immer in Verbindung mit einem aktiven Kühler zu verwenden. Befestigen Sie diesen, bevor Sie das KI-Kit final installieren. Schließen Sie zum Schluss noch das Kabel des M.2-HAT+-Moduls an die PCI-Express-Schnittstelle des Raspberry Pi 5 an.

Das AI-Kit wird mittels GPIO-Bridge und vier verlängerten Schrauben auf dem Pi 5 befestigt. Es wird empfohlen, einen aktiven Kühler zu verwenden.

Softwareinstallation des AI-Kits: Im nächsten Schritt installieren wir die notwendigen Treiber und Demos für das AI-Kit. In unseren Beispielen nutzen wir zusätzlich eine Kamera, die wir im weiteren Verlauf noch anschließen und einrichten. Für die Installation des AI-Kits benötigen Sie neben einem Raspberry Pi 5 das installierte AI-Kit sowie ein 64-Bit-Raspberry-Pi-OS Bookworm als Betriebssystem. Damit Sie die optimale Leistung für das Kit erzielen, aktivieren Sie noch die PCIe-Gen-3.0-Schnittstelle. Rufen Sie dazu erneut die Raspberry-Pi-Konfiguration auf: 

sudo raspi-config

Sie finden den entsprechenden Parameter unter „6 Advanced Options –› A8 PCIe Speed“. Im folgenden Menü werden Sie gefragt, ob Sie die Schnittstelle aktivieren möchten, und erhalten dann eine erfolgreiche Rückmeldung.

Nachdem Sie die Hardware und die zugehörigen Treiber installiert haben, können Sie über das Terminal prüfen, ob der Zugriff auf das Hailo-Board funktioniert.

Nun müssen Sie noch die erforderlichen Abhängigkeiten installieren:

sudo apt install hailo-all

Dies installiert Hailo-Kernel-Gerätetreiber und Firmware, die Hailo-RT-Middleware-Software sowie die Hailo-Tappas-Kernbibliotheken. Zusätzlich enthält das Paket auch noch die rpicam-apps, die wir für die späteren Beispiele benötigen.

Ist alles erledigt, starten Sie den Raspberry Pi neu und überprüfen mit dem Befehl 

hailortcli fw-control identify

die erfolgreiche Installation von Modul und Treiber. Als Ergebnis erhalten Sie in einer Übersicht unter anderem den Namen des Boards, die Architektur des Geräts sowie die Seriennummer und den Produktnamen. 

Einen Geschwindigkeitsvorteil erreichen Sie, wenn Sie die PCIe-3.0-Schnittstelle über das Konfigurationstool aktivieren.

Kamera einrichten

Für die Inbetriebnahme der Kamera müssen Sie diese im Konfigurationsmenü aktivieren. Dazu rufen Sie wieder die Konfigurationszentrale mit 

sudo raspi-config 

auf. Die Kamera aktivieren Sie über das Menü „3 Interface Options –› I1 Legacy Camera“. Führen Sie am Anschluss einen Neustart aus. Mit dem Befehl 

vcgencmd get_camera 

prüfen Sie dann, ob die Kamera einsatzbereit ist. Im positiven Fall erhalten Sie als Ergebnis die Rückmeldung „supported=1 detected=1“. Damit ist die Kamera sowohl erkannt als auch richtig eingerichtet. Falls Sie einen ersten Blick auf die Qualität der Kamera werfen möchten, nutzen Sie dafür diesen Befehl:

raspistill -f

Dieser zeigt für fünf Sekunden ein Vorschaubild der Kamera an. Ob die Kamera auch für unsere weiteren Hailo-Beispiele ordnungsgemäß funktioniert, ermitteln Sie mit diesem Befehl: 

rpicam-hello -t 10s

Im Erfolgsfall startet dies die Kamera und zeigt für zehn Sekunden ein Vorschaubild. Damit haben Sie die Grundlagen für die Ausführung der Hailo-Demos geschaffen. 

Die Hailo-Kamerademos

Im folgenden Abschnitt geht es um die Sammlung der rpicam-apps. Dabei handelt es sich um Kameraanwendungen mit zahlreichen Nachbearbeitungsoptionen. Die von dem Kamerasystem empfangenen Bilder lassen sich mit den mitgelieferten Routinen bearbeiten und analysieren. Die Ausführung dieser Aktionen steuern Sie über eine JSON-Datei, welche die Schritte und Optionen festlegt.

Wir verwenden im Folgenden rpicam-hello, welches standardmäßig ein Vorschaufenster anbietet. Zur Ausführung der Beispiele laden wir im ersten Schritt die JSON-Nachbearbeitungsdateien herunter. In diesen können Sie beispielsweise die Stärke der zeitlichen Filterung aktivieren, deaktivieren und die Intensität festlegen. Laden Sie am besten die komplette Sammlung der JSON-Dateien herunter, indem Sie das rpicam-apps-Repository klonen. Der folgende Befehl kopiert lediglich die aktuellen Daten des Repositorys, was Platz auf dem Rasp­berry Pi spart:

git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps

In den folgenden Abschnitten verwenden wir die aktuell heruntergeladenen JSON-Dateien. Die geklonten Dateien legen wir dabei direkt im Home-Verzeichnis ab, was den anschließenden Zugriff erleichtert. Sollten Sie sich für einen anderen Speicherort entscheiden, passen Sie den Verweis auf die JSON-Dateien in den kommenden Befehlszeilen entsprechend an.

Für die rpicam-apps gibt es verschiedene JSON-Nachbearbeitungsdateien, mit denen Sie unterschiedliche Modelle auf Bilder und Videos zur Analyse anwenden können.

Objekterkennung mittels Kamera

Im ersten Beispiel wird um das erkannte Objekt ein Begrenzungsrahmen („bounding box“) gezogen. Beim Aufruf stehen verschiedene zusätzliche Parameter von Seiten rpicam-hello zur Verfügung. Eine vollständige Auflistung finden Sie in der Onlinedokumentation (https://tinyurl.com/mrphkvua). 

Benötigen Sie beispielsweise kein Vorschaufenster, fügen Sie den Parameter „-n“ hinzu. Falls Sie eine Textbeschreibung des erkannten Objektes bevorzugen, nutzen Sie den Parameter „-v 2“: 

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640

Wie gesehen kommt im ersten Beispiel YOLOv6 („You Only Look Once“) zum Einsatz. Dabei handelt es sich um ein einstufiges Framework zur Objekterkennung, das hauptsächlich im Industrieumfeld zum Einsatz kommt.

Im nächsten Beispiel kommt das YOLOv8-Modell zum Einsatz. Dieses baut auf den früheren YOLO-Versionen auf, bietet ergänzend neue Funktionen und Verbesserungen zur weiteren Steigerung von Leistung und Flexibilität. YOLOv8 ist ausgelegt auf Schnelligkeit, Genauigkeit und Benutzerfreundlichkeit. Es wird vor allem in den Bereichen Objekterkennung, Bildsegmentierung und Bildklassifikation eingesetzt.

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_inference.json --lores-width 640 --lores-height 640

Falls Sie auf der Suche nach einem ankerfreien Modell sind, lohnt sich ein Blick auf YOLOX. Es besitzt ein einfacheres Design, bietet aber eine bessere Performance. Das Modell wurde geschaffen, um eine Brücke zwischen den Einsätzen in Forschung und Industrie zu bauen.

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolox_inference.json --lores-width 640 --lores-height 640

YOLOv5 ist die fünfte Iterationsstufe von YOLO. Das Modell hat einen Schwerpunkt auf Gesichtserkennung. Das Modell gibt Begrenzungsrahmen und Koordinaten von fünf Gesichtsschlüsselpunkten zurück, die zur Gesichtsausrichtung verwendet werden können.

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov5_personface.json --lores-width 640 --lores-height 640

Bildsegmentierung und Körperhaltungen

Im vorherigen Beispiel kam die Gesichtserkennung von YOLOv5 zum Einsatz. Es gibt darüber hinaus auch die Option, mit dem Modell eine Instanzsegmentierung durchzuführen. Dieses gehört aktuell zu den schnellsten und genauesten Echtzeitmodellen.

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov5_segmentation.json --lores-width 640 --lores-height 640 --framerate 20

Das YOLOv8-Modell bietet Ihnen die Möglichkeit, bewegte Bilder zu analysieren, die bewegten Objekte mit einem Rahmen zu kennzeichnen und die Bewegung mit Hilfe mehrerer Punkte exakt zu beschreiben.

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov8_pose.json --lores-width 640 --lores-height 640

Die Beispiele zeigen, wie Sie mit einfachen Mitteln statische und bewegte Bilder analysieren und darauf enthaltene Objekte kennzeichnen. Innerhalb der Modellsammlung gibt es noch weitere Ausprägungen, die weitere Untersuchungen ermöglichen. Abhängig von der Aufgabenstellung lohnt es sich, verschiedene Modelle auszutesten.

Wichtige Informationsquellen

Neben den bereits mitgelieferten Beispielen gibt es noch eine Reihe von weiteren Demos, die sich auf dem Raspberry Pi 5 ausführen lassen. Diese finden Sie in auf der Hailo-Github-Website im Bereich „hailo-rpi5-examples“ (https://tinyurl.com/yps83rap). Sind Sie auf der Suche nach vordefinierten Modellen, finden Sie diese im Bereich „hailo_model_zoo“ (https://tinyurl.com/3rmwtv94). Der Model-Zoo bietet vortrainierte Modelle für leistungsstarke Deep-Learning-Anwendungen. Für den Austausch mit anderen Entwicklern nutzen Sie am besten die kostenlosen Hailo-Community-Foren (https://community.hailo.ai/), für die Sie sich registrieren müssen.

Falls Sie selbst mit dem AI-Kit entwickeln möchten, gibt es mit der Hailo-Community eine gute Anlaufstation. Hier können Sie sich mit anderen Entwicklern austauschen.