Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu

ghost666 26 Cze 2018 18:59 1476 0
  • Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu
    Pixy2 to niewielka kamera z wbudowanym systemem detekcji obiektów na obrazie. To szybszy następca kamery Pixy, który dodatkowo posiada znacznie większą funkcjonalność. Kamerę bardzo łatwo uczy się detekcji nowych obiektów. Dodatkowo, system posiada wbudowane zaawansowane algorytmy do detekcji linii, które pozwalają wykrywać także skrzyżowania itp. Dzięki temu zwykły line-follower zamienić może się w bardziej zaawansowaną konstrukcję.

    Wszystko to przy 60 fps, dzięki czemu nasz system może być bardzo szybki i wydajny.

    Konstruowanie systemu w oparciu o prezentowaną kamerę jest niezwykle proste - Pixy2 podłącza się bezpośrednio do Arduino i Raspberry Pi. nie ma potrzeby martwić się niewielkimi złączami czy złożonymi interfejsami - do kamery dołączony jest specjalny kabel, który pozwala na podłączenie wszystkich potrzebnych interfejsów do naszego systemu: SPI, I²C, UART oraz USB. Dzięki dołączonemu oprogramowaniu nasz kontroler może zacząć komunikować się z kamerą w kilka chwil.

    Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu
    Upraszcza programowanie

    Aby ułatwić wykorzystanie nowej kamery w naszych projektach, autorzy konstrukcji udostępniają biblioteki pod Arduino i Raspberry Pi. Dzięki temu, że Pixy2 wysyła do sterującej nią platformy tylko te dane, które są nam potrzebne, system nie obciąża sobą całego urządzenia. Na przykład, jeśli wyuczymy kamerę rozpoznawania tylko purpurowych obiektów, to zaprogramowana kamera będzie zwracała do naszego systemu jedynie informacje o tych obiektach - koordynaty X-Y na obrazie, rozmiar i unikalny numer ID każdego obiektu, który wykryje Pixy2.

    Oferowana kamera jest w pełni otwarta - tak oprogramowanie jak i sprzęt dystrybuowane są na otwartej licencji. Kamera jest już dostępna do zakupu.

    Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu
    Pixy2 jest drugą wersją znanej kamery Pixy. Oto co dodano w drugiej wersji:

    * Detekcja linii, włącznie ze skrzyżowaniami oraz kodów kreskowych.
    * Poprawiona prędkość - teraz 60 klatek na sekundę.
    * Dodane algorytmy śledzenia kolorowych obiektów.
    * Zintegrowane źródło światła.

    Oczywiście, Pixy2 potrafi także to, co swój poprzednik:

    * Wykrywanie nauczonych obiektów.
    * Łączenie z Arduino, Raspberry Pi, BeagleBone etc z pomocą dołączonych kabli.
    * Biblioteki dla Arduino i Raspberry Pi.
    * Wsparcie dla C, C++ i Pythona.
    * Komunikacja poprzez jeden ze standardowych interfejsów: SPI, I²Cm UART, USB lub linie analogowe i cyfrowe.
    * Programy konfiguracyjne pod Windowsa, MacOSa i Linuxa.
    * Hardware i Software na licencji GNU.
    * Pełna dokumentacja sprzętu

    Jak to się zaczęło

    Projekt Pixy powstał dzięki partnerstwu Carnegie Mellon Robotics Institute i Charmed Labs. Urządzenie to pochodzi z długiej linii kamer CMUcam, ale Pixy jest pierwszym, które doczekało szerokiej adpocji dzięki kampanii na Kickstarterze. Pierwsze kamery trafiły do klientów w marcu 2014 roku i od tego czasu system ten stanowi najpopularniejsze w historii rozwiązanie dla systemów wizyjnych. Projekt utrzymuje się wyłącznie dzięki sprzedaży urządzeń.



    Obraz jako sensor

    Jeśli chcesz, aby robot podniósł jakiś obiekt, gonił piłkę czy zlokalizował stację ładowania i chcesz, by za realizację tych zadań odpowiedzialny był tylko jeden sensor, to system wizyjny jest doskonałą odpowiedzią. Sensory obrazu są bardzo elastyczne, dzięki zastosowaniu odpowiednich algorytmów można wykrywać zasadniczo dowolne obiekty w polu widzenia kamery. Taki układ ma niestety dwie wady:

    1) Produkuje bardzo dużo danych - megabajty na sekundę.
    2) Ilość danych i konieczność ich obróbki jest w stanie obciążyć wiele procesorów. Nawet jeżeli poradzi on sobie z algorytmami, to może nie pozostać wiele mocy obliczeniowej dla innych zadań.

    Pixy2 rozwiązuje oba te problemy, dzięki wbudowaniu w kamerę dedykowanego procesora. Układ przetwarza zebrany obrazy i wysyła do systemu tylko pożądane informacje - np. lokalizację wykrytego obiektu. Do jednego mikrokontrolera podpiąć można kilka takich kamer - np. 4 kamery, by uzyskać widzenie dookólne. Można też nie korzystać z mikrokontrolera i tak skonfigurować Pixy2, by wyzwalało liniami cyfrowymi lub analogowymi konkretne urządzenia, przełączniki, serwa etc.

    Szerokie wsparcie

    Układ, dzięki wyposażeniu w szereg interfejsów, wspiera różne platformy. Pixy zaczęło swoje życie w ekosystemie Arduino, jednakże obecnie dodano wsparcie dla innych platform, takich jak Raspberry Pi czy BeagleBone Black. Twórcy dostarczają biblioteki do każdej z tych platform. Dodatkowo dostępne jest API napisane w Pythonie, co umożliwia podłączenie układu do niemalże dowolnego systemu.

    60 klatek na sekundę

    Dzięki wysokiej przepustowości kamery, Pixy2 jest bardzo szybkie. Przetwarza obraz w czasie poniżej 16,7 ms, dzięki czemu 60 razy na sekundę może nam dostarczać nowych danych. Jest to istotne w przypadku szybko poruszających się obiektów - piłka lecąca z prędkością 60 km/h pokonuje w czasie 16,7 ms odległość poniżej 30 cm.

    Detekcja kolorów

    Dzięki analizie kolorów algorytm Pixy2 może wykrywać obiekty o zadanym kolorze. Algorytm odporny jest na zmiany warunków oświetlenia, dzięki zastosowaniu specjalnych filtrów na danych RGB. System zapamiętać może do siedmiu kolorów, dzięki czemu może rozróżniać i bez problemu je wszystkie identyfikować. Jeśli potrzebne jest więcej kolorów, Pixy2 także doskonale się sprawi, jednakże wymaga to trochę więcej starania po stronie użytkownika.

    Setki obiektów

    Kamera jest w stanie śledzić setki obiektów naraz. Wykorzystuje specjalny algorytm do oceny gdzie kończy się jeden obiekt, a zaczyna drugi. Dane na temat wykrytych obiektów są następnei wysyłane poprzez wybrany interfejs do naszego mikrokontrolera bądź komputera jednopłytkowego.

    Pixy2 jest unikalne dlatego, że użytkownik może wyuczyć system wykrywania konkretnych obiektów. Nieważne, czy ma być to pomarańczowa piłka czy fioletowy dinozaur - postaw obiekt przed kamerą i naciśnij przycisk. System jest prosty w obsłudze i szybki w działaniu. Wbudowane w system diody RGB pomogą monitorować proces uczenia - zapalają się one na taki kolor, jaki ma wykrywany obiekt. Jeśli umieścimy naszą piłkę przed obiektywem, a diody zapalą się na pomarańczowo to wiemy, że układ uczy się dokładnie tego obiektu, który chcieliśmy.

    Śledzenie obiektów

    Po wykryciu Pixy2 śledzi trajektorię obiektu na obrazie. Dodawany jest on do tablicy z śledzonymi obiektami, do której dostęp mamy poprzez interfejs cyfrowy systemu. Kamera numeruje każdy obiekt liczbą od 0 do 255 - ID jest stale aż do momentu gdy śledzony obiekt opuści pole widzenia kamery.

    Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu
    Zaawansowanie śledzenie linii

    Pixy2 może śledzić linię np. na podłożu. Tego rodzaju algorytmy są popularnym demonstratorem robotów, gdyż dosyć łatwo je zaimplementować. Daje to robotowi podstawowe zdolności nawigacji w terenie. Większość robotów tego rodzaju wykorzystuje dyskretne fotoelementy, które śledzą linię. Musi ona być gruba, by sensory nie miały problemu z odróżnieniem jej od tła. Ta metoda jest dobra tak długo, jak długo nie trafiamy na skrzyżowanie linii.

    Pixy2 rozwiązuje ten problem w bardziej ogólny sposób - śledzi on linie wykorzystując obraz z kamery. Działa podobnie jak nasze oczy śledzące kształt drogi. Pixy2 gromadzi informacje nie tylko na temat lokalizacji linii, ale także jej kierunku, przebiegu i ewentualnych skrzyżowań. Wszystko to odświeżane 60 razy na sekundę.

    Wykrywanie skrzyżowań linii

    Skrzyżowania linii są sporym wyzwaniem dla line-followerów, ponieważ mogą przyjmować wiele kształtów i form. Może nasz robot dobrze radzi sobie z skrzyżowaniami w kształcie litery T, ale głupieje gdy widzi Y? a co z skrzyżowaniami z 4 czy 5 rozjazdami? Co jeżeli linie są rysowane ręcznie i pofalowane? Pixy2 doskonale radzi sobie z wszystkimi tymi przykładami, jak pokazano poniżej.

    Kamera informuje o napotkaniu skrzyżowania, liczbie dróg, kącie między nimi etc. To mikrokontroler decyduje za którą linią podążyć i komunikuje to Pixy2, które czyni z tej linii główną, po której podążać będzie algorytm śledzenia.

    Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazuPixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu

    Pixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazuPixy2 - nowa kamera z wbudowanymi algorytmami analizy obrazu


    Odczyt kodów kreskowych

    Oprócz detekcji linii i ich skrzyżowań system może także wykrywać kody kreskowe. Mogą one być wykorzystywane np. jak znaki drogowe, pozwalające nawigować się po skrzyżowaniach, albo dostarczać innych informacji, na przykład komendy "zwolnij". Pixy2 może wykrywać do 16 różnych kodów.

    Zintegrowane źródło światła

    Jezeli kamera zdecyduje, że obraz jest zbyt ciemny, to może załączyć wbudowane źródło światła. Zintegrowane LEDy są niezwykle pomocne, zwłaszcza przy podążaniu za linią. Oświetlacz daje bardzo dużo światła i pozwala, niezależnie od otoczenia, uzyskiwać wysokiej jakości obrazy do analizy. Wbudowane LEDy mają około 20 lumentów - dwa razy tyle co latarka w smartfnie (np. iPhonie).

    Źródło: https://pixycam.com/pixy2/

    Fajne! Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9502 postów o ocenie 7548, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.