AI-Vision mit dem Kria KV260 Vision AI Starter Kit

Ari Mahpour
|  Erstellt: November 18, 2024  |  Aktualisiert am: Januar 17, 2025
AI-Vision mit dem Kria KV260 Vision AI Starter Kit

Im Erste Schritte mit dem Kria KV260 Vision AI Starter Kit haben wir das Kria KV260 Vision AI Starter Kit von AMD Xilinx ausgepackt und ausprobiert. Dieses Board bietet uns ein FPGA und einen ARM-Prozessor, die leistungsstark genug sind, um eine vollständige Ubuntu-Distribution darauf laufen zu lassen. In diesem Artikel werden wir die SmartCam-Anwendung mit einer Raspberry Pi-Kamera bauen und ausführen. Diese Anwendung wird in der Lage sein, Gesichter in Echtzeit zu erkennen und dies auf Ihrem Computermonitor anzuzeigen.

Warum ich dieses Tutorial geschrieben habe

Dieses Tutorial folgt dem ursprünglichen Tutorial, das von den Leuten bei AMD Xilinx zusammengestellt wurde. Sie werden bemerken, dass ein großer Teil dieses Tutorials sehr ähnlich (wenn nicht sogar identisch) mit dem ihren ist. Meine erste Reaktion auf dieses Tutorial war, mich überwältigt zu fühlen. Ich habe einen ziemlich guten Hintergrund im FPGA-Design, aber es kann manchmal herausfordernd und ein wenig entmutigend sein, ihre Tutorials Schritt für Schritt durchzugehen. Ich suchte nach etwas, das ein wenig einfacher und leichter zu folgen war. Nachdem ich andere Leute umgeschriebene Tutorials durchgesehen hatte, war ich mit dem, was ich fand, nicht wirklich zufrieden; daher entschied ich mich, mein eigenes zu schreiben.

Wenn Sie alle Einzelheiten erfahren möchten, empfehle ich Ihnen dringend, das Original-Tutorial zu überprüfen. Es gibt einige Schritte, die nicht super klar sind, aber ich versuche, sie in diesem Tutorial zu durchlaufen (oder sogar zu umgehen). Am wichtigsten ist, dass zum Zeitpunkt des Schreibens dieses Artikels die Beispielanwendung SmartCam nicht mit der neuesten Firmware zu funktionieren schien. In meinem geforkten Repository habe ich automatisierte Skripte (und sogar die benötigten finalen Flash-Dateien) erstellt, um Ihre Demo ohne Probleme zum Laufen zu bringen. Mit diesem Tutorial in der Hand hoffe ich, dass Sie so schnell wie möglich in die AI auf Hardware-Zielen einsteigen können und dieses "woah" Moment erleben, das ich hatte, nachdem ich die Demo erfolgreich gestartet habe.

Hardware-Voraussetzungen

Sie benötigen natürlich das Kria KV260 Vision Starter Kit von AMD Xilinx. Sie müssen Ihr Board einrichten, und das kann durch Befolgen meines vorherigen Tutorials, Getting Started with the Kria KV260 Vision AI Starter Kit, geschehen. Sie benötigen auch ein Raspberry Pi Camera Module V2. Der Teil mit V2 ist super wichtig. Ich habe erfolglos versucht, die Demo mit der günstigeren V1-Version der Kamera und anderen Nachahmer-Kameras zu betreiben (und ich kann bezeugen, dass sie mit dieser Demo nicht funktionieren). Sie müssen das Flachbandkabel der Kamera in den J9-Port auf dem Board stecken. Zuletzt benötigen Sie einen HDMI-fähigen Monitor (oder Fernseher), um ihn an Ihr KV260-Kit anzuschließen (und natürlich ein HDMI-Kabel).

Software-Voraussetzungen

Bevor Sie mit der Demo beginnen, müssen Sie sowohl Docker als auch das SmartCam-Beispiel auf Ihrem Kria KV260-Gerät installiert haben (auch wenn wir die SmartCam-Anwendung nicht verwenden werden). Sie benötigen auch Xilinx Vitis (die vollständige Installation) Version 2022.1. Beachten Sie, dass die Versionsnummer von Xilinx Vitis sehr wichtig ist, da dieses Tutorial speziell für diese Version erstellt wurde.

Sie können Docker mit der Convenience Script-Methode installieren. Öffnen Sie dazu ein Terminal und führen Sie die folgenden Zeilen aus:

Get Ready for the Electronics Design Jobs You Want


Experience hands-on learning in PCB and hardware design with Altium's Student license, cloud access & comprehensive curriculum.

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh ./get-docker.sh --dry-run

sudo usermod -aG docker $USER

Um das SmartCam-Anwendungspaket zu installieren, führen Sie den folgenden Befehl im Terminal aus:

sudo apt install -y xlnx-firmware-kv260-smartcam

Sie müssen auch meinen Fork des ursprünglichen Repositorys klonen:

git clone --recursive --branch rpi-camera-demo-clean

https://github.com/amahpour/kria-vitis-platforms.git

Den Build ausführen

Um die Dinge so einfach wie möglich zu gestalten, habe ich ein automatisiertes Skript geschrieben, das den Build-Prozess automatisch durchläuft. Sie müssen nicht den Screenshots im ursprünglichen Tutorial folgen, um die Blockdesigns zu aktualisieren oder Code zu ändern. Dieses Tutorial versucht, den Build ohne den Sprung in die Vitis-Benutzeroberfläche auszuführen. Um das Build-Skript auszuführen, wechseln Sie in Ihr geklontes Repository und führen Sie die folgenden Befehle aus:

cd kv260

./build_demo.sh

Beachten Sie, dass dieses Skript mit Linux im Sinn geschrieben wurde. Wenn Sie unter Windows arbeiten, empfehle ich Ihnen dringend, WSL 2 mit Ubuntu einzurichten und dort Xilinx Vitis zu installieren (anstatt unter Windows).

Wenn Sie eine Fehlermeldung erhalten, die besagt, dass Vivado nicht gefunden werden kann, haben Sie wahrscheinlich vergessen, die Xilinx-Einstellungen zu laden. Führen Sie einfach diesen Befehl aus:

Launch Your Career in Electronics Design


Gain the skills top employers look for. Start mastering PCB design with the Altium Student Lab today!

source /tools/Xilinx/Vivado/2022.1/settings64.sh

Das Ausführen des build_demo.sh-Skripts wird das gesamte Tutorial komplett umgehen, da ich das aktualisierte Blockdesign, die Pin-Beschränkungsdatei und die Projektkonfigurationen im kv260/extras/ Ordner des Repositorys inkludiert habe. Wenn Sie das Tutorial Schritt für Schritt durchgehen möchten, empfehle ich Ihnen dringend, einen Blick auf das Original zu werfen.

Wenn alles korrekt verlaufen ist, sollten Sie am Ende eine Bitstream-Datei im Verzeichnis

kv260/overlays/examples/smartcam/binary_container_1/link/int/kv260-raspi-dpu.bit.bin

vorfinden. Der Erstellungsprozess kann zwischen 1-2 Stunden dauern. Nicht jeder hat Zeit dafür, deshalb habe ich die Bitstream-Datei auch im Ordner kv260/extras/ als Backup hinterlegt.

Die Demo ausführen

Zu diesem Zeitpunkt sind wir bereit, unsere Dateien auf das KV260-Board zu kopieren und die Demo zu starten. Sie können Dateien über einen USB-Stick oder über den SCP-Befehl (secure copy) übertragen. Sie müssen die folgenden Dateien übertragen:

  • kv260/extras/kv260-raspi-dpu.bit.bin (oder die oben erzeugte)
  • kv260/extras/kv260-raspi-dpu.dtbo
  • kv260/extras/kv260-raspi-dpu.xclbin

Einmal zurück auf Ihrem KV260-Gerät, müssen wir diese Dateien in den Bibliotheksbereich verschieben, wo Firmware typischerweise geladen wird:

Lay Out Your Track: Prepare for a Career in PCB Design


Develop the electronics design expertise that employers look for with Altium’s free Student Lab!

sudo mkdir /lib/firmware/xilinx/kv260-raspi-dpu

sudo mv kv260-raspi-dpu.bit.bin /lib/firmware/xilinx/kv260-raspi-dpu/

sudo mv kv260-raspi-dpu.dtbo /lib/firmware/xilinx/kv260-raspi-dpu/

sudo mv kv260-raspi-dpu.xclbin /lib/firmware/xilinx/kv260-raspi-dpu/kv260-raspi-dpu.xclbin

sudo cp /lib/firmware/xilinx/kv260-smartcam/shell.json /lib/firmware/xilinx/kv260-raspi-dpu/

Nun sind wir bereit, die Anwendung zu starten. Beachten Sie, dass dies Ihren Monitor ausschalten wird, daher sollten Sie dies über SSH oder über die USB-Serienschnittstelle ausführen (d.h. über den USB-Port und mit PuTTY oder TeraTerm):

sudo xmutil listapps

sudo xmutil unloadapp

sudo xmutil loadapp kv260-raspi-dpu

sudo xmutil desktop_disable

docker run \

--env="DISPLAY" \

-h "xlnx-docker" \

--env="XDG_SESSION_TYPE" \

--net=host \

--privileged \

--volume="$HOME/.Xauthority:/root/.Xauthority:rw" \

-v /tmp:/tmp \

-v /dev:/dev \

-v /sys:/sys \

-v /etc/vart.conf:/etc/vart.conf \

-v /lib/firmware/xilinx:/lib/firmware/xilinx \

-v /run:/run \

-it xilinx/smartcam:latest bash

Im Docker-Container müssen wir eine kleine Änderung an einer Datei vornehmen. Dazu müssen wir zuerst vim installieren:

apt-get update -y && apt-get install -y vim

vim /opt/xilinx/kv260-smartcam/share/vvas/facedetect/preprocess.json

Nachdem Sie vim geöffnet haben, drücken Sie "i" (für "Einfügen"), um die Datei zu bearbeiten. Suchen Sie nach der Zeile, die auf eine "xclbin"-Datei verweist, und aktualisieren Sie sie mit diesem Pfad:

/lib/firmware/xilinx/kv260-raspi-dpu/kv260-raspi-dpu.xclbin

Drücken Sie die Escape-Taste. Geben Sie ":wq" ein (um zu speichern und zu beenden), dann drücken Sie die Eingabetaste. Danach können wir die Anwendung mit dem folgenden (sehr langen) Befehl ausführen:

gst-launch-1.0 mediasrcbin name=videosrc media-device=/dev/media0  v4l2src0::io-mode=mmap v4l2src0::stride-align=256 !  video/x-raw, Breite=1920, Höhe=1080, Format=NV12, Bildrate=30/1  ! tee name=t ! queue ! vvas_xmultisrc kconfig="/opt/xilinx/kv260-smartcam/share/vvas/facedetect/preprocess.json" ! queue ! vvas_xfilter kernels-config="/opt/xilinx/kv260-smartcam/share/vvas/facedetect/aiinference.json" ! ima.sink_master                     vvas_xmetaaffixer name=ima ima.src_master ! fakesink t. ! queue max-size-buffers=1 leaky=2 ! ima.sink_slave_0 ima.src_slave_0 ! queue ! vvas_xfilter kernels-config="/opt/xilinx/kv260-smartcam/share/vvas/facedetect/drawresult.json"          ! queue ! kmssink driver-name=xlnx plane-id=39 sync=false fullscreen-overlay=true

Wenn alles korrekt funktioniert hat, sollte Ihr Monitor (oder Fernseher) wieder eingeschaltet werden mit dem Feed Ihrer Raspberry Pi-Kamera. Es wird ein blaues Feld um jedes Gesicht, das im Videofeed in Echtzeit erkannt wird, platziert.

Get Ready for the PCB Design Job of Your Dreams


Start your electronics design career with Altium's free Student Lab, comprehensive curriculum & certificates

Fazit

In diesem Artikel haben wir das SmartCam-Tutorial mit der Raspberry Pi Kamera durchgegangen und die Abkürzungen betrachtet, die notwendig sind, um es "einfach zum Laufen zu bringen". An diesem Punkt sollten Sie nun Ihre eigene SmartCam auf dem Kria KV260 haben, die in Echtzeit Gesichter erkennt. Mein Ziel war es, den Prozess zu vereinfachen, damit Sie sich mehr auf den Spaß konzentrieren können, die KI in Aktion zu sehen, anstatt sich durch das ursprüngliche Tutorial zu kämpfen. Hoffentlich hat dieser Leitfaden die Dinge für Sie klarer und schneller gemacht, um zu diesem "es funktioniert"-Moment zu gelangen. Jetzt ist es an Ihnen, kreativ zu werden und zu erkunden, was Sie sonst noch mit diesem leistungsstarken Starter-Kit machen können.

Hinweis: Der gesamte Code für dieses Projekt kann in diesem Repository gefunden werden.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Ari ist ein PCB-Designer mit umfassender Erfahrung in der Entwicklung, Herstellung, Prüfung und Integration verschiedener Softwaresysteme. Dabei bringt er leidenschaftlich gern Entwickler aus den Bereichen Design, Prüfung und Abnahme zusammen, um gemeinsam an Projekten zu arbeiten und diese voranzutreiben.

Ähnliche Resourcen

Verwandte technische Dokumentation

Zur Startseite
Thank you, you are now subscribed to updates.
Altium Need Help?