Popularny post lukasz-dev Napisano Luty 16, 2021 Popularny post Udostępnij Napisano Luty 16, 2021 Zbudowałem jeżdzącego robota na bazie standardowego podwozia, który ma jeździć zdalnie rozpoznawać obrazy Cieszę się bo było to pierwszy kontakt z technologią Tensorflow Lite i widzę jak fajne możliwości daje to na urządzeniach drobnych, niepodłączonych do internetu. Oryginalny wpis z mojego bloga znajdziecie tu: https://lukaszkuczynski.github.io/Machina-ze-slaboscia/ Github z projektem jest tu: https://github.com/lukaszkuczynski/rpi80b3 Dlaczego samochód? Od kiedy kupiłem pojedynczy silnik krokowy musiał odczekać swoje. Przeleżał dobre kilka tygodni w pudełku. Ale potem przemyślałem sprawę i zanim zaprojektowałem kolejny system z sensorem pomyślałem - jakie miałem myślenie w dzieciństwie? Zrobić autko, którym da się sterować. Zdalnie sterować. A dziś radio jest już wszędzie, wszystkie nasze mniejsze i większe urządzenia “chodzą po BT / WIFI”. A gdzieś na półce leżał czarny i zakurzony mały komputerek - Raspberry 3B. Machina działa w dwóch trybach pracy. Możliwe jest zdalne sterowanie i obserwowanie w kamerze gdzie jadę. Brak jakiejkolwiek stabilizacji więc obraz jakiego doświadczam wygląda mniej więcej tak. Jest tak zapewne dlatego że mocowanie to kawałek kartoniku. Gdy tylko dobiorę się do drukarki 3D albo z kolegą zaprojektuje mały stelaż będzie na pewno lepiej. Mogę też badać działanie uczenia maszynowego. Oczywiście nie trenowałem sieci neuronowej samemu bo choć bawiłem się już ML to nie miałem doświadczenia z badaniem obrazów - Computer Vision. Dlatego podstawiłem gotowy model w Tensorflow, który jest już wytrenowany na przykładowych obiektach. Oparty jest na zbiorze COCO . Aktualnie program jest tak ustawiony że gdy wykryty zostanie obiekt typu pomarańcz to pojazd wykonuje kilkusekundowy krótką jazdę wprost. Nie ma tu na razie logiki, która dostosowywała by tor jazdy do tego gdzie dokładnie ta pomarańcz stoi. Program do sterowania zdalnego to prosta aplikacja we Flasku. Komunikacja z silnikami odbywa się poprzez nadawanie sygnału PWM. Z kamerą mam dwie opcje do wyboru. Pierwszą jest zwyczajne przekierowanie obrazu na streaming HTML. Drugą jest detekcja obrazu. Jak to już wcześniej zaznaczyłem Tensorflow odwala tutaj brudną robotę. Detekcja polega na prostym klasyfikowaniu obrazów pochodzących z kamery z gotowym modelem zaczytanym z repozytorium. W moim wypadku jest tutaj klasyczny model COCO z 90 klasami obiektów. Cele na przyszłość: więcej czujników - np detekcja przeszkód korzystając z ładniejsza obudowa mniej baterii / zasilić wszystko z 1 źródła po detekcji obiektu zmierzać do obiektu, mądrze regulacja prędkości ładniejsza aplikacja webowa 10
wn2001 Luty 16, 2021 Udostępnij Luty 16, 2021 @lukasz-dev Wow, bardzo ciekawy projekt - chyba jeden z niewielu (na ten moment) nawiązujących do szeroko rozumianego AI 17 godzin temu, lukasz-dev napisał: W moim wypadku jest tutaj klasyczny model COCO z 90 klasami obiektów. Czy mogę prosić o jakiś link/tutorial[e], którym się wspomagałeś? Szczególnie interesuje mnie, co potrafi rozpoznawać COCO Rozumiem, że oprócz prostego stwierdzenia, czy na danym obrazie coś jest, możesz też wykryć dokładną pozycję tego obiektu? Sam chciałbym nieco głębiej wejść w temat, ale jakoś nigdy nie ma czasu - zawsze tłumaczę sobie, że chcąc wykryć np. tytułowe pomarańcze, mogę w OpenCV nałożyć maskę filtrującą kolor pomarańczowy (oczywiście wiem, że taka metoda w żaden sposób nie dorówna skutecznością TF-Lite) Ponadto jak z wydajnością? Na filmie widzę, że od momentu położenia owocu do reakcji mija dłuższa chwila - czy to cecha charakterystyczna takiej konfiguracji, czy można by coś z tym zrobić? Pozdrawiam i jeszcze raz gratuluję 1
Popularny post lukasz-dev Luty 17, 2021 Autor tematu Popularny post Udostępnij Luty 17, 2021 Hej, dzięki małe początki z robotyką, Ta dłuższa chwila z tego co dostrzegłem ma związek z przetwarzaniem przez program na Raspberry różnych obiektów. Myślę że to też interpretacja modelu przez maszynkę tylko z 1GB RAM też swoje robi. Mam też tam opóźnienie w tej pętli co robi swoje. Ogólnie ten COCO dataset to kilkadziesiąt obiektów różnych typów, tak jak jest u nich to opisane. To taki trochę Hello World dla Computer Vision z tego co się zorientowałem bo Tensorflow to lobbuje. Oczywiście można wykryć dokładną pozycję obiektu, to w kolejnych iteracjach projektu mogłoby sprawić że ruch w kierunku obiektu byłby bardziej precyzyjny i - co tu dużo mówić - skoordynowany Tutorial którym się jest na stronie Tensorflow, którym się mocno podpierałem, detekcja dla Raspberry Pi. Dodałem po prostu sterowanie silnikami w odpowiednim miejscu. 2 1
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »