A mikrokontrollerek AI svájci bicskája: TinyML és az ESP32

csináldmagad

Igen, megint egy „mesterséges intelligencia cikk” következik de ez nem a „hogyan generáljunk hatékony promptokat” típusú bejegyzés lesz. Itt és most a használati eszközökön futó tanuló algoritmusokrol fogunk beszélni. És bár nem is hangzik annyira menőnek elsőre, mint az „automatizáltam a teljes napi munka folyamatomat 10 perc alatt” stílusú bejegyzések, a végeredmény sokkal inkább menő, mint gondolnátok. A téma a Tiny Machine Learning, ami szó szerint a zsebedben is elfér (már ha van elég nagy zsebed egy mikrokontrollernek és az azt megtápláló powerbanknak). Képzeld el, hogy az okosotthon eszközeid nem szimpla érzékelő-végrehajtó szerepet végeznek, hanem „osztott intelligenciásak” is (és nem KNX)! Vagy legalábbis fel tudnak ismerni bizonyos mintákat anélkül, hogy minden egyes adatot továbbadnának egy „felhőnek”(igen, ez egy másik fajta internet függőség).

Az ESP32, a mi kis kedvenc Wi-Fi és Bluetooth képes mikrokontrollerünk, igazi jolly joker az „úgy tanulok, hogy elkészítem” típusú okosotthon-rajongók számára. Eddig is imádtuk, mert olcsó, sokoldalú és viszonylag könnyen programozható. De a TinyML-el a következő szintre tudunk vele ugrani.

Mi az a TinyML, és miért zengek róla ódákat?

A TinyML (Tiny Machine Learning) lényegében azt jelenti, hogy a gépi tanulási modelleket extrém alacsony fogyasztású eszközökön, mint például a mi ESP32-esünkön, futtatjuk. Nincs szükség felhőre, kilowattokat fogyasztó „home lab szerverre” az egyszerű döntéshozatalhoz. Minden helyben történik, a készüléken magán, „az edge-en”.

Miért jó ez nekünk?-kérdezhetitek. Íme néhány ok:

  1. Adatvédelem: Az adatok (például a hang és képminták, érzékelő adatok) nem hagyják el az otthonunkat, sőt magát az eszközt sem. Nincs idegen szerveren tárolt információ, kevesebb a kockázat, nem beszélve a karbonlábnyomról. Emlékeztek még az okoságyas rémálomra, amikor egy AWS leállás szaunáztak a felhasználók a milliós költségű okos matracukon? Na, itt ilyen nem fordulhat elő.
  2. Gyorsaság: Nincs az adatküldéssel járó késleltetés. Ha egy mozdulatra azonnal reagálnia kell a világításnak, akkor a TinyML ezt meg tudja oldani.
  3. Alacsony energiafogyasztás: Mivel nincs folyamatos hálózati kommunikáció, sokkal kevesebb energiát fogyasztanak az eszközök, ami különösen fontos akkumulátoros eszközöknél.
  4. Költséghatékonyság: Nincs havidíj a felhőszolgáltatásokért, nincsenek rejtett költségek.
  5. Megbízhatóság: Feleség elfogadási faktor az egekben, mert „csak működik”.
  6. Mert ez igazán menő!

Példák, avagy mire is jó ez a gyakorlatban?

  • Beszédfelismerés: Az ESP32 felismerheti bizonyos kulcsszavakat („Okosotthon”, „Világítás fel!”), anélkül, hogy egy Google vagy Amazon szerverre küldené a hangmintát, de még csak a Home Assistant szerverünket sem kell megdolgoztatni hozzá.
  • Mozgásérzékelés és gesztusok: Egy ESP32-alapú eszköz érzékelheti, ha valaki belép a szobába, vagy akár egy specifikus kézmozdulattal vezérelheti a világítást.
  • Rezgéselemzés: Gondoljunk csak a mosógépre! Felismerheti, ha befejezte a programot, vagy ha valami furcsa zajt ad ki, és értesíthet minket. Mert a mai mosógépek, bár nem ugrálnak annyit, a külső borítás rezgésmintája azt is el tudja árulni, melyik szakaszban jár a mosógép.
  • Állapotfelismerés: Egy gép működését is megfigyelheti, és ha eltér a megszokottól, jelezheti a hibát.
  • Képelemzés: „Analógból digitális” elven működve, a mérőórák, digitális vagy analóg kijelzők állapotát de akár egy rendszám felismerést is végre tudunk hajtani az eszközön, külső segítség nélkül.

A szoftveres háttér: ESP-IDF és TensorFlow Lite for Microcontrollers

Az ESP32-n a TinyML-t leggyakrabban az ESP-IDF (Espressif IoT Development Framework) segítségével valósítják meg. Ez a hivatalos fejlesztői környezet, ami rengeteg eszközt és könyvtárat kínál. A gépi tanulási modell létrehozásához pedig a TensorFlow Lite for Microcontrollers a kulcs. Ez a Google által fejlesztett könyvtár lehetővé teszi, hogy a nagy modelleket apró, beágyazott eszközökre optimalizáljuk.

Néhány megvalósult projekt:

Levegő minőség analizátor: https://youtu.be/fbkvl0cvo1E?si=DlY0HGuEf0z06-_H

Objektum felismerő: https://wiki.seeedstudio.com/tinyml_course_Image_classification_project

Lépésről-lépésre útmutató a betanításhoz: https://www.teachmemicro.com/tinyml-with-esp32-tutorial/

Merre tovább?

A TinyML és az ESP32 párosa egy rendkívül izgalmas terület. Lehetővé teszi, hogy sokkal okosabb, önállóbb és adatvédelmi szempontból is biztonságosabb (nam eg energiahatékonyabb) okosotthon megoldásokat hozzunk létre. Arról nem is beszélve, hogy mennyire izgalmas belegondolni, hogy a hűtőnk nem csak azt tudja, hogy elfogyott a tej, hanem azt is, ha a kompresszor túl gyakran és túl sokáig jár, vagyis ideje egy megelőző szervíznek!

Szóval, ha van egy felesleges ESP32-d (és kinek nincs?), akkor itt az ideje, hogy belevesd magad a TinyML világába! Ki tudja, talán a következő nagy okosotthon fejlesztés épp a te műhelyedben születik meg.


Discover more from Okosotthon Blog

Subscribe to get the latest posts sent to your email.

Back To Top