LiteRT untuk Microcontrollers dirancang untuk menjalankan model machine learning pada mikrokontroler dan perangkat lain yang memiliki memori beberapa kilobita. Tujuan Core runtime hanya sesuai dalam 16 KB pada Arm Cortex M3 dan dapat menjalankan banyak jaringan. Tidak memerlukan dukungan sistem operasi, standar C atau C++ {i>library<i}, atau alokasi memori dinamis.
Alasan pentingnya mikrokontroler
{i>Microcontroller<i} biasanya merupakan perangkat komputasi kecil bertenaga rendah yang yang tertanam di dalam perangkat keras yang membutuhkan komputasi dasar. Dengan menghadirkan mesin belajar melalui mikrokontroler kecil, kita dapat meningkatkan kecerdasan miliaran perangkat yang kita gunakan dalam hidup, termasuk peralatan rumah tangga dan internet Perangkat Things, tanpa mengandalkan hardware mahal atau internet yang andal koneksi internet, yang sering kali mengalami keterbatasan {i>bandwidth<i} dan daya dan menghasilkan latensi tinggi. Hal ini juga dapat membantu menjaga privasi, karena tidak ada data meninggalkan perangkat. Bayangkan peralatan pintar yang dapat beradaptasi dengan pekerjaan Anda sehari-hari sensor industri cerdas rutin yang memahami perbedaan antara masalah dan operasi normal, serta mainan ajaib yang dapat membantu anak belajar dengan menyenangkan dengan cara yang menyenangkan.
Platform yang didukung
LiteRT untuk Microcontrollers ditulis dalam C++ 17 dan membutuhkan arsitektur terkelola sepenuhnya. Ini telah diuji secara ekstensif dengan banyak prosesor berdasarkan Seri Arm Cortex-M arsitektur, dan telah dipindahkan ke arsitektur lain termasuk ESP32. Tujuan framework tersedia sebagai perpustakaan Arduino. Alat ini juga dapat menghasilkan proyek untuk lingkungan pengembangan seperti Mbed. Ini adalah {i>open source<i} dan dapat dimasukkan dalam project C++ 17 apa pun.
Papan pengembangan berikut didukung:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kit Discovery STM32F746
- EdgeBadge Adafruit
- Kit Adafruit LiteRT untuk Microcontrollers
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- ESP-EYE
- Terminal Wio: ATSAMD51
- Dewan Pengembangan Endpoint AI Himax WE-I Plus
- Platform Pengembangan Software ARC EM Synopsys DesignWare
- Sony Spresense
Mempelajari contohnya
Setiap aplikasi contoh aktif
GitHub
dan memiliki file README.md
yang menjelaskan cara deployment dapat dilakukan ke
di berbagai platform Google. Beberapa contoh juga memiliki tutorial {i>end-to-end<i} menggunakan
platform ini, seperti yang dijelaskan di bawah ini:
- Halo Dunia - Mendemonstrasikan dasar-dasar absolut penggunaan LiteRT untuk Microcontroller
- Ucapan mikro - Merekam audio dengan mikrofon untuk mendeteksi kata "ya" dan "tidak"
- Deteksi orang - Mengambil data kamera dengan sensor gambar untuk mendeteksi kehadiran atau ketidakhadiran dari seseorang
Alur kerja
Langkah-langkah berikut diperlukan untuk men-deploy dan menjalankan model TensorFlow pada mikrokontroler:
- Melatih model:
- Buat model TensorFlow kecil yang sesuai dengan perangkat target dan berisi operasi yang didukung.
- Konversikan ke model LiteRT menggunakan Konverter LiteRT.
- Konversikan ke array C byte menggunakan alat standar untuk menyimpannya dalam {i>read-only program memory<i} di perangkat.
- Menjalankan inferensi di perangkat menggunakan library C++ dan proses hasilnya.
Batasan
LiteRT untuk {i>Microcontrollers<i} dirancang untuk batasan tertentu dari pengembangan mikrokontroler. Jika Anda mengerjakan perangkat yang lebih canggih (untuk misalnya, perangkat Linux yang tertanam seperti Raspberry Pi), model Framework LiteRT mungkin lebih mudah diintegrasikan.
Batasan berikut harus dipertimbangkan:
- Dukungan untuk subset terbatas Operasi TensorFlow
- Dukungan untuk serangkaian perangkat terbatas
- C++ API level rendah memerlukan manajemen memori manual
- Pelatihan di perangkat tidak didukung
Langkah berikutnya
- Mulai gunakan mikrokontroler untuk mencoba contoh aplikasi dan mempelajari cara menggunakan API.
- Memahami library C++ untuk mempelajari cara menggunakan library di untuk proyek Anda sendiri.
- Membangun dan mengonversi model untuk mempelajari pelatihan lebih lanjut dan mengonversi model untuk deployment pada mikrokontroler.