Google Coral AI i Intel N100

Edukując się od jakiegoś czasu w obszarze AI, doszedłem do wniosku, że nie samymi modelami językowymi człowiek żyje i czasem trzeba wrócić do źródeł, czyli do „inteligentnego domu”. Chcę dodać trochę „inteligentnych” funkcji do mojego systemu automatyki, a jednocześnie przebudować system monitoringu. Dlatego zainteresował mnie Google Coral.

Google Coral AI (M.2)

Google Coral to TPU (Tensor Processing Unit), czyli akcelerator AI – specjalizowany, energooszczędny układ, który przyspiesza obliczenia potrzebne do działania sieci neuronowych. A po ludzku? Pozwala delegować obliczenia związane z działaniem sieci neuronowych z procesora, który zwykle kiepsko sobie z tym radzi, do dedykowanego układu. A jeszcze prościej? Podam przykład, użyteczny. Gdy chcemy wykrywać jakieś konkretne obiekty na obrazie video – ludzi, samochody czy słonie, to wymaga to sporej mocy obliczeniowej i mocno zajmuje procesor. A taki układ robi to sprawnie i nie potrzebuje do tego za dużo energii. Ale oczywiście nie zastąpi procesora w innych zadaniach, bo to układ specjalizowany.

Przejdźmy jednak do praktyki. Opisywałem nie tak dawno mój pierwszy komputer z procesorem Intel N100. Powiem szczerze, że energooszczędne, tanie i całkiem mocne komputerki urzekły mnie i zacząłem je stosować w różnych miejscach, szczególnie tam gdzie Raspberry Pi nie daje rady. Nie odczytajcie tego źle – nadal jestem fanem Raspberry, ale N100 daje więcej w stosunku ceny do mocy. Nie powinno być więc zaskoczeniem, że Corala postanowiłem zainstalować w Mini PC bazującym na Intelu N100.

Firebat T8 Pro

Konkretnie jest to Firebat T8 Pro z 16GB RAM (DDR5) i 512GB SSD. Mały, szybki, energooszczędny. Poniżej 5W gdy odpoczywa. Nie więcej niż 20W pod pełnym obciążeniem. Zasilanie z 12V, więc łatwo podtrzymać pracę z użyciem zasilacza buforowego. Nie trzeba więc się bawić w nieefektywne UPSy. Przejdźmy jednak od teorii do praktyki i zobaczmy co jest w środku.

Rozkręcanie Firebat T8 Pro

Na początek odkręcam 4 wkręty na dole obudowy. Ale niewiele to zmienia, bo widzę odkryty wiatrak, ale Mini PC pozostaje monolitem. W zagłębieniach są 4 kolejne śruby, bo odkręceniu których niewiele się zmienia. No tak, zatrzaski, jak ja ich nie lubię. Trzeba użyć siły i rozchylić nieco boki obudowy, żeby dostać się do środka. Ale jednak pewna doza wyczucie będzie potrzebna, żeby nie urwać kabli od anten WiFi i głośnika, przyklejonych do obudowy i połączonych z płytą delikatnymi kabelkami.

Firebat – wnętrze i dysk SSD

Tak to wygląda w środku. Całkiem zgrabna płytka. Widać demontowalny SSD, który trzeba odkręcić na chwilę, bo pod nim jest karta WiFi, której będę się pozbywał. No tak, gdzieś tego Corala trzeba włożyć, a WiFi jest dla mnie zupełnie zbędne. Nie jestem fanem WiFi, jeżeli tylko sprzęt stoi w jednym miejscu i można podłączyć go przewodowo.

Firebat T8 bez dysku, ale jeszcze z WIFi

Poszło łatwo. Teraz można wykręcić kartę WiFi. Ja odkleiłem też anteny od obudowy, bo nie będą już potrzebne, a kartę może kiedyś się jeszcze wykorzysta. Chociaż pewnie nie.

Firebat T8 Pro – płyta główna

Czysto. Rozszerzenia zdemontowane. Teraz w złącze M.2, gdzie wcześniej było WiFi, można zainstalować Google Coral AI.

Google Coral AI w Firebat T8 Pro

Instalacja jest banalna. Oczywiście trzeba ponownie wkręcić śrubkę-przedłużkę.

Ponowne składanie Mini PC

Na to dysk. Potem już tylko pozostaje włożyć płytę w obudowę, wpasować plastik z wiatrakiem, wcisnąć, żeby zaskoczyły zaczepy. Wkręcenie śrubek i założenie spodu to już tylko formalność. Załatwione.

Oprogramowanie

Firebat T8 Pro przychodzi w komplecie z Windowsem 11, ale ja oczywiście od razu zainstalowałem Debiana 12. Ta operacja trwa mniej więcej 10 minut, łączenie ze ściągnięciem plików instalacyjnych. Przy szybkim łączu oczywiście.

Gdy już udało się zalogować, postępowałem zgodnie z instrukcjami producenta. W pierwszej kolejności sprawdziłem wersję kernela. Trochę pro-forma, bo jaki ma być w nowym Debianie, przecież nie stary.

$ uname -r
6.1.0-20-amd64

Zgodnie z przewidywaniami:

$ lsmod | grep apex

nie zwraca nic. Dobry, przewidywany objaw. Teraz trzeba trochę zaufania i już dodaję repozytoria do mojego Debiana:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update

Instalacja pakietów też bez żadnych problemów:

sudo apt-get install gasket-dkms libedgetpu1-std

Dalej dodanie regułu do udev:

sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"

Potem dodanie grupy i użytkownika do grupy:

sudo groupadd apex
sudo adduser $USER apex

I przychodzi moment, kiedy trzeba zrobić reboot systemu. Nie ma problemu, N100 wstaje błyskawicznie. Zaraz potem lspci już potwierdza, że karta jest zainstalowana:

$ lspci -nn | grep 089a
02:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a]

Urządzenie pojawiło się także w systemie w katalogu /dev/:

$ ls -l /dev/apex_0
crw-rw---- 1 root apex 120, 0 Apr 18 14:51 /dev/apex_0

Sukces. Karta jest zainstalowana, moduł jądra działa. Teraz pora zająć się nieco wyższym poziomem. Trzeba ściągnąć bibliotekę pyCoral:

sudo apt-get install python3-pycoral

Niby prosta sprawa, ale to przecież Python, więc bywa, że jest problem z wersjami. I tak było w moim przypadku. W chwili, gdy ja instalowałem pyCorala, wymagał on Pythona3 w wersji poniżej 3.10, a ja miałem nowszy. Dlatego musiałem zrobić downgrade, dochodząc ostatecznie do wersji 3.9:

$ python --version
Python 3.9.19

Dalej poszło już z góry. Po zainstalowaniu programu testowego i zaprezentowaniu mu przykładowego obrazka papugi, zwrócił zgodnie z oczekiwaniami:

Ara macao (Scarlet Macaw): 0.75781

75% peewności, że to Ara macao. Bardzo dobrze.

Co dalej?

I to tyle. Zadanie wykonane. Dalszym etapem była instalacja Frigate, połączenie z kamerami i serwerem MQTT oraz konfiguracja wykrywania osób i samochodów. Ostatecznie spięcie z moim systemem automatyki. Na początek zrobiłem 3 nowe funkcjonalności:

  • automatyczne otwieranie furtki, gdy ktoś do niej podchodzi od strony domu
  • zapalanie światła przed domem gdy którakolwiek z kamer wykryje obecność człowieka, a nie tylko ruch jak do tej pory
  • zapalanie światła na podjeździe, gdy ktoś wejdzie do tej strefy

Całkiem sporo, jak na jedno popołudnie, prawda? Możliwości są dużo większe, a konfiguracja przyjemna. Ale to już temat na inny wpis, jeżeli będzie konkretne zainteresowanie.

Ten wpis został opublikowany w kategorii AI, Inteligentny Dom i oznaczony tagami , , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Jedna odpowiedź do Google Coral AI i Intel N100

  1. Andrzej B pisze:

    Nie wiem jak wywołać konkretne zainteresowanie, ale ja bardzo chętnie bym poczytał dalej o bardziej zaawansowanym wykorzystaniu obrazu z kamer. Czy możliwe jest zrealizowanie czegoś takiego, że np. gdy w godzinie takiej i takiej wykryje żółty samochód ciężarowy to wyślij mi powiadomienie? Ciekawi mnie jak to wszystko można by spiąć. Obecnie mam kamery podpięte do Synology, a oprócz tego w sieci RPi z Home Assistantem, drugie RPi z Domoticzem, Firebat T8 Plus z Proxmox.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *