TinyML: Rewolucja w uczeniu maszynowym na mikrokontrolerach

Czas czytania: 5 min.

Sztuczna inteligencja, uczenie maszynowe, sieci neuronowe czy duże modele językowe. To pojęcia, które pojawiają się coraz częściej. Wraz z postępem techniki, przestają one być zarezerwowane tylko dla nielicznych specjalistów, a stają się dostępne powszechnie dla każdego z dostępem do internetu. 

Jeszcze niedawno, aby zintegrować uczenie maszynowe – kluczową dziedzinę sztucznej inteligencji – z urządzeniami, potrzebna była znaczna moc obliczeniowa. Jednak najnowsze trendy technologiczne i rozwinięcie narzędzi typu “No-code”, które pozwalają na tworzenie aplikacji bez pisania kodu, przyniosły nam technologię TinyML. Rewolucjonizuje ona podejście do uczenia maszynowego na urządzeniach, umożliwiając przetwarzanie danych bezpośrednio na miejscu, bez konieczności przesyłania ich do chmury.

Co to jest TinyML i dlaczego warto się nim zainteresować?

Czym właściwie jest TinyML? To skrót od “tiny machine learning”, czyli dziedzina skoncentrowana na uruchamianiu modeli uczenia maszynowego na mikrokontrolerach oraz urządzeniach Internetu Rzeczy (IoT). Dzięki TinyML mamy teraz możliwość przetwarzania danych i podejmowania decyzji lokalnie, eliminując potrzebę przesyłania informacji, na przykład z czujników, do zewnętrznych serwerów.

Modele wykorzystywane w ramach TinyML są zoptymalizowane pod kątem rozmiaru i wydajności, co pozwala im działać na mniej wydajnych układach, jednocześnie dostarczając satysfakcjonujący poziom dokładności.

W obliczu rosnącej liczby urządzeń IoT i narastającego nacisku na ochronę prywatności, TinyML staje się kluczowym narzędziem. Dzięki możliwości przetwarzania danych lokalnie wrażliwe informacje nie opuszczają urządzenia, co znacząco podnosi poziom prywatności użytkowników. Co więcej, lokalna obróbka danych redukuje opóźnienia, zmniejsza zużycie energii i przedłuża żywotność baterii w naszych urządzeniach, co jest kluczowe dla urządzeń IoT, które muszą działać autonomicznie przez długi czas, np. kilka lat.

Kluczowe technologie i biblioteki w świecie TinyML

TinyML, koncentrując się na uruchamianiu modeli uczenia maszynowego na mikrokontrolerach i innych niewielkich urządzeniach, korzysta z wielu specjalizowanych bibliotek i technologii. Oto niektóre z nich:

  • TensorFlow Lite for Microcontrollers, uproszczona wersja TensorFlow Lite dedykowana dla mikrokontrolerów. Umożliwia ona uruchamianie modeli uczenia maszynowego na urządzeniach o bardzo ograniczonych zasobach.
  • Edge Impulse, platforma umożliwiająca tworzenie, trening i wdrażanie modeli TinyML, szczególnie na urządzenia IoT. Edge Impulse zapewnia kompleksowe narzędzia do całego procesu.
  • X-Cube-AI to narzędzie od STMicroelectronics, które umożliwia przekształcanie modeli uczenia maszynowego na optymalizowany kod C dla układów STM32.

Jak wygląda przygotowanie modelu TinyML?

Przygotowanie modelu TinyML jest procesem wieloetapowym, ma on na celu dostosowanie, optymalizację i wdrożenie modelu uczenia maszynowego na niewielkich, ograniczonych zasobami mikrokontrolerach. Poniżej przedstawiono etapy tego procesu:

  1. Zbieranie Danych: Zebranie odpowiednich danych z sensorów i innych źródeł.
  2. Trenowanie Modelu: Utworzenie i wytrenowanie prostego modelu na standardowym sprzęcie.
  3. Kwantyzacja i Optymalizacja: Redukcja precyzji wag modelu i innych technik optymalizacyjnych.
  4. Konwersja Modelu: Zmiana modelu na format odpowiedni dla narzędzi TinyML.
  5. Testowanie na Sprzęcie: Sprawdzanie modelu na docelowym mikrokontrolerze.
  6. Integracja z Aplikacją: Połączenie modelu z docelowym oprogramowaniem i sprzętem.
  7. Optymalizacja Energetyczna: Dostosowanie modelu do minimalnego zużycia energii (jeżeli jest to wymagane).
  8. Wdrażanie i Aktualizacja: Instalowanie modelu na urządzeniach i przeprowadzanie ewentualnych aktualizacji.
 

W jakich projektach możemy wykorzystać TinyML?

Gdy już wiemy czym jest TinyML, oraz w jaki sposób tworzy się modele,  możemy zadać sobie pytanie, w jakich aspektach możemy wykorzystać takie miniaturowe modele ML. 

Jednym z przykładów może być detekcja dźwięku, gdzie przy pomocy modeli TinyML możemy stworzyć system detekcji dźwięków, które będą wykrywać dźwięki alarmów, czy określanie określonych dźwięków w środowisku naturalnym jak odgłosy ptaków czy owadów, które mogą być przydatne dla biologów.  

Innym zastosowaniem może być wykrywanie upadków, w przypadku urządzeń wearable takich jak smartwatche,  TinyML może być używane do wykrywania nagłych zmian w ruchu, które mogą wskazywać na upadek lub wypadek samochodowy i automatycznie wysyłać powiadomienia do osób bliskich lub służb ratunkowych.

Rozpoznawanie obrazów przy pomocy modeli TinyML może być wykorzystywane przykładowo do identyfikacji zwierząt w foto pułapkach czy monitorowania zapełnienia koszy na śmieci w miastach,  ale także do identyfikacji osób lub rozpoznawaniu znaków i symboli. 

Innym przykładem jest możliwość zbudowania inteligentnego domu  na podstawie modele TinyML, w który system będzie mógł pomóc w zarządzaniu energią w domu na podstawie nauki wzorców zużycia energii, czy automatyczne regulowanie parametrów takich jak temperatura i oświetlenie w celu optymalizacji i zwiększenia komfortu użytkowania.   

Modele TinyML mogą być wykorzystanie w aspekcie tworzenia SmartCity, gdzie są inteligentne parkingi, które mogą monitorować dostępne miejsca i bardziej efektywnie informować kierowców o wolnych miejscach do zaparkowania. Mogą one również liczyć lub rozpoznawać pojazdy, co może pozwolić na optymalizacje działania sygnalizacji świetlnej, co w rezultacie może pomóc w usprawnieniu ruchu drogowego.  

Rozpoznawanie pojazdów i ich liczenie, może pomóc w usprawnieniu działania sygnalizacji świetlnej, aby rozładować korki.

Jak zacząć z TinyML?

Aby rozpocząć pracę z TinyML, kluczowe jest wybranie odpowiedniej płytki lub modułu, który pozwoli na efektywne uruchomienie modeli uczenia maszynowego. Oto kilka popularnych wyborów:

Seeed Xiao ESP32-S3 Sense

Seeed Xiao ESP32-S3 Sense to zestaw składający się z dwóch płytek. Pierwsza zawiera układ ESP32-S3 z dwurdzeniowym procesorem Xtensa 32-bit LX7 pracujący z częstotliwością do 240 MHz. Druga zawiera niewielką kamerę OV2640 o rozdzielczości 1600 × 1200 px, oraz również miniaturowy mikrofon.

Taki zestaw sprawdzi się do zastosowań rozpoznawania kształtów, kodów QR. A dzięki mikrofonowi możemy również rozpoznawać dźwięki. 

Pozostajemy w rodzinie modułów XIAO od Seeedstudio. Seeed Xiao BLE nRF52840 Sense to również miniaturowy moduł (wymiary to zaledwie  21 x 17,5 mm). Ten mikrokontroler oparty na rdzeniu ARM Cortex-M4 może pracować z częstotliwością do 64 MHz, ponadto zapewnia on łączność Bluetooth 5.0, NFC oraz Zigbee.

Sprawia to, że może sprawdzić się jako niewielki sterownik w inteligentnym domu. Na płycie znalazły się również czujniki, 6-osiowy IMU oraz cyfrowy mikrofon PDM. Na uwagę zasługuje również układ do ładowania akumulatora BQ25101, który może być niezwykle przydatny jeżeli zdecydujemy się na użycie tej płytki w mobilnych zastosowaniach, z zasilaniem z akumulatora.

Płytka Seeed Xiao nRF52840 Sense.
Wio Terminal - ATSAMD51 - RTL8720DN WiFi Bluetooth.

Jeżeli natomiast wymiary nie są dla nas aż tak istotne, ale potrzebujemy modułu z dużymi możliwociami jeżeli chodzi o czujniki, warto przyjrzeć się Wio Terminal. Pierwsze co zobaczymy w tym module to kolorowy wyświetlacz o przekątnej 2,4 cala, oraz niewielki 5-pozycyjne niebieski Joystick. Sercem modułu jest  mikrokontroler ATSAMD51 oparty na rdzeniu Cortex-M4F, mamy tutaj również układ Realtek RTL8720DN zapewniający łączność Bluetooth LE 5.0 oraz WiFi 2,4 GHz / 5 GHz. Ponadto mamy wiele peryferiów; czujnik IMU, mikrofon, buzzer, slot na karty microSD, czujnik światła czy diodę IR 940 nm. A gdyby to jeszcze było mało, to za pomocą dwóch złącz zgodnych ze standardem Grove, możemy podłączyć jeden z ponad 300 dostępnych modułów z tej rodziny. To dopiero jest ogrom możliwości! 

Do płytki możemy dokupić rozszerzenia: 

Jeżeli jednak interesuje nas tematyka smart city lub inteligentne rolnictwo warto sprawdzić urządzenie SenseCAP A1101. Urządzenie z rodziny SenceCAP wyposażone w kamerę o rozdzielczości 640 x 480 pikseli z maksymalną prędkością rejestracji obrazów do 60 klatek na sekundę.

Sprawdzi się wszędzie tam, gdzie potrzebujemy efektywnego rozpoznawania czy analizowania obrazów. Przykładowe zastosowanie to wykrywanie osób, czy rozpoznawanie analogowych wskaźników np. gazu, czy energii elektrycznej.

Otrzymane wyniki mogą zostać przesłane za pomocą sieci LoRAWAN. Urządzenie posiada stopień ochrony IP66 i może pracować w temperaturze od -40°C do 85°C.

SenseCAP A1101 - czujnik Vision AI - LoRaWAN.

Podsumowanie

TinyML otwiera przed nami zupełnie nową erę w świecie elektroniki, łącząc potęgę uczenia maszynowego z możliwościami miniaturowych układów i urządzeń. Dzięki tej synergii możemy tworzyć inteligentne rozwiązania, które wcześniej były nieosiągalne dla małych, oszczędzających energię urządzeń. W miarę jak technologia będzie się rozwijać, możemy spodziewać się coraz bardziej zaawansowanych aplikacji nawet w najmniejszych formatach. Z całą pewnością jest to obszar, który warto obserwować, gdyż może on zrewolucjonizować wiele aspektów naszej codzienności w najbliższych latach. Zacznijmy więc eksperymentować, uczyć się i być częścią tej fascynującej podróży w krainę TinyML.

Nie czekaj dłużej! Świat TinyML pełen jest możliwości, a z odpowiednimi narzędziami i wiedzą, nic nie stoi na przeszkodzie, by stać się ekspertem w tej dziedzinie. 

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.4 / 5. Liczba głosów: 24

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Patryk Mądry

Patryk Mądry

Patryk to nasz produkt menadżer. Ukończył kierunek Automatyka i Robotyka na wydziale Mechanicznym Politechniki Białostockiej. Interesuje się nowinkami technologicznymi, robotyką mobilną oraz fotografią. Lubi napić się dobrej kawy.

Zobacz więcej:

Rafał Bartoszak

Problem Europejskich technologii

Nie sposób zaprzeczyć, że innowacyjność odgrywa kluczową rolę w długoterminowym rozwoju gospodarczym. Europa jednak napotyka pewne wyzwania w tym obszarze. W tym artykule przyjrzymy się im bliżej.

Jedna odpowiedź

  1. Witam
    Można byłoby wspomnieć o zastosowaniach na innych urządzeniach, które macie w ofercie np. nucleo. Fajnie byłoby dać liniki do przykładów implementacyjnych.

Dodaj komentarz

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

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce prywatności i Warunkom użytkowania.