Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Legen Sie los mit dem OKdo Nano C100 Developer Kit und CSI-Kameras

Legen Sie mit dem OKdo Nano C100 Developer Kit los und lernen Sie, wie Sie die KI-Video-Gesichtserkennung mit einer Dual-CSI-Kamera-Konfiguration mit Python und OpenCV einrichten.

Autor: Peter Milne, Ingenieur und Linux-Befürworter mit mehr SBCs als ein Landungsboot der Apollo 11.

Das OKdo Nano C100 Developer Kit (252-0055) basiert auf dem NVIDIA® Jetson Nano™-Modul, das auf einer benutzerdefinierten Entwicklungsplatine montiert ist.

Dieser kleine, leistungsstarke Einplatinencomputer macht KI für Macher, Lernende und Embedded-Entwickler zugänglich. Er ermöglicht die parallele Ausführung mehrerer neuronaler Netze für Anwendungen wie Bildklassifizierung, Objekterkennung, Segmentierung und Sprachverarbeitung.

Zu den Hauptmerkmalen gehören eine Quad-Core-ARM-A57-CPU, eine 128-Kern-NVIDIA-Maxwell-GPU, 4 GB 64-Bit-LPDDR4-RAM, 16 GB integrierter eMMC-Speicher, zwei MIPI-CSI-Kameraanschlüsse, Gigabit-Ethernet und ein 40-poliger GPIO-Header sowie ein M.2-E-Key-Steckplatz für optionale WLAN-Unterstützung.

OKdo bietet einen offiziellen Download des Betriebssystem-Images über den OKdo Software & Downloads Hub an, der auf Ubuntu 18.04 LTS mit NVIDIA Jetpack Version 4.6 basiert.

Diese Anleitung für den Einstieg führt Sie durch die Einrichtung Ihres OKdo Nano C100 (252-0055) und demonstriert die Verarbeitung der KI-Video-Gesichtserkennung mit einer Dual-CSI-Kamera-Konfiguration mit Python und OpenCV.

Los geht's!

OKdo Nano C100

Difficulty: Medium Time: 2 Hrs Steps: 9 Credits: None License: None

Alle Teile, die für den Einstieg benötigt werden:

  • OKdo Nano C100 Developer Kit (252-0055)
  • Offizielle Raspberry Pi Camera V2.1 (913-2664)
  • M.2 Wireless Module A8 (256-3901)
  • OKdo Multihead Plug-in AC/DC Adapter (202-3769)
  • 32 GB MicroSDHC-Karte Klasse 10 A1
  • Host-Computer Windows/Mac/Linux
  • HDMI-Monitor
  • USB-Tastatur
  • USB-Maus
  • HDMI-Kabel
  • Ethernet-Kabel
  • Internetverbindung und Router

Schritt 1: Einrichtung der Platine

Packen Sie das OKdo C100 Nano Developer Kit aus und schließen Sie die folgenden Kabel und Zubehörteile an. Kabel, SD-Karte und Netzteil sind nicht im Lieferumfang des Kits enthalten.

  • Schließen Sie einen HDMI-Monitor (Vollformat-Anschluss), eine USB-Tastatur und eine Maus an
  • Ethernet ist erforderlich, wenn Sie das Betriebssystem aktualisieren möchten
  • Optional können Sie ein M.2 E-Schlüssel-Funkmodul einbauen, indem Sie das Nvidia Jetson-Modul entfernen und das WLAN-Modul auf der Basisplatine anbringen, bevor Sie das Jetson-Modul wieder anbringen
  • Schließen Sie eine USB-Maus und -Tastatur an
  • Schließen Sie ein hochwertiges 5 V/4 A (20 W) Netzteil an die Hohlbuchse (5,5 mm x 2,1 mm) an, aber schalten Sie es noch nicht ein. Das empfohlene Netzteil ist das OKdo Multihead Plug-in AC/DC Adapter Universal Power Supply (PSU) (202-3769)
  • Der Micro-USB-Anschluss ist nur für eine serielle Konsole vorgesehen

Warnung: KEINEN Jumper auf die 2-polige Stiftleiste neben der Fassbuchse setzen

Board Setup

Schritt 2: Kameras

Das Nano C100 verfügt über 2 MIPI-CSI-Kameraports und die Software unterstützt Kameras, die auf imx219- (Raspberry Pi V2-Kamera) und imx477-Sensoren

  • Wir verwenden zwei Pi V2-Kameramodule, um die Fähigkeiten der Platine zu demonstrieren, aber Sie benötigen nur eines, um mitzumachen.

    • Öffnen Sie die Verriegelung des CSI-Steckers, indem Sie die Lasche anheben.
    • Schieben Sie das Flachbandkabel in den Stecker, wobei die blaue Markierung vom Kühlkörper weg zeigen muss. Drücken Sie die Verriegelung vorsichtig nach unten, um sie zu sichern.

Camera attached to C100 board

Fügen Sie eine zweite Kamera hinzu, falls Sie eine haben

  • Hier ist die Dual-Kamera-Konfiguration, die für die nachfolgenden Demos verwendet wird:

dual camera setup

Schritt 3: Flash-SD-Karte

Die C100 verwendet das NVIDIA Jetson Nano-Modul, das mit 16 GB Onboard-eMMC-Speicher ausgestattet ist. Zu Entwicklungszwecken werden wir das System-Image jedoch auf eine microSD-Karte flashen und von dieser booten. Dadurch erhöht sich die Speicherkapazität für die Software zur Anwendungsentwicklung.

Sie benötigen einen Host-PC (Mac/Windows oder Linux) mit einem Kartenlesegerät oder Adapter, um das Image herunterzuladen und zu flashen. Verwenden Sie eine hochwertige microSD-Karte mit 32 GB oder mehr, Geschwindigkeitsklasse 10, A1-bewertet. Wir haben mit einer 32 GB SanDisk Ultra getestet.

BalenaEtcher, Das Programm läuft auf Linux-/Mac-/Windows-PCs und wird zum Flashen und Überprüfen des SD-Karten-Images empfohlen.

OKdo Software download

  • Der Dateiname des Downloads lautet c100.img.xz
  • Legen Sie die microSD-Karte in den Kartenleser des Hosts ein
  • Starten Sie balenaEtcher, wählen Sie das C100-Bild und die SD-Karte aus
  • Wählen Sie Flash und warten Sie, bis das Bild geschrieben und verifiziert wurde – dies ist ein Befehl für die Kaffeepause!
  • Werfen Sie die SD-Karte aus dem Host aus und legen Sie sie in den C100-Kartensteckplatz unter dem Jetson Nano-Modul ein

Wählen Sie das richtige Drive!

balenaEtcher flash screen

Schritt 4: Erster Start

Beim ersten Start werden Sie durch die Einrichtungssequenz geführt, die die Annahme der NVIDIA-Endbenutzerlizenz (EULA) umfasst. Folgen Sie einfach den Anweisungen auf dem Bildschirm und akzeptieren Sie die Standardeinstellungen. Dadurch erhalten Sie die maximale Software-Partitionsgröße und konfigurieren das Modul im MAX-Stromversorgungsmodus.

  • Schließen Sie das Netzteil an
  • Die grüne LED neben dem Micro-USB-Anschluss leuchtet auf
  • Überprüfen und akzeptieren Sie die EULA der NVIDIA Jetson-Software
  • Wählen Sie die Systemsprache, das Tastaturlayout und die Zeitzone aus
  • Erstellen Sie einen Benutzernamen, ein Passwort und einen Computernamen
  • Akzeptieren Sie die Größe der APP-Partition. Es wird empfohlen, die vorgeschlagene Maximalgröße zu verwenden
  • Akzeptieren Sie die MAX-Energieeinstellung

Nach einigen Sekunden erscheint der Bionic-Desktop. Wenn Sie die Monitoreinstellungen anpassen müssen, klicken Sie auf das Symbol „Einstellungen“ in der Seitenleiste und ändern Sie die Anzeigeeinstellungen nach Ihren Wünschen.

Bionic desktop

Schritt 5: NVIDIA Jetpack

Das Bild wird mit NVIDIAs Jetpack Version 4.6 geliefert, das eine Reihe nützlicher Anwendungen für die Entwicklung von KI-Anwendungen installiert. Sie sind maßgeschneidert und für die Ausführung auf dem Jetson Nano-Modul optimiert und umfassen:

Jetson Linux - Bootloader, Linux-Kernel, Ubuntu-Desktop-Umgebung und ein kompletter Satz von Bibliotheken zur Beschleunigung von GPU-Computing, Multimedia, Grafik und Computer Vision.

TensorRT – eine hochleistungsfähige Deep-Learning-Inferenz-Laufzeitumgebung für neuronale Netze zur Bildklassifizierung, Segmentierung und Objekterkennung.

CUDA Toolkit – bietet eine umfassende Entwicklungsumgebung für C- und C++-Entwickler, die GPU-beschleunigte Anwendungen erstellen.

Jetson Multimedia API-Paket – stellt Low-Level-APIs für eine flexible Anwendungsentwicklung bereit.

Ausführliche Informationen zum NVIDIA Jetpack finden Sie auf der Jetpack-Seite auf der NVIDIA-Website.

Tip: If you upgrade with the package manager you may experience nvidia-l4t-bootloader errors, check out this NVIDIA forum post for fixes.

Sie können die aktuelle Version des Jetpacks mit dem folgenden Befehl überprüfen:

sudo apt-cache show nvidia-jetpack

check the current version of the Jetpack

Schritt 6: Kameratest

Im nächsten Abschnitt werden einige grundlegende Tests an Ihrer Kameraeinrichtung durchgeführt, um zu überprüfen, ob alles wie erwartet funktioniert.

Testen Sie jede Kamera mit dieser Gstreamer-Pipeline im Terminal. Setzen Sie die sensor_id für die erste Kamera auf 0 und für eine zweite Kamera auf 1 – dieser einzelne Befehl ist auf mehrere Zeilen verteilt:

gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! \
'video/x-raw(memory:NVMM), \
width=3280, height=2464, framerate=21/1, format=NV12' ! \
nvvidconv flip-method=2 ! 'video/x-raw,  \
width=816, height=616' ! \
nvvidconv ! nvegltransform ! nveglglessink -e

Je nach Ausrichtung Ihrer Kamera müssen Sie möglicherweise den Flip-Index in der Befehlszeile oben anpassen. Hier sind die Einstellungen:

flip-method: video flip methods

  • (0): none – Identity (no rotation)
  • (1): counterclockwise – Rotate counter-clockwise 90 degrees
  • (2): rotate-180 – Rotate 180 degrees
  • (3): clockwise – Rotate clockwise 90 degrees
  • (4): horizontal-flip – Flip horizontally
  • (5): upper-right-diagonal – Flip across upper right/lower-left diagonal
  • (6): vertical-flip – Flip vertically
  • (7): upper-left-diagonal – Flip across upper left/lower-right diagonal

Die Kamera sollte ein Videobild in einem neuen Fenster anzeigen. Drücken Sie zum Beenden Strg + C.

Camera Test

Schritt 7: Python-Bildverarbeitung

JetsonHacks.com hat nützliche Skripte bereitgestellt, die KI-Videoverarbeitungsfunktionen in Python und C++ demonstrieren. Die meisten der benötigten Tools sind bereits im Image installiert, wie Python3, der C++-Compiler und OpenCV, sodass für die Ausführung beeindruckender KI-Apps nicht viel eingerichtet werden muss.

Öffnen Sie ein Terminal über das Desktop-Symbol und führen Sie die folgenden Befehle aus:

Klonen Sie das CSI-Camera-Repository

git clone https://github.com/LetsOKdo/csi-camera.git

Directory ändern zu csi-camera

cd csi-camera

Installieren Sie libcanberra

sudo apt install libcanberra-gtk-module

Schritt 8: Gesichtserkennung

Dieses KI-Skript verwendet Python3- und OpenCV-Bibliotheken sowie ein trainiertes Modell, um Gesichter und Augenbewegungen in Live-Videostreams zu erkennen und zu verfolgen.

Es erstellt eine Gstreamer-Pipeline, die der oben genannten ähnelt, und leitet den Videostream an ein Gesichtserkennungsmodell weiter, das Gesichter und Augen erkennen kann und die Tracking-Boxen im Videostream rendert.

Führen Sie das Skript face_detect.py aus. In diesem Beispiel übergeben wir sensor_id=0 und flip_method=2

python3 face_detect.py 0 2

Öffnen Sie ein zweites Terminal und führen Sie eine weitere Instanz des Skripts aus, diesmal mit der Übergabe von sensor_id=1 für die zweite Kamera.

python3 face_detect.py 1 2

Sie sollten zwei Videobilder erhalten, die sowohl Flächen als auch Augenbewegungen aus verschiedenen Blickwinkeln in Echtzeit verfolgen!

CTRL+C für Exit

two video frames both tracking faces and eye movements

Schritt 9: Sicheres Herunterfahren

Vermeiden Sie eine Beschädigung des SD-Karten-Images, indem Sie das System ordnungsgemäß herunterfahren.

  • Klicken Sie auf das Zahnradsymbol oben rechts auf dem Desktop und wählen Sie „Herunterfahren“ aus.
  • Nach einigen Sekunden erlischt die grüne Betriebs-LED am C100 und der Stromanschluss kann entfernt werden.
  • Das System ist jetzt ausgeschaltet.

Fazit

Herzlichen Glückwunsch! Sie sollten Ihr OKdo Nano C100 Developer Kit erfolgreich eingerichtet und konfiguriert haben. Wir haben auch gezeigt, wie Sie mit der im NVIDIA Jetpack enthaltenen Software, die mit dem System-Image installiert wurde, mit der Entwicklung leistungsstarker Bildverarbeitungsanwendungen mit CSI-Kameramodulen beginnen können.

NVIDIA erstellt sehr hochwertige Dokumentationen für seine Produkte und Sie finden Links zu Tutorials, Anleitungen und einer aktiven Entwickler-Community, um Ihre nächsten Schritte zu unternehmen:

Wenn Sie die Funktionsweise der Gesichtserkennungs-App im Detail verstehen möchten, sehen Sie sich diese Videoserie mit dem Titel „OpenCV 101“ an.

Möglicherweise ist auch das OKdo C100-Datenblatt hilfreich.

Jetzt ist alles bereit, um die KI-Bildverarbeitungsfunktionen des C100 zu erkunden.

I'm an engineer and Linux advocate with probably more SBCs than a Odysseus moon lander

Kommentare