Skocz do zawartości

Pierwsze kroki z modułem Nvidia Jetson Orin NX


Pomocna odpowiedź

Obraz systemowy zawiera przykład od nazwie "Collision Avoidance"

JetBot-AI-1.thumb.png.62fc755fa265c19ff2a05051fd3eec18.png

Niestety, przy próbie uruchomienia pojawia się błąd związany z brakiem pliku:

JetBot-AI-2.thumb.png.f643553eeffa5bce309d5eda9229c53a.png

Plik "best_model.pth" zawiera wytrenowaną sieć. Przykładowy plik można pobrać z internetu, ma ponad 200MB, ale co najważniejsze - niekoniecznie będzie dopasowany do naszego środowiska. Więc najlepszym rozwiązaniem jest wytrenowanie sieci samemu.

Pierwszym krokiem jest zebranie danych. Potrzebujemy zdjęcia należące do 2 kategorii:

  • gdy przestrzeń przed robotem jest wolna
  • zablokowanej trasy

Do zbierania danych możemy wykorzystać przykładowy notebook "data_collection.ipynb":

JetBot-AI-3.thumb.png.3225ecde5a97334133e4f8e6fb71d6a9.png

Dalsza część przykładu dostarcza wygodny interfejs, w którym do zrobienia zdjęcia wystarczy nacisnąć przycisk "add free" lub "add blocked":

JetBot-AI-4.thumb.png.f6e3a3cc70c398aa5aaf06292a5d3990.png

Zdjęcia są automatycznie zapisywane w odpowiednich katalogach na karcie sd. Zbieranie danych zajmuje sporo czasu, ja na początek przygotowałem nieco ponad 100 zdjęć wolnej trasy:

0afa1700-440f-11ee-882b-98af65469605.thumb.jpg.d959c9c442b62be7352cd41a45399b37.jpg2f83e65a-440f-11ee-882b-98af65469605.thumb.jpg.eac203c12b59bf93b79e78aa4beb8890.jpg7c3a2f9a-440f-11ee-882b-98af65469605.thumb.jpg.832d115c197e3cd07af12787c184048f.jpg

Oraz 100 zdjęć trasy zablokowanej:

0b6d3842-4410-11ee-882b-98af65469605.thumb.jpg.f109870fbaaaf996b0c0a375c376c9a9.jpg2cce9eae-4410-11ee-882b-98af65469605.thumb.jpg.28d38b7438f44d29927b4bf68a0bc9ea.jpg8f081e88-4410-11ee-882b-98af65469605.thumb.jpg.f57b74f4662424fc6eb2183f69868afb.jpg

Kolejnym krokiem było wytrenowanie sieci.

 

  • Lubię! 1
Link do komentarza
Share on other sites

Trenowanie sieci możemy wykonać wykorzystując kolejny przykładowy skrypt, tym razem o nazwie "train_model.ipynb".

Bazuje on na dość już starej sieci AlexNet (https://en.wikipedia.org/wiki/AlexNet) oraz technice znanej jako "transfer learning", która polega na modyfikacji już nauczonej sieci zamiast rozpoczynania całego procesu od nowa. Dzięki temu czas treningu jest o wiele krótszy, a co ciekawe trenowanie sieci można wykonać na płytce Jetson Nano.

Oczywiście w przypadku bardziej zaawansowanych sieci konieczne będzie użycie komputera z dobrym akceleratorem GPU, ale w przypadku AlexNet najprościej było po prostu uruchomić skrypt train_model.ipynb. Po kilku minutach wytrenowana sieć była gotowa i skrypt live_demo.ipynb mógł kontynuować działanie.

Efekty okazały się ciekawe, chociaż nie idealne:

Oczekiwałem trochę lepszych efektów, ale jak na pierwsze podejście widać że robot chwilami zachowuje się całkiem poprawnie. 

Jak widać początki z AI nie są tak proste jak można byłoby oczekiwać. Z drugiej strony to tylko pierwsza próba - w kolejnych krokach postaram się poprawić rezultaty.

 

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.