LiteRT për mikrokontrolluesit është krijuar për të ekzekutuar modele të mësimit të makinerive në mikrokontrollues dhe pajisje të tjera me vetëm disa kilobajtë memorie. Koha kryesore e funksionimit përshtatet vetëm në 16 KB në një Arm Cortex M3 dhe mund të ekzekutojë shumë modele bazë. Nuk kërkon mbështetje të sistemit operativ, ndonjë bibliotekë standarde C ose C++, ose shpërndarje dinamike të memories.
Pse mikrokontrolluesit janë të rëndësishëm
Mikrokontrolluesit janë zakonisht pajisje kompjuterike të vogla, me fuqi të ulët, të cilat janë të ngulitura brenda harduerit që kërkon llogaritje bazë. Duke sjellë mësimin e makinerive te mikrokontrolluesit e vegjël, ne mund të rrisim inteligjencën e miliarda pajisjeve që përdorim në jetën tonë, duke përfshirë pajisjet shtëpiake dhe pajisjet e Internetit të Gjërave, pa u mbështetur në pajisje të shtrenjta ose lidhje të besueshme interneti, gjë që shpesh është subjekt i kufizimeve të gjerësisë së brezit dhe fuqisë dhe rezulton në vonesë të lartë. Kjo gjithashtu mund të ndihmojë në ruajtjen e privatësisë, pasi pajisja nuk largohet nga asnjë e dhënë. Imagjinoni pajisje inteligjente që mund të përshtaten me rutinën tuaj të përditshme, sensorë industrialë inteligjentë që kuptojnë ndryshimin midis problemeve dhe funksionimit normal, dhe lodra magjike që mund t'i ndihmojnë fëmijët të mësojnë në mënyra argëtuese dhe të lezetshme.
Platformat e mbështetura
LiteRT për mikrokontrolluesit është shkruar në C++ 17 dhe kërkon një platformë 32-bit. Ai është testuar gjerësisht me shumë procesorë të bazuar në arkitekturën e Serisë Arm Cortex-M dhe është transferuar në arkitektura të tjera duke përfshirë ESP32 . Korniza është e disponueshme si një bibliotekë Arduino. Mund të gjenerojë gjithashtu projekte për mjedise zhvillimi si Mbed. Është me burim të hapur dhe mund të përfshihet në çdo projekt C++ 17.
Bordet e mëposhtme të zhvillimit mbështeten:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kompleti i zbulimit STM32F746
- Adafruit EdgeBadge
- Kompleti Adafruit LiteRT për mikrokontrolluesit
- Adafruit Circuit Shesh lojërash Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminali Wio: ATSAMD51
- Bordi i Zhvillimit të Himax WE-I Plus EVB Endpoint AI
- Platforma e zhvillimit të softuerit Synopsys DesignWare ARC EM
- Sony Spresense
Eksploroni shembujt
Çdo shembull aplikimi është në GitHub dhe ka një skedar README.md
që shpjegon se si mund të vendoset në platformat e tij të mbështetura. Disa shembuj kanë gjithashtu mësime nga fundi në fund duke përdorur një platformë specifike, siç jepet më poshtë:
- Hello World - Demonstron bazat absolute të përdorimit të LiteRT për mikrokontrolluesit
- Fjalimi mikro - Regjistron audio me mikrofon për të zbuluar fjalët "po" dhe "jo"
- Zbulimi i personit - Regjistron të dhënat e kamerës me një sensor imazhi për të zbuluar praninë ose mungesën e një personi
Rrjedha e punës
Hapat e mëposhtëm kërkohen për të vendosur dhe ekzekutuar një model TensorFlow në një mikrokontrollues:
- Trajnoni një model :
- Gjeneroni një model të vogël TensorFlow që mund të përshtatet me pajisjen tuaj të synuar dhe përmban operacione të mbështetura .
- Konvertoni në një model LiteRT duke përdorur konvertuesin LiteRT .
- Konvertoni në një grup bajt C duke përdorur mjete standarde për ta ruajtur atë në një memorie programi vetëm për lexim në pajisje.
- Ekzekutoni konkluzionet në pajisje duke përdorur bibliotekën C++ dhe përpunoni rezultatet.
Kufizimet
LiteRT për mikrokontrolluesit është krijuar për kufizimet specifike të zhvillimit të mikrokontrolluesve. Nëse jeni duke punuar në pajisje më të fuqishme (për shembull, një pajisje Linux e integruar si Raspberry Pi), korniza standarde LiteRT mund të jetë më e lehtë për t'u integruar.
Kufizimet e mëposhtme duhet të merren parasysh:
- Mbështetje për një nëngrup të kufizuar të operacioneve TensorFlow
- Mbështetje për një grup të kufizuar pajisjesh
- API C++ e nivelit të ulët që kërkon menaxhim manual të kujtesës
- Trajnimi në pajisje nuk mbështetet
Hapat e ardhshëm
- Filloni me mikrokontrolluesit për të provuar shembullin e aplikacionit dhe për të mësuar se si të përdorni API.
- Kuptoni bibliotekën C++ për të mësuar se si ta përdorni bibliotekën në projektin tuaj.
- Ndërtoni dhe konvertoni modele për të mësuar më shumë rreth trajnimit dhe konvertimit të modeleve për vendosje në mikrokontrollues.