Der Jetson Nano hat einen beeindruckenden Funktionsumfang: Er kann vollständige native Versionen beliebter ML-Frameworks wie TensorFlow und PyTorch ausführen. Das bedeutet, dass Sie Deep Learning, Bildklassifizierung und Posenschätzung auf dem Gerät ausführen können. Der Jetson Nano unterstützt auch eine Vielzahl anderer Algorithmen, darunter TensorRT, DeepStream, Keras, MXNet und TensorRT.
Tensor RT
Wenn Deep-Learning-Modelle auf dem Jetson Nano ausgeführt werden, kann TensorRT verwendet werden, um die Arbeitslast auf das gesamte Gerät zu verteilen. Mit dieser Technologie müssen weniger Kernel gestartet werden, um die Algorithmen auszuführen, und das Ergebnis ist ein kleinerer, schnellerer Graph. Dies kann die Latenzzeit für Schlussfolgerungen verringern und die Genauigkeit verbessern.
Ein Projekt mit dem Namen “Intelligent Video Analytics” verwendet diesen Ansatz, um die Verfolgung mehrerer Personen und die Erkennung von Aktivitäten durchzuführen. Das Projekt verwendet OpenCV und Openpose für die Posenschätzung. Es verwendet auch eine Scikit-Learn-Implementierung und TensorRT-Konverter für optimierte Inferenz auf dem Jetson Nano.
Um TensorRT-Algorithmen auf dem Jetson Nano laufen zu lassen, sollten Benutzer zunächst das Docker-Image für den Jetson Nano herunterladen. Es sollte die Möglichkeit haben, auf die GPU zuzugreifen und sollte im privilegierten Modus laufen. Alternativ können Sie TensorFlow-Modelle in onnx konvertieren. Führen Sie dann das Docker-Image aus. Um sicherzustellen, dass die Tensor RT Algorithmen korrekt laufen, stellen Sie sicher, dass Ihre Modelle onnx sind. Diese Modelle müssen TRT-kompatibel sein, um mit dem TensorRT-Executor des Jetson Nano zu funktionieren.
TensorRT hat eine integrierte Schnittstelle mit TensorFlow. Dies ist im Grunde ein Semi-Framework zur Beschleunigung von Tensorflow-Sitzungen. Das Ergebnis ist, dass das optimierte Modell schneller und mit geringerer Inferenzzeit läuft. TensorRT ist der ultimative Schritt für den Einsatz von Machine-Learning-Modellen in eingebetteten und robotischen Systemen, autonomem Fahren, Datenzentren und mehr.
DeepStream
DeepStream ist eine neue KI-Bibliothek, die die Berechnung von Multi-Stream-Videos und -Bildern ermöglicht. Sie funktioniert durch Überlagerung mehrerer KI-Modelle. So kann ein Benutzer beispielsweise ein Modell verwenden, um eine Person zu erkennen, die auf einer Baustelle arbeitet, und ein anderes Modell, um zu überprüfen, ob die Person sicher ist. DeepStream ist mit der Hardware und Software des Jetson Nano kompatibel und kann auf diesem Gerät ausgeführt werden.
Sie können DeepStream-Algorithmen auf dem Jetson Nano mit dem DeepStream SDK ausführen. Das SDK ist für die beschleunigte Entwicklung von KI-basierten Videoanalyseanwendungen konzipiert. Es unterstützt Jetson Xavier und Jetson Nano Geräte und kann auf NVIDIA GPU-betriebenen Clouds eingesetzt werden. DeepStream SDK ist auch mit einer Vielzahl anderer Hardware- und Software-Plattformen kompatibel, darunter Raspberry Pi und Apples iPhone.
Das DeepStream SDK unterstützt die Anwendungsentwicklung in Python und C/C++. Das SDK wird mit mehreren Referenzanwendungen geliefert. Weitere Beispielanwendungen finden Sie auf der NVIDIA AI IOT GitHub Seite. Dort finden Sie auch weitere Beispiele für DeepStream-Anwendungen. Wenn Sie Ihre eigene Anwendung erstellen möchten, befolgen Sie einfach die oben aufgeführten Schritte.
DeepStream-Algorithmen können mit wenigen Schritten auf dem Jetson Nano ausgeführt werden. Das SDK verwendet eine optimierte Graphenarchitektur und das Open-Source-Framework GStreamer. Das DeepStream-SDK enthält das GStreamer-Framework sowie Plugins für gängige Videoanalyseaufgaben. Sie können DeepStream auf Ihrem Jetson Nano für eine schnellere Videoanalyse verwenden.
Neuronale Netzwerke
CUDA ist eine Architektur, die von NVIDIA entwickelt wurde, um die CPU von Berechnungen zu entlasten. Diese Architektur nutzt den Grafikprozessor zur Ausführung paralleler Berechnungen und schafft eine parallele Rechenumgebung. Der Jetson Nano verfügt über 128 CUDA-Kerne. Ein einzelner Kern auf dem Jetson Nano entspricht zwei CPU-Kernen. Jeder der Kerne bearbeitet unterschiedliche Aufgaben, aber sie haben die gleiche allgemeine Architektur und Pin-Kompatibilität.
Der Jetson Nano ist in der Lage, mehrere Arten von neuronalen Netzen auszuführen. Er führt die vollständigen nativen Versionen vieler beliebter ML-Frameworks aus, darunter Caffe/Caffe2, MXNet und TensorFlow. Dadurch kann er Aufgaben ausführen, die von der Objekterkennung bis zur Posenschätzung und von der Videoverbesserung bis zur semantischen Segmentierung reichen.
Der Jetson Nano führt neuronale Netzwerke mit TensorFlow aus, einer Open-Source-Softwarebibliothek. Diese Softwarebibliothek verwendet Datenflussgraphen, um mehrdimensionale Datenarrays darzustellen. Um die Leistung zu maximieren, verteilt sie die Berechnungen auf mehrere CPUs und GPUs. Darüber hinaus verfügt der Jetson Nano über einen integrierten Grafikprozessor, was ihn zu einer hervorragenden Wahl für die Ausführung neuronaler Netzwerke macht.
Das Jetson Nano Developer Kit ist ein einfach zu bedienender Computer, der es dem Benutzer ermöglicht, mehrere neuronale Netzwerke parallel laufen zu lassen. Es ist ideal für die Entwicklung von Modellen für Computer Vision, Objekterkennung, Segmentierung und Sprachverarbeitung. Es bietet außerdem verschiedene andere Funktionen, darunter ein Jupyter-Notebook.
Bildklassifizierung
Sie können Bildklassifizierungsalgorithmen auf dem Jetson Nano mit dem Entwicklerbetriebssystem von NVIDIA ausführen. Um den Jetson Nano mit dem Entwicklerbetriebssystem zu installieren, müssen Sie zunächst die erforderlichen Modelle und Pakete herunterladen. Außerdem müssen Sie die Shell-Skripte “sudoers” integrieren. Der Installationsprozess wird einige Stunden in Anspruch nehmen. Sobald die Installation abgeschlossen ist, müssen Sie sich mit dem richtigen Passwort anmelden und den Jetson Nano neu starten.
Sobald der Jetson Nano mit einer Kamera verbunden ist, beginnt er automatisch, verschiedene Objekte zu erkennen. Seine künstliche Intelligenz klassifiziert diese Objekte dann auf der Grundlage von Vertrauensstufen, wodurch der Jetson Nano für die Objekterkennung in Echtzeit nützlich wird. Einmal trainiert, kann er sogar unbekannte Objekte wie Autokennzeichen erkennen.
Die Entwicklung und der Einsatz von Deep-Learning-Modellen auf dem Jetson kann schwierig sein. Wenn Sie jedoch einige bewährte Verfahren befolgen, können Sie das Beste aus Ihrem Jetson herausholen. So können Sie die Leistung des Modells optimieren, die kosteneffizientesten Produktionsparameter finden und das Modell in anspruchsvollen Umgebungen testen. Glücklicherweise gibt es bereits einige Tools, die Ihnen diesen Prozess erleichtern.
Um Bildklassifizierungsalgorithmen auf dem Jetson Nano auszuführen, müssen Sie zuerst die TensorFlow-Bibliothek herunterladen und sie in TensorRT konvertieren. Sobald Sie dies getan haben, können Sie Ihren Algorithmus auf dem Jetson Nano trainieren. Sie können zum Beispiel das dusty-nv Repository verwenden, um optimierte Modelle von TensorFlow herunterzuladen.
Segmentierung
In diesem Beitrag zeigen wir, wie man Segmentierungsalgorithmen auf einem Jetson Nano trainiert und einsetzt. Wir verwenden das TAO Toolkit und den COCO-Datensatz. Anschließend verwenden wir das DeepStream SDK, um die Segmentierungsmodelle einzusetzen. Wir bewerten die Leistung der Modelle im COCO-Benchmark sowie in verschiedenen anderen Benchmark-Datensätzen.
Die Inferenz-Benchmarks zeigen, dass der Jetson Nano große Datensätze in Echtzeit verarbeiten kann. Dies ist durch das einheitliche Speichersubsystem und die flexible Software des Jetson Nano möglich. Er kann auch DNNs und kundenspezifische Architekturen ausführen und verfügt über eine vollständige CUDA-Architektur. Dies macht ihn zu einer vielseitigen Plattform für digitale Signalverarbeitung und Computer Vision.
Im Vergleich zu früheren Geräten kann der Jetson Nano eine Erkennungsgeschwindigkeit von bis zu 21,3 Bildern pro Sekunde erreichen. Er ist in der Lage, Objekte mit einer Genauigkeit von 0,87 zu erkennen. Darüber hinaus bietet der Jetson Nano auch die gleichzeitige Ausführung von GPU und CPU. Dadurch kann er große Datenmengen verarbeiten und komplexe Algorithmen gleichzeitig ausführen.
Außerdem hat der Jetson Nano einen geringen Stromverbrauch. Er verbraucht nur 0,5 W bei 2 A und 1,25 W bei 4 A. Er unterstützt zwei softwaredefinierte Stromsparmodi. Ein Energiemodus begrenzt die CPU- und GPU-Frequenzen, der andere die Anzahl der CPU-Kerne.
Objekterkennung
Der Jetson Nano ist eine GPU-fähige Edge-Computing-Plattform. Aufgrund seiner Fähigkeiten eignet er sich gut für den Einsatz von vortrainierten KI-Modellen. Eine Beispielanwendung des Jetson Nano demonstriert, wie mehrere Objekterkennungs- und -erkennungsalgorithmen in Echtzeit ausgeführt werden können. Die Demonstration zeigt, wie man ein DNN-Modell trainiert, um Objekte in Echtzeit-Videomaterial zu identifizieren.
Eine der wichtigsten Fähigkeiten für moderne autonome Fahrzeuge ist die Objekterkennung in Echtzeit. Die Objekterkennung ist entscheidend für autonome Fahrzeuge und wird auch im Alltag immer wichtiger. Die leichten Komponenten und der geringe Stromverbrauch des Jetson Nano machen ihn zur idealen Wahl für ein Gerät, das Objekterkennung durchführt.
Um den Jetson Nano für die Ausführung von Objekterkennungsalgorithmen zu trainieren, sollten Entwickler einen Datensatz vorbereiten. Sie können öffentlich verfügbare Datensätze herunterladen oder ihre eigenen erstellen. Alternativ kann auch Videomaterial in Bilder umgewandelt werden. Nach dem Training kann der Jetson Nano ein Deep-Learning-Modell ausführen.
Algorithmen zur Objekterkennung werden schon seit langem untersucht. Die direkte Übernahme des Transfer-Learning-Backbones von der Klassifizierung zur Erkennung ist ein kontroverses Thema, wobei einige Forschungsarbeiten ihre eigenen Backbones auf der Grundlage von Objekterkennungsdatensätzen konstruieren. Weitere Forschung ist erforderlich, um die aufgabenspezifische Natur der späteren Schichten besser zu verstehen. Ziel ist es, den besten Kompromiss zwischen Genauigkeit und Effizienz zu finden.
Ähnliche Themen