TensorFlow Lite for Microcontrollers jest przeznaczony do uruchamiania modeli uczenia maszynowego na mikrokontrolerach i innych urządzeniach z zaledwie kilkoma kilobajtami pamięci. Podstawowe środowisko uruchomieniowe mieści się w 16 KB na Arm Cortex M3 i może obsługiwać wiele podstawowych modeli. Nie wymaga obsługi systemu operacyjnego, żadnych standardowych bibliotek C lub C ++ ani dynamicznej alokacji pamięci.
Dlaczego mikrokontrolery są ważne
Mikrokontrolery to zazwyczaj małe urządzenia komputerowe o małej mocy, które są wbudowane w sprzęt wymagający podstawowych obliczeń. Wprowadzając uczenie maszynowe do małych mikrokontrolerów, możemy zwiększyć inteligencję miliardów urządzeń, których używamy w naszym życiu, w tym urządzeń gospodarstwa domowego i urządzeń Internetu rzeczy, bez polegania na drogim sprzęcie lub niezawodnych połączeniach internetowych, które często są uzależnione od przepustowości i ograniczenia mocy i skutkują dużym opóźnieniem. Może to również pomóc w zachowaniu prywatności, ponieważ żadne dane nie opuszczają urządzenia. Wyobraź sobie inteligentne urządzenia, które dostosowują się do Twojej codziennej rutyny, inteligentne czujniki przemysłowe, które rozumieją różnicę między problemami a normalną obsługą oraz magiczne zabawki, które mogą pomóc dzieciom uczyć się w przyjemny i przyjemny sposób.
Obsługiwane platformy
TensorFlow Lite for Microcontrollers jest napisany w języku C ++ 11 i wymaga platformy 32-bitowej. Został gruntownie przetestowany z wieloma procesorami opartymi na architekturze Arm Cortex-M Series i został przeniesiony na inne architektury, w tym ESP32 . Framework jest dostępny jako biblioteka Arduino. Może również generować projekty dla środowisk programistycznych, takich jak Mbed. Jest open source i można go włączyć do dowolnego projektu C ++ 11.
Obsługiwane są następujące płyty rozwojowe:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Zestaw Discovery STM32F746
- Adafruit EdgeBadge
- Zestaw Adafruit TensorFlow Lite dla mikrokontrolerów
- Plac zabaw Adafruit Circuit Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminal Wio: ATSAMD51
- Płytka rozwojowa Himax WE-I Plus EVB Endpoint AI
- Synopsys DesignWare ARC EM Platforma programistyczna
Poznaj przykłady
Każda przykładowa aplikacja znajduje się w serwisie Github i zawiera plik README.md
, który wyjaśnia, w jaki sposób można ją wdrożyć na obsługiwanych platformach. Niektóre przykłady zawierają również kompleksowe samouczki z wykorzystaniem określonej platformy, jak podano poniżej:
- Hello World - demonstruje absolutne podstawy korzystania z TensorFlow Lite dla mikrokontrolerów
- Mikrozmowa - przechwytuje dźwięk za pomocą mikrofonu w celu wykrycia słów „tak” i „nie”
- Magiczna różdżka - przechwytuje dane akcelerometru w celu sklasyfikowania trzech różnych gestów fizycznych
- Wykrywanie osoby - przechwytuje dane z kamery za pomocą czujnika obrazu w celu wykrycia obecności lub nieobecności osoby
Przepływ pracy
Aby wdrożyć i uruchomić model TensorFlow na mikrokontrolerze, wymagane są następujące kroki:
- Wytrenuj model :
- Wygeneruj mały model TensorFlow, który pasuje do urządzenia docelowego i zawiera obsługiwane operacje .
- Konwertuj na model TensorFlow Lite za pomocą konwertera TensorFlow Lite .
- Konwertuj na tablicę bajtów C przy użyciu standardowych narzędzi, aby przechowywać ją w pamięci programu tylko do odczytu na urządzeniu.
- Uruchom wnioskowanie na urządzeniu przy użyciu biblioteki C ++ i przetwórz wyniki.
Ograniczenia
TensorFlow Lite dla mikrokontrolerów został zaprojektowany z myślą o specyficznych ograniczeniach związanych z rozwojem mikrokontrolerów. Jeśli pracujesz na mocniejszych urządzeniach (na przykład na wbudowanym urządzeniu z systemem Linux, takim jak Raspberry Pi), integracja standardowej struktury TensorFlow Lite może być łatwiejsza.
Należy wziąć pod uwagę następujące ograniczenia:
- Obsługa ograniczonego podzbioru operacji TensorFlow
- Obsługa ograniczonego zestawu urządzeń
- Niskopoziomowy interfejs API C ++ wymagający ręcznego zarządzania pamięcią
- Trening na urządzeniu nie jest obsługiwany
Następne kroki
- Zacznij korzystać z mikrokontrolerów, aby wypróbować przykładową aplikację i nauczyć się korzystać z interfejsu API.
- Zapoznaj się z biblioteką C ++, aby dowiedzieć się, jak używać tej biblioteki we własnym projekcie.
- Twórz i konwertuj modele, aby dowiedzieć się więcej o szkoleniu i konwertowaniu modeli do wdrożenia na mikrokontrolerach.