How to |

Jak wykorzystać potencjał Nvidia Jetson dzięki dedykowanym SDK

Opublikowano: 09.03.2023
Zastosowanie:
    Jak wykorzystać potencjał Nvidia Jetson dzięki dedykowanym SDK

    Nvidia Jetson to popularna platforma, która umożliwia programistom tworzenie zaawansowanych rozwiązań z dziedziny sztucznej inteligencji, robotyki i automatyki. Oferuje ona wiele możliwości, jednak aby skorzystać z jej pełnego potencjału konieczne jest odpowiednie oprogramowanie.

    O Jetsonie w przemyśle napisaliśmy i opowiedzieliśmy już dużo, ale do tej pory skupialiśmy się na walorach hardware'owych tego rozwiązania. W niniejszym artykule przedstawimy najważniejsze informacje na temat oprogramowania dla Nvidia Jetson. Przede wszystkim opiszemy dostępne narzędzia i biblioteki, które mogą zostać wykorzystane w projekcie opartym o tę platformę. Przedstawimy także korzyści, które niesie ze sobą wykorzystanie gotowych rozwiązań oraz najważniejsze czynniki, które należy wziąć pod uwagę, wybierając odpowiednie oprogramowanie.


    Czym jest JetPack SDK?

    Zacznijmy od omówienia podstawowych składowych systemu. Nvidia JetPack SDK to zestaw narzędzi i bibliotek programistycznych stworzonych przez firmę dla urządzeń z serii Jetson (niezależnie czy jest to wersja NX, AGX, Nano itp.)

    JetPack SDK dostarcza programistom narzędzia do tworzenia, testowania i wdrażania aplikacji sztucznej inteligencji na urządzeniach Jetson z wykorzystaniem popularnych frameworków takich jak TensorFlow, PyTorch czy Caffe. Zawiera również biblioteki do przetwarzania obrazów i dźwięku, a także narzędzia do zarządzania systemem i wizualizacji danych.

    W jego skład wchodzi również specjalnie przygotowany system operacyjny - NVIDIA Jetson Linux 35.2.1, który bazuje Ubuntu 20.04 i jądrze Linux Kernel 5.10. Co ciekawe, system ten posiada rozbudowane GUI, co pozwala na łatwą obsługę, prawie jak w popularnych "PeCetach".

    Zatem dzięki temu SDK możemy szybko i bezproblemowo zacząć pracę z Jetsonem bez czasochłonnego instalowania wszystkich dodatków. Podczas naszych testów porównywaliśmy wydajność w Tensorflow pomiędzy SoM Jetson AGX na platformie Neousys Technology NRU 120S a ARM Apple M1 Pro. W NRU wszystko działało po wyjęciu z pudełka, a skonfigurowanie biblioteki TF pod M1 Pro, tak by działała bare-bones, zajęło nam kilka godzin.


    Jak maksymalnie wykorzystać platformę Jetson?

    Pozwolę sobie na wyrażenie własnej opinii: Nvidia ma największy wkład w rozwój praktycznych zastosowań technik związanych ze sztuczną inteligencją. Z perspektywy firm integratorskich i działań R&D w branży automatyki, Nvidia jest partnerem, który zapewnia najbardziej kompleksowe rozwiązania hardwarowe oraz softwarowe. Przyczynia się to w znacznym stopniu do przenoszenia AI z domeny laboratoryjnej do przestrzeni związanej z życiem codziennym.

    Sprawdźmy zatem co konkretnie Nvidia oferuje deweloperom. Na poniższej grafice przedstawiona została architektura rozwiązań:


    Nvidia TAO Toolkit

    To narzędzie, które w swoich założeniach jest przeznaczone do ułatwienia oraz przyspieszenia procesu tworzenia modeli uczenia maszynowego. Zawiera narzędzia do wstępnego przetwarzania danych, trenowania modeli, testowania i wdrażania modeli. Zawiera również pre-trenowane modele oraz zbiory danych, dzięki czemu umożliwia programistom szybkie rozpoczęcie pracy nad swoimi projektami AI, zmniejszając wymagania wstępne typu przygotowanie datasetów itp.

    Pozwala to deweloperom na trenowanie i dostosowywanie modeli uczenia maszynowego do specyficznych zastosowań, takich jak rozpoznawanie obrazów, przetwarzanie języka naturalnego, czy detekcja obiektów.

    Kluczowa jest tutaj technika transferu uczenia, która pozwala na wykorzystanie już istniejących modeli Machine Learning do uczenia nowych, przy wykorzystaniu mniejszej ilości danych treningowych.

    Przykładowe pre-trenowane modele znajdują się pod linkiem:

    https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&pageNumber=0&query=TAO&quickFilter=


    NVIDIA Triton Inference Server

    NVIDIA Triton Inference Server to wydajne oprogramowanie obsługujące wnioskowanie o otwartym kodzie źródłowym, zaprojektowane do wdrażania modeli uczenia maszynowego na dużą skalę w środowiskach produkcyjnych. Zapewnia elastyczną i zoptymalizowaną usługę wnioskowania, którą można łatwo zintegrować z dowolną aplikacją AI.

     

     

    Brzmi jak coś skomplikowanego?
    Uprośćmy to: TIS pozwala na stosunkowo łatwe grupowanie GPU/Jetson’ów w układy przeznaczone do zastosowania przy wnioskowaniu modeli tak dużych, że nie mieszczą się w pamięci VRAM pojedynczej karty graficznej.

    Pierwszą kluczową zaletą jest tutaj zdolność do pracy z małymi opóźnieniami. Serwer zaprojektowano z myślą o wysokiej przepustowości wnioskowania, co jest kluczowe dla przetwarzania danych w czasie rzeczywistym.

    Patrząc na kierunek rozwoju branży IoT będzie to rozwiązanie kluczowe w obszarach takich jak logistyka oraz infrastruktura energetyczna/drogowa.


    NVIDIA DeepStream SDK

    Przejdźmy teraz do narzędzi skupionych głównie (ale nie tylko) na zastosowaniu AI w obszarach widzenia maszynowego. Ponownie NVIDIA stawia na szybkość i prostotę wdrożenia. Pakiet ten obejmuje min.: biblioteki do:

    • przetwarzania obrazu real-time,
    • detekcji obiektów,
    • analizy,
    • kodowania/dekodowania treści wideo.

     

     

    DeepStrem jest kompletnym pakietem pozwalającym na aplikacji wizyjnych klasy enterprice. Możemy w prosty sposób zintegrować go Triton Inference Server. Takie połączenie jest unikalnym rozwiązaniem na rynku, które pozwala na proste tworzenie bezpiecznych aplikacji przeznaczonych do prowadzenia nadzoru wizyjnego (możemy połączyć go też z nadzorem ASR – automatic speech recognition), wykorzystując zalety Edge Computing.


    Rozbudowane platformy programistyczne dla platformy Jetson

    Dostarczane oprogramowanie to nie tylko pakiety SDK. To również gotowe platformy pozwalające na dokonanie kompletnego procesu wytwarzania aplikacji dla środowisk przemysłowych. Możliwości, jakie dają, robą duże wrażenie. 


    NVIDIA ISAAC

    Pierwszym oprogramowaniem jest ISAAC - platforma programistyczna i zestaw narzędzi dedykowany dla zaawansowanych robotów i aplikacji, takich jak:

    • roboty przemysłowe,
    • drony,
    • pojazdy autonomiczne,
    • robotyka usługowa.

    Platforma została zaprojektowana w celu umożliwienia inżynierom i programistom tworzenie zaawansowanych robotów z wykorzystaniem technologii sztucznej inteligencji i widzenia maszynowego.

    Co zatem wchodzi w jej skład? Poza komponentami opisanymi już wcześniej, takimi jak TAO oraz DeepStream, mamy do dyspozycji kilka elementów. 

    • ISAAC Sim

    Skalowalne rozwiązanie do symulacji oraz syntetycznego generowania danych – czyli takich które zostały stworzone przez program komputerowy, a nie pochodzą z rzeczywistych obserwacji lub pomiarów. Ten proces polega na wykorzystaniu algorytmów i modeli matematycznych do stworzenia danych, które są podobne do tych, które można znaleźć w rzeczywistości. Jako że mamy do czynienia z oprogramowaniem NVIDIA, jakość graficzna symulacji jest świetna.

    • cuOpt

    Jest to pakiet oprogramowania umożliwiający implementacje AI w logistyce. Pozwala nam między innymi zarządzać wyzwaniami związanymi z planowaniem trasy pojazdu, dostawy Last Mile oraz przeprowadzać analizę wydajności łańcuchów dostaw w czasie rzeczywistym. Do naszych analiz możemy wprowadzać zmienne związane ze stanem naszej floty, stanem kierowców, ruchem drogowym oraz nawet zdarzenia pogodowe. A to wszystko akcelerowane na platformie Jetson. 

    • ISAAC ROS

    Możemy zejść jeszcze niżej w naszej architekturze przy wykorzystaniu oprogramowania NVIDIA. Jest to zestaw narzędzi dla systemu ROS 2 (Robotics Operation System), umożliwiających wykonywanie zadań związanych z systemami wizyjnymi oraz monitorowanie parametrów robota w czasie rzeczywistym i akcelerowane bezpośrednio na SoM Jetson.

    • NVIDIA Metropolis 

    Na koniec przejdźmy do świata IIoT. Jednym z najnowszych rozwiązań zielonego producenta jest pakiet Metropolis, który dopasowany jest do zastosowań w infrastrukturze. Podobnie jak w przypadku ISAAC, jest to rozwiązanie End-to-End oraz wykorzystuje wcześniej wymienione technologie.


    Podsumowanie

    Jak widać Jetson jest bardzo uniwersalną platformą, umożliwiającą w przystępny sposób tworzenie zaawansowanych aplikacji. Co równie ważne, ta architektura jest dostępna w ramach rozwiązań przemysłowych renomowanych producentów: Neousys oraz Advantech.

    Wizerunek autora
    Tycjan Kołecki