Embedded-Module Einstieg in die KI mit Nvidias Jetson Nano
Anbieter zum Thema
Künstliche Intelligenz (KI) ist zentraler Treiber der Digitalisierung und verändert unsere Gesellschaft und Wirtschaft grundlegend in nahezu allen Lebensbereichen.

Eine Umfrage von Reichelt Elektronik Umfrage belegt: Mehr als die Hälfte der deutschen Unternehmen (58 Prozent) setzen in der Produktion bereits auf KI. Aber auch im Alltag hilft uns Künstliche Intelligenz – in einigen Bereichen ganz offensichtlich, in anderen eher versteckt. Sven Pannewitz, Product Manager – Development Boards & Vehicle Accessories bei Reichelt Elektronik, erklärt an einem Anwendungsbeispiel, wie ein KI-Projekt mithilfe des Jetson Nanos von Nvidia realisiert werden kann.
Wie lernt der Computer: Maschinelles Lernen vs. Deep Learning
Wir Menschen erledigen Aufgaben manchmal, ohne dass wir darüber nachdenken müssen oder sie in Regeln und Anweisungen fassen zu können. Dieses implizite Wissen beruht auf Erfahrungen. Ähnlich verhält es sich bei Maschinellem Lernen: Ein System analysiert die verfügbaren Daten und modifiziert sich schrittweise, sodass es seine Aufgabe besser erfüllen kann. Dabei werden drei Arten von Lernaufgaben unterschieden: Supervised Learning, Unsupervised Learning und Reinforcement Learning.
Während ein Computer beim überwachten Lernen (Supervised Learning) anhand von vorgelegten Daten angelernt wird, muss ein System beim unbewachten Lernen (Unsupervised Learning) ohne manuelle Vorgaben auskommen. Beim Reinforcement Learning wiederum lernt eine Maschine anhand von Wiederholungen, eine möglichst effektive Strategie zu entwickeln.
Obwohl Machine Learning und Deep Learning oftmals als Synonym verwendet werden, gibt es kleine, aber feine Unterschiede: Während Machine Learning für strukturierte Input-Daten verwendet wird, eignet sich Deep Learning besonders gut für große unstrukturierte Daten.
Strukturierte und unstrukturierte Input-Daten
Strukturierte Input-Daten können geordnete Datensätze aus einer Datenbank sein (Beispiel: Schuh mit Farbe, Größe , Material). Machine Learning erkennt daraus automatisch die Informationen und entwickelt selbständig Algorithmen, diese Objekte klassifizieren zu können. Bei unstrukturierten Input-Daten wie Texten, Bildern oder Musik erkennt der Deep-Learning-Algorithmus unbekannte Strukturen und entwickelt daraus ein komplexes Modell, das bei der Bilderkennung die Klassifikation von Objekten möglich macht. Um eine hohe Modellgüte erzielen zu können, benötigt dieses Verfahren allerdings sehr große Datenmengen.
Echtzeit-Objekterkennung mit dem Jetson Nano von NVIDIA
Einen Einstieg ins Thema Künstliche Intelligenz bieten Entwicklerboards wie das Jetson Nano von Nvidia. Eine jüngst von Reichelt Elektronik durchgeführte Umfrage belegt, dass bereits 74 Prozent der deutschen Unternehmen auf die Einplatinencomputer setzen. Denn damit ist es möglich, kostengünstige und energieeffiziente KI-Systeme zu entwickeln und sie eröffnen neue Möglichkeiten für grafik- wie rechenintensive Projekte.
Aufgrund der kompakten Bauweise lässt sich das Jetson Nano perfekt in Roboterrojekte integrieren. Mit 128 CUDA-Kernen kann der Einplatinencomputer viele Operationen parallel durchführen und ermöglicht so den Einsatz mehrerer Sensoren mit Echtzeitberechnung. CUDA steht für „Compute Unified Device Architecture“ und ist eine von NVIDIA entwickelte Architektur für parallele Berechnungen. Dadurch sind auch klassische KI-Systeme, wie beispielsweise Objekt-/Personenerkennung in Echtzeit, möglich. Mithilfe der Open-Source-Bibliotheken OpenCV oder YOLO können sowohl vortrainierte Modelle heruntergeladen als auch eigene Modelle trainiert werden.
Objekterkennung als KI-typische Anforderung an Systeme kann im Grunde genommen auch von Einplatinencomputern ohne CUDA-Kern bewältigt werden. Um diese Anforderung jedoch in Echtzeit lösen zu können, sind CUDA-Kerne unabdingbar, da große Datenmengen parallel und in Echtzeit berechnet werden müssen. Wie ein solches Projekt der Künstlichen Intelligenz mit einem Jetson Nano von NVIDIA umgesetzt werden kann, wird anhand einer beispielhaften Echtzeit-Objekterkennung durchskizziert.
Installation
Für die Installation des Betriebssystems wird eine MicroSD-Karte mit einer Mindestgröße von 64 GB benötigt, da sonst die Installation der Trainingsdaten bis zu sechs Stunden dauern kann. Die 4-GB-Version des Jetson Nanos ermöglicht zudem eine FPS-Rate (Frames per second) bei der Objekterkennung.
Die aktuelle Version des Betriebssystems ist beim Hersteller erhältlich. Zudem wird für den Image-Flash ein entsprechendes Programm wie BalenaEtcher benötigt. Um den Vorgang zu starten, müssen lediglich das geladene Image sowie die MicroSD-Karte ausgewählt werden (Bild 1; siehe Bildergalerie). Der Vorgang kann jedoch bis zu 30 Minuten in Anspruch nehmen.
Nach dem Flashvorgang kann die MicroSD-Karte in das entsprechende MicroSD-Kartenslot des Jetson Nanos gesteckt werden. Bevor das Jetson Nano mit Strom versorgt und konfiguriert werden kann, müssen die entsprechenden Peripheriegeräte (Tastatur, Maus und Bildschirm) angeschlossen werden.
Ist der Konfigurationsvorgang abgeschlossen, wird der Jetson Nano automatisch rebootet. Nach erneuter Anmeldung öffnet sich die Desktop-Umgebung.
Über die Kommandozeile im Terminal muss zunächst das entsprechende Github Repository mit folgendem Befehl heruntergeladen werden:
git clone https://github.com/wiegehtki/nvjetson_opencv_gsi.git
Mit dem Befehl cp nvjetson_opencv_gsi/Installv2.3.8.sh wird die Datei „Installv2.3.8.sh“ vom Verzeichnis „nvjetson_opencv_gsi“ in das aktuelle hineinkopiert. Anschließend müssen alle „sudoers“-Shell-Skripte durch das Kommando cp nvjetson_opencv_gsi/nv*sh in das aktuelle Verzeichnis integriert werden. Mit dem Befehl chmod +x *sh können die Shell-Skripte ausgelesen werden.
Um stetige Passworteingabe-Forderungen zu verhindern, müssen dem Nutzer mit folgendem Befehl die „Superuser-Rechte“ eingeräumt werden:
sudo su
/nvidia2sudoers.sh
exit
Nach erneutem Öffnen des Terminals kann die Installation mit dem Befehl ./Installv2.3.8.sh gestartet werden. Die Installation kann mehrere Stunden andauern (ca. vier bis sechs), schließlich müssen bereits trainierte Modelle erneut heruntergeladen werden. Ist der Vorgang abgeschlossen, startet das Jetson Nano automatisch neu. Wird danach der Anmeldebildschirm angezeigt, war die Installation erfolgreich.
Konfiguration der IP Webcam App
In diesem Projekt wird eine Handykamera für die Objekterkennung verwendet. Damit das Jetson Nano über das WLAN auf die Handykamera zugreifen kann, muss die entsprechende App „IP Webcam“ heruntergeladen werden. Um die App durch das Jetson Nano nicht mit Daten zu überfluten und so den Speicher des Smartphones an die Grenzen zu bringen, müssen gegebenenfalls einige Einstellungen in der App vorgenommen werden.
Als Erstes muss der Audio-Modus (Bild 3) deaktiviert werden, da in diesem Projekt ausschließlich Bilder verarbeitet werden sollen. Daraufhin können Auflösung, Qualität und FPS unter den „Video-Einstellungen“ (Bild 4) konfiguriert werden. Wird mit der 4GB-Version des Jetson Nano gearbeitet, kann die Auflösung ohne weiteres bei Full-HD belassen werden. Für die leistungsschwächere Version (2 GB) wird eine niedrigere Auflösung empfohlen. Zudem kann die automatische Kamera-Erkennung „ONVIF“ deaktiviert werden (Bild 5), da diese Funktion nur zusätzlichen Overhead im Datenpaket verursacht.
Wenn alle Einstellungen vorgenommen worden sind, kann die Kamera nun unter „Server Starten“ (Bild 3) geöffnet werden. Die entsprechende IP-Adresse, über die sich der Jetson Nano verbinden kann, und den Port (rechts neben der IP-Adresse) ist für den nächsten Schritt wichtig (Bild 6).
Echtzeit-Objekterkennung starten
Bevor die Objekterkennung gestartet werden kann, müssen die IP-Adresse und den Port der Handykamera im Shell-Skript hinterlegt werden. Dazu muss im Terminal folgender Befehl eingegeben werden:
cd darknet
nano smartcam.sh
Es öffnet sich nun ein Fenster (Bild 7), in dem an der markierten Stelle die passende IP-Adresse und den Port eingegeben werden müssen. Daraufhin können die Änderungen gespeichert und das Shell-Skript geschlossen werden. Mit dem Befehl ./smartcam.sh kann die Echtzeit-Objekterkennung gestartet werden.
Der Jetson Nano wird sich automatisch mit der Kamera verbinden. Die KI erkennt verschiedene Objekte in Echtzeit (Bild 8) und kann diese unter Angabe einer bestimmten Vertrauenswahrscheinlichkeit (z. B. 94 Prozent) klassifizieren. Einige Gegenstände sind der KI noch unbekannt. Mit etwas Programmierarbeit können das KI-System in der Entwicklungsumgebung trainiert und das Wissen beliebig erweitert werden.
Fazit
Ein eigenes KI-Projekt in die Tat umzusetzen, bedarf nicht viel Aufwand. Es werden lediglich drei Komponenten benötigt: ein Jetson Nano, ein Computer, über den alles Nötige programmiert wird und eine Smartphone-Kamera. Durch Echtzeiterkennung kann der Jetson Nano Objekte klassifizieren und mit ein wenig Hilfe sogar neue Objektklassifikationen vornehmen. Es braucht also nicht viel, um in die Welt der KI eintauchen können.
Dieser Artikel stammt von unserem Partnerportal ELEKTRONIKPRAXIS.
(ID:49432182)